Project

General

Profile

« Previous | Next » 

Revision 1684

Added by Dietmar about 12 years ago

! update upgrade-script, now don't overwrite existings values in settings
+ add field tooltip to table pages in installer
! change some module tool_icon.png (Tks to Stefek)
! add date_time string to backup_droplets.zip
- search and comment out founded require_once(WB_PATH."/framework/class.database.php");
- this will be never needed anymore and produce errors
! rename class.msg_queue.php in msgQueue.php to work with autokoader
+ add function format_message to class.wb.php

View differences:

branches/2.8.x/CHANGELOG
11 11
! = Update/Change
12 12
===============================================================================
13 13

  
14
03 May-2012 Build 1682 Werner v.d.Decken(DarkViper)
14
03 May-2012 Build 1684 Dietmar Woellbrink (Luisehahne)
15
! update upgrade-script, now don't overwrite existings values in settings
16
+ add field tooltip to table pages in installer
17
! change some module tool_icon.png (Tks to Stefek) 
18
! add date_time string to backup_droplets.zip
19
- search and comment out founded require_once(WB_PATH."/framework/class.database.php"); 
20
- this will be never needed anymore and produce errors
21
! rename class.msg_queue.php in msgQueue.php to work with autokoader
22
+ add function format_message to class.wb.php 
23
03 May-2012 Build 1683 Werner v.d.Decken(DarkViper)
15 24
! changed class Database into a Singleton-Class
16 25
# added forgotten 'static' keyword in ModLanguage
17 26
# removed version control from sm2 - include.php
branches/2.8.x/wb/upgrade-script.php
4 4
 * @category        backend
5 5
 * @package         installation
6 6
 * @author          WebsiteBaker Project
7
 * @copyright       2009-2011, Website Baker Org. e.V.
8
 * @link			http://www.websitebaker2.org/
7
 * @copyright       2009-2012, Website Baker Org. e.V.
8
 * @link            http://www.websitebaker2.org/
9 9
 * @license         http://www.gnu.org/licenses/gpl.html
10 10
 * @platform        WebsiteBaker 2.8.x
11 11
 * @requirements    PHP 5.2.2 and higher
......
19 19

  
20 20
require_once(WB_PATH.'/framework/functions.php');
21 21
require_once(WB_PATH.'/framework/class.admin.php');
22
require_once(WB_PATH.'/framework/class.database.php');
22
// require_once(WB_PATH.'/framework/Database.php');
23 23
$admin = new admin('Addons', 'modules', false, false);
24 24

  
25 25
$oldVersion  = 'Version '.WB_VERSION;
......
62 62
			'[ADMIN]/preferences/details.php',
63 63
			'[ADMIN]/preferences/email.php',
64 64
			'[ADMIN]/preferences/password.php',
65
			'[ADMIN]/pages/settings2.php'
65
			'[ADMIN]/pages/settings2.php',
66 66

  
67
			'[FRAMEWORK]/class.msg_queue.php',
68
			'[FRAMEWORK]/class.database.php',
69

  
67 70
		 );
68 71

  
69
if(version_compare(WB_REVISION, '1671', '<'))
72
if(version_compare(WB_REVISION, '1681', '<'))
70 73
{
71 74
	$filesRemove['1'] = array(
72 75

  
......
218 221
<title>Upgrade script</title>
219 222
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
220 223
<style type="text/css">
221
html { overflow: -moz-scrollbars-vertical; /* Force firefox to always show room for a vertical scrollbar */ }
224
html { overflow-y: scroll; /* Force firefox to always show room for a vertical scrollbar */ }
222 225

  
223 226
body {
224 227
	margin:0;
......
385 388
 */
386 389
echo "<br />Adding sec_anchor to settings table";
387 390
$cfg = array(
388
	'sec_anchor' => 'wb_'
391
	'sec_anchor' => defined('SEC_ANCHOR') ? SEC_ANCHOR : 'wb_'
389 392
);
390 393

  
391 394
echo (db_update_key_value( 'settings', $cfg ) ? " $OK<br />" : " $FAIL!<br />");
......
396 399
 */
397 400
echo "Adding redirect timer to settings table";
398 401
$cfg = array(
399
	'redirect_timer' => '1500'
402
	'redirect_timer' => defined('Redirect_Timer') ? Redirect_Timer : '1500'
400 403
);
401 404
echo (db_update_key_value( 'settings', $cfg ) ? " $OK<br />" : " $FAIL!<br />");
402 405

  
......
405 408
 */
406 409
echo "Updating rename_files_on_upload to settings table";
407 410
$cfg = array(
408
	'rename_files_on_upload' => 'ph.*?,cgi,pl,pm,exe,com,bat,pif,cmd,src,asp,aspx,js'
411
	'rename_files_on_upload' => (defined('RENAME_FILES_ON_UPLOAD') ? RENAME_FILES_ON_UPLOAD : 'ph.*?,cgi,pl,pm,exe,com,bat,pif,cmd,src,asp,aspx,js')
409 412
);
410 413
echo (db_update_key_value( 'settings', $cfg ) ? " $OK<br />" : " $FAIL!<br />");
411 414

  
......
414 417
 */
415 418
echo "Adding mediasettings to settings table";
416 419
$cfg = array(
417
	'mediasettings' => '',
420
	'mediasettings' => (defined('MEDIASETTINGS') ? MEDIASETTINGS : ''),
418 421
);
419 422

  
420 423
echo (db_update_key_value( 'settings', $cfg ) ? " $OK<br />" : " $FAIL!<br />");
......
424 427
 */
425 428
echo "Adding fingerprint_with_ip_octets to settings table";
426 429
$cfg = array(
427
	'fingerprint_with_ip_octets' => '2',
428
	'secure_form_module' => ''
430
	'fingerprint_with_ip_octets' => (defined('FINGERPRINT_WITH_IP_OCTETS') ? FINGERPRINT_WITH_IP_OCTETS : '2'),
431
	'secure_form_module' => (defined('SECURE_FORM_MODULE') ? SECURE_FORM_MODULE : '')
429 432
);
430 433

  
431 434
echo (db_update_key_value( 'settings', $cfg ) ? " $OK<br />" : " $FAIL!<br />");
......
435 438
 */
436 439
echo "Adding page_icon_dir to settings table";
437 440
$cfg = array(
438
	'page_icon_dir' => '/templates/*/title_images',
441
	'page_icon_dir' => (defined('PAGE_ICON_DIR') ? PAGE_ICON_DIR : '/templates/*/title_images'),
439 442
);
440 443

  
441 444
echo (db_update_key_value( 'settings', $cfg ) ? " $OK<br />" : " $FAIL!<br />");
......
445 448
 */
446 449
echo "Adding dev_infos to settings table";
447 450
$cfg = array(
448
	'dev_infos' => 'true',
451
	'dev_infos' => (defined('DEV_INFOS') ? DEV_INFOS : 'false')
449 452
);
450 453

  
451 454
echo (db_update_key_value( 'settings', $cfg ) ? " $OK<br />" : " $FAIL!<br />");
452 455

  
453
if(version_compare(WB_REVISION, '1675', '<'))
456
if(version_compare(WB_REVISION, '1680', '<'))
454 457
{
455 458
	echo '<h3>Step '.(++$stepID).': Updating core tables</h3>';
456 459

  
......
495 498
 */
496 499
	$table_name = TABLE_PREFIX.'pages';
497 500
	$field_name = 'page_icon';
498
	$description = "VARCHAR( 255 ) NOT NULL DEFAULT '' AFTER `page_title`";
501
	$description = "VARCHAR( 512 ) NOT NULL DEFAULT '' AFTER `page_title`";
499 502
	if(!$database->field_exists($table_name,$field_name)) {
500 503
		echo "Adding field page_icon to pages table";
501 504
		echo ($database->field_add($table_name, $field_name, $description) ? " $OK<br />" : " $FAIL!<br />");
......
523 526
 */
524 527
	$table_name = TABLE_PREFIX.'pages';
525 528
	$field_name = 'menu_icon_0';
526
	$description = "VARCHAR( 255 ) NOT NULL DEFAULT '' AFTER `menu_title`";
529
	$description = "VARCHAR( 512 ) NOT NULL DEFAULT '' AFTER `menu_title`";
527 530
	if(!$database->field_exists($table_name,$field_name)) {
528 531
		echo "Adding field menu_icon_0 to pages table";
529 532
		echo ($database->field_add($table_name, $field_name, $description) ? " $OK<br />" : " $FAIL!<br />");
......
537 540
 */
538 541
	$table_name = TABLE_PREFIX.'pages';
539 542
	$field_name = 'menu_icon_1';
540
	$description = "VARCHAR( 255 ) NOT NULL DEFAULT '' AFTER `menu_icon_0`";
543
	$description = "VARCHAR( 512 ) NOT NULL DEFAULT '' AFTER `menu_icon_0`";
541 544
	if(!$database->field_exists($table_name,$field_name)) {
542 545
		echo "Adding field menu_icon_1 to pages table";
543 546
		echo ($database->field_add($table_name, $field_name, $description) ? " $OK<br />" : " $FAIL!<br />");
......
547 550
	}
548 551

  
549 552
	/**********************************************************
553
	 *  - Add field "tooltip" to table "pages"
554
 */
555
	$table_name = TABLE_PREFIX.'pages';
556
	$field_name = 'tooltip';
557
	$description = "VARCHAR( 512 ) NOT NULL DEFAULT '' AFTER `menu_icon_1`";
558
	if(!$database->field_exists($table_name,$field_name)) {
559
		echo "Adding field tooltip to pages table";
560
		echo ($database->field_add($table_name, $field_name, $description) ? " $OK<br />" : " $FAIL!<br />");
561
	} else {
562
		echo "Modify field tooltip to pages table";
563
		echo ($database->field_modify($table_name, $field_name, $description) ? " $OK<br />" : " $FAIL!<br />");
564
	}
565

  
566
	/**********************************************************
550 567
	 *  - Add field "admin_groups" to table "pages"
551 568
 */
552 569
	$table_name = TABLE_PREFIX.'pages';
branches/2.8.x/wb/admin/interface/version.php
51 51

  
52 52
// check if defined to avoid errors during installation (redirect to admin panel fails if PHP error/warnings are enabled)
53 53
if(!defined('VERSION')) define('VERSION', '2.8.3');
54
if(!defined('REVISION')) define('REVISION', '1683');
54
if(!defined('REVISION')) define('REVISION', '1684');
55 55
if(!defined('SP')) define('SP', '');
branches/2.8.x/wb/framework/class.msg_queue.php
1
<?php
2
/**
3
 * Description of class
4
 *
5
 * @author wkl
6
 */
7
class msgQueue {
8

  
9
	const RETVAL_ARRAY  = 0;
10
	const RETVAL_STRING = 1; // (default)
11

  
12
	private static $_instance;
13

  
14
	private $_error = array();
15
	private $_success = array();
16

  
17
	protected function __construct() {
18
		$this->_error = array();
19
		$this->_success = array();
20
	}
21
	private function __clone() { throw new Exception('cloning Class '.__CLASS__.' is illegal'); }
22

  
23
    public static function handle()
24
    {
25
        if (!isset(self::$_instance)) {
26
            $c = __CLASS__;
27
            self::$_instance = new $c;
28
        }
29
        return self::$_instance;
30
	}
31

  
32
	public static function add($message = '', $type = false)
33
	{
34
		if($type)
35
		{
36
			self::handle()->_success[] = $message;
37
		}else
38
		{
39
			self::handle()->_error[] = $message;
40
		}
41
	}
42

  
43
	public static function clear()
44
	{
45
		self::handle()->_error = array();
46
		self::handle()->_success = array();
47
	}
48

  
49
	public static function isEmpty()
50
	{
51
		return (sizeof(self::handle()->_success) == 0 && sizeof(self::handle()->_error) == 0 );
52
	}
53
	
54
	public static function getError($retval_type = self::RETVAL_STRING)
55
	{
56
		if(sizeof(self::handle()->_error))
57
		{
58
			if($retval_type == self::RETVAL_STRING)
59
			{
60
				return implode('<br />', self::handle()->_error);
61
			}else
62
			{
63
				return self::handle()->_error;
64
			}
65
		}
66
	}
67

  
68
	public static function getSuccess($retval_type = self::RETVAL_STRING)
69
	{
70
		if(sizeof(self::handle()->_success))
71
		{
72
			if($retval_type == self::RETVAL_STRING)
73
			{
74
				return implode('<br />', self::handle()->_success);
75
			}else
76
			{
77
				return self::handle()->_success;
78
			}
79
		}
80
	}
81

  
82

  
83
}
84
?>
85 0

  
branches/2.8.x/wb/framework/msgQueue.php
1
<?php
2
/**
3
 * Description of class
4
 *
5
 * @author wkl
6
 */
7
class msgQueue {
8

  
9
	const RETVAL_ARRAY  = 0;
10
	const RETVAL_STRING = 1; // (default)
11

  
12
	private static $_instance;
13

  
14
	private $_error = array();
15
	private $_success = array();
16

  
17
	protected function __construct() {
18
		$this->_error = array();
19
		$this->_success = array();
20
	}
21
	private function __clone() { throw new Exception('cloning Class '.__CLASS__.' is illegal'); }
22

  
23
    public static function handle()
24
    {
25
        if (!isset(self::$_instance)) {
26
            $c = __CLASS__;
27
            self::$_instance = new $c;
28
        }
29
        return self::$_instance;
30
	}
31

  
32
	public static function add($message = '', $type = false)
33
	{
34
		if($type)
35
		{
36
			self::handle()->_success[] = $message;
37
		}else
38
		{
39
			self::handle()->_error[] = $message;
40
		}
41
	}
42

  
43
	public static function clear()
44
	{
45
		self::handle()->_error = array();
46
		self::handle()->_success = array();
47
	}
48

  
49
	public static function isEmpty()
50
	{
51
		return (sizeof(self::handle()->_success) == 0 && sizeof(self::handle()->_error) == 0 );
52
	}
53
	
54
	public static function getError($retval_type = self::RETVAL_STRING)
55
	{
56
		if(sizeof(self::handle()->_error))
57
		{
58
			if($retval_type == self::RETVAL_STRING)
59
			{
60
				return implode('<br />', self::handle()->_error);
61
			}else
62
			{
63
				return self::handle()->_error;
64
			}
65
		}
66
	}
67

  
68
	public static function getSuccess($retval_type = self::RETVAL_STRING)
69
	{
70
		if(sizeof(self::handle()->_success))
71
		{
72
			if($retval_type == self::RETVAL_STRING)
73
			{
74
				return implode('<br />', self::handle()->_success);
75
			}else
76
			{
77
				return self::handle()->_success;
78
			}
79
		}
80
	}
81

  
82

  
83
}
84
?>
0 85

  
branches/2.8.x/wb/framework/class.admin.php
4 4
 * @category        framewotk
5 5
 * @package         backend admin
6 6
 * @author          Ryan Djurovich, WebsiteBaker Project
7
 * @copyright       2009-2011, Website Baker Org. e.V.
7
 * @copyright       2009-2012, Website Baker Org. e.V.
8 8
 * @link			http://www.websitebaker2.org/
9 9
 * @license         http://www.gnu.org/licenses/gpl.html
10 10
 * @platform        WebsiteBaker 2.8.x
......
31 31
//require_once(WB_PATH . '/framework/SecureForm.php');
32 32

  
33 33

  
34
/**
35
 * admin
36
 *
37
 * @package
38
 * @copyright
39
 * @version 2012
40
 * @access public
41
 */
34 42
class admin extends wb {
35 43
	// Authenticate user then auto print the header
44
	/**
45
	 * admin::__construct()
46
	 *
47
	 * @param string $section_name
48
	 * @param string $section_permission
49
	 * @param bool $auto_header
50
	 * @param bool $auto_auth
51
	 * @return void
52
	 */
36 53
	public function __construct($section_name= '##skip##', $section_permission = 'start', $auto_header = true, $auto_auth = true)
37 54
	{
38 55
		parent::__construct(SecureForm::BACKEND);
......
88 105
	}
89 106

  
90 107
	// Print the admin header
91
	function print_header($body_tags = '') {
108
	/**
109
	 * admin::print_header()
110
	 *
111
	 * @param string $body_tags
112
	 * @return void
113
	 */
114
	function print_header($body_tags = '')
115
	{
92 116
		// Get vars from the language file
93 117
		global $MENU, $MESSAGE, $TEXT;
94 118
		// Connect to database and get website title
......
99 123
		$get_title = $database->query($sql);
100 124
		$title = $get_title->fetchRow();
101 125
		// Setup template object, parse vars to it, then parse it
102
		$header_template = new Template(dirname($this->correct_theme_source('header.htt')),'keep');
126
		$header_template = new Template(dirname($this->correct_theme_source('header.htt')) );
103 127
		$header_template->set_file('page', 'header.htt');
104 128
		$header_template->set_block('page', 'header_block', 'header');
105 129
		if(defined('DEFAULT_CHARSET')) {
......
121 145
		}
122 146

  
123 147
		$header_template->set_var(	array(
124
							'SECTION_NAME' => $MENU[strtoupper($this->section_name)],
148
							'SECTION_FORGOT' => $MENU['FORGOT'],
149
							'SECTION_NAME' => $MENU['LOGIN'],
125 150
							'BODY_TAGS' => $body_tags,
126 151
							'WEBSITE_TITLE' => ($title['value']),
127 152
							'TEXT_ADMINISTRATION' => $TEXT['ADMINISTRATION'],
......
136 161
							'WB_URL' => WB_URL,
137 162
							'ADMIN_URL' => ADMIN_URL,
138 163
							'THEME_URL' => THEME_URL,
139
							'TITLE_START' => $MENU['START'],
140
							'TITLE_VIEW' => $MENU['VIEW'],
164
							'START_URL' => ADMIN_URL.'/index.php',
165
							'START_CLASS' => 'start',
166
							'TITLE_START' => $TEXT['READ_MORE'],
167
							'TITLE_VIEW' => $TEXT['WEBSITE'],
141 168
							'TITLE_HELP' => $MENU['HELP'],
142
							'TITLE_LOGOUT' =>  $MENU['LOGOUT'],
143 169
							'URL_VIEW' => $view_url,
144
							'URL_HELP' => 'http://www.websitebaker2.org/',
170
							'TITLE_LOGOUT' => $MENU['LOGIN'],
171
							'LOGIN_DISPLAY_NONE' => ' display: none; ',
172
							'LOGIN_LINK' => $_SERVER['SCRIPT_NAME'],
173
							'LOGIN_ICON' => 'login',
174
							'START_ICON' => 'blank',
175
							'URL_HELP' => 'http://www.websitebaker.org/',
145 176
							'BACKEND_MODULE_CSS' => $this->register_backend_modfiles('css'),	// adds backend.css
146 177
							'BACKEND_MODULE_JS'  => $this->register_backend_modfiles('js')		// adds backend.js
147 178
						)
148 179
					);
149 180

  
150 181
		// Create the menu
182
		if(!$this->is_authenticated())
183
		{
151 184
		$menu = array(
185
//						array('http://www.websitebaker.org/', '_blank', 'WebsiteBaker Home', 'help', 0),
186
//						array($view_url, '_blank', $TEXT['FRONTEND'], '', 0),
187
//						array(ADMIN_URL.'/login/index.php', '', $MENU['LOGIN'], '', 0)
188
						);
189
		} else {
190
			$header_template->set_var(	array(
191
						'SECTION_NAME' => $MENU[strtoupper($this->section_name)],
192
						'TITLE_LOGOUT' => $MENU['LOGOUT'],
193
						'LOGIN_DISPLAY_NONE' => '',
194
						'START_ICON' => 'home',
195
						'LOGIN_ICON' => 'logout',
196
						'LOGIN_LINK' => ADMIN_URL.'/logout/index.php',
197
						'TITLE_START' => $MENU['START']
198
						)
199
					);
200
			// @array ( $url, $target, $title, $page_permission, $ppermission_required )
201
			$menu = array(
202
//					array(ADMIN_URL.'/index.php', '', $MENU['START'], 'start', 1 ),
152 203
					array(ADMIN_URL.'/pages/index.php', '', $MENU['PAGES'], 'pages', 1),
204
// 					array($view_url, '_blank', $MENU['FRONTEND'], 'pages', 1),
153 205
					array(ADMIN_URL.'/media/index.php', '', $MENU['MEDIA'], 'media', 1),
154 206
					array(ADMIN_URL.'/addons/index.php', '', $MENU['ADDONS'], 'addons', 1),
155 207
					array(ADMIN_URL.'/preferences/index.php', '', $MENU['PREFERENCES'], 'preferences', 0),
156 208
					array(ADMIN_URL.'/settings/index.php', '', $MENU['SETTINGS'], 'settings', 1),
157 209
					array(ADMIN_URL.'/admintools/index.php', '', $MENU['ADMINTOOLS'], 'admintools', 1),
158
					array(ADMIN_URL.'/access/index.php', '', $MENU['ACCESS'], 'access', 1)
210
					array(ADMIN_URL.'/access/index.php', '', $MENU['ACCESS'], 'access', 1),
211
//					array('http://www.websitebaker.org/', '_blank', 'WebsiteBaker Home', '', 0),
212
//					array(ADMIN_URL.'/logout/index.php', '', $MENU['LOGOUT'], '', 0)
213

  
159 214
					);
215
		}
216

  
160 217
		$header_template->set_block('header_block', 'linkBlock', 'link');
161 218
		foreach($menu AS $menu_item) {
162 219
			$link = $menu_item[0];
......
165 222
			$permission_title = $menu_item[3];
166 223
			$required = $menu_item[4];
167 224
			$replace_old = array(ADMIN_URL, WB_URL, '/', 'index.php');
168
			if($required == false OR $this->get_link_permission($permission_title)) {
225
			if($required == false || ($this->is_authenticated() && $this->get_link_permission($permission_title)) )
226
			{
169 227
				$header_template->set_var('LINK', $link);
170 228
				$header_template->set_var('TARGET', $target);
171 229
				// If link is the current section apply a class name
......
182 240
		$header_template->parse('header', 'header_block', false);
183 241
		$header_template->pparse('output', 'page');
184 242
	}
185
	
243

  
186 244
	// Print the admin footer
187 245
		function print_footer($activateJsAdmin = false) {
188
		global $database;
246
		global $database,$starttime;
189 247
		// include the required file for Javascript admin
190 248
		if($activateJsAdmin != false) {
191 249
			if(file_exists(WB_PATH.'/modules/jsadmin/jsadmin_backend_include.php')){
......
211 269
//         if( $debug && (1 == $this->get_user_id()))
212 270
        if( $bDevInfo )
213 271
		{
272

  
214 273
			$footer_template->set_var('MEMORY', number_format(memory_get_peak_usage(), 0, ',', '.').'&nbsp;Byte' );
215 274
			$footer_template->set_var('QUERIES', $database->getQueryCount );
216 275
			// $footer_template->set_var('QUERIES', 'disabled' );
......
220 279
			$sum_filesize = 0;
221 280
			$footer_template->set_block('show_debug_block', 'show_block_list', 'show_list');
222 281
			$footer_template->set_block('show_block_list', 'include_block_list', 'include_list');
223
			// $debug = true;
282
			// $bDebug = true;  for testing
224 283
			foreach($included_files as $filename)
225 284
			{
226 285
				if(!is_readable($filename)) { continue; }
......
234 293
			}
235 294
			$footer_template->parse('show_list', 'show_block_list', true);
236 295

  
296
			$endtime = array_sum(explode(" ",microtime()));
297
			$iEndTime = $endtime;
298
			$iStartTime = $starttime;
237 299
			if(!$bDebug)
238 300
			{
301
				$footer_template->parse('show_list', '');
239 302
				$footer_template->parse('include_list', '');
240
				$footer_template->parse('show_list', '');
241 303
			}
242 304

  
243 305
			$footer_template->set_var('FILESIZE', ini_get('memory_limit'));
244 306
			$footer_template->set_var('TXT_SUM_FILESIZE', 'Summary size of included files:&nbsp;');
245 307
			$footer_template->set_var('SUM_FILESIZE', number_format($sum_filesize, 0, ',', '.').'&nbsp;Byte');
308
			$footer_template->set_var('PAGE_LOAD_TIME', round($iEndTime-$iStartTime,3 ));
309

  
246 310
			$footer_template->parse('show_debug', 'show_debug_block', true);
247 311
        } else {
248 312
			$footer_template->parse('show_debug', '');
313
			$footer_template->parse('show_list', '');
314

  
249 315
        }
250 316
		$footer_template->parse('header', 'footer_block', false);
251 317
		$footer_template->pparse('output', 'page');
252 318
	}
253
	
319

  
254 320
	// Return a system permission
255 321
	function get_permission($name, $type = 'system') {
256 322
		// Append to permission type
......
509 575
		}
510 576
	}
511 577
}
512

  
513
?>
branches/2.8.x/wb/framework/class.wb.php
383 383
		}
384 384
		exit();
385 385
	}
386
/*
387
 * @param string $message: the message to format
388
 * @param string $status:  ('ok' / 'error' / '') status defines the apereance of the box
389
 * @return string: the html-formatted message (using template 'message.htt')
390
 */
391
	public function format_message($message, $status = 'ok')
392
	{
393
		$id = uniqid('x');
394
		$tpl = new Template(dirname($this->correct_theme_source('message.htt')));
395
		$tpl->set_file('page', 'message.htt');
396
		$tpl->set_block('page', 'main_block', 'main');
397
		$tpl->set_var('MESSAGE', $message);
398
 	    $tpl->set_var( 'THEME_URL', THEME_URL );
399
		$tpl->set_var( 'ID', $id );
400
		if($status == 'ok' || $status == 'error' || $status = 'warning')
401
		{
402
			$tpl->set_var('BOX_STATUS', ' box-'.$status);
403
		}else
404
		{
405
			$tpl->set_var('BOX_STATUS', '');
406
		}
407
		$tpl->set_var('STATUS', $status);
408
		if(!defined('REDIRECT_TIMER') ) { define('REDIRECT_TIMER', -1); }
409
		$retval = '';
410
		if( $status != 'error' )
411
		{
412
			switch(REDIRECT_TIMER):
413
				case 0: // do not show message
414
					unset($tpl);
415
					break;
416
				case -1: // show message permanently
417
					$tpl->parse('main', 'main_block', false);
418
					$retval = $tpl->finish($tpl->parse('output', 'page', false));
419
					unset($tpl);
420
					break;
421
				default: // hide message after REDIRECTOR_TIMER milliseconds
422
					$retval = '<script type="text/javascript">/* <![CDATA[ */ function '.$id.'_hide() {'.
423
							  'document.getElementById(\''.$id.'\').style.display = \'none\';}'.
424
							  'window.setTimeout(\''.$id.'_hide()\', '.REDIRECT_TIMER.');/* ]]> */ </script>';
425
					$tpl->parse('main', 'main_block', false);
426
					$retval = $tpl->finish($tpl->parse('output', 'page', false)).$retval;
427
					unset($tpl);
428
			endswitch;
429
		}else
430
		{
431
			$tpl->parse('main', 'main_block', false);
432
			$retval = $tpl->finish($tpl->parse('output', 'page', false)).$retval;
433
			unset($tpl);
434
		}
435
		return $retval;
436
	}
386 437

  
387 438
	// Validate send email
388 439
	function mail($fromaddress, $toaddress, $subject, $message, $fromname='', $replyTo='') {
branches/2.8.x/wb/framework/class.order.php
24 24
/* -------------------------------------------------------- */
25 25
	define('ORDERING_CLASS_LOADED', true);
26 26
// Load the other required class files if they are not already loaded
27
	require_once(WB_PATH."/framework/class.database.php");
27
//	require_once(WB_PATH."/framework/class.database.php");
28 28

  
29 29
class order {
30 30

  
......
118 118
		// Get current order
119 119
		return $this->move($id, self::MOVE_DOWN);
120 120
	}
121
	
121

  
122 122
	/**
123 123
	 * Get next free number for order
124 124
	 * @param string|int $group
......
131 131
		$max = intval($this->_DB->get_one($sql)) + 1;
132 132
		return $max;
133 133
	}
134
	
134

  
135 135
	/**
136 136
	 * Renumbering a group from 1 to n (should be called if a row in the middle has been deleted)
137 137
	 * @param string|int $group
branches/2.8.x/wb/templates/wb_theme/templates/header.htt
40 40
		<a href="{ADMIN_URL}" title="{TITLE_START}"><img src="{THEME_URL}/images/logo.png" border="0" alt="Logo" /></a>
41 41
	</td>
42 42
	<td class="topnav">
43
         <a href="{ADMIN_URL}" title="{TITLE_START}"><img src="{THEME_URL}/images/home.png" border="0" alt="{TITLE_START}" /></a>
44
         &nbsp;&nbsp;<a href="{URL_VIEW}" target="_blank" title="{TITLE_VIEW}"><img src="{THEME_URL}/images/view.png" border="0" alt="{WB_URL}" /></a>
45
	&nbsp; <a href="{URL_HELP}" target="_blank" title="{TITLE_HELP}"><img src="{THEME_URL}/images/help.png" border="0" alt="{TITLE_HELP}" /></a>
46
         &nbsp; <a href="{ADMIN_URL}/logout" title="{TITLE_LOGOUT}"><img src="{THEME_URL}/images/dl.png" border="0" alt="{TITLE_LOGOUT}" /></a>
43
		<span><a href="{ADMIN_URL}" title="{TITLE_START}"><img src="{THEME_URL}/images/{START_ICON}.png" border="0" alt="{TITLE_START}" /></a></span>
44
		&nbsp;&nbsp;<a href="{URL_VIEW}" target="_blank" title="{TITLE_VIEW}"><img src="{THEME_URL}/images/view.png" border="0" alt="{WB_URL}" /></a>
45
		&nbsp; <a href="{URL_HELP}" target="_blank" title="{TITLE_HELP}"><img src="{THEME_URL}/images/help.png" border="0" alt="{TITLE_HELP}" /></a>
46
		&nbsp; <a href="{LOGIN_LINK}" title="{TITLE_LOGOUT}"><img src="{THEME_URL}/images/{LOGIN_ICON}.png" border="0" alt="{TITLE_LOGOUT}" /></a>
47 47
</td>
48 48
	<td class="version">
49 49
	Version {VERSION} {SP}<br />
branches/2.8.x/wb/templates/wb_theme/templates/footer.htt
17 17
<div class="mbox dev-info">
18 18
	<div style="text-align:left; width: auto;">
19 19
		<span class="">Memory Limit: {FILESIZE}&nbsp;|&nbsp;</span>
20
		<span class="">Script load: {PAGE_LOAD_TIME} Sec&nbsp;|&nbsp;</span>
20 21
		<span class="">Used Memory: {MEMORY}&nbsp;|&nbsp;</span>
21 22
		<span class="">SQL-Queries executed: {QUERIES}&nbsp;|&nbsp;</span>
22 23
		<span class="">Summary size of {INCLUDES} included files: {SUM_FILESIZE}</span>
branches/2.8.x/wb/templates/argos_theme/templates/footer.htt
17 17
<!-- BEGIN show_debug_block -->
18 18
<div style="position: relative; width:998px;margin:15px auto;" class="shadow">
19 19
	<div style="padding:10px;left:0; margin-bottom:25px; z-index:10; background-color:#dddddd;color:#dd0000;">
20
		Memory Limit: {FILESIZE}&nbsp;|&nbsp;
21
		Used Memory: {MEMORY}&nbsp;|&nbsp;
20
		<span class="">Memory Limit: {FILESIZE}&nbsp;|&nbsp;</span>
21
		<span class="">Script load: {PAGE_LOAD_TIME} Sec&nbsp;|&nbsp;</span>
22
		<span class="">Used Memory: {MEMORY}&nbsp;|&nbsp;</span>
22 23
		<span class="">SQL-Queries executed: {QUERIES}&nbsp;|&nbsp;</span>
23
		Included&nbsp;{INCLUDES}&nbsp;files &nbsp;|&nbsp;{TXT_SUM_FILESIZE}{SUM_FILESIZE}
24
		<span class="">Summary size of {INCLUDES} included files: {SUM_FILESIZE}</span>
24 25
	<!-- BEGIN show_block_list -->
25 26
		<ul style="margin-left: 27px; margin-top: 0;">
26 27
		<!-- BEGIN include_block_list -->
branches/2.8.x/wb/install/save.php
332 332
	set_error('It appears the Absolute path that you entered is incorrect');
333 333
}
334 334

  
335
// Try connecting to database	
335
// Try connecting to database
336 336
if(!@mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD)) {
337 337
	set_error('Database host name, username and/or password incorrect. MySQL Error:<br />'.mysql_error());
338 338
}
......
393 393
	// Addons table
394 394
	$addons = "DROP TABLE IF EXISTS `".TABLE_PREFIX."addons`";
395 395
	$database->query($addons);
396
				
396

  
397 397
	// Try installing tables
398
	
398

  
399 399
	// Pages table
400 400
	$pages = 'CREATE TABLE `'.TABLE_PREFIX.'pages` ( `page_id` INT NOT NULL auto_increment,'
401
	       . ' `parent` INT NOT NULL DEFAULT \'0\','
402
	       . ' `root_parent` INT NOT NULL DEFAULT \'0\','
403
	       . ' `level` INT NOT NULL DEFAULT \'0\','
404
	       . ' `link` VARCHAR( 255 ) NOT NULL,'
405
	       . ' `target` VARCHAR( 7 ) NOT NULL DEFAULT \'\' ,'
406
	       . ' `page_title` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
407
		   . ' `page_icon` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
408
	       . ' `menu_title` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
409
		   . ' `menu_icon_0` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
410
		   . ' `menu_icon_1` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
411
	       . ' `description` TEXT NOT NULL ,'
412
	       . ' `keywords` TEXT NOT NULL ,'
413
	       . ' `page_trail` VARCHAR( 255 ) NOT NULL  ,'
414
	       . ' `template` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
415
	       . ' `visibility` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
416
	       . ' `position` INT NOT NULL DEFAULT \'0\','
417
	       . ' `menu` INT NOT NULL DEFAULT \'0\','
418
	       . ' `language` VARCHAR( 5 ) NOT NULL DEFAULT \'\' ,'
419
	       . ' `page_code` INT NOT NULL DEFAULT \'0\','
420
	       . ' `searching` INT NOT NULL DEFAULT \'0\','
421
	       . ' `admin_groups` VARCHAR( 512 ) NOT NULL DEFAULT \'1\' ,'
422
	       . ' `admin_users` VARCHAR( 512 ) NOT NULL ,'
423
	       . ' `viewing_groups` VARCHAR( 512 ) NOT NULL DEFAULT \'1\' ,'
424
	       . ' `viewing_users` VARCHAR( 512 ) NOT NULL ,'
425
	       . ' `modified_when` INT NOT NULL DEFAULT \'0\','
426
	       . ' `modified_by` INT NOT NULL  DEFAULT \'0\','
427
	       . ' PRIMARY KEY ( `page_id` ) '
428
	       . ' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci';
401
				. ' `parent` INT NOT NULL DEFAULT \'0\','
402
				. ' `root_parent` INT NOT NULL DEFAULT \'0\','
403
				. ' `level` INT NOT NULL DEFAULT \'0\','
404
				. ' `link` VARCHAR( 255 ) NOT NULL,'
405
				. ' `target` VARCHAR( 7 ) NOT NULL DEFAULT \'\' ,'
406
				. ' `page_title` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
407
				. ' `page_icon` VARCHAR( 512 ) NOT NULL DEFAULT \'\' ,'
408
				. ' `menu_title` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
409
				. ' `menu_icon_0` VARCHAR( 512 ) NOT NULL DEFAULT \'\' ,'
410
				. ' `menu_icon_1` VARCHAR( 512 ) NOT NULL DEFAULT \'\' ,'
411
				. ' `tooltip` VARCHAR( 512 ) NOT NULL DEFAULT \'\' ,'
412
				. ' `description` TEXT NOT NULL ,'
413
				. ' `keywords` TEXT NOT NULL ,'
414
				. ' `page_trail` VARCHAR( 255 ) NOT NULL  ,'
415
				. ' `template` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
416
				. ' `visibility` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
417
				. ' `position` INT NOT NULL DEFAULT \'0\','
418
				. ' `menu` INT NOT NULL DEFAULT \'0\','
419
				. ' `language` VARCHAR( 5 ) NOT NULL DEFAULT \'\' ,'
420
				. ' `page_code` INT NOT NULL DEFAULT \'0\','
421
				. ' `searching` INT NOT NULL DEFAULT \'0\','
422
				. ' `admin_groups` VARCHAR( 512 ) NOT NULL DEFAULT \'1\' ,'
423
				. ' `admin_users` VARCHAR( 512 ) NOT NULL ,'
424
				. ' `viewing_groups` VARCHAR( 512 ) NOT NULL DEFAULT \'1\' ,'
425
				. ' `viewing_users` VARCHAR( 512 ) NOT NULL ,'
426
				. ' `modified_when` INT NOT NULL DEFAULT \'0\','
427
				. ' `modified_by` INT NOT NULL  DEFAULT \'0\','
428
				. ' PRIMARY KEY ( `page_id` ) '
429
				. ' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci';
429 430
	if(!$database->query($pages)) {
430 431
	}
431
	
432

  
432 433
	// Sections table
433 434
	$pages = 'CREATE TABLE `'.TABLE_PREFIX.'sections` ( `section_id` INT NOT NULL auto_increment,'
434 435
	       . ' `page_id` INT NOT NULL DEFAULT \'0\','
......
436 437
	       . ' `module` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
437 438
	       . ' `block` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
438 439
	       . ' `publ_start` VARCHAR( 255 ) NOT NULL DEFAULT \'0\' ,'
439
	       . ' `publ_end` VARCHAR( 255 ) NOT NULL DEFAULT \'0\' ,' 
440
	       . ' `publ_end` VARCHAR( 255 ) NOT NULL DEFAULT \'0\' ,'
440 441
	       . ' PRIMARY KEY ( `section_id` ) '
441 442
	       . ' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci';
442 443
	$database->query($pages);
443 444

  
444 445
	require(ADMIN_PATH.'/interface/version.php');
445
	
446

  
446 447
	// Settings table
447 448
	$settings='CREATE TABLE `'.TABLE_PREFIX.'settings` ( `setting_id` INT NOT NULL auto_increment,'
448 449
		. ' `name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
......
490 491
	." ('search', 'public'),"
491 492
	." ('page_extension', '.php'),"
492 493
	." ('page_spacer', '-'),"
493
	." ('dev_infos', 'true'),"
494
	." ('dev_infos', 'false'),"
494 495
	." ('pages_directory', '/pages'),"
495 496
	." ('page_icon_dir', '/templates/*/title_images'),"
496 497
	." ('rename_files_on_upload', 'ph.*?,cgi,pl,pm,exe,com,bat,pif,cmd,src,asp,aspx'),"
......
509 510
	." ('secure_form_module', ''),"
510 511
	." ('mediasettings', '')";
511 512
	$database->query($settings_rows);
512
	
513

  
513 514
	// Users table
514 515
	$users = 'CREATE TABLE `'.TABLE_PREFIX.'users` ( `user_id` INT NOT NULL auto_increment,'
515 516
	       . ' `group_id` INT NOT NULL DEFAULT \'0\','
......
531 532
	       . ' PRIMARY KEY ( `user_id` ) '
532 533
	       . ' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci';
533 534
	$database->query($users);
534
	
535

  
535 536
	// Groups table
536 537
	$groups = 'CREATE TABLE `'.TABLE_PREFIX.'groups` ( `group_id` INT NOT NULL auto_increment,'
537 538
	        . ' `name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
......
541 542
	        . ' PRIMARY KEY ( `group_id` ) '
542 543
	        . ' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci';
543 544
	$database->query($groups);
544
	
545

  
545 546
	// Search settings table
546 547
	$search = 'CREATE TABLE `'.TABLE_PREFIX.'search` ( `search_id` INT NOT NULL auto_increment,'
547 548
	        . ' `name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
......
550 551
	        . ' PRIMARY KEY ( `search_id` ) '
551 552
	        . ' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci';
552 553
	$database->query($search);
553
	
554

  
554 555
	// Addons table
555 556
	$addons = 'CREATE TABLE `'.TABLE_PREFIX.'addons` ( '
556 557
			.'`addon_id` INT NOT NULL auto_increment ,'
......
568 569
	$database->query($addons);
569 570

  
570 571
	// Insert default data
571
	
572

  
572 573
	// Admin group
573 574
	$full_system_permissions = 'pages,pages_view,pages_add,pages_add_l0,pages_settings,pages_modify,pages_intro,pages_delete,media,media_view,media_upload,media_rename,media_delete,media_create,addons,modules,modules_view,modules_install,modules_uninstall,templates,templates_view,templates_install,templates_uninstall,languages,languages_view,languages_install,languages_uninstall,settings,settings_basic,settings_advanced,access,users,users_view,users_add,users_modify,users_delete,groups,groups_view,groups_add,groups_modify,groups_delete,admintools';
574 575
	$insert_admin_group = "INSERT INTO `".TABLE_PREFIX."groups` VALUES ('1', 'Administrators', '$full_system_permissions', '', '')";
......
576 577
	// Admin user
577 578
	$insert_admin_user = "INSERT INTO `".TABLE_PREFIX."users` (user_id,group_id,groups_id,active,username,password,email,display_name) VALUES ('1','1','1','1','$admin_username','".md5($admin_password)."','$admin_email','Administrator')";
578 579
	$database->query($insert_admin_user);
579
	
580

  
580 581
	// Search header
581 582
	$search_header = addslashes('
582 583
<h1>[TEXT_SEARCH]</h1>
......
668 669
	// Install add-ons
669 670
	if(file_exists(WB_PATH.'/install/modules')) {
670 671
		// Unpack pre-packaged modules
671
			
672

  
672 673
	}
673 674
	if(file_exists(WB_PATH.'/install/templates')) {
674 675
		// Unpack pre-packaged templates
675
		
676

  
676 677
	}
677 678
	if(file_exists(WB_PATH.'/install/languages')) {
678 679
		// Unpack pre-packaged languages
679
		
680

  
680 681
	}
681 682

  
682 683
	$admin=new admin_dummy('Start','',false,false);
......
708 709
		closedir($handle);
709 710
		}
710 711
	}
711
	
712

  
712 713
	// Check if there was a database error
713 714
	if($database->is_error()) {
714 715
		set_error($database->get_error());
715 716
	}
716 717

  
717
// end of if install_tables	
718
// end of if install_tables
718 719
} else {
719 720
	/**
720 721
	 *	DB - Exists
......
723 724
	 */
724 725
	$requested_tables = array("pages","sections","settings","users","groups","search","addons");
725 726
	for($i=0;$i<count($requested_tables);$i++) $requested_tables[$i] = $table_prefix.$requested_tables[$i];
726
	
727

  
727 728
	$result = mysql_list_tables( DB_NAME );
728 729
	$all_tables = array();
729 730
	for($i=0; $i < mysql_num_rows($result); $i++) $all_tables[] = mysql_table_name($result, $i);
......
734 735
			$missing_tables[] = $temp_table;
735 736
		}
736 737
	}
737
	
738

  
738 739
	/**
739
	 *	If one or more needed tables are missing, so 
740
	 *	If one or more needed tables are missing, so
740 741
	 *	we can't go on and have to display an error
741 742
	 */
742 743
	if ( count($missing_tables) > 0 ) {
743 744
		$error_message  = "One or more tables are missing in the selected database <b><font color='#990000'>".DB_NAME."</font></b>.<br />";
744 745
		$error_message .= "Please install the missing tables or choose 'install tables' as recommend.<br />";
745 746
		$error_message .= "Missing tables are: <b>".implode(", ", $missing_tables)."</b>";
746
		
747

  
747 748
		set_error( $error_message );
748 749
	}
749
	
750

  
750 751
	/**
751 752
	 *	Try to get some default settings ...
752 753
	 */
......
759 760
		'SMART_LOGIN'	=> false
760 761
	);
761 762
	foreach($vars as $k => $v) if (!defined($k)) define($k, $v);
762
	
763

  
763 764
	if (!isset($MESSAGE)) include (WB_PATH."/languages/".LANGUAGE.".php");
764
	
765

  
765 766
	/**
766 767
	 *	The important part ...
767 768
	 *	Is there an valid user?
......
776 777
	 	 */
777 778
	 	set_error ("Unkown user. Please use a valid username.");
778 779
	} else {
779
	 	
780

  
780 781
		$data = $result->fetchRow();
781 782
	 	/**
782 783
	 	 *	Does the password match
branches/2.8.x/wb/modules/SecureFormSwitcher/uninstall.php
24 24
}
25 25
/* -------------------------------------------------------- */
26 26

  
27
require_once(WB_PATH.'/framework/class.database.php');
27
// require_once(WB_PATH.'/framework/class.database.php');
28 28
require_once(WB_PATH.'/framework/functions.php');
29 29

  
30 30
$sql  = 'DELETE FROM `'.TABLE_PREFIX.'settings` ';
branches/2.8.x/wb/modules/SecureFormSwitcher/tool.php
96 96
	case 'save_settings_default':
97 97
		if (!$admin->checkFTAN())
98 98
		{
99
			if(!$admin_header) { $admin->print_header(); }
99
// 			if(!$admin_header) { $admin->print_header(); }
100 100
			$admin->print_error($MESSAGE['GENERIC_SECURITY_ACCESS'],$_SERVER['REQUEST_URI']);
101 101
		}
102 102
		if(file_exists($MultitabTarget)) {
......
119 119
endswitch;
120 120

  
121 121
// set template file and assign module and template block
122
$tpl = new Template(WB_PATH.'/modules/SecureFormSwitcher/htt','keep');
123
$tpl->set_file('page', 'switchform.htt');
124
$tpl->debug = false; // false, true
125
$tpl->set_block('page', 'main_block', 'main');
122
$oSecureTpl = new Template(WB_PATH.'/modules/SecureFormSwitcher/htt','keep');
123
// $tpl = new Template(dirname($admin->correct_theme_source('switchform.htt')),'keep');
124
$oSecureTpl->set_file('page', 'switchform.htt');
125
$oSecureTpl->debug = false; // false, true
126
$oSecureTpl->set_block('page', 'main_block', 'main');
126 127

  
127 128
$checked = ($setting['secure_form_module']!='');
128 129

  
......
144 145
// convert settings name to upper
145 146
array_walk($setting,'converttoupper', array(&$search, &$replace ));
146 147

  
147
$tpl->set_var($replace);
148
$tpl->set_var(array(
148
$oSecureTpl->set_var($replace);
149
$oSecureTpl->set_var(array(
149 150
	'FTAN' => $admin->getFTAN(),
150 151
	'SERVER_REQUEST_URI' => $_SERVER['REQUEST_URI'],
151 152
	'TEXT_CANCEL' => $TEXT['CANCEL'],
......
167 168
	)
168 169
);
169 170

  
170
$tpl->set_var(array(
171
$oSecureTpl->set_var(array(
171 172
		'USEIP_SELECTED' => '',
172 173
		'TXT_SECFORM_USEIP' => $SFS_TEXT['WB_SECFORM_USEIP'],
173 174
        'TXT_SECFORM_USEIP_TOOLTIP' => $SFS_TEXT['WB_SECFORM_USEIP_TOOLTIP'], // Tooltip
......
179 180
	)
180 181
);
181 182

  
182
$tpl->set_block('main_block', 'useip_mtab_loop', 'mtab_loop');
183
$oSecureTpl->set_block('main_block', 'useip_mtab_loop', 'mtab_loop');
183 184
	for($x=0; $x < 5; $x++) {
184 185
		// iu value == default set first option with standardtext
185 186
		if(intval($default_cfg['fingerprint_with_ip_octets'])==$x ) {
186
			$tpl->set_var(array(
187
			$oSecureTpl->set_var(array(
187 188
					'USEIP_VALUE' => $x,
188 189
					'USEIP_DEFAULT_SELECTED' => ((intval($setting['fingerprint_with_ip_octets'])==$x) ? ' selected="selected"' : ''),
189 190
					'USEIP_SELECTED' => '',
190 191
					)
191 192
			);
192 193
		} else {
193
			$tpl->set_var(array(
194
			$oSecureTpl->set_var(array(
194 195
					'USEIP_VALUE' => $x,
195 196
					'USEIP_SELECTED' => ((intval($setting['fingerprint_with_ip_octets'])==$x) && (intval($setting['fingerprint_with_ip_octets'])!=intval($default_cfg['fingerprint_with_ip_octets'])) ? ' selected="selected"' : ''),
196 197
				)
197 198
			);
198 199
		}
199
		$tpl->parse('mtab_loop','useip_mtab_loop', true);
200
		$oSecureTpl->parse('mtab_loop','useip_mtab_loop', true);
200 201
	}
201 202

  
202
$tpl->set_block('main_block', 'show_mtab_block', 'show_mtab');
203
$tpl->set_block('main_block', 'mtab_block', 'mtab');
203
$oSecureTpl->set_block('main_block', 'show_mtab_block', 'show_mtab');
204
$oSecureTpl->set_block('main_block', 'mtab_block', 'mtab');
204 205
if($checked) {
205
	$tpl->set_var(array(
206
	$oSecureTpl->set_var(array(
206 207
			'TEXT_ENABLED' => $SFS_TEXT['ON_OFF'],
207 208
			'TXT_SECFORM_TOKENNAME' => $SFS_TEXT['WB_SECFORM_TOKENNAME'],
208 209
            'TXT_SECFORM_TOKENNAME_TOOLTIP' => $SFS_TEXT['WB_SECFORM_TOKENNAME_TOOLTIP'],
......
217 218
            'TXT_SECFORM_USEFP_TOOLTIP' => $SFS_TEXT['WB_SECFORM_USEFP_TOOLTIP'],
218 219
		)
219 220
	);
220
	$tpl->parse('mtab','mtab_block', true);
221
	$tpl->parse('show_mtab','show_mtab_block', true);
221
	$oSecureTpl->parse('mtab','mtab_block', true);
222
	$oSecureTpl->parse('show_mtab','show_mtab_block', true);
222 223
} else  {
223
	$tpl->parse('mtab', '');
224
	$tpl->parse('show_mtab', '');
224
	$oSecureTpl->parse('mtab', '');
225
	$oSecureTpl->parse('show_mtab', '');
225 226
}
226 227

  
227 228
// Parse template object
228
$tpl->parse('main', 'main_block', false);
229
$output = $tpl->finish($tpl->parse('output', 'page'));
230
unset($tpl);
229
$oSecureTpl->parse('main', 'main_block', false);
230
$output = $oSecureTpl->finish($oSecureTpl->parse('output', 'page'));
231
unset($oSecureTpl);
231 232
print $output;
232 233

  
branches/2.8.x/wb/modules/SecureFormSwitcher/overlib_mini.js
1
//\/////
2
//\  overLIB 4.22 - You may not remove or change this notice.
3
//\  Copyright Erik Bosrup 1998-2004. All rights reserved.
4
//\
5
//\  Contributors are listed on the homepage.
6
//\  This file might be old, always check for the latest version at:
7
//\  http://www.bosrup.com/web/overlib/
8
//\
9
//\  Please read the license agreement (available through the link above)
10
//\  before using overLIB. Direct any licensing questions to erik@bosrup.com.
11
//\
12
//\  Do not sell this as your own work or remove this copyright notice. 
13
//\  For full details on copying or changing this script please read the
14
//\  license agreement at the link above. Please give credit on sites that
15
//\  use overLIB and submit changes of the script so other people can use
16
//\  them as well.
17
//\/////
18
//\  THIS IS A VERY MODIFIED VERSION. DO NOT EDIT OR PUBLISH. GET THE ORIGINAL!
19
var olLoaded=0,pmStart=10000000,pmUpper=10001000,pmCount=pmStart+1,pmt='',pms=new Array(),olInfo=new Info('4.22',0),FREPLACE=0,FBEFORE=1,FAFTER=2,FALTERNATE=3,FCHAIN=4,olHideForm=0,olHautoFlag=0,olVautoFlag=0,hookPts=new Array(),postParse=new Array(),cmdLine=new Array(),runTime=new Array();
20
registerCommands('donothing,inarray,caparray,sticky,background,noclose,caption,left,right,center,offsetx,offsety,fgcolor,bgcolor,textcolor,capcolor,closecolor,width,border,cellpad,status,autostatus,autostatuscap,height,closetext,snapx,snapy,fixx,fixy,relx,rely,fgbackground,bgbackground,padx,pady,fullhtml,above,below,capicon,textfont,captionfont,closefont,textsize,captionsize,closesize,timeout,function,delay,hauto,vauto,closeclick,wrap,followmouse,mouseoff,closetitle,cssoff,compatmode,cssclass,fgclass,bgclass,textfontclass,captionfontclass,closefontclass');
21
if(typeof ol_fgcolor=='undefined')var ol_fgcolor="#CCCCFF";if(typeof ol_bgcolor=='undefined')var ol_bgcolor="#333399";if(typeof ol_textcolor=='undefined')var ol_textcolor="#000000";if(typeof ol_capcolor=='undefined')var ol_capcolor="#FFFFFF";if(typeof ol_closecolor=='undefined')var ol_closecolor="#9999FF";if(typeof ol_textfont=='undefined')var ol_textfont="Verdana,Arial,Helvetica";if(typeof ol_captionfont=='undefined')var ol_captionfont="Verdana,Arial,Helvetica";if(typeof ol_closefont=='undefined')var ol_closefont="Verdana,Arial,Helvetica";if(typeof ol_textsize=='undefined')var ol_textsize="1";if(typeof ol_captionsize=='undefined')var ol_captionsize="1";if(typeof ol_closesize=='undefined')var ol_closesize="1";if(typeof ol_width=='undefined')var ol_width="200";if(typeof ol_border=='undefined')var ol_border="1";if(typeof ol_cellpad=='undefined')var ol_cellpad=2;if(typeof ol_offsetx=='undefined')var ol_offsetx=10;if(typeof ol_offsety=='undefined')var ol_offsety=10;if(typeof ol_text=='undefined')var ol_text="Default Text";if(typeof ol_cap=='undefined')var ol_cap="";if(typeof ol_sticky=='undefined')var ol_sticky=0;if(typeof ol_background=='undefined')var ol_background="";if(typeof ol_close=='undefined')var ol_close="Close";if(typeof ol_hpos=='undefined')var ol_hpos=RIGHT;if(typeof ol_status=='undefined')var ol_status="";if(typeof ol_autostatus=='undefined')var ol_autostatus=0;if(typeof ol_height=='undefined')var ol_height=-1;if(typeof ol_snapx=='undefined')var ol_snapx=0;if(typeof ol_snapy=='undefined')var ol_snapy=0;if(typeof ol_fixx=='undefined')var ol_fixx=-1;if(typeof ol_fixy=='undefined')var ol_fixy=-1;if(typeof ol_relx=='undefined')var ol_relx=null;if(typeof ol_rely=='undefined')var ol_rely=null;if(typeof ol_fgbackground=='undefined')var ol_fgbackground="";if(typeof ol_bgbackground=='undefined')var ol_bgbackground="";if(typeof ol_padxl=='undefined')var ol_padxl=1;if(typeof ol_padxr=='undefined')var ol_padxr=1;if(typeof ol_padyt=='undefined')var ol_padyt=1;if(typeof ol_padyb=='undefined')var ol_padyb=1;if(typeof ol_fullhtml=='undefined')var ol_fullhtml=0;if(typeof ol_vpos=='undefined')var ol_vpos=BELOW;if(typeof ol_aboveheight=='undefined')var ol_aboveheight=0;if(typeof ol_capicon=='undefined')var ol_capicon="";if(typeof ol_frame=='undefined')var ol_frame=self;if(typeof ol_timeout=='undefined')var ol_timeout=0;if(typeof ol_function=='undefined')var ol_function=null;if(typeof ol_delay=='undefined')var ol_delay=0;if(typeof ol_hauto=='undefined')var ol_hauto=0;if(typeof ol_vauto=='undefined')var ol_vauto=0;if(typeof ol_closeclick=='undefined')var ol_closeclick=0;if(typeof ol_wrap=='undefined')var ol_wrap=0;if(typeof ol_followmouse=='undefined')var ol_followmouse=1;if(typeof ol_mouseoff=='undefined')var ol_mouseoff=0;if(typeof ol_closetitle=='undefined')var ol_closetitle='Close';if(typeof ol_compatmode=='undefined')var ol_compatmode=0;if(typeof ol_css=='undefined')var ol_css=CSSOFF;if(typeof ol_fgclass=='undefined')var ol_fgclass="";if(typeof ol_bgclass=='undefined')var ol_bgclass="";if(typeof ol_textfontclass=='undefined')var ol_textfontclass="";if(typeof ol_captionfontclass=='undefined')var ol_captionfontclass="";if(typeof ol_closefontclass=='undefined')var ol_closefontclass="";
22
if(typeof ol_texts=='undefined')var ol_texts=new Array("Text 0","Text 1");if(typeof ol_caps=='undefined')var ol_caps=new Array("Caption 0","Caption 1");
23
var o3_text="",o3_cap="",o3_sticky=0,o3_background="",o3_close="Close",o3_hpos=RIGHT,o3_offsetx=2,o3_offsety=2,o3_fgcolor="",o3_bgcolor="",o3_textcolor="",o3_capcolor="",o3_closecolor="",o3_width=100,o3_border=1,o3_cellpad=2,o3_status="",o3_autostatus=0,o3_height=-1,o3_snapx=0,o3_snapy=0,o3_fixx=-1,o3_fixy=-1,o3_relx=null,o3_rely=null,o3_fgbackground="",o3_bgbackground="",o3_padxl=0,o3_padxr=0,o3_padyt=0,o3_padyb=0,o3_fullhtml=0,o3_vpos=BELOW,o3_aboveheight=0,o3_capicon="",o3_textfont="Verdana,Arial,Helvetica",o3_captionfont="Verdana,Arial,Helvetica",o3_closefont="Verdana,Arial,Helvetica",o3_textsize="1",o3_captionsize="1",o3_closesize="1",o3_frame=self,o3_timeout=0,o3_timerid=0,o3_allowmove=0,o3_function=null,o3_delay=0,o3_delayid=0,o3_hauto=0,o3_vauto=0,o3_closeclick=0,o3_wrap=0,o3_followmouse=1,o3_mouseoff=0,o3_closetitle='',o3_compatmode=0,o3_css=CSSOFF,o3_fgclass="",o3_bgclass="",o3_textfontclass="",o3_captionfontclass="",o3_closefontclass="";
24
var o3_x=0,o3_y=0,o3_showingsticky=0,o3_removecounter=0;
25
var over=null,fnRef,hoveringSwitch=false,olHideDelay;
26
var isMac=(navigator.userAgent.indexOf("Mac")!=-1),olOp=(navigator.userAgent.toLowerCase().indexOf('opera')>-1&&document.createTextNode),olNs4=(navigator.appName=='Netscape'&&parseInt(navigator.appVersion)==4),olNs6=(document.getElementById)?true:false,olKq=(olNs6&&/konqueror/i.test(navigator.userAgent)),olIe4=(document.all)?true:false,olIe5=false,olIe55=false,docRoot='document.body';
27
if(olNs4){var oW=window.innerWidth;var oH=window.innerHeight;window.onresize=function(){if(oW!=window.innerWidth||oH!=window.innerHeight)location.reload();}}
28
if(olIe4){var agent=navigator.userAgent;if(/MSIE/.test(agent)){var versNum=parseFloat(agent.match(/MSIE[ ](\d\.\d+)\.*/i)[1]);if(versNum>=5){olIe5=true;olIe55=(versNum>=5.5&&!olOp)?true:false;if(olNs6)olNs6=false;}}
29
if(olNs6)olIe4=false;}
30
if(document.compatMode&&document.compatMode=='CSS1Compat'){docRoot=((olIe4&&!olOp)?'document.documentElement':docRoot);}
31
if(window.addEventListener)window.addEventListener("load",OLonLoad_handler,false);else if(window.attachEvent)window.attachEvent("onload",OLonLoad_handler);
32
var capExtent;
33
function overlib(){if(!olLoaded||isExclusive(overlib.arguments))return true;if(olCheckMouseCapture)olMouseCapture();if(over){over=(typeof over.id!='string')?o3_frame.document.all['overDiv']:over;cClick();}
34
olHideDelay=0;o3_text=ol_text;o3_cap=ol_cap;o3_sticky=ol_sticky;o3_background=ol_background;o3_close=ol_close;o3_hpos=ol_hpos;o3_offsetx=ol_offsetx;o3_offsety=ol_offsety;o3_fgcolor=ol_fgcolor;o3_bgcolor=ol_bgcolor;o3_textcolor=ol_textcolor;o3_capcolor=ol_capcolor;o3_closecolor=ol_closecolor;o3_width=ol_width;o3_border=ol_border;o3_cellpad=ol_cellpad;o3_status=ol_status;o3_autostatus=ol_autostatus;o3_height=ol_height;o3_snapx=ol_snapx;o3_snapy=ol_snapy;o3_fixx=ol_fixx;o3_fixy=ol_fixy;o3_relx=ol_relx;o3_rely=ol_rely;o3_fgbackground=ol_fgbackground;o3_bgbackground=ol_bgbackground;o3_padxl=ol_padxl;o3_padxr=ol_padxr;o3_padyt=ol_padyt;o3_padyb=ol_padyb;o3_fullhtml=ol_fullhtml;o3_vpos=ol_vpos;o3_aboveheight=ol_aboveheight;o3_capicon=ol_capicon;o3_textfont=ol_textfont;o3_captionfont=ol_captionfont;o3_closefont=ol_closefont;o3_textsize=ol_textsize;o3_captionsize=ol_captionsize;o3_closesize=ol_closesize;o3_timeout=ol_timeout;o3_function=ol_function;o3_delay=ol_delay;o3_hauto=ol_hauto;o3_vauto=ol_vauto;o3_closeclick=ol_closeclick;o3_wrap=ol_wrap;o3_followmouse=ol_followmouse;o3_mouseoff=ol_mouseoff;o3_closetitle=ol_closetitle;o3_css=ol_css;o3_compatmode=ol_compatmode;o3_fgclass=ol_fgclass;o3_bgclass=ol_bgclass;o3_textfontclass=ol_textfontclass;o3_captionfontclass=ol_captionfontclass;o3_closefontclass=ol_closefontclass;
35
setRunTimeVariables();
36
fnRef='';
37
o3_frame=ol_frame;
38
if(!(over=createDivContainer()))return false;
39
parseTokens('o3_',overlib.arguments);if(!postParseChecks('o3_',overlib.arguments))return false;
40
if(o3_delay==0){return runHook("olMain",FREPLACE);}else{o3_delayid=setTimeout("runHook('olMain',FREPLACE)",o3_delay);return false;}}
41
function nd(time){if(olLoaded&&!isExclusive()){hideDelay(time);
42
if(o3_removecounter>=1){o3_showingsticky=0 };
43
if(o3_showingsticky==0){o3_allowmove=0;if(over!=null&&(o3_compatmode?1:o3_timerid==0))runHook("hideObject",FREPLACE,over);}else{o3_removecounter++;}}
44
return true;}
45
function cClick(){if(olLoaded){runHook("hideObject",FREPLACE,over);o3_showingsticky=0;}
46
return false;}
47
function overlib_pagedefaults(){parseTokens('ol_',overlib_pagedefaults.arguments);}
48
function olMain(){var layerhtml,styleType;runHook("olMain",FBEFORE);
49
if(o3_background!=""||o3_fullhtml){
50
layerhtml=runHook('ol_content_background',FALTERNATE,o3_css,o3_text,o3_background,o3_fullhtml);}else{
51
styleType=(pms[o3_css-1-pmStart]=="cssoff"||pms[o3_css-1-pmStart]=="cssclass");
52
if(o3_fgbackground!="")o3_fgbackground="background=\""+o3_fgbackground+"\"";if(o3_bgbackground!="")o3_bgbackground=(styleType?"background=\""+o3_bgbackground+"\"":o3_bgbackground);
53
if(o3_fgcolor!="")o3_fgcolor=(styleType?"bgcolor=\""+o3_fgcolor+"\"":o3_fgcolor);if(o3_bgcolor!="")o3_bgcolor=(styleType?"bgcolor=\""+o3_bgcolor+"\"":o3_bgcolor);
54
if(o3_height>0)o3_height=(styleType?"height=\""+o3_height+"\"":o3_height);else o3_height="";
55
if(o3_cap==""){
56
layerhtml=runHook('ol_content_simple',FALTERNATE,o3_css,o3_text);}else{
57
if(o3_sticky){
58
layerhtml=runHook('ol_content_caption',FALTERNATE,o3_css,o3_text,o3_cap,o3_close);}else{
59
layerhtml=runHook('ol_content_caption',FALTERNATE,o3_css,o3_text,o3_cap,"");}}}
60
if(o3_sticky){if(o3_timerid>0){clearTimeout(o3_timerid);o3_timerid=0;}
61
o3_showingsticky=1;o3_removecounter=0;}
62
if(!runHook("olCreatePopup",FREPLACE,layerhtml))return false;
63
if(o3_autostatus>0){o3_status=o3_text;if(o3_autostatus>1)o3_status=o3_cap;if(o3_wrap)o3_status=o3_status.replace(/&nbsp;/g,' ');}
64
o3_allowmove=0;
65
if(o3_timeout>0){if(o3_timerid>0)clearTimeout(o3_timerid);o3_timerid=setTimeout("cClick()",o3_timeout);}
66
runHook("disp",FREPLACE,o3_status);runHook("olMain",FAFTER);
67
return(olOp&&event&&event.type=='mouseover'&&!o3_status)?'':(o3_status!='');}
68
function ol_content_simple(text){var cpIsMultiple=/,/.test(o3_cellpad);var txt='<table width="'+o3_width+'" border="0" cellpadding="'+o3_border+'" cellspacing="0" '+(o3_bgclass?'class="'+o3_bgclass+'"':o3_bgcolor+' '+o3_height)+'><tr><td><table width="100%" border="0" '+((olNs4||!cpIsMultiple)?'cellpadding="'+o3_cellpad+'" ':'')+'cellspacing="0" '+(o3_fgclass?'class="'+o3_fgclass+'"':o3_fgcolor+' '+o3_fgbackground+' '+o3_height)+'><tr><td valign="TOP"'+(o3_textfontclass?' class="'+o3_textfontclass+'">':((!olNs4&&cpIsMultiple)?' style="'+setCellPadStr(o3_cellpad)+'">':'>'))+(o3_textfontclass?'':wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass?'':wrapStr(1,o3_textsize))+'</td></tr></table></td></tr></table>';
69
set_background("");return txt;}
70
function ol_content_caption(text,title,close){var nameId,txt,cpIsMultiple=/,/.test(o3_cellpad);var closing,closeevent;
71
closing="";closeevent="onmouseover";if(o3_closeclick==1)closeevent=(o3_closetitle?"title='"+o3_closetitle+"'":"")+" onclick";if(o3_capicon!=""){nameId=' hspace=\"5\"'+' align=\"middle\" alt=\"\"';if(typeof o3_dragimg!='undefined'&&o3_dragimg)nameId=' hspace=\"5\"'+' name=\"'+o3_dragimg+'\" id=\"'+o3_dragimg+'\" align=\"middle\" alt=\"Drag Enabled\" title=\"Drag Enabled\"';o3_capicon='<img src=\"'+o3_capicon+'\"'+nameId+' />';}
72
if(close!="")
73
closing='<td '+(!o3_compatmode&&o3_closefontclass?'class="'+o3_closefontclass:'align="RIGHT')+'"><a href="javascript:return '+fnRef+'cClick();"'+((o3_compatmode&&o3_closefontclass)?' class="'+o3_closefontclass+'" ':' ')+closeevent+'="return '+fnRef+'cClick();">'+(o3_closefontclass?'':wrapStr(0,o3_closesize,'close'))+close+(o3_closefontclass?'':wrapStr(1,o3_closesize,'close'))+'</a></td>';txt='<table width="'+o3_width+'" border="0" cellpadding="'+o3_border+'" cellspacing="0" '+(o3_bgclass?'class="'+o3_bgclass+'"':o3_bgcolor+' '+o3_bgbackground+' '+o3_height)+'><tr><td><table width="100%" border="0" cellpadding="2" cellspacing="0"><tr><td'+(o3_captionfontclass?' class="'+o3_captionfontclass+'">':'>')+(o3_captionfontclass?'':'<b>'+wrapStr(0,o3_captionsize,'caption'))+o3_capicon+title+(o3_captionfontclass?'':wrapStr(1,o3_captionsize)+'</b>')+'</td>'+closing+'</tr></table><table width="100%" border="0" '+((olNs4||!cpIsMultiple)?'cellpadding="'+o3_cellpad+'" ':'')+'cellspacing="0" '+(o3_fgclass?'class="'+o3_fgclass+'"':o3_fgcolor+' '+o3_fgbackground+' '+o3_height)+'><tr><td valign="TOP"'+(o3_textfontclass?' class="'+o3_textfontclass+'">' :((!olNs4&&cpIsMultiple)?' style="'+setCellPadStr(o3_cellpad)+'">':'>'))+(o3_textfontclass?'':wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass?'':wrapStr(1,o3_textsize))+'</td></tr></table></td></tr></table>';
74
set_background("");return txt;}
75
function ol_content_background(text,picture,hasfullhtml){var txt;if(hasfullhtml){txt=text;}else{txt='<table width="'+o3_width+'" border="0" cellpadding="0" cellspacing="0" height="'+o3_height+'"><tr><td colspan="3" height="'+o3_padyt+'"></td></tr><tr><td width="'+o3_padxl+'"></td><td valign="TOP" width="'+(o3_width-o3_padxl-o3_padxr)+(o3_textfontclass?'" class="'+o3_textfontclass:'')+'">'+(o3_textfontclass?'':wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass?'':wrapStr(1,o3_textsize))+'</td><td width="'+o3_padxr+'"></td></tr><tr><td colspan="3" height="'+o3_padyb+'"></td></tr></table>';}
76
set_background(picture);return txt;}
77
function set_background(pic){if(pic==""){if(olNs4){over.background.src=null;}else if(over.style){over.style.backgroundImage="none";}
78
}else{if(olNs4){over.background.src=pic;}else if(over.style){over.style.width=o3_width+'px';over.style.backgroundImage="url("+pic+")";}}}
79
var olShowId=-1;
80
function disp(statustext){runHook("disp",FBEFORE,statustext);
81
if(o3_allowmove==0){runHook("placeLayer",FREPLACE);(olNs6&&olShowId<0)?olShowId=setTimeout("runHook('showObject',FREPLACE,over)",1):runHook("showObject",FREPLACE,over);o3_allowmove=(o3_sticky||o3_followmouse==0)?0:1;}
82
runHook("disp",FAFTER,statustext);
83
if(statustext!="")self.status=statustext;}
84
function olCreatePopup(lyrContent){runHook("olCreatePopup",FBEFORE,lyrContent);
85
if(o3_wrap){var wd,ww,theObj=(olNs4?over:over.style);theObj.top=theObj.left=((olIe4&&!olOp)?0:-10000)+(!olNs4?'px':0);layerWrite(lyrContent);wd=(olNs4?over.clip.width:over.offsetWidth);if(wd>(ww=windowWidth())){lyrContent=lyrContent.replace(/\&nbsp;/g,' ');o3_width=ww;o3_wrap=0;}}
86
layerWrite(lyrContent);
87
if(o3_wrap)o3_width=(olNs4?over.clip.width:over.offsetWidth);
88
runHook("olCreatePopup",FAFTER,lyrContent);
89
return true;}
90
function placeLayer(){var placeX,placeY,widthFix=0;
91
if(o3_frame.innerWidth)widthFix=18;iwidth=windowWidth();
92
winoffset=(olIe4)?eval('o3_frame.'+docRoot+'.scrollLeft'):o3_frame.pageXOffset;
93
placeX=runHook('horizontalPlacement',FCHAIN,iwidth,winoffset,widthFix);
94
if(o3_frame.innerHeight){iheight=o3_frame.innerHeight;}else if(eval('o3_frame.'+docRoot)&&eval("typeof o3_frame."+docRoot+".clientHeight=='number'")&&eval('o3_frame.'+docRoot+'.clientHeight')){iheight=eval('o3_frame.'+docRoot+'.clientHeight');}
95
scrolloffset=(olIe4)?eval('o3_frame.'+docRoot+'.scrollTop'):o3_frame.pageYOffset;placeY=runHook('verticalPlacement',FCHAIN,iheight,scrolloffset);
96
repositionTo(over,placeX,placeY);}
97
function olMouseMove(e){var e=(e)?e:event;
98
if(e.pageX){o3_x=e.pageX;o3_y=e.pageY;}else if(e.clientX){o3_x=eval('e.clientX+o3_frame.'+docRoot+'.scrollLeft');o3_y=eval('e.clientY+o3_frame.'+docRoot+'.scrollTop');}
99
if(o3_allowmove==1)runHook("placeLayer",FREPLACE);
100
if(hoveringSwitch&&!olNs4&&runHook("cursorOff",FREPLACE)){(olHideDelay?hideDelay(olHideDelay):cClick());hoveringSwitch=!hoveringSwitch;}}
101
function no_overlib(){return ver3fix;}
102
function olMouseCapture(){capExtent=document;var fN,str='',l,k,f,wMv,sS,mseHandler=olMouseMove;var re=/function[ ]*(\w*)\(/;
103
wMv=(!olIe4&&window.onmousemove);if(document.onmousemove||wMv){if(wMv)capExtent=window;f=capExtent.onmousemove.toString();fN=f.match(re);if(fN==null){str=f+'(e);';}else if(fN[1]=='anonymous'||fN[1]=='olMouseMove'||(wMv&&fN[1]=='onmousemove')){if(!olOp&&wMv){l=f.indexOf('{')+1;k=f.lastIndexOf('}');sS=f.substring(l,k);if((l=sS.indexOf('('))!=-1){sS=sS.substring(0,l).replace(/^\s+/,'').replace(/\s+$/,'');if(eval("typeof "+sS+"=='undefined'"))window.onmousemove=null;else str=sS+'(e);';}}
104
if(!str){olCheckMouseCapture=false;return;}
105
}else{if(fN[1])str=fN[1]+'(e);';else{l=f.indexOf('{')+1;k=f.lastIndexOf('}');str=f.substring(l,k)+'\n';}}
106
str+='olMouseMove(e);';mseHandler=new Function('e',str);}
107
capExtent.onmousemove=mseHandler;if(olNs4)capExtent.captureEvents(Event.MOUSEMOVE);}
108
function parseTokens(pf,ar){
109
var v,i,mode=-1,par=(pf!='ol_'),fnMark=(par&&!ar.length?1:0);
110
for(i=0;i<ar.length;i++){if(mode<0){
111
if(typeof ar[i]=='number'&&ar[i]>pmStart&&ar[i]<pmUpper){fnMark=(par?1:0);i--;}else{switch(pf){case 'ol_':
112
ol_text=ar[i].toString();break;default:
113
o3_text=ar[i].toString();}}
114
mode=0;}else{
115
if(ar[i]>=pmCount||ar[i]==DONOTHING){continue;}
116
if(ar[i]==INARRAY){fnMark=0;eval(pf+'text=ol_texts['+ar[++i]+'].toString()');continue;}
117
if(ar[i]==CAPARRAY){eval(pf+'cap=ol_caps['+ar[++i]+'].toString()');continue;}
118
if(ar[i]==STICKY){if(pf!='ol_')eval(pf+'sticky=1');continue;}
119
if(ar[i]==BACKGROUND){eval(pf+'background="'+ar[++i]+'"');continue;}
120
if(ar[i]==NOCLOSE){if(pf!='ol_')opt_NOCLOSE();continue;}
121
if(ar[i]==CAPTION){eval(pf+"cap='"+escSglQuote(ar[++i])+"'");continue;}
122
if(ar[i]==CENTER||ar[i]==LEFT||ar[i]==RIGHT){eval(pf+'hpos='+ar[i]);if(pf!='ol_')olHautoFlag=1;continue;}
123
if(ar[i]==OFFSETX){eval(pf+'offsetx='+ar[++i]);continue;}
124
if(ar[i]==OFFSETY){eval(pf+'offsety='+ar[++i]);continue;}
125
if(ar[i]==FGCOLOR){eval(pf+'fgcolor="'+ar[++i]+'"');continue;}
126
if(ar[i]==BGCOLOR){eval(pf+'bgcolor="'+ar[++i]+'"');continue;}
127
if(ar[i]==TEXTCOLOR){eval(pf+'textcolor="'+ar[++i]+'"');continue;}
128
if(ar[i]==CAPCOLOR){eval(pf+'capcolor="'+ar[++i]+'"');continue;}
129
if(ar[i]==CLOSECOLOR){eval(pf+'closecolor="'+ar[++i]+'"');continue;}
130
if(ar[i]==WIDTH){eval(pf+'width='+ar[++i]);continue;}
131
if(ar[i]==BORDER){eval(pf+'border='+ar[++i]);continue;}
132
if(ar[i]==CELLPAD){i=opt_MULTIPLEARGS(++i,ar,(pf+'cellpad'));continue;}
133
if(ar[i]==STATUS){eval(pf+"status='"+escSglQuote(ar[++i])+"'");continue;}
134
if(ar[i]==AUTOSTATUS){eval(pf+'autostatus=('+pf+'autostatus==1)?0:1');continue;}
135
if(ar[i]==AUTOSTATUSCAP){eval(pf+'autostatus=('+pf+'autostatus==2)?0:2');continue;}
136
if(ar[i]==HEIGHT){eval(pf+'height='+pf+'aboveheight='+ar[++i]);continue;}
137
if(ar[i]==CLOSETEXT){eval(pf+"close='"+escSglQuote(ar[++i])+"'");continue;}
138
if(ar[i]==SNAPX){eval(pf+'snapx='+ar[++i]);continue;}
139
if(ar[i]==SNAPY){eval(pf+'snapy='+ar[++i]);continue;}
140
if(ar[i]==FIXX){eval(pf+'fixx='+ar[++i]);continue;}
141
if(ar[i]==FIXY){eval(pf+'fixy='+ar[++i]);continue;}
142
if(ar[i]==RELX){eval(pf+'relx='+ar[++i]);continue;}
143
if(ar[i]==RELY){eval(pf+'rely='+ar[++i]);continue;}
144
if(ar[i]==FGBACKGROUND){eval(pf+'fgbackground="'+ar[++i]+'"');continue;}
145
if(ar[i]==BGBACKGROUND){eval(pf+'bgbackground="'+ar[++i]+'"');continue;}
146
if(ar[i]==PADX){eval(pf+'padxl='+ar[++i]);eval(pf+'padxr='+ar[++i]);continue;}
147
if(ar[i]==PADY){eval(pf+'padyt='+ar[++i]);eval(pf+'padyb='+ar[++i]);continue;}
148
if(ar[i]==FULLHTML){if(pf!='ol_')eval(pf+'fullhtml=1');continue;}
149
if(ar[i]==BELOW||ar[i]==ABOVE){eval(pf+'vpos='+ar[i]);if(pf!='ol_')olVautoFlag=1;continue;}
150
if(ar[i]==CAPICON){eval(pf+'capicon="'+ar[++i]+'"');continue;}
151
if(ar[i]==TEXTFONT){eval(pf+"textfont='"+escSglQuote(ar[++i])+"'");continue;}
152
if(ar[i]==CAPTIONFONT){eval(pf+"captionfont='"+escSglQuote(ar[++i])+"'");continue;}
153
if(ar[i]==CLOSEFONT){eval(pf+"closefont='"+escSglQuote(ar[++i])+"'");continue;}
154
if(ar[i]==TEXTSIZE){eval(pf+'textsize="'+ar[++i]+'"');continue;}
155
if(ar[i]==CAPTIONSIZE){eval(pf+'captionsize="'+ar[++i]+'"');continue;}
156
if(ar[i]==CLOSESIZE){eval(pf+'closesize="'+ar[++i]+'"');continue;}
157
if(ar[i]==TIMEOUT){eval(pf+'timeout='+ar[++i]);continue;}
158
if(ar[i]==FUNCTION){if(pf=='ol_'){if(typeof ar[i+1]!='number'){v=ar[++i];ol_function=(typeof v=='function'?v:null);}}else{fnMark=0;v=null;if(typeof ar[i+1]!='number')v=ar[++i]; opt_FUNCTION(v);} continue;}
159
if(ar[i]==DELAY){eval(pf+'delay='+ar[++i]);continue;}
160
if(ar[i]==HAUTO){eval(pf+'hauto=('+pf+'hauto==0)?1:0');continue;}
161
if(ar[i]==VAUTO){eval(pf+'vauto=('+pf+'vauto==0)?1:0');continue;}
162
if(ar[i]==CLOSECLICK){eval(pf+'closeclick=('+pf+'closeclick==0)?1:0');continue;}
163
if(ar[i]==WRAP){eval(pf+'wrap=('+pf+'wrap==0)?1:0');continue;}
164
if(ar[i]==FOLLOWMOUSE){eval(pf+'followmouse=('+pf+'followmouse==1)?0:1');continue;}
165
if(ar[i]==MOUSEOFF){eval(pf+'mouseoff=('+pf+'mouseoff==0)?1:0');v=ar[i+1];if(pf!='ol_'&&eval(pf+'mouseoff')&&typeof v=='number'&&(v<pmStart||v>pmUpper))olHideDelay=ar[++i];continue;}
166
if(ar[i]==CLOSETITLE){eval(pf+"closetitle='"+escSglQuote(ar[++i])+"'");continue;}
167
if(ar[i]==CSSOFF||ar[i]==CSSCLASS){eval(pf+'css='+ar[i]);continue;}
168
if(ar[i]==COMPATMODE){eval(pf+'compatmode=('+pf+'compatmode==0)?1:0');continue;}
169
if(ar[i]==FGCLASS){eval(pf+'fgclass="'+ar[++i]+'"');continue;}
170
if(ar[i]==BGCLASS){eval(pf+'bgclass="'+ar[++i]+'"');continue;}
171
if(ar[i]==TEXTFONTCLASS){eval(pf+'textfontclass="'+ar[++i]+'"');continue;}
172
if(ar[i]==CAPTIONFONTCLASS){eval(pf+'captionfontclass="'+ar[++i]+'"');continue;}
173
if(ar[i]==CLOSEFONTCLASS){eval(pf+'closefontclass="'+ar[++i]+'"');continue;}
174
i=parseCmdLine(pf,i,ar);}}
175
if(fnMark&&o3_function)o3_text=o3_function();
176
if((pf=='o3_')&&o3_wrap){o3_width=0;
177
var tReg=/<.*\n*>/ig;if(!tReg.test(o3_text))o3_text=o3_text.replace(/[ ]+/g,'&nbsp;');if(!tReg.test(o3_cap))o3_cap=o3_cap.replace(/[ ]+/g,'&nbsp;');}
178
if((pf=='o3_')&&o3_sticky){if(!o3_close&&(o3_frame!=ol_frame))o3_close=ol_close;if(o3_mouseoff&&(o3_frame==ol_frame))opt_NOCLOSE(' ');}}
179
function layerWrite(txt){txt+="\n";if(olNs4){var lyr=o3_frame.document.layers['overDiv'].document
180
lyr.write(txt)
181
lyr.close()
182
}else if(typeof over.innerHTML!='undefined'){if(olIe5&&isMac)over.innerHTML='';over.innerHTML=txt;}else{range=o3_frame.document.createRange();range.setStartAfter(over);domfrag=range.createContextualFragment(txt);
183
while(over.hasChildNodes()){over.removeChild(over.lastChild);}
184
over.appendChild(domfrag);}}
185
function showObject(obj){runHook("showObject",FBEFORE,obj);
186
var theObj=(olNs4?obj:obj.style);theObj.visibility='visible';
187
runHook("showObject",FAFTER,obj);}
188
function hideObject(obj){runHook("hideObject",FBEFORE,obj);
189
var theObj=(olNs4?obj:obj.style);if(olNs6&&olShowId>0){clearTimeout(olShowId);olShowId=0;}
190
theObj.visibility='hidden';theObj.top=theObj.left=((olIe4&&!olOp)?0:-10000)+(!olNs4?'px':0);
191
if(o3_timerid>0)clearTimeout(o3_timerid);if(o3_delayid>0)clearTimeout(o3_delayid);
192
o3_timerid=0;o3_delayid=0;self.status="";
193
if(obj.onmouseout||obj.onmouseover){if(olNs4)obj.releaseEvents(Event.MOUSEOUT||Event.MOUSEOVER);obj.onmouseout=obj.onmouseover=null;}
194
runHook("hideObject",FAFTER,obj);}
195
function repositionTo(obj,xL,yL){var theObj=(olNs4?obj:obj.style);theObj.left=xL+(!olNs4?'px':0);theObj.top=yL+(!olNs4?'px':0);}
196
function cursorOff(){var left=parseInt(over.style.left);var top=parseInt(over.style.top);var right=left+(over.offsetWidth>=parseInt(o3_width)?over.offsetWidth:parseInt(o3_width));var bottom=top+(over.offsetHeight>=o3_aboveheight?over.offsetHeight:o3_aboveheight);
197
if(o3_x<left||o3_x>right||o3_y<top||o3_y>bottom)return true;
198
return false;}
199
function opt_FUNCTION(callme){o3_text=(callme?(typeof callme=='string'?(/.+\(.*\)/.test(callme)?eval(callme):callme):callme()):(o3_function?o3_function():'No Function'));
200
return 0;}
201
function opt_NOCLOSE(unused){if(!unused)o3_close="";
202
if(olNs4){over.captureEvents(Event.MOUSEOUT||Event.MOUSEOVER);over.onmouseover=function(){if(o3_timerid>0){clearTimeout(o3_timerid);o3_timerid=0;} }
203
over.onmouseout=function(e){if(olHideDelay)hideDelay(olHideDelay);else cClick(e);}
204
}else{over.onmouseover=function(){hoveringSwitch=true;if(o3_timerid>0){clearTimeout(o3_timerid);o3_timerid=0;} }}
205
return 0;}
206
function opt_MULTIPLEARGS(i,args,parameter){var k=i,re,pV,str='';
207
for(k=i;k<args.length;k++){if(typeof args[k]=='number'&&args[k]>pmStart)break;str+=args[k]+',';}
208
if(str)str=str.substring(0,--str.length);
209
k--;pV=(olNs4&&/cellpad/i.test(parameter))?str.split(',')[0]:str;eval(parameter+'="'+pV+'"');
210
return k;}
211
function nbspCleanup(){if(o3_wrap){o3_text=o3_text.replace(/\&nbsp;/g,' ');o3_cap=o3_cap.replace(/\&nbsp;/g,' ');}}
212
function escSglQuote(str){return str.toString().replace(/'/g,"\\'");}
213
function OLonLoad_handler(e){var re=/\w+\(.*\)[;\s]+/g,olre=/overlib\(|nd\(|cClick\(/,fn,l,i;
214
if(!olLoaded)olLoaded=1;
215
if(window.removeEventListener&&e.eventPhase==3)window.removeEventListener("load",OLonLoad_handler,false);else if(window.detachEvent){window.detachEvent("onload",OLonLoad_handler);var fN=document.body.getAttribute('onload');if(fN){fN=fN.toString().match(re);if(fN&&fN.length){for(i=0;i<fN.length;i++){if(/anonymous/.test(fN[i]))continue;while((l=fN[i].search(/\)[;\s]+/))!=-1){fn=fN[i].substring(0,l+1);fN[i]=fN[i].substring(l+2);if(olre.test(fn))eval(fn);}}}}}}
216
function wrapStr(endWrap,fontSizeStr,whichString){var fontStr,fontColor,isClose=((whichString=='close')?1:0),hasDims=/[%\-a-z]+$/.test(fontSizeStr);fontSizeStr=(olNs4)?(!hasDims?fontSizeStr:'1'):fontSizeStr;if(endWrap)return(hasDims&&!olNs4)?(isClose?'</span>':'</div>'):'</font>';else{fontStr='o3_'+whichString+'font';fontColor='o3_'+((whichString=='caption')? 'cap':whichString)+'color';return(hasDims&&!olNs4)?(isClose?'<span style="font-family: '+quoteMultiNameFonts(eval(fontStr))+';color: '+eval(fontColor)+';font-size: '+fontSizeStr+';">':'<div style="font-family: '+quoteMultiNameFonts(eval(fontStr))+';color: '+eval(fontColor)+';font-size: '+fontSizeStr+';">'):'<font face="'+eval(fontStr)+'" color="'+eval(fontColor)+'" size="'+(parseInt(fontSizeStr)>7?'7':fontSizeStr)+'">';}}
217
function quoteMultiNameFonts(theFont){var v,pM=theFont.split(',');for(var i=0;i<pM.length;i++){v=pM[i];v=v.replace(/^\s+/,'').replace(/\s+$/,'');if(/\s/.test(v)&&!/['"]/.test(v)){v="\'"+v+"\'";pM[i]=v;}}
218
return pM.join();}
219
function isExclusive(args){return false;}
220
function setCellPadStr(parameter){var Str='',j=0,ary=new Array(),top,bottom,left,right;
221
Str+='padding: ';ary=parameter.replace(/\s+/g,'').split(',');
222
switch(ary.length){case 2:
223
top=bottom=ary[j];left=right=ary[++j];break;case 3:
224
top=ary[j];left=right=ary[++j];bottom=ary[++j];break;case 4:
225
top=ary[j];right=ary[++j];bottom=ary[++j];left=ary[++j];break;}
226
Str+=((ary.length==1)?ary[0]+'px;':top+'px '+right+'px '+bottom+'px '+left+'px;');
227
return Str;}
228
function hideDelay(time){if(time&&!o3_delay){if(o3_timerid>0)clearTimeout(o3_timerid);
229
o3_timerid=setTimeout("cClick()",(o3_timeout=time));}}
230
function horizontalPlacement(browserWidth,horizontalScrollAmount,widthFix){var placeX,iwidth=browserWidth,winoffset=horizontalScrollAmount;var parsedWidth=parseInt(o3_width);
231
if(o3_fixx>-1||o3_relx!=null){
232
placeX=(o3_relx!=null?( o3_relx<0?winoffset+o3_relx+iwidth-parsedWidth-widthFix:winoffset+o3_relx):o3_fixx);}else{
233
if(o3_hauto==1){if((o3_x-winoffset)>(iwidth/2)&&o3_hpos==RIGHT&&((o3_x-winoffset)-(parsedWidth+o3_offsetx-iwidth>(iwidth-widthFix)))){o3_hpos=LEFT;}else if(o3_hpos==LEFT&&((o3_x-o3_offsetx-parsedWidth)<winoffset)){o3_hpos=RIGHT;}}
234
if(o3_hpos==CENTER){placeX=o3_x+o3_offsetx-(parsedWidth/2);
235
if(placeX<winoffset)placeX=winoffset;}
236
if(o3_hpos==RIGHT){placeX=o3_x+o3_offsetx;
237
if((placeX+parsedWidth)>(winoffset+iwidth-widthFix)){placeX=iwidth+winoffset-parsedWidth-widthFix;if(placeX<0)placeX=0;}}
238
if(o3_hpos==LEFT){placeX=o3_x-o3_offsetx-parsedWidth;if(placeX<winoffset)placeX=winoffset;}
239
if(o3_snapx>1){var snapping=placeX % o3_snapx;
240
if(o3_hpos==LEFT){placeX=placeX-(o3_snapx+snapping);}else{
241
placeX=placeX+(o3_snapx-snapping);}
242
if(placeX<winoffset)placeX=winoffset;}}
243
return placeX;}
244
function verticalPlacement(browserHeight,verticalScrollAmount){var placeY,iheight=browserHeight,scrolloffset=verticalScrollAmount;var parsedHeight=(o3_aboveheight?parseInt(o3_aboveheight):(olNs4?over.clip.height:over.offsetHeight));
245
if(o3_fixy>-1||o3_rely!=null){
246
placeY=(o3_rely!=null?(o3_rely<0?scrolloffset+o3_rely+iheight-parsedHeight:scrolloffset+o3_rely):o3_fixy);}else{
247
if(o3_vauto==1){if((o3_y-scrolloffset)>(iheight/2)&&o3_vpos==BELOW&&(o3_y+parsedHeight+o3_offsety-(scrolloffset+iheight)>0)){o3_vpos=ABOVE;}else if(o3_vpos==ABOVE&&(o3_y-(parsedHeight+o3_offsety)-scrolloffset<0)){o3_vpos=BELOW;}}
248
if(o3_vpos==ABOVE){if(o3_aboveheight==0)o3_aboveheight=parsedHeight;
249
placeY=o3_y-(o3_aboveheight+o3_offsety);if(placeY<scrolloffset)placeY=scrolloffset;}else{
250
placeY=o3_y+o3_offsety;}
251
if(o3_snapy>1){var snapping=placeY % o3_snapy;
252
if(o3_aboveheight>0&&o3_vpos==ABOVE){placeY=placeY-(o3_snapy+snapping);}else{placeY=placeY+(o3_snapy-snapping);}
253
if(placeY<scrolloffset)placeY=scrolloffset;}}
254
return placeY;}
255
function checkPositionFlags(){if(olHautoFlag)olHautoFlag=o3_hauto=0;if(olVautoFlag)olVautoFlag=o3_vauto=0;return true;}
256
function windowWidth(){var w;if(o3_frame.innerWidth)w=o3_frame.innerWidth;else if(eval('o3_frame.'+docRoot)&&eval("typeof o3_frame."+docRoot+".clientWidth=='number'")&&eval('o3_frame.'+docRoot+'.clientWidth'))
257
w=eval('o3_frame.'+docRoot+'.clientWidth');return w;}
258
function createDivContainer(id,frm,zValue){id=(id||'overDiv'),frm=(frm||o3_frame),zValue=(zValue||1000);var objRef,divContainer=layerReference(id);
259
if(divContainer==null){if(olNs4){divContainer=frm.document.layers[id]=new Layer(window.innerWidth,frm);objRef=divContainer;}else{var body=(olIe4?frm.document.all.tags('BODY')[0]:frm.document.getElementsByTagName("BODY")[0]);if(olIe4&&!document.getElementById){body.insertAdjacentHTML("beforeEnd",'<div id="'+id+'"></div>');divContainer=layerReference(id);}else{divContainer=frm.document.createElement("DIV");divContainer.id=id;body.appendChild(divContainer);}
260
objRef=divContainer.style;}
261
objRef.position='absolute';objRef.visibility='hidden';objRef.zIndex=zValue;if(olIe4&&!olOp)objRef.left=objRef.top='0px';else objRef.left=objRef.top=-10000+(!olNs4?'px':0);}
262
return divContainer;}
263
function layerReference(id){return(olNs4?o3_frame.document.layers[id]:(document.all?o3_frame.document.all[id]:o3_frame.document.getElementById(id)));}
264
function isFunction(fnRef){var rtn=true;
265
if(typeof fnRef=='object'){for(var i=0;i<fnRef.length;i++){if(typeof fnRef[i]=='function')continue;rtn=false;break;}
266
}else if(typeof fnRef!='function'){rtn=false;}
267
return rtn;}
268
function argToString(array,strtInd,argName){var jS=strtInd,aS='',ar=array;argName=(argName?argName:'ar');
269
if(ar.length>jS){for(var k=jS;k<ar.length;k++)aS+=argName+'['+k+'], ';aS=aS.substring(0,aS.length-2);}
270
return aS;}
271
function reOrder(hookPt,fnRef,order){var newPt=new Array(),match,i,j;
272
if(!order||typeof order=='undefined'||typeof order=='number')return hookPt;
273
if(typeof order=='function'){if(typeof fnRef=='object'){newPt=newPt.concat(fnRef);}else{newPt[newPt.length++]=fnRef;}
274
for(i=0;i<hookPt.length;i++){match=false;if(typeof fnRef=='function'&&hookPt[i]==fnRef){continue;}else{for(j=0;j<fnRef.length;j++)if(hookPt[i]==fnRef[j]){match=true;break;}}
275
if(!match)newPt[newPt.length++]=hookPt[i];}
276
newPt[newPt.length++]=order;
277
}else if(typeof order=='object'){if(typeof fnRef=='object'){newPt=newPt.concat(fnRef);}else{newPt[newPt.length++]=fnRef;}
278
for(j=0;j<hookPt.length;j++){match=false;if(typeof fnRef=='function'&&hookPt[j]==fnRef){continue;}else{for(i=0;i<fnRef.length;i++)if(hookPt[j]==fnRef[i]){match=true;break;}}
279
if(!match)newPt[newPt.length++]=hookPt[j];}
280
for(i=0;i<newPt.length;i++)hookPt[i]=newPt[i];newPt.length=0;
281
for(j=0;j<hookPt.length;j++){match=false;for(i=0;i<order.length;i++){if(hookPt[j]==order[i]){match=true;break;}}
282
if(!match)newPt[newPt.length++]=hookPt[j];}
283
newPt=newPt.concat(order);}
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff