wsLoadSettings.php SettingsFiles should pe password protected - dated: 18-12-2020 14:41
1 | <?php # ini_set('display_errors', 'On'); error_reporting(E_ALL);
2 | if (isset($_REQUEST['sce']) && strtolower($_REQUEST['sce']) == 'view' ) {
3 | $filenameReal = __FILE__; # display source of script if requested so
4 | $download_size = filesize($filenameReal);
5 | header('Pragma: public');
6 | header('Cache-Control: private');
7 | header('Cache-Control: no-cache, must-revalidate');
8 | header("Content-type: text/plain");
9 | header("Accept-Ranges: bytes");
10 | header("Content-Length: $download_size");
11 | header('Connection: close');
12 | readfile($filenameReal);
13 | exit;
14 | }
15 | $pageName = 'wsLoadSettings.php';
16 | $pageVersion = '3.20 2016-06-01';
17 | #
18 | if (!isset($SITE)){echo "<h3>invalid call to script $pageName</h3>";exit;}
19 | $SITE['wsModules'][$pageName] = 'version: ' . $pageVersion;
20 | $pageFile = basename(__FILE__); // check to see this is the real script
21 | if ($pageFile <> $pageName) { $SITE['wsModules'][$pageFile] = 'this file loaded instead of '.$pageName; }
22 | if (!isset($pathString)) {$pathString='';}
23 | if (!function_exists ('ws_message') ){
24 | function ws_message ($message,$always=false,&$string=false) {
25 | global $wsDebug, $SITE;
26 | $echo = $always;
27 | if ( $echo == false && isset ($wsDebug) && $wsDebug == true ) {$echo = true;}
28 | if ( $echo == false && isset ($SIE['wsDebug']) && $SIE['wsDebug'] == true ) {$echo = true;}
29 | if ( $echo == true && $string === false) {echo $message.PHP_EOL;}
30 | if ( $echo == true && $string <> false) {$string .= $message.PHP_EOL;}
31 | }
32 | }
33 | ws_message ('<!-- module '.$pageFile.' ==== '.$SITE['wsModules'][$pageFile].' -->',true,$pathString);
34 | #---------------------------------------------------------------------------
35 | # '3.20 2016-06-01 Release 2.8g version including australian warnings ## 2018-11-12 mods off when no cookie support
36 | #---------------------------------------------------------------------------
37 | $ws_arr_supp_wx = array ('CU', 'CW', 'DW', 'MB', 'MH', 'VW','WC', 'WD', 'WL', 'WS', 'WV', 'MP');
38 | # Set all defaults
39 | $SITE['noaaPage'] = $SITE['ecPage'] = $SITE['cwopPage'] = 'no'; // set to default / no values
40 | $SITE['canada'] = $SITE['europe'] = $SITE['america'] = $SITE['other'] = false;
41 | $SITE['belgium'] = $SITE['netherlands'] = $SITE['warnArea'] = false; // set to default / no values
42 | #
43 | $SITE['wdPage'] = $SITE['cwPage'] = $SITE['wdlPage'] = $SITE['wlPage'] = 'no';
44 | $SITE['wcPage'] = $SITE['cuPage'] = $SITE['mhPage'] = $SITE['mbPage'] = 'no';
45 | $SITE['MeteoplugPage'] =$SITE['cltrPage'] = $SITE['trendPage'] = $SITE['mwPage'] = 'no';
46 | $SITE['graphsPage'] = $SITE['wsYTags'] = 'no';
47 |
48 | $SITE['cookieName'] = 'weatherv4';
49 |
50 | $SITE['colorStyles'] = array ('weather adapted', 'green','blue','pastel','red','orange','none','ws_clouds','ws_cloudsn','ws_mist','ws_moon','ws_pclouds','ws_rain','ws_snow','ws_storm','ws_sun','ws_thunder');
51 | if (!defined('ENT_HTML5')) {define ('ENT_HTML5' , (16|32) );}
52 | $SITE['htmlVersion'] = ENT_HTML5; // html version of this template
53 | $SITE['commaDecimal'] = false; // most europeans use a comma for a decimal point. others a point
54 | $SITE['curlFollow'] = 'false'; // for sites using safe mode
55 | #---------------------------------------------------------------------------
56 | $SITE['imgDir'] = 'img/'; // directory under topfolder used for general images
57 | $SITE['cacheDir'] = 'cache/'; // directory to cache files
58 | $SITE['metarDir'] = 'metar/'; // directory for metar scripts
59 | $SITE['javascriptsDir'] = 'javaScripts/'; // all general javascripts
60 | $SITE['forecastsDir'] = 'forecasts/'; //
61 | $SITE['iconsDir'] = 'wsIcons/';
62 | $SITE['defaultIconsDir']= $SITE['iconsDir'].'default_icons/';
63 | $SITE['defaultIconsSml']= $SITE['iconsDir'].'default_icons_small/';
64 | $SITE['windIcons'] = $SITE['iconsDir'].'windIcons/';
65 | $SITE['windIconsSmall'] = $SITE['iconsDir'].'windIconsSmall/';
66 | $SITE['yrnoFcst'] = 'wsyrnofct/startMobi.php';
67 | #---------------------------------------------------------------------------
68 | # load user settings
69 | #---------------------------------------------------------------------------
70 | ws_message ( '<!-- module wsLoadSettings.php ('.__LINE__.'): loading wsUserSettings.php -->',true,$pathString);
71 | include '_my_texts/wsUserSettings.php';
72 | #
73 | if (isset($_REQUEST['debug']) || $SITE['wsDebug'] == true) {
74 | $SITE['wsDebug'] = true;
75 | $wsDebug = true;
76 | ini_set('display_errors', 'On'); error_reporting(E_ALL);
77 | ws_message ( '<!-- module wsLoadSettings.php ('.__LINE__.'): debug is switched on by user request - error reporting ALL -->',true,$pathString);
78 | $SITE['colorNumber'] = '3';
79 | }
80 | else { $SITE['wsDebug'] = false;
81 | ini_set('display_errors', NULL); error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);
82 | $wsDebug = false;
83 | }
84 | if ($SITE['region'] <> 'europe') { // only works in europe
85 | $SITE['ewnID'] = false; $SITE['ewnMember'] = false;
86 | $SITE['hwaID'] = false; $SITE['hwaMember'] = false;
87 | } // only works in europe
88 | #
89 | /* as of 2.8 no dynamic switching of wp supported
90 | if (isset($_REQUEST['wp'])) {
91 | $wp = substr(strtoupper($_REQUEST['wp']).$SITE['WXsoftware'],0,2);
92 | if (in_array ($wp, $ws_arr_supp_wx )) {
93 | $SITE['switch_wp'] = $SITE['WXsoftware'] = $wp;
94 | ws_message ( '<!-- module wsLoadSettings.php ('.__LINE__.'): user switches the weatherprogram to '.$SITE['WXsoftware'].' -->',true,$pathString);
95 | $extraP ='&wp='.$SITE['WXsoftware'];
96 | }
97 | }
98 | */
99 | if (!isset ($SITE['WXsoftware']) ) {
100 | $SITE['WXsoftware'] = 'CU';
101 | ws_print_warning( 'WARNING - Please set your weather_program. Defaulted to '.$SITE['WXsoftware']);
102 | }
103 | if ($SITE['sideDisplay'] == false && $SITE['menuPlace'] == 'V') {$SITE['sideDisplay'] = true; };
104 | #
105 | if (!isset ($SITE['curCondFrom'])) {
106 | $SITE['curCondFrom'] = 'metar';
107 | ws_print_warning( 'WARNING - Please set your current conddition source. Defaulted to '.$SITE['curCondFrom']);
108 | }
109 | if ($SITE['curCondFrom'] == 'wd' && ($SITE['WXsoftware'] <> 'WD' && $SITE['WXsoftware'] <> 'CW')) {$SITE['curCondFrom'] = 'yahoo';}
110 | #
111 | if ($SITE['skipTop']) {$skiptopText = '#data-area';} else {$skiptopText = '';}
112 | #
113 | #---------------------------------------------------------------------------
114 | # W A R N I N G S
115 | #---------------------------------------------------------------------------
116 | $SITE['warningsEuro'] = $SITE['warningsNOAA'] = $SITE['warningsNWS'] = $SITE['warningsec'] = false;
117 | $SITE['warnImg'] = false; // set all default no
118 | #---------------------------------------------------------------------------
119 | #
120 | if ($SITE['region'] == 'america') { # U S A
121 | $SITE['america'] = true;
122 | if ($SITE['useCurly'] == true) {
123 | $SITE['warningScript'] = './usa/nws-alerts/wsnws-alerts.php';
124 | $SITE['warningsNWS'] = true;
125 | } else {
126 | $SITE['warningScript'] = './usa/noaa_warn/noaaWarning.php';
127 | $SITE['warningsNOAA'] = $SITE['warnings'] ;
128 | $SITE['warnImg'] = './usa/warn_icons/';
129 | }
130 | } elseif ($SITE['region'] == 'canada') { # C A N A D A
131 | $SITE['canada'] = true;
132 | $SITE['warningScript'] = './canada/ec_warning.php';
133 | $SITE['warningsec'] = $SITE['warnings'];
134 | } elseif ($SITE['region'] == 'europe') { # E U R O P E
135 | $SITE['europe'] = true;
136 | $SITE['warningScript'] = './europe/wrnWarningv3.php'; // Euro
137 | $SITE['warningsEuro'] = $SITE['warnPage'];
138 | $SITE['warnImg'] = './img/wrnImages/warn_';
139 | } else { // region = other
140 | $SITE['other'] = true;
141 | # $SITE['warningsMenu'] = false;
142 | # $SITE['warnings'] = false;
143 | # $SITE['warnPage'] = false;
144 | $SITE['warningScript'] = './other/warning.php';
145 | }
146 | # // for more detailed info when there is a warning displayed
147 | $SITE['noaawarningURL'] = 'http://alerts.weather.gov/cap/wwaatmget.php?x='.$SITE['warnArea'].'&y=1';
148 | $SITE['EUwarningURL'] = 'http://www.meteoalarm.eu/index3.php?area='.$SITE['warnArea'].'&day=0&lang=ne_NL';
149 | #
150 | if ($SITE['warnings'] <> true) {
151 | $SITE['warnPage'] = false;
152 | $SITE['warningsEuro'] = $SITE['warningsNOAA'] = $SITE['warningsNWS'] = $SITE['warningsec'] = false;
153 | }
154 | #---------------------------------------------------------------------------
155 | # mobile site
156 | # detection which mobile device is used is done in index.php by loading mobi/ws_check_mobi.php
157 | #---------------------------------------------------------------------------
158 | $SITE['mobileDir'] = 'mobi/';
159 | $SITE['mobileSite'] = $SITE['mobileDir'].'mobi.php'; // for switching to mobile site; set to "" when no mobile support is needed
160 | #---------------------------------------------------------------------------
161 | # Ajax
162 | #---------------------------------------------------------------------------
163 | $SITE['imgAjaxDir'] = 'ajaxImages/'; // directory for ajaxImages with trailing slash
164 | $SITE['wsAjaxScript'] = $SITE['javascriptsDir'].'ajax.js'; // for AJAX enabled display
165 | $SITE['wsAjaxDataLoad'] = 'wsAjaxDataLoad_v3.php'; // load fresh data for ajax page at users site
166 | $SITE['ajaxGizmojs'] = $SITE['javascriptsDir'].'ajaxgizmo.js'; // rotate gizmo info
167 | $SITE['ajaxGizmo'] = 'wsAjaxGizmo.php'; // default Giozmo
168 | #---------------------------------------------------------------------------
169 | # Which scripts to use to process the supplied data
170 | #---------------------------------------------------------------------------
171 | $SITE['functions'] = 'wsFunctions.php'; // weather functions, override
172 | $SITE['langFunc'] = 'wsLangFunctions.php'; // general functions for languages
173 | $SITE['menuXml'] = 'wsMenuData.xml'; // menu processes 'incMenuDataWilsele.xml';
174 | $SITE['menuLoad'] = 'wsMenuLoad.php';
175 | $SITE['spidersTxt'] = 'spiders.txt';
176 | $SITE['uvScript'] = 'uvforecastv3.php'; // worldwide forecast script for UV Index
177 | $SITE['sideInc'] = 'wsSideColom.php';
178 | $SITE['bottomInc'] = 'wsBottom.php';
179 | $SITE['footer'] = 'wsFooter.php';
180 | #---------------------------------------------------------------------------
181 | # script names for conversion of weatherprogram data to website/ajax data
182 | #---------------------------------------------------------------------------
183 | $SITE['getData'] = 'wsDataGet.php'; // data from ws tags to intermidiate array
184 | $SITE['loadData'] = 'wsDataLoad.php'; // load data into variables (mostly ajax)
185 | #---------------------------------------------------------------------------
186 | # Website CSS files
187 | #---------------------------------------------------------------------------
188 | $SITE['CSSscreen'] = 'styleMain30.css'; // general stylesheet all pages
189 | $SITE['CSSprint'] = 'stylePrint20.css'; // general stylesheet all pages for printing
190 | $SITE['CSStable'] = 'styleTable20.css'; // general stylesheet all tables
191 | $SITE['CSSmenuHor'] = 'styleMenuDrop20.css'; // stylesheet horizontal drop down menus
192 | $SITE['CSSmenuVer'] = 'styleMenuVert20x.css'; // stylesheet vertical fly-out menus
193 | $SITE['CSSmood'] = 'styleMood20.css'; // stylesheet for adapting colors based on current weathercondition
194 |
195 | if ($SITE['noChoice'] = '10') {$SITE['noChoice'] = 'wsStartPage';}
196 | $SITE['noChoiceBackup'] = $SITE['noChoice'];
197 | $SITE['menuPlaceBackup']= $SITE['menuPlace'];
198 | $SITE['colorBackup'] = $SITE['colorNumber'];
199 | $SITE['headerBackup'] = $SITE['header'];
200 | $SITE['langBackup'] = $SITE['lang'];
201 |
202 | if (isset($_REQUEST['ipad']) ) { // modify standard settings if page formatting ipad is requested
203 | $SITE['ipad'] = true;
204 | $SITE['sideDisplay'] = false;
205 | $SITE['bottomDisplay'] = false;
206 | $SITE['stripAll'] = true;
207 | $SITE['stripMenu'] = true;
208 | $SITE['bannerTop'] = false;
209 | $SITE['bannerBottom'] = false;
210 | $SITE['warnings'] = false;
211 | $SITE['warningTxt'] = false;
212 | } else {$SITE['ipad'] = false;}
213 | #
214 | $SITE['supported_regions'] = array ('america','canada','europe','other');
215 | if (!in_array($SITE['region'], $SITE['supported_regions']) ) {$SITE['region'] = 'europe';}
216 | #
217 | $SITE['supportedUnits'] = array ();
218 | $SITE['supportedUnits'] ['temp'] = array('°C', '°F');
219 | $SITE['supportedUnits'] ['baro'] = array(' hPa', ' inHg',' mb' );
220 | $SITE['supportedUnits'] ['wind'] = array(' km/h', ' mph', ' kts', ' m/s', );
221 | $SITE['supportedUnits'] ['rain'] = array(' mm', ' in' );
222 | $SITE['supportedUnits'] ['snow'] = array(' cm', ' in' );
223 | #
224 | $region = $SITE['region'];
225 | #
226 | if (!in_array($SITE['uomTemp'], $SITE['supportedUnits'] ['temp']) ){
227 | if ($region == 'europe')
228 | {$SITE['uomTemp'] = $SITE['supportedUnits']['temp'][0];
229 | } else {$SITE['uomTemp'] = $SITE['supportedUnits']['temp'][1];}
230 | }
231 | if (!in_array($SITE['uomBaro'], $SITE['supportedUnits'] ['baro']) ){
232 | if ($region == 'europe')
233 | {$SITE['uomBaro'] = $SITE['supportedUnits']['baro'][0];
234 | } else {$SITE['uomBaro'] = $SITE['supportedUnits']['baro'][1];}
235 | }
236 | if (!in_array($SITE['uomWind'], $SITE['supportedUnits'] ['wind']) ){
237 | if ($region == 'europe')
238 | {$SITE['uomWind'] = $SITE['supportedUnits']['wind'][0];
239 | } else {$SITE['uomWind'] = $SITE['supportedUnits']['wind'][1];}
240 | }
241 | if (!in_array($SITE['uomRain'], $SITE['supportedUnits'] ['rain']) ){
242 | if ($region == 'europe')
243 | {$SITE['uomRain'] = $SITE['supportedUnits']['rain'][0];
244 | } else {$SITE['uomRain'] = $SITE['supportedUnits']['rain'][1];}
245 | }
246 | if (!in_array($SITE['uomSnow'], $SITE['supportedUnits'] ['snow']) ){
247 | if ($region == 'europe')
248 | {$SITE['uomSnow'] = $SITE['supportedUnits']['snow'][0];
249 | } else {$SITE['uomSnow'] = $SITE['supportedUnits']['snow'][1];}
250 | }
251 | #
252 | # ------------------------ check if we are allowed to set cookie and process all cookies
253 | #
254 | $uomBackup = array ();
255 | $uomBackup['uomTemp'] = $SITE['uomTemp'];
256 | $uomBackup['uomBaro'] = $SITE['uomBaro'];
257 | $uomBackup['uomWind'] = $SITE['uomWind'];
258 | $uomBackup['uomRain'] = $SITE['uomRain'];
259 | $uomBackup['uomSnow'] = $SITE['uomSnow'];
260 | $uomBackup['uomDistance']= $SITE['uomDistance'];
261 | $uomBackup['uomPerHour']= $SITE['uomPerHour'];
262 | $uomBackup['uomHeight'] = $SITE['uomHeight'];
263 |
264 | if (!isset ($SITE['fctOrg'] ) ) { $SITE['fctOrg'] = 'yahoo';}
265 | $SITE['fctOrgBackup'] = $SITE['fctOrg'];
266 |
267 | #
268 | if ($SITE['cookieSupport'] == true) {
269 | ws_message ( '<!-- module wsLoadSettings.php ('.__LINE__.'): loading wsCookie.php -->',false,$pathString);
270 | include 'wsCookie.php' ;
271 | }
272 | ## 2018-11-12 set all mods off when cookies not allowed
273 | else {$SITE["userChangeColors"] = $SITE["userChangeMenu"] = $SITE["userChangeHeader"] =
274 | $SITE["userChangeChoice"] = $SITE["userChangeLang"] =$SITE["userChangeUOM"] = $SITE["userChangeForecast"] = false;}
275 | ## 2018-11-12 set all mods off when cookies not allowed
276 |
277 | $uomTemp = $SITE['uomTemp'];
278 | $uomBaro = $SITE['uomBaro'];
279 | $uomRain = $SITE['uomRain'];
280 | $uomSnow = $SITE['uomSnow'];
281 | $uomDistance = $SITE['uomDistance'];
282 | $uomWind = $SITE['uomWind'];
283 | $uomPerHour = $SITE['uomPerHour'];
284 | $uomHeight = $SITE['uomHeight'];
285 |
286 | # set the Timezone abbreviation automatically based on $SITE['tz'];
287 | if (!function_exists('date_default_timezone_set')) {
288 | putenv("TZ=" . $SITE['tz']);
289 | } else {
290 | date_default_timezone_set($SITE['tz']);
291 | }
292 | $SITE['tzName'] = date("T",time());
293 | #
294 | #---------------------------------------------------------------------------
295 | # Automatic Info we might need
296 | #---------------------------------------------------------------------------
297 | if(isset($_SERVER['REMOTE_ADDR'])) {$SITE['REMOTE_ADDR'] = $_SERVER['REMOTE_ADDR'];}
298 | if(isset($_SERVER['REMOTE_HOST'])) {$SITE['REMOTE_HOST'] = $_SERVER['REMOTE_HOST'];}
299 | if(isset($_SERVER['DOCUMENT_ROOT'])) {$SITE['WEBROOT'] = $_SERVER['DOCUMENT_ROOT'];}
300 | if(isset($_SERVER['REQUEST_URI'])) {$SITE['REQURI'] = $_SERVER['REQUEST_URI'];}
301 | if(isset($_SERVER['SERVER_NAME'])) {$SITE['SERVERNAME'] = $_SERVER['SERVER_NAME'];}
302 | #---------------------------------------------------------------------------
303 | #
304 | if ($SITE['fctOrg'] == 'yahoo') {$SITE['yahooPage'] = true;}
305 | if ($SITE['fctOrg'] == 'metno') {$SITE['metnoPage'] = true;}
306 | if ($SITE['fctOrg'] == 'wxsim') {$SITE['wxsimPage'] = true;}
307 | if ($SITE['fctOrg'] == 'hwa') {$SITE['hwaPage'] = true;}
308 | if ($SITE['fctOrg'] == 'noaa') {$SITE['noaaPage'] = true;}
309 | if ($SITE['fctOrg'] == 'ec') {$SITE['ecPage'] = true;}
310 | #
311 | if ($SITE['region'] == 'america') {$SITE['hwaPage'] = $SITE['ecPage'] = false; }
312 | if ($SITE['region'] == 'canada') {$SITE['hwaPage'] = $SITE['noaaPage']= false; }
313 | if ($SITE['region'] == 'other') {$SITE['hwaPage'] = $SITE['noaaPage']= $SITE['ecPage'] = false; }
314 | if ($SITE['region'] == 'europe') {$SITE['noaaPage']= $SITE['ecPage'] = false; }
315 | if ($SITE['belgium'] == false && $SITE['netherlands'] == false) {$SITE['hwaPage'] = false;}
316 | #
317 | $string1 = '';
318 | if(isset($_SERVER['HTTP_HOST'])) {$string1 .= $_SERVER['HTTP_HOST'];}
319 | if(isset($_SERVER['PHP_SELF'])) {$string1 .= $_SERVER['PHP_SELF'];}
320 | $SITE['siteUrl']= 'http://'.str_replace ('index.php','',$string1);
321 | #
322 | if (isset ($index) && $index) {check_topfolder ($wsDebug);}
323 | #
324 | if (!isset ($SITE['uploadDir']) ) {$SITE['uploadDir'] = 'upload'.$SITE['WXsoftware'].'/';}
325 | if (!isset ($SITE['clientrawDir']) ) {$SITE['clientrawDir'] = 'upload'.$SITE['WXsoftware'].'/';}
326 | if (!isset ($SITE['graphImageDir']) ) {$SITE['graphImageDir'] = 'upload'.$SITE['WXsoftware'].'/';}
327 |
328 | $SITE['MeteoplugPage'] = $SITE['wdlPage'] = $SITE['cltrPage'] = 'no';
329 | $SITE['generatePage'] = 'no';
330 | if ($SITE['meteoplug']) {$SITE['MeteoplugPage'] = 'yes';}
331 | if ($SITE['wd_live']) {$SITE['wdlPage'] = $SITE['cltrPage'] = 'yes';}
332 | if ($SITE['meteoware']) {$SITE['mwPage'] = 'yes';}
333 | #
334 | if (!isset ($SITE['wuID']) || !$SITE['wuID'] || $SITE['wuID'] == '') { $SITE['wuHistPage'] = 'no'; } else {$SITE['wuHistPage'] = 'yes';}
335 | #
336 | $SITE['meteowareFile'] = './mwlive/mwliveRT.php?wp='.$SITE['WXsoftware'];
337 | $SITE['yrnoXmlName'] = 'yowindowRT.php?wp='.$SITE['WXsoftware'];
338 | $SITE['alltime_values'] = true; // weatherprogram supplies all-time values for temp and so on
339 | #---------------------------------------------------------------------------
340 | $save_to_cache = true;
341 |
342 | $SITE['wp_scripts'] = $SITE['uploadDir'];
343 |
344 | switch ($SITE['WXsoftware']) {
345 |
346 | case 'MH': # required settings for M E T E O H U B
347 | #
348 | $SITE['generatePage'] = 'yes';
349 | $SITE['trendPage'] = 'yes';
350 | $SITE['graphsPage'] = 'yes';
351 | #
352 | $SITE['WXsoftwareURL'] = 'http://wiki.meteohub.de/Main_Page';
353 | $SITE['WXsoftwareLongName']= 'Meteohub';
354 | $SITE['WXsoftwareIcon'] = 'img/meteohub.jpg';
355 |
356 | $SITE['realtime'] = 'cltrw';
357 | $SITE['realtime_file'] = $SITE['clientrawDir'].'clientraw.txt';
358 | $SITE['wp_scripts'] = 'scriptsMH/';
359 | $SITE['wsTags'] = $SITE['uploadDir'].'tagsMH.txt';
360 | $SITE['ydayTags'] = $SITE['uploadDir'].'tagsYdayMH.txt';
361 |
362 | $SITE['process'] = $SITE['wp_scripts'].'tagsMH.php';
363 | $SITE['wsTagsSrc'] = $SITE['wp_scripts'].'tags.mh.html';
364 | $SITE['wsYTagsSrc'] = $SITE['wp_scripts'].'tagsyday.mh.html';
365 | break;
366 | #---------------------------------------------------------------------------
367 | case 'MB': # required settings for M E T E O B R I D G E
368 | #
369 | $SITE['mbPage'] = 'yes';
370 | $SITE['trendPage'] = 'yes';
371 | $SITE['graphsPage'] = 'yes';
372 | $SITE['cltrPage'] = $SITE['wdlPage'] = 'no';
373 | $SITE['wd_live'] = false;
374 | #
375 | $SITE['WXsoftwareURL'] = 'http://www.meteobridge.com/wiki/index.php/Main_Page';
376 | $SITE['WXsoftwareLongName']= 'Meteobridge';
377 | $SITE['WXsoftwareIcon'] = 'img/meteobridge.jpg';
378 |
379 | $SITE['realtime'] = 'http';
380 | $SITE['realtime_file'] = $SITE['clientrawDir'].'realtime.txt';
381 | $SITE['wp_scripts'] = 'scriptsMB/';
382 | $SITE['wsTags'] = $SITE['uploadDir'].'tagsMB.txt';
383 | $SITE['process'] = $SITE['wp_scripts'].'tagsMB.php';
384 | $SITE['wsTagsSrc'] = $SITE['wp_scripts'].'tags.mb.txt';
385 | break;
386 |
387 | #---------------------------------------------------------------------------
388 | case 'MP': # required settings for Meteoplug
389 | #
390 | # $SITE['DavisVP'] = false; // false as Meteoplug does not support Davis forecast text in xml
391 | #
392 | $SITE['generatePage'] = 'yes';
393 | $SITE['MeteoplugPage'] = $SITE['meteoplug'] = true;
394 | $SITE['wdlPage'] = $SITE['cltrPage'] = 'no';
395 | $SITE['wd_live'] = false;
396 | $SITE['alltime_values'] = true;
397 | #
398 | $SITE['WXsoftwareURL'] = 'http://wiki.meteoplug.com/Main_Page';
399 | $SITE['WXsoftwareLongName'] = 'Meteoplug';
400 | $SITE['WXsoftwareIcon'] = 'img/meteoplug.jpg';
401 | #
402 | $SITE['realtime'] = 'none';
403 | $SITE['wp_scripts'] = 'scriptsMP/';
404 | $SITE['wsTags'] = $SITE['uploadDir'].'tagsMP.txt';
405 | $SITE['moonSet'] = 'inc/astronomy.php'; // to calculate moon set & rise values
406 | $SITE['cacheMP'] = 300; // cache time max allowed in seconds
407 | $SITE['process'] = $SITE['wp_scripts'].'tagsMP.php';
408 | $SITE['wsTagsSrc'] = $SITE['wp_scripts'].'tags.mp.txt';
409 | $save_to_cache = false;
410 | $SITE['meteoplugID'] = '';
411 |
412 | # echo 'halt'; exit;
413 | break;
414 |
415 | #---------------------------------------------------------------------------
416 | case 'WD': # required settings for W E A T H E R D I S P L A Y
417 | #
418 | $SITE['wdPage'] = 'yes';
419 | $SITE['trendPage'] = 'yes';
420 | $SITE['graphsPage'] = 'yes';
421 | $SITE['MeteoplugPage'] = 'no';
422 | #
423 | $SITE['WXsoftwareURL'] = 'http://www.weather-display.com/';
424 | $SITE['WXsoftwareLongName'] = 'Weather Display';
425 | $SITE['WXsoftwareIcon'] = 'img/wd.jpg';
426 | #
427 | $SITE['realtime'] = 'cltrw';
428 | $SITE['realtime_file'] = $SITE['clientrawDir'].'clientraw.txt';
429 | $SITE['wp_scripts'] = 'scriptsWD/';
430 | if (isset ($SITE['use_testtags']) && $SITE['use_testtags']) {
431 | $SITE['wsTags'] = $SITE['uploadDir'].'testtags.php';
432 | $SITE['process'] = 'ws_testtags.php';
433 | $SITE['wsTagsSrc'] = $SITE['wp_scripts'].'testtags.txt';
434 | } else {
435 | $SITE['wsTags'] = $SITE['uploadDir'].'tagsWD.txt';
436 | $SITE['process'] = $SITE['wp_scripts'].'tagsWD.php';
437 | $SITE['wsTagsSrc'] = $SITE['wp_scripts'].'tags.wd.txt';
438 | }
439 | break;
440 | #---------------------------------------------------------------------------
441 | case 'CW': # required settings for C O N S O L E WD (= on raspberryPI)
442 | #
443 | $SITE['cwPage'] = 'yes';
444 | $SITE['trendPage'] = 'yes';
445 | # $SITE['wxsimPage'] = 'no';
446 | $SITE['alltime_values'] = false;
447 | $SITE['MeteoplugPage'] = 'no';
448 | #
449 | $SITE['WXsoftwareURL'] = 'http://www.weather-display.com/';
450 | $SITE['WXsoftwareLongName'] = 'consoleWD';
451 | $SITE['WXsoftwareIcon'] = 'img/consolewd.png';
452 | #
453 | $SITE['realtime'] = 'cltrw';
454 | $SITE['realtime_file'] = $SITE['clientrawDir'].'clientraw.txt';
455 | $SITE['wp_scripts'] = 'scriptsCW/';
456 | if (isset ($SITE['use_testtags']) && $SITE['use_testtags']) {
457 | $SITE['wsTags'] = $SITE['uploadDir'].'testtags.php';
458 | $SITE['process'] = 'ws_testtags.php';
459 | $SITE['wsTagsSrc'] = $SITE['wp_scripts'].'wxlocal-testtags.html';
460 | } else {
461 | $SITE['wsTags'] = $SITE['uploadDir'].'tagsCW.txt';
462 | $SITE['process'] = $SITE['wp_scripts'].'tagsCW.php';
463 | $SITE['wsTagsSrc'] = $SITE['wp_scripts'].'wxlocal.html';
464 | }
465 | break;
466 | #---------------------------------------------------------------------------
467 | case 'CU': # required settings for C U M U L U S
468 | #
469 | $SITE['cuPage'] = 'yes';
470 | $SITE['trendPage'] = 'yes';
471 | $SITE['graphsPage'] = 'yes';
472 | $SITE['MeteoplugPage'] = $SITE['wdlPage'] = $SITE['cltrPage'] = 'no';
473 | $SITE['wd_live'] = $SITE['meteoplug']= false;
474 | #
475 | $SITE['WXsoftwareURL'] = 'http://sandaysoft.com/products/cumulus';
476 | $SITE['WXsoftwareLongName'] = 'Cumulus';
477 | $SITE['WXsoftwareIcon'] = 'img/cumulus.gif';
478 | #
479 | $SITE['realtime'] = 'json';
480 | $SITE['realtime_file'] = $SITE['clientrawDir'].'realtimeTags.txt';
481 |
482 | $SITE['wsTags'] = $SITE['uploadDir'].'tagsCU.txt';
483 | $SITE['wp_scripts'] = 'scriptsCU/';
484 | $SITE['process'] = $SITE['wp_scripts'].'tagsCU.php';
485 | $SITE['wsTagsSrc'] = $SITE['wp_scripts'].'tags.cu.txt';
486 | break;
487 | #---------------------------------------------------------------------------
488 | case 'WL': # required settings for W E A T H E R L I N K
489 | #
490 | $SITE['wlPage'] = 'yes';
491 | $SITE['graphsPage'] = 'yes';
492 | $SITE['alltime_values'] = false;
493 | $SITE['MeteoplugPage'] = $SITE['wdlPage'] = $SITE['cltrPage'] = 'no';
494 | $SITE['wd_live'] = $SITE['meteoplug']= false;
495 | #
496 | $SITE['WXsoftwareURL'] = 'http://www.davisnet.com/index.asp';
497 | $SITE['WXsoftwareLongName'] = 'WeatherLink';
498 | $SITE['WXsoftwareIcon'] = 'img/weatherlink.png';
499 | #
500 | $SITE['realtime'] = 'weatherlink';
501 | $SITE['realtime_file'] = $SITE['clientrawDir'].'realtimev3.txt';
502 | $SITE['wp_scripts'] = 'scriptsWL/';
503 | $SITE['wsTags'] = $SITE['uploadDir'].'tags.wl.txt';
504 | $SITE['ydayTags'] = $SITE['uploadDir'].'tagsyday.wl.txt';
505 | $SITE['moonSet'] = 'inc/astronomy.php'; // to calculate moon set & rise values
506 |
507 | $SITE['process'] = $SITE['wp_scripts'].'tagsWL.php';
508 | $SITE['wsTagsSrc'] = $SITE['wp_scripts'].'tags.wl.htx';
509 | $SITE['wsYTagsSrc'] = $SITE['wp_scripts'].'tagsyday.wl.htx';
510 |
511 | if (!ws_date_format()) {ws_print_warning( 'WARNING - Please set the date format correct in your settings');}
512 | #echo $SITE['tags_ymd_sep']; exit;
513 | break;
514 | #---------------------------------------------------------------------------
515 | case 'WC': # required settings for W E A T H E R C A T (for Mac)
516 | #
517 | $SITE['wcPage'] = 'yes';
518 | $SITE['graphsPage'] = 'yes';
519 | $SITE['MeteoplugPage'] = $SITE['wdlPage'] = $SITE['cltrPage'] = 'no';
520 | $SITE['wd_live'] = $SITE['meteoplug']= false;
521 | #
522 | $SITE['WXsoftwareURL'] = 'http://trixology.com/weathercat/';
523 | $SITE['WXsoftwareLongName'] = 'WeatherCat';
524 | $SITE['WXsoftwareIcon'] = 'img/weathercat.png';
525 | #
526 | $SITE['realtime'] = 'json';
527 | $SITE['realtime_file'] = $SITE['clientrawDir'].'realtime.wc.txt';
528 | $SITE['wp_scripts'] = 'scriptsWC/';
529 | $SITE['wsTags'] = $SITE['uploadDir'].'tags.wc.txt';
530 | $SITE['moonSet'] = 'inc/astronomy.php'; // to calculate moon set & rise values
531 | $SITE['process'] = $SITE['wp_scripts'].'tagsWC.php';
532 | $SITE['wsTagsSrc'] = $SITE['wp_scripts'].'tags.wc.txt';
533 | break;
534 | #---------------------------------------------------------------------------
535 | case 'DW': # required settings for WeatherLink.com
536 | #---------------------------------------------------------------------------
537 | #
538 | $SITE['DavisVP'] = false; // false as wl.com does not support Davis forecast text in xml
539 | #
540 | $SITE['MeteoplugPage'] = $SITE['wdlPage'] = $SITE['cltrPage'] = 'no';
541 | $SITE['wd_live'] = $SITE['meteoplug']= false;
542 | $SITE['alltime_values'] = false;
543 | #
544 | $SITE['WXsoftwareURL'] = 'http://www.weatherlink.com/user/'.$SITE['wlink_key'].'/index.php';
545 | $SITE['WXsoftwareLongName'] = 'Davis Weatherlink.Com';
546 | $SITE['WXsoftwareIcon'] = 'img/wl_top.png';
547 | #
548 | $SITE['realtime'] = 'none';
549 | $SITE['wp_scripts'] = 'scriptsDW/';
550 | $SITE['wsTags'] = $SITE['wp_scripts'].'tagsWLCOM.php';
551 | $SITE['ydayTags'] = $SITE['uploadDir'].'tagsydayWLCOM.txt';
552 | $SITE['moonSet'] = 'inc/astronomy.php'; // to calculate moon set & rise values
553 | $SITE['cacheDW'] = 140; // cache time max allowed in seconds
554 | $SITE['process'] = $SITE['wp_scripts'].'tagsWLCOM.php';
555 | $SITE['wsTagsSrc'] = '';
556 | $SITE['wsYTagsSrc'] = $SITE['wp_scripts'].'tagsyday.cron.txt';
557 | $save_to_cache = false;
558 | $SITE['weatherlinkID'] = $SITE['wlink_key'];
559 | break;
560 | #---------------------------------------------------------------------------
561 | case 'WS': # required settings for WSWIN /
562 | #
563 | $SITE['trendPage'] = 'yes'; // trendpage
564 | $SITE['MeteoplugPage'] = $SITE['cltrPage'] = 'no';
565 | $SITE['wd_live'] = $SITE['meteoplug']= false;
566 | $SITE['alltime_values'] = false;
567 | $SITE['WXsoftwareURL'] = 'http://www.pc-wetterstation.de/en1index.html';
568 | $SITE['WXsoftwareLongName'] = 'WSWIN';
569 | $SITE['WXsoftwareIcon'] = 'img/wswin.gif';
570 |
571 | $SITE['realtime'] = 'cltrw';
572 | $SITE['realtime_file'] = $SITE['clientrawDir'].'clientraw.txt';
573 |
574 | $SITE['wp_scripts'] = 'scriptsWS/';
575 | $SITE['wsTags'] = $SITE['uploadDir'].'tagsws.txt';
576 | $SITE['ydayTags'] = $SITE['uploadDir'].'tagsydayWS.txt';
577 |
578 | $SITE['process'] = $SITE['wp_scripts'].'tagsWS.php';
579 | $SITE['wsTagsSrc'] = $SITE['wp_scripts'].'tags.ws.txt';
580 | $SITE['wsYTagsSrc'] = $SITE['wp_scripts'].'tagsyday.cron.txt';
581 |
582 | break;
583 | #---------------------------------------------------------------------------
584 | case 'WV': # required settings for WVIEW /
585 | #
586 | $SITE['WXsoftwareURL'] = 'http://www.wviewweather.com/';
587 | $SITE['WXsoftwareLongName'] = 'WVIEW';
588 | $SITE['WXsoftwareIcon'] = 'img/wview.png';
589 | $SITE['alltime_values'] = false;
590 | $SITE['MeteoplugPage'] = $SITE['wdlPage'] = $SITE['cltrPage'] = 'no';
591 | $SITE['wd_live'] = $SITE['meteoplug']= false;
592 | $SITE['realtime'] = 'none';
593 | $SITE['wsTags'] = $SITE['uploadDir'].'tagsWV.htm';
594 |
595 | # $SITE['wview_day_txt'] = $SITE['uploadDir'].'tags.htm';
596 | # $SITE['wsCronTags'] = $SITE['uploadDir'].'yesterdayTagsWVIEW.php';
597 | $SITE['ydayTags'] = $SITE['uploadDir'].'tagsydayWV.txt';
598 | $SITE['moonSet'] = 'inc/astronomy.php'; // to calculate moon set & rise values
599 | $SITE['wp_scripts'] = 'scriptsWV/';
600 | $SITE['process'] = $SITE['wp_scripts'].'tagsWV.php';
601 | $SITE['wsTagsSrc'] = $SITE['wp_scripts'].'tagsWV.htx';
602 | $SITE['wsYTagsSrc'] = $SITE['wp_scripts'].'tagsyday.cron.txt';
603 | #
604 | if (!ws_date_format()) {ws_print_warning( 'WARNING - Please set the date format correct in your settings');}
605 | $SITE['soilUsed'] = false;
606 |
607 | break;
608 | #---------------------------------------------------------------------------
609 | case 'VW': # required settings for VWS /
610 | #
611 | $SITE['alltime_values'] = false;
612 | $SITE['MeteoplugPage'] = $SITE['wdlPage'] = $SITE['cltrPage'] = 'no';
613 | $SITE['wd_live'] = $SITE['meteoplug']= false;
614 | $SITE['WXsoftwareURL'] = 'http://www.ambientweather.com/virtualstation.html';
615 | $SITE['WXsoftwareLongName'] = 'VWS';
616 | $SITE['WXsoftwareIcon'] = 'img/vws.gif';
617 |
618 | if (!ws_date_format()) {ws_print_warning( 'WARNING - Please set the date format correct in your settings');}
619 | #
620 | $SITE['wsTags'] = $SITE['uploadDir'].'tagsVW.txt'; // ##### location and name of the uploaded tags file
621 | $SITE['vws_day_txt'] = $SITE['wsTags'];
622 |
623 | $SITE['wp_scripts'] = 'scriptsVW/';
624 | $SITE['process'] = $SITE['wp_scripts'].'tagsVWS.php';
625 | $SITE['wsTagsSrc'] = $SITE['wp_scripts'].'tags.vws.htx';
626 |
627 | # ---- VWS realtime ---------------------------------------------------------
628 | $SITE['realtime'] = 'wflash'; // type of realtime file supported
629 | $SITE['wflash_folder'] = $SITE['clientrawDir']; // location of wflash files => if we started to use wflash
630 | $SITE['realtime_file'] = $SITE['wflash_folder'].'wflash.txt'; // default names of realtime files
631 | $SITE['realtime_file2'] = $SITE['wflash_folder'].'wflash2.txt';
632 | #
633 | $SITE['soilUsed'] = false;
634 | $SITE['clientrawDir'] = false;
635 | $SITE['MeteoplugPage'] = $SITE['wdlPage'] = $SITE['cltrPage'] = 'no';
636 | $SITE['trendPage'] = 'no';
637 | $SITE['wd_live'] = $SITE['meteoplug']= false;
638 |
639 | break;
640 | #---------------------------------------------------------------------------
641 | default:
642 | echo '<H3>Other software not supported (yet)</h3>'.PHP_EOL; exit;
643 | }
644 | #---------------------------------------------------------------------------
645 | $SITE['wsRealTime'] = 1*60+30; // number of seconds before realtime (or clntraw) data is considered obsolete
646 | $SITE['wsNormTime'] = 5*60+30; // number of seconds before (tags) data is considered obsolete
647 | $SITE['wsFtpTime'] = 60*60+30; // number of seconds before all data (graphs) is considered obsolete
648 | $SITE['wsDataTime'] = 5*60+30; // number of seconds before all data (actual internal time) is considered obsolete
649 | #---------------------------------------------------------------------------
650 | $SITE['steelTime'] = $SITE['wsSteelTime']; // 2015-10-01 older gauge scripts
651 | $SITE['langDir'] = 'lang/'; // all language translation files are store here
652 |
653 | return;
654 | # --------------- functions for checking settings --------------------------------------
655 | function ws_print_warning ($message) {
656 | global $SITE;
657 | if ($SITE['wsDebug']) {
658 | if (!isset ($SITE['message']) ) {$SITE['message']='';}
659 | $SITE['message'] .= $message.'<br />'.PHP_EOL;
660 | }
661 | }
662 | function ws_check_setting (&$setting) {
663 | global $SITE;
664 | if (!isset ($setting) ) {return false;}
665 | elseif ($setting == false) {return false;}
666 | elseif ($setting === true) {return true;}
667 | elseif ($setting == 'yes') {return true;}
668 | elseif ($setting == '1') {return true;}
669 | else return false;
670 | }
671 | function check_topfolder ($check=true) {
672 | global $SITE;
673 | if ($check <> true) {return true;}
674 |
675 | $docRoot = $_SERVER['DOCUMENT_ROOT'].'/';
676 | # $docRoot = str_replace ('//','/',$docRoot);
677 | $string = $_SERVER['SCRIPT_FILENAME'];
678 | $folders = str_replace($docRoot , '', $string);
679 | $folders = str_replace('\\' , '/', $folders);
680 | $arr = explode ('/', $folders);
681 | $count = count($arr);
682 | $n = $count - 1;
683 | switch ($count) {
684 | case 2:
685 | $FIND['topfolder'] = $arr['0'].'/';
686 | break;
687 | case 1:
688 | $FIND['topfolder'] = './';
689 | break;
690 | default:
691 | $end = $count - 2;
692 | $FIND['topfolder'] = '';
693 | for ($i = 0; $i <= ($end); $i++) { // assemble the topfolder
694 | $FIND['topfolder'] .= $arr[$i].'/';
695 | }
696 | $end++;
697 | }
698 | if ($SITE["topfolder"] <> $FIND['topfolder']) {
699 | ws_print_warning ('WARNING - Change wsUserSettings.php: $SITE["topfolder"] from : '.$SITE["topfolder"].' to: '.$FIND['topfolder']);
700 | }
701 | }
702 | function ws_date_format() {
703 | global $SITE, $my_date_format, $my_char_sep, $my_month, $my_year, $my_day;
704 | $my_date_format = $SITE['my_date_format'];
705 | $my_char_sep = $SITE["my_char_sep"];
706 | $my_day = $SITE["my_day"];
707 | $my_month = $SITE["my_month"];
708 | $my_year = $SITE["my_year"];
709 | if ($my_date_format == 'dd-mm-yyyy') {$SITE['tags_ymd'] = array (3,2,1); $SITE['tags_ymd_sep'] = '-'; return true;}
710 | elseif ($my_date_format == 'dd-mm-yy') {$SITE['tags_ymd'] = array (3,2,1); $SITE['tags_ymd_sep'] = '-'; return true;}
711 | elseif ($my_date_format == 'dd/mm/yyyy') {$SITE['tags_ymd'] = array (3,2,1); $SITE['tags_ymd_sep'] = '/'; return true;}
712 | elseif ($my_date_format == 'dd/mm/yy') {$SITE['tags_ymd'] = array (3,2,1); $SITE['tags_ymd_sep'] = '/'; return true;}
713 |
714 | elseif ($my_date_format == 'mm-dd-yyyy') {$SITE['tags_ymd'] = array (3,1,2); $SITE['tags_ymd_sep'] = '-'; return true;}
715 | elseif ($my_date_format == 'mm-dd-yy') {$SITE['tags_ymd'] = array (3,1,2); $SITE['tags_ymd_sep'] = '-'; return true;}
716 | elseif ($my_date_format == 'mm/dd/yyyy') {$SITE['tags_ymd'] = array (3,1,2); $SITE['tags_ymd_sep'] = '/'; return true;}
717 | elseif ($my_date_format == 'mm/dd/yy') {$SITE['tags_ymd'] = array (3,1,2); $SITE['tags_ymd_sep'] = '/'; return true;}
718 | # no valid setting found so far
719 | if (!isset ($my_char_sep) ) {$SITE['tags_ymd'] = array (3,2,1); $SITE['tags_ymd_sep'] = '/'; return false;}
720 |
721 | $SITE['tags_ymd_sep'] = trim($my_char_sep);
722 | if (strlen ($SITE['tags_ymd_sep']) <> 1) {$SITE['tags_ymd'] = array (3,2,1); $SITE['tags_ymd_sep'] = '/'; return false;}
723 | # the separator is Ok, lets check the yy mm dd
724 | if (!isset ($my_month) || !isset ($my_year) || !isset ($my_day) )
725 | {$SITE['tags_ymd'] = array (3,2,1); $SITE['tags_ymd_sep'] = '/'; return false;}
726 | if (!is_numeric($my_month) || !is_numeric($my_year) || !is_numeric($my_day) )
727 | {$SITE['tags_ymd'] = array (3,2,1); $SITE['tags_ymd_sep'] = '/'; return false;}
728 | $my_month = (int) $my_month;
729 | $my_year = (int) $my_year;
730 | $my_day = (int) $my_day;
731 | $total = $my_month + $my_year + $my_day;
732 | if ($total <> 6) {$SITE['tags_ymd'] = array (3,2,1); $SITE['tags_ymd_sep'] = '/'; return false;}
733 | $error = false;
734 | if ($my_month > 3 || $my_month < 1) {$error = true;}
735 | if ($my_year > 3 || $my_year < 1) {$error = true;}
736 | if ($my_day > 3 || $my_day < 1) {$error = true;}
737 | if ($error) {$SITE['tags_ymd'] = array (3,2,1); $SITE['tags_ymd_sep'] = '/'; return false;}
738 | $SITE['tags_ymd'] = array ($my_year,$my_month,$my_day);
739 | return true;
740 | }
741 | # ---------------------- version history
742 | # 3.20 2015-10-12 release 2.8b version