BMLT Root Server
Go to the documentation of this file.
1 <?php
2 /***********************************************************************/
3 /** This file is part of the Basic Meeting List Toolbox (BMLT).
5  Find out more at:
7  BMLT is free software: you can redistribute it and/or modify
8  it under the terms of the MIT License.
10  BMLT is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MIT License for more details.
15  You should have received a copy of the MIT License along with this code.
16  If not, see <>.*/
17  defined('BMLT_EXEC') or die('Cannot Execute Directly'); // Makes sure that this file is in the correct context.
21  $comdef_install_wizard_strings = array (
22  'Database_Version_Error' => 'ERROR: You must have PHP Version 5.6 or greater installed on this server!',
23  'Database_PDO_Error' => 'ERROR: You do not have PHP PDO installed!',
24  'Database_Type_Error' => 'ERROR: Even though you have PDO, you have no database drivers installed!',
25  'Database_Type_MySQL_Error' => 'ERROR: Even though you have PDO and you have database drivers installed, none of the are MySQL (the only supported driver)!',
26  'Database_TestButton_Text' => 'TEST',
27  'Database_TestButton_Success' => 'The database connection was successful.',
28  'Database_TestButton_Fail' => 'The database connection failed: ',
29  'Database_TestButton_Fail2' => 'The database connection failed because there is already an initialized database.',
30  'Database_Whitespace_Note' => 'Warning: %s has whitespace at the beginning or end.',
32  'AJAX_Handler_DB_Connect_Error' => 'The database connection failed! Please make sure that the database exists, IS COMPLETELY EMPTY, the user is created, and that user has full permissions on the empty database.',
33  'AJAX_Handler_DB_Established_Error' => 'The database already exists, and has been set up! You cannot use this setup to overwrite an existing database!',
34  'AJAX_Handler_DB_Incomplete_Error' => 'There is not enough information to initialize the database!',
36  'NoDatabase_Note_AlreadySet' => 'The database has already been initialized with the provided table prefix. Please choose a new one.',
37  'NoDatabase_Note_GenericError' => 'There is an error connecting to the database. Please check your database settings.',
38  'NoDatabase_Note_ClickHere' => 'Click here to go back to the database set up page.',
39  'NoDatabase_Note_PasswordIssue' => 'You must choose a username and password for the Server Administrator user.',
40  'NoDatabase_Note_ServerSettings_ClickHere' => 'Click here to go back to the server settings page.',
41  'NoServerAdmin_Note_AlreadySet' => 'There is already an existing database, so you cannot set up a Server Administrator account (One already exists).',
42  'NeedLongerPasswordNote' => 'This password is too short. It must be at least %d characters long.',
44  'Prev_Button' => 'PREVIOUS',
45  'Next_Button' => 'NEXT',
47  'Page_1_Tab' => 'STEP 1: Database',
48  'Page_1_Heading' => 'Database Connection Settings',
49  'Page_1_Text' => 'Before you can apply the settings on this page, you must set up a new COMPLETELY EMPTY database, and create a database user that has full user rights on that database.',
51  'Database_Name' => 'Database Name:',
52  'Database_Name_Default_Text' => 'Enter A Database Name',
53  'Database_Type' => 'Database Type:',
54  'Database_Host' => 'Database Host:',
55  'Database_Host_Default_Text' => 'Enter A Database Host',
56  'Database_Host_Additional_Text' => 'This is usually "localhost."',
57  'Table_Prefix' => 'Table Prefix:',
58  'Table_Prefix_Default_Text' => 'Enter A Table Prefix',
59  'Table_Prefix_Additional_Text' => 'Only for multiple root servers sharing a database.',
60  'Database_User' => 'Database User:',
61  'Database_User_Default_Text' => 'Enter A Database User Name',
62  'Database_PW' => 'Database Password:',
63  'Database_PW_Default_Text' => 'Enter A Database Password',
64  'Database_PW_Additional_Text' => 'Make this an ugly, difficult password. It has a great deal of power, and you will never need to remember it.',
66  'Maps_API_Key_Warning' => 'There is a problem with the Google Maps API Key.',
67  'Maps_API_Key_Not_Set' => 'The Google Maps API key is not set.',
68  'Maps_API_Key_Valid' => 'Google Maps API Key is valid.',
69  'Maps_API_Key_ClickHere' => 'Click here to go back to the Google Maps API Key set up page.',
71  'Page_2_Tab' => 'STEP 2: Google Maps API Settings',
72  'Page_2_Heading' => 'Google Maps API Settings',
73  'Page_2_API_Key_Prompt' => 'Enter the Google API Key for Geocoding:',
74  'Page_2_API_Key_Set_Button' => 'TEST KEY',
75  'Page_2_API_Key_Not_Set_Prompt' => 'SET API KEY FIRST',
76  'Page_2_Text' => 'When saving a meeting, the BMLT Root Server uses the Google Maps API to determine the latitude and longitude for the meeting address. These settings are required to allow the BMLT Root Server to communicate with the Google Maps API.',
78  'Page_3_Tab' => 'STEP 3: Server Settings',
79  'Page_3_Heading' => 'Set Various Global Server Settings',
80  'Page_3_Text' => 'These are a few settings that affect the administration and general configuration of this server. Most server settings are done in the server itself.',
81  'Admin_Login' => 'Server Administrator Login:',
82  'Admin_Login_Default_Text' => 'Enter A Server Administrator Login',
83  'Admin_Login_Additional_Text' => 'This is the login string for the Server Administrator.',
84  'Admin_Password' => 'Server Administrator Password:',
85  'Admin_Password_Default_Text' => 'Enter A Server Administrator Password',
86  'Admin_Password_Additional_Text' => 'Make sure that this is a non-trivial password! It has a great deal of power! (Also, don\'t forget it).',
87  'ServerAdminName' => 'Server Administrator',
88  'ServerAdminDesc' => 'Main Server Administrator',
89  'ServerLangLabel' => 'Default Server Language:',
90  'DistanceUnitsLabel' => 'Distance Units:',
91  'DistanceUnitsMiles' => 'Miles',
92  'DistanceUnitsKM' => 'Kilometres',
93  'SearchDepthLabel' => 'Density of Meetings For Automatic Search:',
94  'SearchDepthText' => 'This is an approximation of how many meetings need to be found in the automatic radius selection. More meetings means a bigger radius.',
95  'HistoryDepthLabel' => 'How Many Meeting Changes To Save:',
96  'HistoryDepthText' => ' The longer the history, the larger the database will become.',
97  'TitleTextLabel' => 'The Title Of The Administration Screen:',
98  'TitleTextDefaultText' => 'Enter A Short Title For the Editing Login Page',
99  'BannerTextLabel' => 'Prompt For Administration Login:',
100  'BannerTextDefaultText' => 'Enter A Short Prompt For The Login Page',
101  'RegionBiasLabel' => 'Region Bias:',
102  'PasswordLengthLabel' => 'Minimum Password Length:',
103  'PasswordLengthExtraText' => 'This will also affect the Server Administrator password, above.',
104  'DefaultClosedStatus' => 'Meetings Are Considerd "CLOSED" by Default:',
105  'DefaultClosedStatusExtraText' => 'This primarily affects the export to NAWS.',
106  'DurationLabel' => 'Default Meeting Duration:',
107  'DurationHourLabel' => 'Hours',
108  'DurationMinutesLabel' => 'Minutes',
109  'LanguageSelectorEnableLabel' => 'Display Language Selector On Login:',
110  'LanguageSelectorEnableExtraText' => 'If you select this, a popup menu will appear in the login screen, so administrators can select their language.',
111  'SemanticAdminLabel' => 'Enable Semantic Administration:',
112  'SemanticAdminExtraText' => 'If not checked, then all administration must be done via the Root Server login (No apps).',
113  'EmailContactEnableLabel' => 'Allow Email Contacts From Meetings:',
114  'EmailContactEnableExtraText' => 'If you select this, site visitors will be able to send emails from meeting records.',
115  'EmailContactAdminEnableLabel' => 'Include Service Body Administrator On These Emails:',
116  'EmailContactAdminEnableExtraText' => 'Sends copies of these emails to the Service Body Administrator (if they are not the primary recipient).',
117  'EmailContactAllAdminEnableLabel' => 'Include All Service Body Administrators On These Emails:',
118  'EmailContactAllAdminEnableExtraText' => 'Sends copies of these emails to all of the relevant Service Body Administrators.',
120  'Page_4_Initialize_Root_Server_Heading' => 'Initialize the Root Server',
121  'Page_4_Initialize_Root_Server_Text' => 'The button below will initialize the Root Server with an empty database and a Server Administrator user.',
122  'Page_4_Initialize_Root_Server_Button' => 'Initialize Root Server',
124  'Page_4_Tab' => 'STEP 4: Save The Settings',
125  'Page_4_Heading' => 'Create the Settings File',
126  'Page_4_Text' => 'The root server was unable to create the settings file for you. Instead, we ask you to create it yourself, via FTP or a control panel file manager, name it "", and paste the following text into the file:',
128  'NAWS_Export_Spreadsheet_Optional' => 'NAWS Export Spreadsheet (Optional): ',
129  'NAWS_Export_Spreadsheet_Initially_Publish' => 'Initialize imported meetings to \'published\': ',
131  'DefaultPasswordLength' => 10,
132  'DefaultMeetingCount' => 10,
133  'DefaultChangeDepth' => 5,
134  'DefaultDistanceUnits' => 'mi',
135  'DefaultDurationTime' => '01:30:00',
136  'DurationTextInitialText' => 'N.A. Meetings are usually 90 minutes long (an hour and a half), unless otherwise indicated.',
137  'time_format' => 'g:i A',
138  'change_date_format' => 'g:i A, n/j/Y',
139  'BannerTextInitialText' => 'Administration Login',
140  'TitleTextInitialText' => 'Basic Meeting List Toolbox Administration',
141  'DefaultRegionBias' => 'us',
142  'search_spec_map_center' => array ( 'longitude' => -118.563659, 'latitude' => 34.235918, 'zoom' => 6 ),
143  'DistanceChoices' => array ( 2, 5, 10, 20, 50 ),
144  'HistoryChoices' => array ( 1, 2, 3, 5, 8, 10, 15 ),
145  'PW_LengthChices' => array ( 6, 8, 10, 12, 16 ),
146  'ServerAdminDefaultLogin' => 'serveradmin',
148  'Explanatory_Text_1_Initial_Intro' => 'This install wizard will guide you through the process of creating an initial database, as well as a configuration file. In the final step, we will create a settings file, and initialize an empty database.',
149  'Explanatory_Text_1_DB_Intro' => 'The first thing that you need to do, is create a new, EMPTY database, and a database user that has full access to that database. This is usually done via your Web site Control Panel. Once you have created the database, you need to enter the information about that database into the text items on this page.',
151  'Explanatory_Text_2_Region_Bias_Intro' => 'The "Region Bias" is a code that is sent to Google when a location search is done, and can help Google to make sense of ambiguous search queries.',
152  'Explanatory_Text_2_API_key_Intro' => 'The "API Key" is a key that <a target="_blank" title="Follow this link to go to a page that discusses the Google API Key." href="">you need to register with Google</a> in order to be able to use their mapping service.',
153  'Explanatory_Text_2_API_key_2_Intro' => 'You will need to provide a valid API Key in order to create new meetings in the Root Server.',
155  'Explanatory_Text_3_Server_Admin_Intro' => 'The Server Administrator is the main user for the server. It is the only account that can create new users and Service bodies, and is very powerful. You should create a login ID and a non-trivial password for this account. You\'ll be able to modify the other aspects of the account on the main server, once the database has been set up.',
156  'Explanatory_Text_3_Misc_Intro' => 'These are various settings that affect how the root server behaves and appears.',
158  'Explanatory_Text_4_Main_Intro' => 'If you have entered the database information, provided a valid Google Maps API Key, and specified the login information for the Server Administrator, then you can initialize the root server here. Remember that the database must be COMPLETELY EMPTY of BMLT Root Server tables for this server (It can have tables for other servers or services).',
159  'Explanatory_Text_4_NAWS_Export' => 'Optionally, you can import the meetings from a NAWS export spreadsheet. Uncheck the box to initialize them to \'unpublished\'. (This is useful if many of the new meetings will need to be edited or deleted, and you don\'t want them showing up in the meantime.)',
160  'Explanatory_Text_4_File_Intro' => 'The text in the box below is the PHP source code for the main settings file. You will need to create a file on the server with this text in it. The file is at the same level as the main server directory for the root server.',
161  'Explanatory_Text_4_File_Extra' => 'You also need to make sure that the file permissions are restricted (chmod 0644). This prevents the file from being written, and the root server will not run unless the file has the correct permissions.',
162  'Page_4_PathInfo' => 'The file needs to be placed as %s/, which is where your %s directory is. After the file has been created and you have put the above text into it, you should execute the following command to make sure that the permissions are correct:',
163  'Page_4_Final' => 'Once all this is complete, refresh this page, and you should see the root server login page.',
164  'FormatLangNamesLabel' => 'Enter extra languages in format code1:name1 (example "fa:farsi ru:russian"):',
165  );
BMLTSemantic prototype languages
if($handler instanceof c_comdef_admin_ajax_handler)
function g
var s
var a
global $comdef_install_wizard_strings
BMLTSemanticResult prototype services
The selected Service bodies. This is a CSV string of integer IDs.
function d(e)
var t
var i
var n
defined('BMLT_EXEC') or define('BMLT_EXEC'
Definition: index.php:3
BMLTSemanticResult prototype valid
This will be non-null if the compiled result is valid (only after compile()).