punbb-1.4.1/admin/extensions.php |
punbb-1.4.2/admin/extensions.php |
4: * | 4: * |
5: * Allows administrators to control the extensions and hotfixes installed in the site. | 5: * Allows administrators to control the extensions and hotfixes installed in the site. |
6: * | 6: * |
7: * @copyright (C) 2008-2011 PunBB, partially based on code (C) 2008-2009 FluxBB.org | 7: * @copyright (C) 2008-2012 PunBB, partially based on code (C) 2008-2009 FluxBB.org |
8: * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher | 8: * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher |
9: * @package PunBB | 9: * @package PunBB |
10: */ | 10: */ |
62: if (!empty($errors)) | 62: if (!empty($errors)) |
63: message(isset($_GET['install']) ? $lang_common['Bad request'] : $lang_admin_ext['Hotfix download failed']); | 63: message(isset($_GET['install']) ? $lang_common['Bad request'] : $lang_admin_ext['Hotfix download failed']); |
64: | 64: |
| 65: // Get core amd major versions |
| 66: if (!defined('FORUM_DISABLE_EXTENSIONS_VERSION_CHECK')) |
| 67: { |
| 68: list($forum_version_core, $forum_version_major) = explode('.', clean_version($forum_config['o_cur_version'])); |
| 69: list($extension_maxtestedon_version_core, $extension_maxtestedon_version_major) = explode('.', clean_version($ext_data['extension']['maxtestedon'])); |
| 70: |
| 71: if (version_compare($forum_version_core.'.'.$forum_version_major, $extension_maxtestedon_version_core.'.'.$extension_maxtestedon_version_major, '>')) |
| 72: message($lang_admin_ext['Maxtestedon error']); |
| 73: } |
| 74: |
65: // Make sure we have an array of dependencies | 75: // Make sure we have an array of dependencies |
66: if (!isset($ext_data['extension']['dependencies']['dependency'])) | 76: if (!isset($ext_data['extension']['dependencies']['dependency'])) |
67: $ext_data['extension']['dependencies'] = array(); | 77: $ext_data['extension']['dependencies'] = array(); |
192: if (isset($ext_data['extension']['hooks']['hook'])) | 202: if (isset($ext_data['extension']['hooks']['hook'])) |
193: { | 203: { |
194: foreach ($ext_data['extension']['hooks']['hook'] as $ext_hook) | 204: foreach ($ext_data['extension']['hooks']['hook'] as $ext_hook) |
195: { | 205: { |
196: $cur_hooks = explode(',', $ext_hook['attributes']['id']); | 206: $cur_hooks = explode(',', $ext_hook['attributes']['id']); |
197: foreach ($cur_hooks as $cur_hook) | 207: foreach ($cur_hooks as $cur_hook) |
198: { | 208: { |
205: ($hook = get_hook('aex_install_comply_qr_add_hook')) ? eval($hook) : null; | 215: ($hook = get_hook('aex_install_comply_qr_add_hook')) ? eval($hook) : null; |
206: $forum_db->query_build($query) or error(__FILE__, __LINE__); | 216: $forum_db->query_build($query) or error(__FILE__, __LINE__); |
207: } | 217: } |
208: } | 218: } |
209: } | 219: } |
210: | 220: |
211: // Empty the PHP cache | 221: // Empty the PHP cache |
212: forum_clear_cache(); | 222: forum_clear_cache(); |
308: <div class="ct-set data-set set1"> | 318: <div class="ct-set data-set set1"> |
309: <div class="ct-box data-box"> | 319: <div class="ct-box data-box"> |
310: <h3 class="ct-legend hn"><span><?php echo forum_htmlencode($ext_data['extension']['title']) ?></span></h3> | 320: <h3 class="ct-legend hn"><span><?php echo forum_htmlencode($ext_data['extension']['title']) ?></span></h3> |
311: <p><?php echo ((strpos($id, 'hotfix_') !== 0) ? sprintf($lang_admin_ext['Version'], $ext_data['extension']['version']) : $lang_admin_ext['Hotfix']) ?></p> | 321: <p><?php echo ((strpos($id, 'hotfix_') !== 0) ? sprintf($lang_admin_ext['Version'], $ext_data['extension']['version']) : $lang_admin_ext['Hotfix']) ?></p> |
312: <p><?php printf($lang_admin_ext['Extension by'], forum_htmlencode($ext_data['extension']['author'])) ?></p> | 322: <p><?php printf($lang_admin_ext['Extension by'], forum_htmlencode($ext_data['extension']['author'])) ?></p> |
313: <p><?php echo forum_htmlencode($ext_data['extension']['description']) ?></p> | 323: <p><?php echo forum_htmlencode($ext_data['extension']['description']) ?></p> |
314: </div> | 324: </div> |
562: <p class="warn"><?php echo $lang_admin_ext['Installed extensions warn'] ?></p> | 572: <p class="warn"><?php echo $lang_admin_ext['Installed extensions warn'] ?></p> |
563: </div> | 573: </div> |
564: <?php endif; ?> <div class="frm-buttons"> | 574: <?php endif; ?> <div class="frm-buttons"> |
565: <span class="submit primary"><input type="submit" name="uninstall_comply" value="<?php echo $lang_admin_ext['Uninstall'] ?>" /></span> | 575: <span class="submit primary caution"><input type="submit" name="uninstall_comply" value="<?php echo $lang_admin_ext['Uninstall'] ?>" /></span> |
566: <span class="cancel"><input type="submit" name="uninstall_cancel" value="<?php echo $lang_admin_common['Cancel'] ?>" /></span> | 576: <span class="cancel"><input type="submit" name="uninstall_cancel" value="<?php echo $lang_admin_common['Cancel'] ?>" /></span> |
567: </div> | 577: </div> |
568: </form> | 578: </form> |
757: { | 767: { |
758: if (!array_key_exists($hotfix['attributes']['id'], $inst_exts)) | 768: if (!array_key_exists($hotfix['attributes']['id'], $inst_exts)) |
759: { | 769: { |
760: $forum_page['ext_item'][] = '<div class="ct-box info-box hotfix available">'."\n\t\t\t".'<h3 class="ct-legend hn"><span>'.forum_htmlencode($hotfix['content']).'</span></h3>'."\n\t\t\t".'<ul>'."\n\t\t\t\t".'<li><span>'.sprintf($lang_admin_ext['Extension by'], 'PunBB').'</span></li>'."\n\t\t\t\t".'<li><span>'.$lang_admin_ext['Hotfix description'].'</span></li>'."\n\t\t\t".'</ul>'."\n\t\t\t\t".'<p class="options"><span class="first-item"><a href="'.$base_url.'/admin/extensions.php?install_hotfix='.urlencode($hotfix['attributes']['id']).'">'.$lang_admin_ext['Install hotfix'].'</a></span></p>'."\n\t\t".'</div>'; | 770: $forum_page['ext_item'][] = '<div class="ct-box info-box hotfix available">'."\n\t\t\t".'<h3 class="ct-legend hn">'.forum_htmlencode($hotfix['content']).'</h3>'."\n\t\t\t".'<ul>'."\n\t\t\t\t".'<li><span>'.sprintf($lang_admin_ext['Extension by'], 'PunBB').'</span></li>'."\n\t\t\t\t".'<li><span>'.$lang_admin_ext['Hotfix description'].'</span></li>'."\n\t\t\t".'</ul>'."\n\t\t\t\t".'<p class="options"><span class="first-item"><a href="'.$base_url.'/admin/extensions.php?install_hotfix='.urlencode($hotfix['attributes']['id']).'">'.$lang_admin_ext['Install hotfix'].'</a></span></p>'."\n\t\t".'</div>'; |
761: ++$num_exts; | 771: ++$num_exts; |
762: } | 772: } |
763: } | 773: } |
810: <ul class="data-list"> | 820: <ul class="data-list"> |
811: <li><span><?php echo ((strpos($id, 'hotfix_') !== 0) ? sprintf($lang_admin_ext['Version'], $ext['version']) : $lang_admin_ext['Hotfix']) ?></span></li> | 821: <li><span><?php echo ((strpos($id, 'hotfix_') !== 0) ? sprintf($lang_admin_ext['Version'], $ext['version']) : $lang_admin_ext['Hotfix']) ?></span></li> |
812: <li><span><?php printf($lang_admin_ext['Extension by'], forum_htmlencode($ext['author'])) ?></span></li> | 822: <li><span><?php printf($lang_admin_ext['Extension by'], forum_htmlencode($ext['author'])) ?></span></li> |
813: <?php if ($ext['description'] != ''): ?> <li><span><?php echo forum_htmlencode($ext['description']) ?></span></li> | 823: <?php if ($ext['description'] != ''): ?> |
814: <?php endif; ?> </ul> | 824: <li><span><?php echo forum_htmlencode($ext['description']) ?></span></li> |
| 825: <?php endif; ?> |
| 826: </ul> |
815: <p class="options"><?php echo implode(' ', $forum_page['ext_actions']) ?></p> | 827: <p class="options"><?php echo implode(' ', $forum_page['ext_actions']) ?></p> |
816: </div> | 828: </div> |
817: <?php | 829: <?php |
848: if ($forum_config['o_check_for_versions'] == 1) | 860: if ($forum_config['o_check_for_versions'] == 1) |
849: { | 861: { |
850: // Check for the new versions of the extensions istalled | 862: // Check for the new versions of the extensions istalled |
851: | 863: $repository_urls = array('http://punbb.informer.com/extensions/1.4'); |
852: $repository_urls = array('http://punbb.informer.com/extensions'); | |
853: ($hook = get_hook('aex_add_extensions_repository')) ? eval($hook) : null; | 864: ($hook = get_hook('aex_add_extensions_repository')) ? eval($hook) : null; |
854: | 865: |
855: $repository_url_by_extension = array(); | 866: $repository_url_by_extension = array(); |
859: if (is_readable(FORUM_CACHE_DIR.'cache_ext_version_notifications.php')) | 870: if (is_readable(FORUM_CACHE_DIR.'cache_ext_version_notifications.php')) |
860: include FORUM_CACHE_DIR.'cache_ext_version_notifications.php'; | 871: include FORUM_CACHE_DIR.'cache_ext_version_notifications.php'; |
861: | 872: |
862: //Get latest timestamp in cache | 873: // Get latest timestamp in cache |
863: if (isset($forum_ext_repos)) | 874: if (isset($forum_ext_repos)) |
864: { | 875: { |
865: $min_timestamp = 10000000000; | 876: $min_timestamp = 10000000000; |
866: foreach ( $forum_ext_repos as $rep) | 877: foreach ($forum_ext_repos as $rep) |
867: $min_timestamp = min($min_timestamp, $rep['timestamp']); | 878: $min_timestamp = min($min_timestamp, $rep['timestamp']); |
868: } | 879: } |
869: | 880: |
870: $update_hour = (isset($forum_ext_versions_update_cache) && (time() - $forum_ext_versions_update_cache > 60 * 60)); | 881: $update_hour = (isset($forum_ext_versions_update_cache) && (time() - $forum_ext_versions_update_cache > 60 * 60)); |
871: | 882: |
872: // Update last versions if there is no cahe or some extension was added/removed or one day has gone since last update | 883: // Update last versions if there is no cahe or some extension was added/removed or one day has gone since last update |
873: $update_new_versions_cache = !defined('FORUM_EXT_VERSIONS_LOADED') || (isset($forum_ext_last_versions) && array_diff($inst_exts, $forum_ext_last_versions) != array()) || $update_hour || ( $update_hour && isset($min_timestamp) && (time() - $min_timestamp > 60*60*24)); | 884: $update_new_versions_cache = !defined('FORUM_EXT_VERSIONS_LOADED') || (isset($forum_ext_last_versions) && array_diff($inst_exts, $forum_ext_last_versions) != array()) || $update_hour || ($update_hour && isset($min_timestamp) && (time() - $min_timestamp > 60*60*24)); |
874: | 885: |
875: ($hook = get_hook('aex_before_update_checking')) ? eval($hook) : null; | 886: ($hook = get_hook('aex_before_update_checking')) ? eval($hook) : null; |
876: | 887: |
954: { | 965: { |
955: if (!array_key_exists($entry, $inst_exts) || version_compare($inst_exts[$entry]['version'], $ext_data['extension']['version'], '!=')) | 966: if (!array_key_exists($entry, $inst_exts) || version_compare($inst_exts[$entry]['version'], $ext_data['extension']['version'], '!=')) |
956: { | 967: { |
957: $forum_page['ext_item'][] = '<div class="ct-box info-box extension available">'."\n\t\t\t".'<h3 class="ct-legend hn"><span>'.forum_htmlencode($ext_data['extension']['title']).'</span></h3>'."\n\t\t\t".'<ul class="data-list">'."\n\t\t\t\t".'<li><span>'.sprintf($lang_admin_ext['Version'], $ext_data['extension']['version']).'</span></li>'."\n\t\t\t\t".'<li><span>'.sprintf($lang_admin_ext['Extension by'], forum_htmlencode($ext_data['extension']['author'])).'</span></li>'.(($ext_data['extension']['description'] != '') ? "\n\t\t\t\t".'<li><span>'.forum_htmlencode($ext_data['extension']['description']).'</span></li>' : '')."\n\t\t\t".'</ul>'."\n\t\t\t".'<p class="options"><span class="first-item"><a href="'.$base_url.'/admin/extensions.php?install='.urlencode($entry).'">'.(isset($inst_exts[$entry]['version']) ? $lang_admin_ext['Upgrade extension'] : $lang_admin_ext['Install extension']).'</a></span></p>'."\n\t\t".'</div>'; | 968: $forum_page['ext_item'][] = '<div class="ct-box info-box extension available">'."\n\t\t\t".'<h3 class="ct-legend hn">'.forum_htmlencode($ext_data['extension']['title']).' <em>'.$ext_data['extension']['version'].'</em></h3>'."\n\t\t\t".'<ul class="data-list">'."\n\t\t\t\t".'<li><span>'.sprintf($lang_admin_ext['Extension by'], forum_htmlencode($ext_data['extension']['author'])).'</span></li>'.(($ext_data['extension']['description'] != '') ? "\n\t\t\t\t".'<li><span>'.forum_htmlencode($ext_data['extension']['description']).'</span></li>' : '')."\n\t\t\t".'</ul>'."\n\t\t\t".'<p class="options"><span class="first-item"><a href="'.$base_url.'/admin/extensions.php?install='.urlencode($entry).'">'.(isset($inst_exts[$entry]['version']) ? $lang_admin_ext['Upgrade extension'] : $lang_admin_ext['Install extension']).'</a></span></p>'."\n\t\t".'</div>'; |
958: ++$num_exts; | 969: ++$num_exts; |
959: } | 970: } |
960: } | 971: } |
1021: ($hook = get_hook('aex_section_manage_pre_ext_actions')) ? eval($hook) : null; | 1032: ($hook = get_hook('aex_section_manage_pre_ext_actions')) ? eval($hook) : null; |
1022: | 1033: |
1023: if ($ext['disabled'] == '1') | 1034: if ($ext['disabled'] == '1') |
1024: $forum_page['ext_item'][] = '<div class="ct-box info-box extension disabled">'."\n\t\t".'<h3 class="ct-legend hn"><span>'.forum_htmlencode($ext['title']).' ( <span>'.$lang_admin_ext['Extension disabled'].'</span> )</span></h3>'."\n\t\t".'<ul class="data-list">'."\n\t\t\t".'<li><span>'.sprintf($lang_admin_ext['Version'], $ext['version']).'</span></li>'."\n\t\t\t".'<li><span>'.sprintf($lang_admin_ext['Extension by'], forum_htmlencode($ext['author'])).'</span></li>'."\n\t\t\t".(($ext['description'] != '') ? '<li><span>'.forum_htmlencode($ext['description']).'</span></li>' : '')."\n\t\t\t".'</ul>'."\n\t\t".'<p class="options">'.implode(' ', $forum_page['ext_actions']).'</p>'."\n\t".'</div>'; | 1035: $forum_page['ext_item'][] = '<div class="ct-box info-box extension disabled">'."\n\t\t".'<h3 class="ct-legend hn">'.forum_htmlencode($ext['title']).' <em>'.$ext['version'].'</em> ('.$lang_admin_ext['Extension disabled'].')</h3>'."\n\t\t".'<ul class="data-list">'."\n\t\t\t".'<li><span>'.sprintf($lang_admin_ext['Extension by'], forum_htmlencode($ext['author'])).'</span></li>'."\n\t\t\t".(($ext['description'] != '') ? '<li><span>'.forum_htmlencode($ext['description']).'</span></li>' : '')."\n\t\t\t".'</ul>'."\n\t\t".'<p class="options">'.implode(' ', $forum_page['ext_actions']).'</p>'."\n\t".'</div>'; |
1025: else | 1036: else |
1026: $forum_page['ext_item'][] = '<div class="ct-box info-box extension enabled">'."\n\t\t".'<h3 class="ct-legend hn"><span>'.forum_htmlencode($ext['title']).'</span></h3>'."\n\t\t".'<ul class="data-list">'."\n\t\t\t".'<li><span>'.sprintf($lang_admin_ext['Version'], $ext['version']).'</span></li>'."\n\t\t\t".'<li><span>'.sprintf($lang_admin_ext['Extension by'], forum_htmlencode($ext['author'])).'</span></li>'."\n\t\t\t".(($ext['description'] != '') ? '<li><span>'.forum_htmlencode($ext['description']).'</span></li>' : '')."\n\t\t".'</ul>'."\n\t\t".'<p class="options">'.implode(' ', $forum_page['ext_actions']).'</p>'."\n\t".'</div>'; | 1037: $forum_page['ext_item'][] = '<div class="ct-box info-box extension enabled">'."\n\t\t".'<h3 class="ct-legend hn">'.forum_htmlencode($ext['title']).' <em>'.$ext['version'].'</em></h3>'."\n\t\t".'<ul class="data-list">'."\n\t\t\t".'<li><span>'.sprintf($lang_admin_ext['Extension by'], forum_htmlencode($ext['author'])).'</span></li>'."\n\t\t\t".(($ext['description'] != '') ? '<li><span>'.forum_htmlencode($ext['description']).'</span></li>' : '')."\n\t\t".'</ul>'."\n\t\t".'<p class="options">'.implode(' ', $forum_page['ext_actions']).'</p>'."\n\t".'</div>'; |
1027: | 1038: |
1028: $installed_count++; | 1039: $installed_count++; |
1029: } | 1040: } |
punbb-1.4.1/admin/install.php |
punbb-1.4.2/admin/install.php |
4: * | 4: * |
5: * Used to actually install PunBB. | 5: * Used to actually install PunBB. |
6: * | 6: * |
7: * @copyright (C) 2008-2011 PunBB, partially based on code (C) 2008-2009 FluxBB.org | 7: * @copyright (C) 2008-2012 PunBB, partially based on code (C) 2008-2009 FluxBB.org |
8: * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher | 8: * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher |
9: * @package PunBB | 9: * @package PunBB |
10: */ | 10: */ |
11: | 11: |
12: | 12: |
13: define('FORUM_VERSION', '1.4.1'); | 13: define('FORUM_VERSION', '1.4.2'); |
14: define('FORUM_DB_REVISION', 5); | 14: define('FORUM_DB_REVISION', 5); |
15: define('MIN_PHP_VERSION', '5.0.0'); | 15: define('MIN_PHP_VERSION', '5.0.0'); |
16: define('MIN_MYSQL_VERSION', '4.1.2'); | 16: define('MIN_MYSQL_VERSION', '4.1.2'); |
64: $config_body .= "\n\n// Disable forum hooks (extensions) by removing // from the following line\n//define('FORUM_DISABLE_HOOKS', 1);"; | 64: $config_body .= "\n\n// Disable forum hooks (extensions) by removing // from the following line\n//define('FORUM_DISABLE_HOOKS', 1);"; |
65: $config_body .= "\n\n// Disable forum output buffering by removing // from the following line\n//define('FORUM_DISABLE_BUFFERING', 1);"; | 65: $config_body .= "\n\n// Disable forum output buffering by removing // from the following line\n//define('FORUM_DISABLE_BUFFERING', 1);"; |
66: $config_body .= "\n\n// Disable forum async JS loader by removing // from the following line\n//define('FORUM_DISABLE_ASYNC_JS_LOADER', 1);"; | 66: $config_body .= "\n\n// Disable forum async JS loader by removing // from the following line\n//define('FORUM_DISABLE_ASYNC_JS_LOADER', 1);"; |
| 67: $config_body .= "\n\n// Disable forum extensions version check by removing // from the following line\n//define('FORUM_DISABLE_EXTENSIONS_VERSION_CHECK', 1);"; |
67: | 68: |
68: return $config_body; | 69: return $config_body; |
69: } | 70: } |
142: <!--[if IE 8 ]> <html class="oldie ie8" lang="en" dir="ltr"> <![endif]--> | 143: <!--[if IE 8 ]> <html class="oldie ie8" lang="en" dir="ltr"> <![endif]--> |
143: <!--[if gt IE 8]><!--> <html lang="en" dir="ltr"> <!--<![endif]--> | 144: <!--[if gt IE 8]><!--> <html lang="en" dir="ltr"> <!--<![endif]--> |
144: <head> | 145: <head> |
145: <meta charset="utf-8"/> | 146: <meta charset="utf-8" /> |
146: <title>PunBB Installation</title> | 147: <title>PunBB Installation</title> |
147: <link rel="stylesheet" type="text/css" href="<?php echo FORUM_ROOT ?>style/Oxygen/min/Oxygen.min.css" /> | 148: <link rel="stylesheet" type="text/css" href="<?php echo FORUM_ROOT ?>style/Oxygen/Oxygen.min.css" /> |
148: </head> | 149: </head> |
149: <body> | 150: <body> |
150: <div id="brd-install" class="brd-page"> | 151: <div id="brd-install" class="brd-page"> |
187: </div> | 188: </div> |
188: </fieldset> | 189: </fieldset> |
189: <div class="frm-buttons"> | 190: <div class="frm-buttons"> |
190: <span class="submit"><input type="submit" name="changelang" value="<?php echo $lang_install['Choose language'] ?>" /></span> | 191: <span class="submit primary"><input type="submit" name="changelang" value="<?php echo $lang_install['Choose language'] ?>" /></span> |
191: </div> | 192: </div> |
192: </div> | 193: </div> |
193: </form> | 194: </form> |
195: | 196: |
196: } | 197: } |
197: | 198: |
198: ?> <form class="frm-form" method="post" accept-charset="utf-8" action="install.php"> | 199: ?> <form class="frm-form frm-suggest-username" method="post" accept-charset="utf-8" action="install.php"> |
199: <div class="hidden"> | 200: <div class="hidden"> |
200: <input type="hidden" name="form_sent" value="1" /> | 201: <input type="hidden" name="form_sent" value="1" /> |
201: </div> | 202: </div> |
214: </ul> | 215: </ul> |
215: </div> | 216: </div> |
216: <div id="req-msg" class="req-warn ct-box error-box"> | 217: <div id="req-msg" class="req-warn ct-box error-box"> |
217: <p class="important"><?php echo $lang_install['Required warn']; ?></p> | 218: <p class="important"><?php echo $lang_install['Required warn'] ?></p> |
218: </div> | 219: </div> |
219: <fieldset class="frm-group group1"> | 220: <fieldset class="frm-group group1"> |
220: <legend class="group-legend"><strong><?php echo $lang_install['Part1 legend'] ?></strong></legend> | 221: <legend class="group-legend"><strong><?php echo $lang_install['Part1 legend'] ?></strong></legend> |
230: ?> </select></span> | 231: ?> </select></span> |
231: </div> | 232: </div> |
232: </div> | 233: </div> |
233: <div class="sf-set set1"> | 234: <div class="sf-set set1" id="db_host_block"> |
234: <div class="sf-box text required"> | 235: <div class="sf-box text required"> |
235: <label for="fld2"><span><?php echo $lang_install['Database server'] ?></span> <small><?php echo $lang_install['Database server help'] ?></small></label><br /> | 236: <label for="db_host"><span><?php echo $lang_install['Database server'] ?></span> <small><?php echo $lang_install['Database server help'] ?></small></label><br /> |
236: <span class="fld-input"><input id="fld2" type="text" name="req_db_host" value="localhost" size="35" maxlength="100" required /></span> | 237: <span class="fld-input"><input id="db_host" type="text" name="req_db_host" value="localhost" size="35" maxlength="100" required /></span> |
237: </div> | 238: </div> |
238: </div> | 239: </div> |
239: <div class="sf-set set2"> | 240: <div class="sf-set set2"> |
272: </div> | 273: </div> |
273: <fieldset class="frm-group group1"> | 274: <fieldset class="frm-group group1"> |
274: <legend class="group-legend"><strong><?php echo $lang_install['Part2 legend'] ?></strong></legend> | 275: <legend class="group-legend"><strong><?php echo $lang_install['Part2 legend'] ?></strong></legend> |
275: <div class="sf-set set1"> | 276: <div class="sf-set set4"> |
276: <div class="sf-box text required"> | 277: <div class="sf-box text required"> |
277: <label for="fld7"><span><?php echo $lang_install['Admin username'] ?></span> <small><?php echo $lang_install['Username help'] ?></small></label><br /> | 278: <label for="admin_email"><span><?php echo $lang_install['Admin e-mail'] ?></span> <small><?php echo $lang_install['E-mail address help'] ?></small></label><br /> |
278: <span class="fld-input"><input id="fld7" type="text" name="req_username" size="35" maxlength="25" required /></span> | 279: <span class="fld-input"><input id="admin_email" type="email" data-suggest-role="email" name="req_email" size="35" maxlength="80" required /></span> |
279: </div> | 280: </div> |
280: </div> | 281: </div> |
281: <div class="sf-set set2"> | 282: <div class="sf-set set1 prepend-top"> |
282: <div class="sf-box text required"> | 283: <div class="sf-box text required"> |
283: <label for="fld8"><span><?php echo $lang_install['Admin password'] ?></span> <small><?php echo $lang_install['Password help'] ?></small></label><br /> | 284: <label for="admin_username"><span><?php echo $lang_install['Admin username'] ?></span> <small><?php echo $lang_install['Username help'] ?></small></label><br /> |
284: <span class="fld-input"><input id="fld8" type="text" name="req_password1" size="35" required autocomplete="off" /></span> | 285: <span class="fld-input"><input id="admin_username" type="text" data-suggest-role="username" name="req_username" size="35" maxlength="25" required /></span> |
285: </div> | 286: </div> |
286: </div> | 287: </div> |
287: <div class="sf-set set4 prepend-top"> | 288: <div class="sf-set set2"> |
288: <div class="sf-box text required"> | 289: <div class="sf-box text required"> |
289: <label for="fld9"><span><?php echo $lang_install['Admin e-mail'] ?></span> <small><?php echo $lang_install['E-mail address help'] ?></small></label><br /> | 290: <label for="fld8"><span><?php echo $lang_install['Admin password'] ?></span> <small><?php echo $lang_install['Password help'] ?></small></label><br /> |
290: <span class="fld-input"><input id="fld9" type="email" name="req_email" size="35" maxlength="80" required /></span> | 291: <span class="fld-input"><input id="fld8" type="text" name="req_password1" size="35" required autocomplete="off" /></span> |
291: </div> | 292: </div> |
292: </div> | 293: </div> |
293: </fieldset> | 294: </fieldset> |
334: { | 335: { |
335: | 336: |
336: ?> <div class="hidden"> | 337: ?> <div class="hidden"> |
337: <input type="hidden" name="req_language" value="<?php echo $languages[0]; ?>" /> | 338: <input type="hidden" name="req_language" value="<?php echo $languages[0] ?>" /> |
338: </div> | 339: </div> |
339: <?php | 340: <?php |
340: } | 341: } |
1911: <!--[if IE 8 ]> <html class="oldie ie8" lang="en" dir="ltr"> <![endif]--> | 1912: <!--[if IE 8 ]> <html class="oldie ie8" lang="en" dir="ltr"> <![endif]--> |
1912: <!--[if gt IE 8]><!--> <html lang="en" dir="ltr"> <!--<![endif]--> | 1913: <!--[if gt IE 8]><!--> <html lang="en" dir="ltr"> <!--<![endif]--> |
1913: <head> | 1914: <head> |
1914: <meta charset="utf-8"/> | 1915: <meta charset="utf-8" /> |
1915: <title>PunBB Installation</title> | 1916: <title>PunBB Installation</title> |
1916: <link rel="stylesheet" type="text/css" href="<?php echo FORUM_ROOT ?>style/Oxygen/min/Oxygen.min.css" /> | 1917: <link rel="stylesheet" type="text/css" href="<?php echo FORUM_ROOT ?>style/Oxygen/Oxygen.min.css" /> |
1917: </head> | 1918: </head> |
1918: <body> | 1919: <body> |
1919: <div id="brd-install" class="brd-page"> | 1920: <div id="brd-install" class="brd-page"> |
1946: <form class="frm-form" method="post" accept-charset="utf-8" action="install.php"> | 1947: <form class="frm-form" method="post" accept-charset="utf-8" action="install.php"> |
1947: <div class="hidden"> | 1948: <div class="hidden"> |
1948: <input type="hidden" name="generate_config" value="1" /> | 1949: <input type="hidden" name="generate_config" value="1" /> |
1949: <input type="hidden" name="db_type" value="<?php echo $db_type; ?>" /> | 1950: <input type="hidden" name="db_type" value="<?php echo $db_type ?>" /> |
1950: <input type="hidden" name="db_host" value="<?php echo $db_host; ?>" /> | 1951: <input type="hidden" name="db_host" value="<?php echo $db_host ?>" /> |
1951: <input type="hidden" name="db_name" value="<?php echo forum_htmlencode($db_name); ?>" /> | 1952: <input type="hidden" name="db_name" value="<?php echo forum_htmlencode($db_name) ?>" /> |
1952: <input type="hidden" name="db_username" value="<?php echo forum_htmlencode($db_username); ?>" /> | 1953: <input type="hidden" name="db_username" value="<?php echo forum_htmlencode($db_username) ?>" /> |
1953: <input type="hidden" name="db_password" value="<?php echo forum_htmlencode($db_password); ?>" /> | 1954: <input type="hidden" name="db_password" value="<?php echo forum_htmlencode($db_password) ?>" /> |
1954: <input type="hidden" name="db_prefix" value="<?php echo forum_htmlencode($db_prefix); ?>" /> | 1955: <input type="hidden" name="db_prefix" value="<?php echo forum_htmlencode($db_prefix) ?>" /> |
1955: <input type="hidden" name="base_url" value="<?php echo forum_htmlencode($base_url); ?>" /> | 1956: <input type="hidden" name="base_url" value="<?php echo forum_htmlencode($base_url) ?>" /> |
1956: <input type="hidden" name="cookie_name" value="<?php echo forum_htmlencode($cookie_name); ?>" /> | 1957: <input type="hidden" name="cookie_name" value="<?php echo forum_htmlencode($cookie_name) ?>" /> |
1957: </div> | 1958: </div> |
1958: <div class="frm-buttons"> | 1959: <div class="frm-buttons"> |
1959: <span class="submit"><input type="submit" value="<?php echo $lang_install['Download config'] ?>" /></span> | 1960: <span class="submit"><input type="submit" value="<?php echo $lang_install['Download config'] ?>" /></span> |
punbb-1.4.1/extern.php |
punbb-1.4.2/extern.php |
5: * Allows forum content to be syndicated outside of the site in various formats | 5: * Allows forum content to be syndicated outside of the site in various formats |
6: * (ie: RSS, Atom, XML, HTML). | 6: * (ie: RSS, Atom, XML, HTML). |
7: * | 7: * |
8: * @copyright (C) 2008-2011 PunBB, partially based on code (C) 2008-2009 FluxBB.org | 8: * @copyright (C) 2008-2012 PunBB, partially based on code (C) 2008-2009 FluxBB.org |
9: * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher | 9: * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher |
10: * @package PunBB | 10: * @package PunBB |
11: */ | 11: */ |
12: | 12: |
13: /*********************************************************************** | 13: /*********************************************************************** |
14: | 14: |
15: INSTRUCTIONS | 15: INSTRUCTIONS |
16: | 16: |
17: This script is used to include information about your board from | 17: This script is used to include information about your board from |
18: pages outside the forums and to syndicate news about recent | 18: pages outside the forums and to syndicate news about recent |
19: discussions via RSS/Atom/XML. The script can display a list of | 19: discussions via RSS/Atom/XML. The script can display a list of |
20: recent discussions, a list of active users or a collection of | 20: recent discussions, a list of active users or a collection of |
21: general board statistics. The script can be called directly via | 21: general board statistics. The script can be called directly via |
22: an URL, from a PHP include command or through the use of Server | 22: an URL, from a PHP include command or through the use of Server |
23: Side Includes (SSI). | 23: Side Includes (SSI). |
24: | 24: |
25: The scripts behaviour is controlled via variables supplied in the | 25: The scripts behaviour is controlled via variables supplied in the |
26: URL to the script. The different variables are: action (what to | 26: URL to the script. The different variables are: action (what to |
27: do), show (how many items to display), fid (the ID or ID's of | 27: do), show (how many items to display), fid (the ID or ID's of |
28: the forum(s) to poll for topics), nfid (the ID or ID's of forums | 28: the forum(s) to poll for topics), nfid (the ID or ID's of forums |
29: that should be excluded), tid (the ID of the topic from which to | 29: that should be excluded), tid (the ID of the topic from which to |
30: display posts) and type (output as HTML or RSS). The only | 30: display posts) and type (output as HTML or RSS). The only |
31: mandatory variable is action. Possible/default values are: | 31: mandatory variable is action. Possible/default values are: |
32: | 32: |
33: action: feed - show most recent topics/posts (HTML or RSS) | 33: action: feed - show most recent topics/posts (HTML or RSS) |
34: online - show users online (HTML) | 34: online - show users online (HTML) |
35: online_full - as above, but includes a full list (HTML) | 35: online_full - as above, but includes a full list (HTML) |
36: stats - show board statistics (HTML) | 36: stats - show board statistics (HTML) |
37: | 37: |
38: type: rss - output as RSS 2.0 | 38: type: rss - output as RSS 2.0 |
39: atom - output as Atom 1.0 | 39: atom - output as Atom 1.0 |
40: xml - output as XML | 40: xml - output as XML |
41: html - output as HTML (<li>'s) | 41: html - output as HTML (<li>'s) |
42: | 42: |
43: fid: One or more forum ID's (comma-separated). If ignored, | 43: fid: One or more forum ID's (comma-separated). If ignored, |
44: topics from all readable forums will be pulled. | 44: topics from all readable forums will be pulled. |
45: | 45: |
46: nfid: One or more forum ID's (comma-separated) that are to be | 46: nfid: One or more forum ID's (comma-separated) that are to be |
47: excluded. E.g. the ID of a a test forum. | 47: excluded. E.g. the ID of a a test forum. |
48: | |
49: tid: A topic ID from which to show posts. If a tid is supplied, | |
50: fid and nfid are ignored. | |
51: | |
52: show: Any integer value between 1 and 50. The default is 15. | |
53: | |
54: sort: posted - sort topics by posted time (default) | |
55: last_post - sort topics by last post | |
56: | 48: |
| 49: tid: A topic ID from which to show posts. If a tid is supplied, |
| 50: fid and nfid are ignored. |
57: | 51: |
| 52: show: Any integer value between 1 and 50. The default is 15. |
58: | 53: |
| 54: sort: posted - sort topics by posted time (default) |
| 55: last_post - sort topics by last post |
59: | 56: |
60: /***********************************************************************/ | 57: /***********************************************************************/ |
61: | 58: |
69: | 66: |
70: // The length at which topic subjects will be truncated (for HTML output) | 67: // The length at which topic subjects will be truncated (for HTML output) |
71: if (!defined('FORUM_EXTERN_MAX_SUBJECT_LENGTH')) | 68: if (!defined('FORUM_EXTERN_MAX_SUBJECT_LENGTH')) |
72: define('FORUM_EXTERN_MAX_SUBJECT_LENGTH', 30); | 69: define('FORUM_EXTERN_MAX_SUBJECT_LENGTH', 30); |
73: | 70: |
74: // If we're a guest and we've sent a username/pass, we can try to authenticate using those details | 71: // If we're a guest and we've sent a username/pass, we can try to authenticate using those details |
75: if ($forum_user['is_guest'] && isset($_SERVER['PHP_AUTH_USER'])) | 72: if ($forum_user['is_guest'] && isset($_SERVER['PHP_AUTH_USER'])) |
165: echo '<feed xmlns="http://www.w3.org/2005/Atom">'."\n"; | 162: echo '<feed xmlns="http://www.w3.org/2005/Atom">'."\n"; |
166: | 163: |
167: echo "\t".'<title type="html"><![CDATA['.escape_cdata($feed['title']).']]></title>'."\n"; | 164: echo "\t".'<title type="html"><![CDATA['.escape_cdata($feed['title']).']]></title>'."\n"; |
168: echo "\t".'<link rel="self" href="'.forum_htmlencode(get_current_url()).'"/>'."\n"; | 165: echo "\t".'<link rel="self" href="'.forum_htmlencode(get_current_url()).'" />'."\n"; |
169: echo "\t".'<updated>'.gmdate('Y-m-d\TH:i:s\Z', count($feed['items']) ? $feed['items'][0]['pubdate'] : time()).'</updated>'."\n"; | 166: echo "\t".'<updated>'.gmdate('Y-m-d\TH:i:s\Z', count($feed['items']) ? $feed['items'][0]['pubdate'] : time()).'</updated>'."\n"; |
170: | 167: |
171: if ($forum_config['o_show_version'] == '1') | 168: if ($forum_config['o_show_version'] == '1') |
183: { | 180: { |
184: echo "\t\t".'<entry>'."\n"; | 181: echo "\t\t".'<entry>'."\n"; |
185: echo "\t\t\t".'<title type="html"><![CDATA['.escape_cdata($item['title']).']]></title>'."\n"; | 182: echo "\t\t\t".'<title type="html"><![CDATA['.escape_cdata($item['title']).']]></title>'."\n"; |
186: echo "\t\t\t".'<link rel="alternate" href="'.$item['link'].'"/>'."\n"; | 183: echo "\t\t\t".'<link rel="alternate" href="'.$item['link'].'" />'."\n"; |
187: echo "\t\t\t".'<'.$content_tag.' type="html"><![CDATA['.escape_cdata($item['description']).']]></'.$content_tag.'>'."\n"; | 184: echo "\t\t\t".'<'.$content_tag.' type="html"><![CDATA['.escape_cdata($item['description']).']]></'.$content_tag.'>'."\n"; |
188: echo "\t\t\t".'<author>'."\n"; | 185: echo "\t\t\t".'<author>'."\n"; |
189: echo "\t\t\t\t".'<name><![CDATA['.escape_cdata($item['author']['name']).']]></name>'."\n"; | 186: echo "\t\t\t\t".'<name><![CDATA['.escape_cdata($item['author']['name']).']]></name>'."\n"; |
327: | 324: |
328: // Setup the feed | 325: // Setup the feed |
329: $feed = array( | 326: $feed = array( |
330: 'title' => $forum_config['o_board_title'].$lang_common['Title separator'].$cur_topic['subject'], | 327: 'title' => $forum_config['o_board_title'].$lang_common['Title separator'].$cur_topic['subject'], |
331: 'link' => forum_link($forum_url['topic'], array($tid, sef_friendly($cur_topic['subject']))), | 328: 'link' => forum_link($forum_url['topic'], array($tid, sef_friendly($cur_topic['subject']))), |
332: 'description' => sprintf($lang_common['RSS description topic'], $cur_topic['subject']), | 329: 'description' => sprintf($lang_common['RSS description topic'], $cur_topic['subject']), |
333: 'items' => array(), | 330: 'items' => array(), |
439: | 436: |
440: // Setup the feed | 437: // Setup the feed |
441: $feed = array( | 438: $feed = array( |
442: 'title' => $forum_config['o_board_title'].$forum_name, | 439: 'title' => $forum_config['o_board_title'].$forum_name, |
443: 'link' => forum_link($forum_url['index']), | 440: 'link' => forum_link($forum_url['index']), |
444: 'description' => sprintf($lang_common['RSS description'], $forum_config['o_board_title']), | 441: 'description' => sprintf($lang_common['RSS description'], $forum_config['o_board_title']), |
445: 'items' => array(), | 442: 'items' => array(), |
punbb-1.4.1/include/cache.php |
punbb-1.4.2/include/cache.php |
4: * | 4: * |
5: * This file contains all of the functions used to generate the cache files used by the site. | 5: * This file contains all of the functions used to generate the cache files used by the site. |
6: * | 6: * |
7: * @copyright (C) 2008-2011 PunBB, partially based on code (C) 2008-2009 FluxBB.org | 7: * @copyright (C) 2008-2012 PunBB, partially based on code (C) 2008-2009 FluxBB.org |
8: * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher | 8: * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher |
9: * @package PunBB | 9: * @package PunBB |
10: */ | 10: */ |
79: // Output config as PHP code | 79: // Output config as PHP code |
80: if (!write_cache_file(FORUM_CACHE_DIR.'cache_config.php', '<?php'."\n\n".'define(\'FORUM_CONFIG_LOADED\', 1);'."\n\n".'$forum_config = '.var_export($output, true).';'."\n\n".'?>')) | 80: if (!write_cache_file(FORUM_CACHE_DIR.'cache_config.php', '<?php'."\n\n".'define(\'FORUM_CONFIG_LOADED\', 1);'."\n\n".'$forum_config = '.var_export($output, true).';'."\n\n".'?>')) |
81: { | 81: { |
82: error('Unable to write configuration cache file to cache directory.<br/>Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); | 82: error('Unable to write configuration cache file to cache directory.<br />Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); |
83: } | 83: } |
84: } | 84: } |
85: | 85: |
118: // Output ban list as PHP code | 118: // Output ban list as PHP code |
119: if (!write_cache_file(FORUM_CACHE_DIR.'cache_bans.php', '<?php'."\n\n".'define(\'FORUM_BANS_LOADED\', 1);'."\n\n".'$forum_bans = '.var_export($output, true).';'."\n\n".'?>')) | 119: if (!write_cache_file(FORUM_CACHE_DIR.'cache_bans.php', '<?php'."\n\n".'define(\'FORUM_BANS_LOADED\', 1);'."\n\n".'$forum_bans = '.var_export($output, true).';'."\n\n".'?>')) |
120: { | 120: { |
121: error('Unable to write bans cache file to cache directory.<br/>Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); | 121: error('Unable to write bans cache file to cache directory.<br />Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); |
122: } | 122: } |
123: } | 123: } |
124: | 124: |
151: // Output ranks list as PHP code | 151: // Output ranks list as PHP code |
152: if (!write_cache_file(FORUM_CACHE_DIR.'cache_ranks.php', '<?php'."\n\n".'define(\'FORUM_RANKS_LOADED\', 1);'."\n\n".'$forum_ranks = '.var_export($output, true).';'."\n\n".'?>')) | 152: if (!write_cache_file(FORUM_CACHE_DIR.'cache_ranks.php', '<?php'."\n\n".'define(\'FORUM_RANKS_LOADED\', 1);'."\n\n".'$forum_ranks = '.var_export($output, true).';'."\n\n".'?>')) |
153: { | 153: { |
154: error('Unable to write ranks cache file to cache directory.<br/>Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); | 154: error('Unable to write ranks cache file to cache directory.<br />Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); |
155: } | 155: } |
156: } | 156: } |
157: | 157: |
212: // Output ranks list as PHP code | 212: // Output ranks list as PHP code |
213: if (!write_cache_file(FORUM_CACHE_DIR.'cache_stats.php', '<?php'."\n\n".'if (!defined(\'FORUM_STATS_LOADED\')) define(\'FORUM_STATS_LOADED\', 1);'."\n\n".'$forum_stats = '.var_export($stats, true).';'."\n\n".'?>')) | 213: if (!write_cache_file(FORUM_CACHE_DIR.'cache_stats.php', '<?php'."\n\n".'if (!defined(\'FORUM_STATS_LOADED\')) define(\'FORUM_STATS_LOADED\', 1);'."\n\n".'$forum_stats = '.var_export($stats, true).';'."\n\n".'?>')) |
214: { | 214: { |
215: error('Unable to write stats cache file to cache directory.<br/>Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); | 215: error('Unable to write stats cache file to cache directory.<br />Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); |
216: } | 216: } |
217: | 217: |
218: unset($stats); | 218: unset($stats); |
219: } | 219: } |
220: | 220: |
221: | 221: |
| 222: // |
| 223: // Clean stats cache PHP scripts |
| 224: // |
| 225: function clean_stats_cache() |
| 226: { |
| 227: $cache_file = FORUM_CACHE_DIR.'cache_stats.php'; |
| 228: if (file_exists($cache_file)) |
| 229: { |
| 230: unlink($cache_file); |
| 231: } |
| 232: } |
| 233: |
222: | 234: |
223: // | 235: // |
224: // Generate the censor cache PHP script | 236: // Generate the censor cache PHP script |
248: // Output censors list as PHP code | 260: // Output censors list as PHP code |
249: if (!write_cache_file(FORUM_CACHE_DIR.'cache_censors.php', '<?php'."\n\n".'define(\'FORUM_CENSORS_LOADED\', 1);'."\n\n".'$forum_censors = '.var_export($output, true).';'."\n\n".'?>')) | 261: if (!write_cache_file(FORUM_CACHE_DIR.'cache_censors.php', '<?php'."\n\n".'define(\'FORUM_CENSORS_LOADED\', 1);'."\n\n".'$forum_censors = '.var_export($output, true).';'."\n\n".'?>')) |
250: { | 262: { |
251: error('Unable to write censor cache file to cache directory.<br/>Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); | 263: error('Unable to write censor cache file to cache directory.<br />Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); |
252: } | 264: } |
253: } | 265: } |
254: | 266: |
358: // Output quickjump as PHP code | 370: // Output quickjump as PHP code |
359: if (!write_cache_file(FORUM_CACHE_DIR.'cache_quickjump_'.$group_id.'.php', $output)) | 371: if (!write_cache_file(FORUM_CACHE_DIR.'cache_quickjump_'.$group_id.'.php', $output)) |
360: { | 372: { |
361: error('Unable to write quickjump cache file to cache directory.<br/>Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); | 373: error('Unable to write quickjump cache file to cache directory.<br />Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); |
362: } | 374: } |
363: } | 375: } |
364: } | 376: } |
470: // Output hooks as PHP code | 482: // Output hooks as PHP code |
471: if (!write_cache_file(FORUM_CACHE_DIR.'cache_hooks.php', '<?php'."\n\n".'define(\'FORUM_HOOKS_LOADED\', 1);'."\n\n".'$forum_hooks = '.var_export($output, true).';'."\n\n".'?>')) | 483: if (!write_cache_file(FORUM_CACHE_DIR.'cache_hooks.php', '<?php'."\n\n".'define(\'FORUM_HOOKS_LOADED\', 1);'."\n\n".'$forum_hooks = '.var_export($output, true).';'."\n\n".'?>')) |
472: { | 484: { |
473: error('Unable to write hooks cache file to cache directory.<br/>Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); | 485: error('Unable to write hooks cache file to cache directory.<br />Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); |
474: } | 486: } |
475: } | 487: } |
476: | 488: |
529: // Output update status as PHP code | 541: // Output update status as PHP code |
530: if (!write_cache_file(FORUM_CACHE_DIR.'cache_updates.php', '<?php'."\n\n".'if (!defined(\'FORUM_UPDATES_LOADED\')) define(\'FORUM_UPDATES_LOADED\', 1);'."\n\n".'$forum_updates = '.var_export($output, true).';'."\n\n".'?>')) | 542: if (!write_cache_file(FORUM_CACHE_DIR.'cache_updates.php', '<?php'."\n\n".'if (!defined(\'FORUM_UPDATES_LOADED\')) define(\'FORUM_UPDATES_LOADED\', 1);'."\n\n".'$forum_updates = '.var_export($output, true).';'."\n\n".'?>')) |
531: { | 543: { |
532: error('Unable to write updates cache file to cache directory.<br/>Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); | 544: error('Unable to write updates cache file to cache directory.<br />Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); |
533: } | 545: } |
534: } | 546: } |
535: | 547: |
540: | 552: |
541: foreach (array_unique(array_merge($repository_urls, $repository_url_by_extension)) as $url) | 553: foreach (array_unique(array_merge($repository_urls, $repository_url_by_extension)) as $url) |
542: { | 554: { |
543: //Get repository timestamp | 555: // Get repository timestamp |
544: $remote_file = get_remote_file( $url.'/timestamp', 2); | 556: $remote_file = get_remote_file($url.'/timestamp', 2); |
545: $repository_timestamp = empty($remote_file['content']) ? '' : forum_trim($remote_file['content']); | 557: $repository_timestamp = empty($remote_file['content']) ? '' : forum_trim($remote_file['content']); |
546: unset($remote_file); | 558: unset($remote_file); |
547: if (!is_numeric($repository_timestamp)) | 559: if (!is_numeric($repository_timestamp)) |
548: continue; | 560: continue; |
549: | 561: |
550: if (!isset( $forum_ext_repos[ $url ][ 'timestamp' ] )) | 562: if (!isset($forum_ext_repos[$url]['timestamp'])) |
551: $forum_ext_repos[ $url ][ 'timestamp' ] = $repository_timestamp; | 563: $forum_ext_repos[$url]['timestamp'] = $repository_timestamp; |
552: | 564: |
553: if ($forum_ext_repos[ $url ][ 'timestamp' ] <= $repository_timestamp) | 565: if ($forum_ext_repos[$url]['timestamp'] <= $repository_timestamp) |
554: { | 566: { |
555: foreach ($inst_exts as $ext) | 567: foreach ($inst_exts as $ext) |
556: { | 568: { |
560: if (empty($version) || !preg_match('~^[0-9a-zA-Z\. +-]+$~u', $version)) | 572: if (empty($version) || !preg_match('~^[0-9a-zA-Z\. +-]+$~u', $version)) |
561: continue; | 573: continue; |
562: | 574: |
563: $forum_ext_repos[ $url ][ 'extension_versions' ][ $ext['id'] ] = $version; | 575: $forum_ext_repos[$url]['extension_versions'][$ext['id']] = $version; |
564: | 576: |
565: //If key with current extension exist in array, compare it with version in rep-ry | 577: // If key with current extension exist in array, compare it with version in repository |
566: if (!isset($forum_ext_last_versions[ $ext['id'] ]) || ( version_compare($forum_ext_last_versions[ $ext['id'] ][ 'version' ], $version, '<') ) ) | 578: if (!isset($forum_ext_last_versions[$ext['id']]) || (version_compare($forum_ext_last_versions[$ext['id']]['version'], $version, '<'))) |
567: { | 579: { |
568: $forum_ext_last_versions[ $ext['id'] ] = array('version' => $version, 'repo_url' => $url); | 580: $forum_ext_last_versions[$ext['id']] = array('version' => $version, 'repo_url' => $url); |
569: | 581: |
570: $remote_file = get_remote_file($url.'/'.$ext['id'].'/lastchanges', 2); | 582: $remote_file = get_remote_file($url.'/'.$ext['id'].'/lastchanges', 2); |
571: $last_changes = empty($remote_file['content']) ? '' : forum_trim($remote_file['content']); | 583: $last_changes = empty($remote_file['content']) ? '' : forum_trim($remote_file['content']); |
572: unset($remote_file); | 584: unset($remote_file); |
573: if ( !empty($last_changes) ) | 585: if (!empty($last_changes)) |
574: $forum_ext_last_versions[ $ext['id'] ][ 'changes' ] = $last_changes; | 586: $forum_ext_last_versions[$ext['id']]['changes'] = $last_changes; |
575: } | 587: } |
576: } | 588: } |
577: //Write timestamp to cache | 589: |
578: $forum_ext_repos[ $url ][ 'timestamp' ] = $repository_timestamp; | 590: // Write timestamp to cache |
| 591: $forum_ext_repos[$url]['timestamp'] = $repository_timestamp; |
579: } | 592: } |
580: } | 593: } |
581: | 594: |
582: if (array_keys($forum_ext_last_versions) != array_keys($inst_exts)) | 595: if (array_keys($forum_ext_last_versions) != array_keys($inst_exts)) |
583: foreach ($inst_exts as $ext) | 596: foreach ($inst_exts as $ext) |
584: if ( !in_array($ext['id'], array_keys($forum_ext_last_versions)) ) | 597: if (!in_array($ext['id'], array_keys($forum_ext_last_versions))) |
585: $forum_ext_last_versions[$ext['id']] = array('version' => $ext['version'], 'repo_url' => '', 'changes' => ''); | 598: $forum_ext_last_versions[$ext['id']] = array('version' => $ext['version'], 'repo_url' => '', 'changes' => ''); |
586: | 599: |
587: ($hook = get_hook('ch_generate_ext_versions_cache_check_repository')) ? eval($hook) : null; | 600: ($hook = get_hook('ch_generate_ext_versions_cache_check_repository')) ? eval($hook) : null; |
589: // Output config as PHP code | 602: // Output config as PHP code |
590: if (!write_cache_file(FORUM_CACHE_DIR.'cache_ext_version_notifications.php', '<?php'."\n\n".'if (!defined(\'FORUM_EXT_VERSIONS_LOADED\')) define(\'FORUM_EXT_VERSIONS_LOADED\', 1);'."\n\n".'$forum_ext_repos = '.var_export($forum_ext_repos, true).';'."\n\n".' $forum_ext_last_versions = '.var_export($forum_ext_last_versions, true).";\n\n".'$forum_ext_versions_update_cache = '.time().";\n\n".'?>')) | 603: if (!write_cache_file(FORUM_CACHE_DIR.'cache_ext_version_notifications.php', '<?php'."\n\n".'if (!defined(\'FORUM_EXT_VERSIONS_LOADED\')) define(\'FORUM_EXT_VERSIONS_LOADED\', 1);'."\n\n".'$forum_ext_repos = '.var_export($forum_ext_repos, true).';'."\n\n".' $forum_ext_last_versions = '.var_export($forum_ext_last_versions, true).";\n\n".'$forum_ext_versions_update_cache = '.time().";\n\n".'?>')) |
591: { | 604: { |
592: error('Unable to write configuration cache file to cache directory.<br/>Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); | 605: error('Unable to write configuration cache file to cache directory.<br />Please make sure PHP has write access to the directory \'cache\'.', __FILE__, __LINE__); |
593: } | 606: } |
594: } | 607: } |
595: | 608: |
punbb-1.4.1/include/functions.php |
punbb-1.4.2/include/functions.php |
2: /** | 2: /** |
3: * Loads common functions used throughout the site. | 3: * Loads common functions used throughout the site. |
4: * | 4: * |
5: * @copyright (C) 2008-2011 PunBB, partially based on code (C) 2008-2009 FluxBB.org | 5: * @copyright (C) 2008-2012 PunBB, partially based on code (C) 2008-2009 FluxBB.org |
6: * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher | 6: * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher |
7: * @package PunBB | 7: * @package PunBB |
8: */ | 8: */ |
32: } | 32: } |
33: | 33: |
34: | 34: |
| 35: // Start PHP session |
| 36: function forum_session_start() { |
| 37: static $forum_session_started = FALSE; |
| 38: |
| 39: $return = ($hook = get_hook('fn_forum_session_start_start')) ? eval($hook) : null; |
| 40: if ($return != null) |
| 41: return; |
| 42: |
| 43: // Check if session already started |
| 44: if ($forum_session_started && session_id()) |
| 45: return; |
| 46: |
| 47: session_cache_limiter(FALSE); |
| 48: |
| 49: // Check session id |
| 50: $forum_session_id = NULL; |
| 51: if (isset($_COOKIE['PHPSESSID'])) |
| 52: $forum_session_id = $_COOKIE['PHPSESSID']; |
| 53: else if (isset($_GET['PHPSESSID'])) |
| 54: $forum_session_id = $_GET['PHPSESSID']; |
| 55: |
| 56: if (empty($forum_session_id) || !preg_match('/^[a-z0-9]{16,32}$/', $forum_session_id)) |
| 57: { |
| 58: // Create new session id |
| 59: $forum_session_id = random_key(32, FALSE, TRUE); |
| 60: session_id($forum_session_id); |
| 61: } |
| 62: |
| 63: session_start(); |
| 64: if (!isset($_SESSION['initiated'])) |
| 65: { |
| 66: session_regenerate_id(); |
| 67: $_SESSION['initiated'] = TRUE; |
| 68: } |
| 69: |
| 70: $forum_session_started = TRUE; |
| 71: } |
| 72: |
| 73: |
35: // Converts the CDATA end sequence ]]> into ]]> | 74: // Converts the CDATA end sequence ]]> into ]]> |
36: function escape_cdata($str) | 75: function escape_cdata($str) |
37: { | 76: { |
90: function forum_unregister_globals() | 129: function forum_unregister_globals() |
91: { | 130: { |
92: $register_globals = @ini_get('register_globals'); | 131: $register_globals = @ini_get('register_globals'); |
93: if ($register_globals === "" || $register_globals === "0" || strtolower($register_globals) === "off") | 132: if ($register_globals === '' || $register_globals === '0' || strtolower($register_globals) === 'off') |
94: return; | 133: return; |
95: | 134: |
96: // Prevent script.php?GLOBALS[foo]=bar | 135: // Prevent script.php?GLOBALS[foo]=bar |
156: | 195: |
157: // Otherwise I am not aware of a work around... | 196: // Otherwise I am not aware of a work around... |
158: else | 197: else |
159: error('The web server you are using is not correctly setting the REQUEST_URI variable.<br/>This usually means you are using IIS6, or an unpatched IIS7. Please either disable SEF URLs, upgrade to IIS7 and install any available patches or try a different web server.'); | 198: error('The web server you are using is not correctly setting the REQUEST_URI variable.<br />This usually means you are using IIS6, or an unpatched IIS7. Please either disable SEF URLs, upgrade to IIS7 and install any available patches or try a different web server.'); |
160: } | 199: } |
161: } | 200: } |
162: | 201: |
475: { | 514: { |
476: $links['search'] = '<li id="navsearch"'.((FORUM_PAGE == 'search') ? ' class="isactive"' : '').'><a href="'.forum_link($forum_url['search']).'">'.$lang_common['Search'].'</a></li>'; | 515: $links['search'] = '<li id="navsearch"'.((FORUM_PAGE == 'search') ? ' class="isactive"' : '').'><a href="'.forum_link($forum_url['search']).'">'.$lang_common['Search'].'</a></li>'; |
477: $links['profile'] = '<li id="navprofile"'.((substr(FORUM_PAGE, 0, 7) == 'profile') ? ' class="isactive"' : '').'><a href="'.forum_link($forum_url['user'], $forum_user['id']).'">'.$lang_common['Profile'].'</a></li>'; | 516: $links['profile'] = '<li id="navprofile"'.((substr(FORUM_PAGE, 0, 7) == 'profile') ? ' class="isactive"' : '').'><a href="'.forum_link($forum_url['user'], $forum_user['id']).'">'.$lang_common['Profile'].'</a></li>'; |
478: $links['logout'] = '<li id="navlogout"><a href="'.forum_link($forum_url['logout'], array($forum_user['id'], generate_form_token('logout'.$forum_user['id']))).'">'.$lang_common['Logout'].'</a></li>'; | |
479: $links['admin'] = '<li id="navadmin"'.((substr(FORUM_PAGE, 0, 5) == 'admin') ? ' class="isactive"' : '').'><a href="'.forum_link($forum_url['admin_index']).'">'.$lang_common['Admin'].'</a></li>'; | 517: $links['admin'] = '<li id="navadmin"'.((substr(FORUM_PAGE, 0, 5) == 'admin') ? ' class="isactive"' : '').'><a href="'.forum_link($forum_url['admin_index']).'">'.$lang_common['Admin'].'</a></li>'; |
| 518: $links['logout'] = '<li id="navlogout"><a href="'.forum_link($forum_url['logout'], array($forum_user['id'], generate_form_token('logout'.$forum_user['id']))).'">'.$lang_common['Logout'].'</a></li>'; |
480: } | 519: } |
481: } | 520: } |
482: | 521: |
599: return $return; | 638: return $return; |
600: | 639: |
601: if ($forum_page['num_pages'] == 1) | 640: if ($forum_page['num_pages'] == 1) |
602: $item_info = '<span class="item-info">'.sprintf($lang_common['Item info single'], $label, forum_number_format($total)).'</span>'; | 641: $item_info = '<span class="item-info">'.sprintf($lang_common['Item info single'], $label, forum_number_format($total)).'</span>'; |
603: else | 642: else |
604: $item_info = '<span class="item-info">'.sprintf($lang_common['Item info plural'], $label, forum_number_format($first), forum_number_format($forum_page['finish_at']), forum_number_format($total)).'</span>'; | 643: $item_info = '<span class="item-info">'.sprintf($lang_common['Item info plural'], $label, forum_number_format($first), forum_number_format($forum_page['finish_at']), forum_number_format($total)).'</span>'; |
605: | 644: |
657: if ($current < 1 || $current > $num_pages) | 696: if ($current < 1 || $current > $num_pages) |
658: continue; | 697: continue; |
659: else if ($current != $cur_page || $link_to_all) | 698: else if ($current != $cur_page || $link_to_all) |
660: $pages[] = '<a'.(empty($pages) ? ' class="first-item" ' : '').' href="'.forum_sublink($link, $forum_url_page, $current, $args).'">'.forum_number_format($current).'</a>'; | 699: $pages[] = '<a'.(empty($pages) ? ' class="first-item"' : '').' href="'.forum_sublink($link, $forum_url_page, $current, $args).'">'.forum_number_format($current).'</a>'; |
661: else | 700: else |
662: $pages[] = '<strong'.(empty($pages) ? ' class="first-item"' : '').'>'.forum_number_format($current).'</strong>'; | 701: $pages[] = '<strong'.(empty($pages) ? ' class="first-item"' : '').'>'.forum_number_format($current).'</strong>'; |
663: | 702: |
666: if ($cur_page != ($num_pages-3) && $cur_page != ($num_pages-4)) | 705: if ($cur_page != ($num_pages-3) && $cur_page != ($num_pages-4)) |
667: $pages[] = '<span>'.$lang_common['Spacer'].'</span>'; | 706: $pages[] = '<span>'.$lang_common['Spacer'].'</span>'; |
668: | 707: |
669: $pages[] = '<a'.(empty($pages) ? ' class="first-item" ' : '').' href="'.forum_sublink($link, $forum_url_page, $num_pages, $args).'">'.forum_number_format($num_pages).'</a>'; | 708: $pages[] = '<a'.(empty($pages) ? ' class="first-item"' : '').' href="'.forum_sublink($link, $forum_url_page, $num_pages, $args).'">'.forum_number_format($num_pages).'</a>'; |
670: } | 709: } |
671: | 710: |
672: // Add a next page link | 711: // Add a next page link |
673: if ($num_pages > 1 && !$link_to_all && $cur_page < $num_pages) | 712: if ($num_pages > 1 && !$link_to_all && $cur_page < $num_pages) |
674: $pages[] = '<a'.(empty($pages) ? ' class="first-item" ' : '').' href="'.forum_sublink($link, $forum_url_page, ($cur_page + 1), $args).'">'.$lang_common['Next'].'</a>'; | 713: $pages[] = '<a'.(empty($pages) ? ' class="first-item"' : '').' href="'.forum_sublink($link, $forum_url_page, ($cur_page + 1), $args).'">'.$lang_common['Next'].'</a>'; |
675: } | 714: } |
676: | 715: |
677: ($hook = get_hook('fn_paginate_end')) ? eval($hook) : null; | 716: ($hook = get_hook('fn_paginate_end')) ? eval($hook) : null; |
844: // Replace censored words in $text loader | 883: // Replace censored words in $text loader |
845: function censor_words($text) | 884: function censor_words($text) |
846: { | 885: { |
847: global $forum_db; | 886: global $forum_db, $forum_censors; |
848: | 887: |
849: $return = ($hook = get_hook('fn_censor_words_start')) ? eval($hook) : null; | 888: $return = ($hook = get_hook('fn_censor_words_start')) ? eval($hook) : null; |
850: if ($return != null) | 889: if ($return != null) |
876: // Replace censored words in $text | 915: // Replace censored words in $text |
877: function censor_words_do($forum_censors, $text, $unicode) | 916: function censor_words_do($forum_censors, $text, $unicode) |
878: { | 917: { |
879: static $search_for, $replace_with; | 918: static $search_for = NULL; |
| 919: static $replace_with = NULL; |
| 920: |
| 921: if (is_null($search_for)) |
| 922: $search_for = array(); |
| 923: |
| 924: if (is_null($replace_with)) |
| 925: $replace_with = array(); |
880: | 926: |
881: $search_for = array(); | |
882: $replace_with = array(); | |
883: | 927: |
884: if (!empty($forum_censors)) | 928: if (!empty($forum_censors)) |
885: { | 929: { |
1033: // Return a list of all URL schemes installed | 1077: // Return a list of all URL schemes installed |
1034: function get_scheme_packs() | 1078: function get_scheme_packs() |
1035: { | 1079: { |
1036: $schemes = array(); | 1080: $schemes = array(); |
1037: | 1081: |
1038: if ($handle = opendir(FORUM_ROOT.'include/url')) | 1082: if ($handle = opendir(FORUM_ROOT.'include/url')) |
1039: { | 1083: { |
3098: while (preg_match('#<!-- ?forum_include "([^/\\\\]*?)" ?-->#', $tpl_maint, $cur_include)) | 3142: while (preg_match('#<!-- ?forum_include "([^/\\\\]*?)" ?-->#', $tpl_maint, $cur_include)) |
3099: { | 3143: { |
3100: if (!file_exists(FORUM_ROOT.'include/user/'.$cur_include[1])) | 3144: if (!file_exists(FORUM_ROOT.'include/user/'.$cur_include[1])) |
3101: error('Unable to process user include <!-- forum_include "'.forum_htmlencode($cur_include[1]).'" --> from template maintenance.tpl.<br/>There is no such file in folder /include/user/.'); | 3145: error('Unable to process user include <!-- forum_include "'.forum_htmlencode($cur_include[1]).'" --> from template maintenance.tpl.<br />There is no such file in folder /include/user/.'); |
3102: | 3146: |
3103: ob_start(); | 3147: ob_start(); |
3104: include FORUM_ROOT.'include/user/'.$cur_include[1]; | 3148: include FORUM_ROOT.'include/user/'.$cur_include[1]; |
3220: while (preg_match('#<!-- ?forum_include "([^/\\\\]*?)" ?-->#', $tpl_redir, $cur_include)) | 3264: while (preg_match('#<!-- ?forum_include "([^/\\\\]*?)" ?-->#', $tpl_redir, $cur_include)) |
3221: { | 3265: { |
3222: if (!file_exists(FORUM_ROOT.'include/user/'.$cur_include[1])) | 3266: if (!file_exists(FORUM_ROOT.'include/user/'.$cur_include[1])) |
3223: error('Unable to process user include <!-- forum_include "'.forum_htmlencode($cur_include[1]).'" --> from template redirect.tpl.<br/>There is no such file in folder /include/user/.'); | 3267: error('Unable to process user include <!-- forum_include "'.forum_htmlencode($cur_include[1]).'" --> from template redirect.tpl.<br />There is no such file in folder /include/user/.'); |
3224: | 3268: |
3225: ob_start(); | 3269: ob_start(); |
3226: include FORUM_ROOT.'include/user/'.$cur_include[1]; | 3270: include FORUM_ROOT.'include/user/'.$cur_include[1]; |
3241: // Display a simple error message | 3285: // Display a simple error message |
3242: function error() | 3286: function error() |
3243: { | 3287: { |
3244: global $forum_config; | 3288: global $forum_config, $lang_common; |
3245: | 3289: |
3246: if (!headers_sent()) | 3290: if (!headers_sent()) |
3247: { | 3291: { |
3279: $forum_config['o_gzip'] = '0'; | 3323: $forum_config['o_gzip'] = '0'; |
3280: } | 3324: } |
3281: | 3325: |
| 3326: // Set a default error messages string if the script failed before $common_lang loaded |
| 3327: if (empty($lang_common['Forum error header'])) |
| 3328: { |
| 3329: $lang_common['Forum error header'] = 'Sorry! The page could not be loaded.'; |
| 3330: } |
| 3331: |
| 3332: if (empty($lang_common['Forum error description'])) |
| 3333: { |
| 3334: $lang_common['Forum error description'] = 'This is probably a temporary error. Just refresh the page and retry. If problem continues, please check back in 5-10 minutes.'; |
| 3335: } |
| 3336: |
| 3337: if (empty($lang_common['Forum error location'])) |
| 3338: { |
| 3339: $lang_common['Forum error location'] = 'The error occurred on line %1$s in %2$s'; |
| 3340: } |
| 3341: |
| 3342: if (empty($lang_common['Forum error db reported'])) |
| 3343: { |
| 3344: $lang_common['Forum error db reported'] = 'Database reported:'; |
| 3345: } |
| 3346: |
| 3347: if (empty($lang_common['Forum error db query'])) |
| 3348: { |
| 3349: $lang_common['Forum error db query'] = 'Failed query:'; |
| 3350: } |
| 3351: |
| 3352: |
3282: // Empty all output buffers and stop buffering | 3353: // Empty all output buffers and stop buffering |
3283: while (@ob_end_clean()); | 3354: while (@ob_end_clean()); |
3284: | 3355: |
3290: <!DOCTYPE html> | 3361: <!DOCTYPE html> |
3291: <html lang="en" dir="ltr"> | 3362: <html lang="en" dir="ltr"> |
3292: <head> | 3363: <head> |
3293: <meta charset="utf-8"/> | 3364: <meta charset="utf-8" /> |
3294: <title>Error - <?php echo forum_htmlencode($forum_config['o_board_title']) ?></title> | 3365: <title>Error - <?php echo forum_htmlencode($forum_config['o_board_title']) ?></title> |
| 3366: <style> |
| 3367: strong { font-weight: bold; } |
| 3368: body { margin: 50px; font: 85%/150% verdana, arial, sans-serif; color: #222; max-width: 55em; } |
| 3369: h1 { color: #a00000; font-weight: normal; font-size: 1.45em; } |
| 3370: code { font-family: monospace, sans-serif; } |
| 3371: .error_line { color: #999; font-size: .95em; } |
| 3372: </style> |
3295: </head> | 3373: </head> |
3296: <body style="margin: 40px; font: 85%/150% verdana, arial, sans-serif; color: #222; max-width: 55em;"> | 3374: <body> |
3297: <h1 style="color: #a00000; font-weight: normal;">An error was encountered</h1> | 3375: <h1><?php echo forum_htmlencode($lang_common['Forum error header']) ?></h1> |
3298: <?php | 3376: <?php |
3299: | |
3300: if (isset($message)) | 3377: if (isset($message)) |
3301: echo '<p>'.$message.'</p>'."\n"; | 3378: echo '<p>'.$message.'</p>'."\n"; |
| 3379: else |
| 3380: echo '<p>'.forum_htmlencode($lang_common['Forum error description']).'</p>'."\n"; |
3302: | 3381: |
3303: if ($num_args > 1) | 3382: if ($num_args > 1) |
3304: { | 3383: { |
3305: if (defined('FORUM_DEBUG')) | 3384: if (defined('FORUM_DEBUG')) |
3306: { | 3385: { |
3307: if (isset($file) && isset($line)) | |
3308: echo '<p>The error occurred on line '.$line.' in '.$file.'</p>'."\n"; | |
3309: | |
3310: $db_error = isset($GLOBALS['forum_db']) ? $GLOBALS['forum_db']->error() : array(); | 3386: $db_error = isset($GLOBALS['forum_db']) ? $GLOBALS['forum_db']->error() : array(); |
3311: if (!empty($db_error['error_msg'])) | 3387: if (!empty($db_error['error_msg'])) |
3312: { | 3388: { |
3313: echo '<p><strong>Database reported:</strong> '.forum_htmlencode($db_error['error_msg']).(($db_error['error_no']) ? ' (Errno: '.$db_error['error_no'].')' : '').'.</p>'."\n"; | 3389: echo '<p><strong>'.forum_htmlencode($lang_common['Forum error db reported']).'</strong> '.forum_htmlencode($db_error['error_msg']).(($db_error['error_no']) ? ' (Errno: '.$db_error['error_no'].')' : '').'.</p>'."\n"; |
3314: | 3390: |
3315: if ($db_error['error_sql'] != '') | 3391: if ($db_error['error_sql'] != '') |
3316: echo '<p><strong>Failed query:</strong> <code>'.forum_htmlencode($db_error['error_sql']).'</code></p>'."\n"; | 3392: echo '<p><strong>'.forum_htmlencode($lang_common['Forum error db query']).'</strong> <code>'.forum_htmlencode($db_error['error_sql']).'</code></p>'."\n"; |
3317: } | 3393: } |
| 3394: |
| 3395: if (isset($file) && isset($line)) |
| 3396: echo '<p class="error_line">'.forum_htmlencode(sprintf($lang_common['Forum error location'], $line, $file)).'</p>'."\n"; |
3318: } | 3397: } |
3319: else | |
3320: echo '<p style="font-size: .95em;"><strong>Note:</strong> For detailed error information (necessary for troubleshooting), enable "DEBUG mode".<br/>To enable "DEBUG mode", open up the file config.php in a text editor, add a line that looks like <nobr>"define(\'FORUM_DEBUG\', 1);"</nobr> (without the quotation marks), and re-upload the file.<br/>Once you\'ve solved the problem, it is recommended that "DEBUG mode" be turned off again (just remove the line from the file and re-upload it).</p>'."\n"; | |
3321: } | 3398: } |
3322: | |
3323: ?> | 3399: ?> |
3324: | |
3325: </body> | 3400: </body> |
3326: </html> | 3401: </html> |
3327: <?php | 3402: <?php |
3328: | |
3329: // If a database connection was established (before this error) we close it | 3403: // If a database connection was established (before this error) we close it |
3330: if (isset($GLOBALS['forum_db'])) | 3404: if (isset($GLOBALS['forum_db'])) |
3331: $GLOBALS['forum_db']->close(); | 3405: $GLOBALS['forum_db']->close(); |
punbb-1.4.1/include/js/LAB.src.js |
punbb-1.4.2/include/js/LAB.src.js |
1: /*! LAB.js (LABjs :: Loading And Blocking JavaScript) | |
2: v1.2.0 (c) Kyle Simpson | |
3: MIT License | |
4: */ | |
5: | |
6: (function(global){ | |
7: var sSTRING = "string", // constants used for compression optimization | |
8: sHEAD = "head", | |
9: sBODY = "body", | |
10: sSCRIPT = "script", | |
11: sREADYSTATE = "readyState", | |
12: sPRELOADDONE = "preloaddone", | |
13: sLOADTRIGGER = "loadtrigger", | |
14: sSRCURI = "srcuri", | |
15: sPRELOAD = "preload", | |
16: sCOMPLETE = "complete", | |
17: sDONE = "done", | |
18: sWHICH = "which", | |
19: sPRESERVE = "preserve", | |
20: sONREADYSTATECHANGE = "onreadystatechange", | |
21: sONLOAD = "onload", | |
22: sHASOWNPROPERTY = "hasOwnProperty", | |
23: sSCRIPTCACHE = "script/cache", | |
24: sTYPEOBJ = "[object ", | |
25: sTYPEFUNC = sTYPEOBJ+"Function]", | |
26: sTYPEARRAY = sTYPEOBJ+"Array]", | |
27: nNULL = null, | |
28: bTRUE = true, | |
29: bFALSE = false, | |
30: oDOC = global.document, | |
31: oWINLOC = global.location, | |
32: oACTIVEX = global.ActiveXObject, | |
33: fSETTIMEOUT = global.setTimeout, | |
34: fCLEARTIMEOUT = global.clearTimeout, | |
35: fGETELEMENTSBYTAGNAME = function(tn){return oDOC.getElementsByTagName(tn);}, | |
36: fOBJTOSTRING = Object.prototype.toString, | |
37: fNOOP = function(){}, | |
38: append_to = {}, | |
39: all_scripts = {}, | |
40: PAGEROOT = /^[^?#]*\//.exec(oWINLOC.href)[0], // these ROOTs do not support file:/// usage, only http:// type usage | |
41: DOCROOT = /^\w+\:\/\/\/?[^\/]+/.exec(PAGEROOT)[0], // optional third / in the protocol portion of this regex so that LABjs doesn't blow up when used in file:/// usage | |
42: docScripts = fGETELEMENTSBYTAGNAME(sSCRIPT), | |
43: | |
44: // Ah-ha hush that fuss, feature inference is used to detect specific browsers | |
45: // because the techniques used in LABjs have no known feature detection. If | |
46: // you know of a feature test please contact me ASAP. Feature inference is used | |
47: // instead of user agent sniffing because the UA string can be easily | |
48: // spoofed and is not adequate for such a mission critical part of the code. | |
49: is_opera = global.opera && fOBJTOSTRING.call(global.opera) == sTYPEOBJ+"Opera]", | |
50: is_gecko = ("MozAppearance" in oDOC.documentElement.style), | |
51: | |
52: // the following is a feature sniff for the ability to set async=false on dynamically created script elements, as proposed to the W3C | |
53: // RE: http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order | |
54: is_script_async = (oDOC.createElement(sSCRIPT).async === true), | |
55: | |
56: global_defs = { | |
57: cache:!(is_gecko||is_opera), // browsers like IE/Safari/Chrome can use the "cache" trick to preload | |
58: order:is_gecko||is_opera||is_script_async, // FF(prior to FF4) & Opera preserve execution order with script tags automatically, | |
59: // so just add all scripts as fast as possible. FF4 has async=false to do the same | |
60: xhr:bTRUE, // use XHR trick to preload local scripts | |
61: dupe:bTRUE, // allow duplicate scripts? defaults to true now 'cause is slightly more performant that way (less checks) | |
62: base:"", // base path to prepend to all non-absolute-path scripts | |
63: which:sHEAD // which DOM object ("head" or "body") to append scripts to | |
64: } | |
65: ; | |
66: global_defs[sPRESERVE] = bFALSE; // force preserve execution order of all loaded scripts (regardless of preloading) | |
67: global_defs[sPRELOAD] = bTRUE; // use various tricks for "preloading" scripts | |
68: | |
69: append_to[sHEAD] = oDOC.head || fGETELEMENTSBYTAGNAME(sHEAD); | |
70: append_to[sBODY] = fGETELEMENTSBYTAGNAME(sBODY); | |
71: | |
72: function isFunc(func) { return fOBJTOSTRING.call(func) === sTYPEFUNC; } | |
73: function canonicalScriptURI(src,base_path) { | |
74: var regex = /^\w+\:\/\//, ret; | |
75: if (typeof src != sSTRING) src = ""; | |
76: if (typeof base_path != sSTRING) base_path = ""; | |
77: ret = ((/^\/\//.test(src)) ? oWINLOC.protocol : "") + src; | |
78: ret = (regex.test(ret) ? "" : base_path) + ret; | |
79: return ((regex.test(ret) ? "" : (ret.charAt(0) === "/" ? DOCROOT : PAGEROOT)) + ret); | |
80: } | |
81: function sameDomain(src) { return (canonicalScriptURI(src).indexOf(DOCROOT) === 0); } | |
82: function scriptTagExists(uri) { // checks if a script uri has ever been loaded into this page's DOM | |
83: var script, idx=-1; | |
84: while (script = docScripts[++idx]) { | |
85: if (typeof script.src == sSTRING && uri === canonicalScriptURI(script.src) && script.type !== sSCRIPTCACHE) return bTRUE; | |
86: } | |
87: return bFALSE; | |
88: } | |
89: function engine(queueExec,opts) { | |
90: queueExec = !(!queueExec); | |
91: if (opts == nNULL) opts = global_defs; | |
92: | |
93: var ready = bFALSE, | |
94: _use_preload = queueExec && opts[sPRELOAD], | |
95: _use_cache_preload = _use_preload && opts.cache, | |
96: _use_script_order = _use_preload && opts.order, | |
97: _use_xhr_preload = _use_preload && opts.xhr, | |
98: _auto_wait = opts[sPRESERVE], | |
99: _which = opts.which, | |
100: _base_path = opts.base, | |
101: waitFunc = fNOOP, | |
102: scripts_loading = bFALSE, | |
103: publicAPI, | |
104: | |
105: first_pass = bTRUE, | |
106: scripts = {}, | |
107: exec = [], | |
108: end_of_chain_check_interval = nNULL | |
109: ; | |
110: | |
111: _use_preload = _use_cache_preload || _use_xhr_preload || _use_script_order; // if all flags are turned off, preload is moot so disable it | |
112: | |
113: function isScriptLoaded(elem,scriptentry) { | |
114: if ((elem[sREADYSTATE] && elem[sREADYSTATE]!==sCOMPLETE && elem[sREADYSTATE]!=="loaded") || scriptentry[sDONE]) { return bFALSE; } | |
115: elem[sONLOAD] = elem[sONREADYSTATECHANGE] = nNULL; // prevent memory leak | |
116: return bTRUE; | |
117: } | |
118: function handleScriptLoad(elem,scriptentry,skipReadyCheck) { | |
119: skipReadyCheck = !(!skipReadyCheck); // used to override ready check when script text was injected from XHR preload | |
120: if (!skipReadyCheck && !(isScriptLoaded(elem,scriptentry))) return; | |
121: scriptentry[sDONE] = bTRUE; | |
122: | |
123: for (var key in scripts) { | |
124: if (scripts[sHASOWNPROPERTY](key) && !(scripts[key][sDONE])) return; | |
125: } | |
126: ready = bTRUE; | |
127: waitFunc(); | |
128: } | |
129: function loadTriggerExecute(scriptentry) { | |
130: if (isFunc(scriptentry[sLOADTRIGGER])) { | |
131: scriptentry[sLOADTRIGGER](); | |
132: scriptentry[sLOADTRIGGER] = nNULL; // prevent memory leak | |
133: } | |
134: } | |
135: function handleScriptPreload(elem,scriptentry) { | |
136: if (!isScriptLoaded(elem,scriptentry)) return; | |
137: scriptentry[sPRELOADDONE] = bTRUE; | |
138: fSETTIMEOUT(function(){ | |
139: append_to[scriptentry[sWHICH]].removeChild(elem); // remove preload script node | |
140: loadTriggerExecute(scriptentry); | |
141: },0); | |
142: } | |
143: function handleXHRPreload(xhr,scriptentry) { | |
144: if (xhr[sREADYSTATE] === 4) { | |
145: xhr[sONREADYSTATECHANGE] = fNOOP; // fix a memory leak in IE | |
146: scriptentry[sPRELOADDONE] = bTRUE; | |
147: fSETTIMEOUT(function(){ loadTriggerExecute(scriptentry); },0); | |
148: } | |
149: } | |
150: function createScriptTag(scriptentry,src,type,charset,onload,scriptText) { | |
151: var _script_which = scriptentry[sWHICH]; | |
152: fSETTIMEOUT(function() { // this setTimeout waiting "hack" prevents a nasty race condition browser hang (IE) when the document.write("<script defer=true>") type dom-ready hack is present in the page | |
153: if ("item" in append_to[_script_which]) { // check if ref is still a live node list | |
154: if (!append_to[_script_which][0]) { // append_to node not yet ready | |
155: fSETTIMEOUT(arguments.callee,25); // try again in a little bit -- note, will recall the anonymous function in the outer setTimeout, not the parent createScriptTag() | |
156: return; | |
157: } | |
158: append_to[_script_which] = append_to[_script_which][0]; // reassign from live node list ref to pure node ref -- avoids nasty IE bug where changes to DOM invalidate live node lists | |
159: } | |
160: var scriptElem = oDOC.createElement(sSCRIPT); | |
161: if (typeof type == sSTRING) scriptElem.type = type; | |
162: if (typeof charset == sSTRING) scriptElem.charset = charset; | |
163: if (isFunc(onload)) { // load script via 'src' attribute, set onload/onreadystatechange listeners | |
164: scriptElem[sONLOAD] = scriptElem[sONREADYSTATECHANGE] = function(){onload(scriptElem,scriptentry);}; | |
165: scriptElem.src = src; | |
166: if (is_script_async) { | |
167: scriptElem.async = bFALSE; | |
168: } | |
169: } | |
170: // only for appending to <head>, fix a bug in IE6 if <base> tag is present -- otherwise, insertBefore(...,null) acts just like appendChild() | |
171: append_to[_script_which].insertBefore(scriptElem,(_script_which===sHEAD?append_to[_script_which].firstChild:nNULL)); | |
172: if (typeof scriptText == sSTRING) { // script text already avaiable from XHR preload, so just inject it | |
173: scriptElem.text = scriptText; | |
174: handleScriptLoad(scriptElem,scriptentry,bTRUE); // manually call 'load' callback function, skipReadyCheck=true | |
175: } | |
176: },0); | |
177: } | |
178: function loadScriptElem(scriptentry,src,type,charset) { | |
179: all_scripts[scriptentry[sSRCURI]] = bTRUE; | |
180: createScriptTag(scriptentry,src,type,charset,handleScriptLoad); | |
181: } | |
182: function loadScriptCache(scriptentry,src,type,charset) { | |
183: var args = arguments; | |
184: if (first_pass && scriptentry[sPRELOADDONE] == nNULL) { // need to preload into cache | |
185: scriptentry[sPRELOADDONE] = bFALSE; | |
186: createScriptTag(scriptentry,src,sSCRIPTCACHE,charset,handleScriptPreload); // fake mimetype causes a fetch into cache, but no execution | |
187: } | |
188: else if (!first_pass && scriptentry[sPRELOADDONE] != nNULL && !scriptentry[sPRELOADDONE]) { // preload still in progress, make sure trigger is set for execution later | |
189: scriptentry[sLOADTRIGGER] = function(){loadScriptCache.apply(nNULL,args);}; | |
190: } | |
191: else if (!first_pass) { // preload done, so reload (from cache, hopefully!) as regular script element | |
192: loadScriptElem.apply(nNULL,args); | |
193: } | |
194: } | |
195: function loadScriptXHR(scriptentry,src,type,charset) { | |
196: var args = arguments, xhr; | |
197: if (first_pass && scriptentry[sPRELOADDONE] == nNULL) { // need to preload | |
198: scriptentry[sPRELOADDONE] = bFALSE; | |
199: xhr = scriptentry.xhr = (oACTIVEX ? new oACTIVEX("Microsoft.XMLHTTP") : new global.XMLHttpRequest()); | |
200: xhr[sONREADYSTATECHANGE] = function(){handleXHRPreload(xhr,scriptentry);}; | |
201: xhr.open("GET",src); | |
202: xhr.send(""); | |
203: } | |
204: else if (!first_pass && scriptentry[sPRELOADDONE] != nNULL && !scriptentry[sPRELOADDONE]) { // preload XHR still in progress, make sure trigger is set for execution later | |
205: scriptentry[sLOADTRIGGER] = function(){loadScriptXHR.apply(nNULL,args);}; | |
206: } | |
207: else if (!first_pass) { // preload done, so "execute" script via injection | |
208: all_scripts[scriptentry[sSRCURI]] = bTRUE; | |
209: createScriptTag(scriptentry,src,type,charset,nNULL,scriptentry.xhr.responseText); | |
210: scriptentry.xhr = nNULL; | |
211: } | |
212: } | |
213: function loadScript(o) { | |
214: if (typeof o == "undefined" || !o) return; // skip over this script call if there's nothing to load | |
215: if (o.allowDup == nNULL) o.allowDup = opts.dupe; | |
216: var src = o.src, type = o.type, charset = o.charset, allowDup = o.allowDup, | |
217: src_uri = canonicalScriptURI(src,_base_path), scriptentry, same_domain = sameDomain(src_uri); | |
218: if (typeof charset != sSTRING) charset = nNULL; | |
219: allowDup = !(!allowDup); | |
220: if (!allowDup && | |
221: ( | |
222: (all_scripts[src_uri] != nNULL) || (first_pass && scripts[src_uri]) || scriptTagExists(src_uri) | |
223: ) | |
224: ) { | |
225: if (scripts[src_uri] != nNULL && scripts[src_uri][sPRELOADDONE] && !scripts[src_uri][sDONE] && same_domain) { | |
226: // this script was preloaded via XHR, but is a duplicate, and dupes are not allowed | |
227: handleScriptLoad(nNULL,scripts[src_uri],bTRUE); // mark the entry as done and check if chain group is done | |
228: } | |
229: return; | |
230: } | |
231: if (scripts[src_uri] == nNULL) scripts[src_uri] = {}; | |
232: scriptentry = scripts[src_uri]; | |
233: if (scriptentry[sWHICH] == nNULL) scriptentry[sWHICH] = _which; | |
234: scriptentry[sDONE] = bFALSE; | |
235: scriptentry[sSRCURI] = src_uri; | |
236: scripts_loading = bTRUE; | |
237: | |
238: if (!_use_script_order && _use_xhr_preload && same_domain) loadScriptXHR(scriptentry,src_uri,type,charset); | |
239: else if (!_use_script_order && _use_cache_preload) loadScriptCache(scriptentry,src_uri,type,charset); | |
240: else loadScriptElem(scriptentry,src_uri,type,charset); | |
241: } | |
242: function queueAndExecute(execBody) { // helper for publicAPI functions below | |
243: if (queueExec && !_use_script_order) exec.push(execBody); | |
244: if (!queueExec || _use_preload) execBody(); // if engine is either not queueing, or is queuing in preload mode, go ahead and execute | |
245: } | |
246: function serializeArgs(args) { | |
247: var sargs = [], idx; | |
248: for (idx=-1; ++idx<args.length;) { | |
249: if (fOBJTOSTRING.call(args[idx]) === sTYPEARRAY) sargs = sargs.concat(serializeArgs(args[idx])); | |
250: else sargs[sargs.length] = args[idx]; | |
251: } | |
252: return sargs; | |
253: } | |
254: | |
255: publicAPI = { | |
256: script:function() { | |
257: fCLEARTIMEOUT(end_of_chain_check_interval); | |
258: var args = serializeArgs(arguments), use_engine = publicAPI, idx; | |
259: if (_auto_wait) { | |
260: for (idx=-1; ++idx<args.length;) { | |
261: if (isFunc(args[idx])) args[idx] = args[idx](); // if a function is found, call/evaluate it first | |
262: if (idx===0) { | |
263: queueAndExecute(function(){ | |
264: loadScript((typeof args[0] == sSTRING) ? {src:args[0]} : args[0]); | |
265: }); | |
266: } | |
267: else use_engine = use_engine.script(args[idx]); | |
268: use_engine = use_engine.wait(); | |
269: } | |
270: } | |
271: else { | |
272: for (idx=-1; ++idx<args.length;) { | |
273: if (isFunc(args[idx])) args[idx] = args[idx](); // if a function is found, call/evaluate it first | |
274: } | |
275: queueAndExecute(function(){ | |
276: for (idx=-1; ++idx<args.length;) { | |
277: loadScript((typeof args[idx] == sSTRING) ? {src:args[idx]} : args[idx]); | |
278: } | |
279: }); | |
280: } | |
281: end_of_chain_check_interval = fSETTIMEOUT(function(){first_pass = bFALSE;},5); // hack to "detect" the end of the chain if a wait() is not the last call | |
282: return use_engine; | |
283: }, | |
284: wait:function(func) { | |
285: fCLEARTIMEOUT(end_of_chain_check_interval); | |
286: first_pass = bFALSE; | |
287: if (!isFunc(func)) func = fNOOP; | |
288: // On this current chain's waitFunc function, tack on call to trigger the queue for the *next* engine | |
289: // in the chain, which will be executed when the current chain finishes loading | |
290: var e = engine(queueExec||scripts_loading,opts), // if already in queuing, or if scripts now loading, keep queuing | |
291: triggerNextChain = e.trigger, // store ref to e's trigger function for use by 'wfunc' | |
292: wfunc = function(){ try { func(); } catch(err) {} triggerNextChain(); }; | |
293: delete e.trigger; // remove the 'trigger' property from e's public API, since only used internally | |
294: var fn = function(){ | |
295: if (scripts_loading && !ready) waitFunc = wfunc; | |
296: else wfunc(); | |
297: }; | |
298: | |
299: if (queueExec && !scripts_loading) exec.push(fn); | |
300: else queueAndExecute(fn); | |
301: return e; | |
302: } | |
303: }; | |
304: if (queueExec) { | |
305: // if queueing, return a function that the previous chain's waitFunc function can use to trigger this | |
306: // engine's queue. NOTE: this trigger function is captured and removed from the public chain API before return | |
307: publicAPI.trigger = function() { | |
308: var fn, idx=-1; | |
309: while (fn = exec[++idx]) fn(); | |
310: exec = []; | |
311: }; | |
312: } | |
313: else publicAPI.trigger = fNOOP; // no-op trigger function because this chain is not in queuing mode, so nothing to trigger | |
314: return publicAPI; | |
315: } | |
316: function processOpts(opts) { | |
317: var k, newOpts = {}, | |
318: boolOpts = {"UseCachePreload":"cache","UseLocalXHR":"xhr","UsePreloading":sPRELOAD,"AlwaysPreserveOrder":sPRESERVE,"AllowDuplicates":"dupe"}, | |
319: allOpts = {"AppendTo":sWHICH,"BasePath":"base"} | |
320: ; | |
321: for (k in boolOpts) allOpts[k] = boolOpts[k]; | |
322: newOpts.order = !(!global_defs.order); | |
323: for (k in allOpts) { | |
324: if (allOpts[sHASOWNPROPERTY](k) && global_defs[allOpts[k]] != nNULL) newOpts[allOpts[k]] = (opts[k] != nNULL) ? opts[k] : global_defs[allOpts[k]]; | |
325: } | |
326: for (k in boolOpts) { // normalize bool props to actual boolean values if not already | |
327: if (boolOpts[sHASOWNPROPERTY](k)) newOpts[boolOpts[k]] = !(!newOpts[boolOpts[k]]); | |
328: } | |
329: if (!newOpts[sPRELOAD]) newOpts.cache = newOpts.order = newOpts.xhr = bFALSE; // turn off all flags if preloading is disabled | |
330: newOpts.which = (newOpts.which === sHEAD || newOpts.which === sBODY) ? newOpts.which : sHEAD; | |
331: return newOpts; | |
332: } | |
333: | |
334: global.$LAB = { | |
335: setGlobalDefaults:function(gdefs) { // intentionally does not return an "engine" instance -- must call as stand-alone function call on $LAB | |
336: global_defs = processOpts(gdefs); | |
337: }, | |
338: setOptions:function(opts){ // set options per chain | |
339: return engine(bFALSE,processOpts(opts)); | |
340: }, | |
341: script:function(){ // will load one or more scripts | |
342: return engine().script.apply(nNULL,arguments); | |
343: }, | |
344: wait:function(){ // will ensure that the chain's previous scripts are executed before execution of scripts in subsequent chain links | |
345: return engine().wait.apply(nNULL,arguments); | |
346: } | |
347: }; | |
348: | |
349: /* The following "hack" was suggested by Andrea Giammarchi and adapted from: http://webreflection.blogspot.com/2009/11/195-chars-to-help-lazy-loading.html | |
350: NOTE: this hack only operates in FF and then only in versions where document.readyState is not present (FF < 3.6?). | |
351: | |
352: The hack essentially "patches" the **page** that LABjs is loaded onto so that it has a proper conforming document.readyState, so that if a script which does | |
353: proper and safe dom-ready detection is loaded onto a page, after dom-ready has passed, it will still be able to detect this state, by inspecting the now hacked | |
354: document.readyState property. The loaded script in question can then immediately trigger any queued code executions that were waiting for the DOM to be ready. | |
355: For instance, jQuery 1.4+ has been patched to take advantage of document.readyState, which is enabled by this hack. But 1.3.2 and before are **not** safe or | |
356: fixed by this hack, and should therefore **not** be lazy-loaded by script loader tools such as LABjs. | |
357: */ | |
358: (function(addEvent,domLoaded,handler){ | |
359: if (oDOC[sREADYSTATE] == nNULL && oDOC[addEvent]){ | |
360: oDOC[sREADYSTATE] = "loading"; | |
361: oDOC[addEvent](domLoaded,handler = function(){ | |
362: oDOC.removeEventListener(domLoaded,handler,bFALSE); | |
363: oDOC[sREADYSTATE] = sCOMPLETE; | |
364: },bFALSE); | |
365: } | |
366: })("addEventListener","DOMContentLoaded"); | |
367: | |
368: })(window); | |
369: | 0: |
punbb-1.4.1/include/js/min/punbb.common.min.js |
punbb-1.4.2/include/js/min/punbb.common.min.js |
3: MIT License | 3: MIT License |
4: */ | 4: */ |
5: (function(c){var h="string",k="head",t="body",U="script",O="readyState",R="preloaddone",D="loadtrigger",K="srcuri",H="preload",u="complete",f="done",b="which",v="preserve",o="onreadystatechange",L="onload",I="hasOwnProperty",E="script/cache",g="[object ",M=g+"Function]",F=g+"Array]",y=null,G=true,z=false,n=c.document,N=c.location,S=c.ActiveXObject,e=c.setTimeout,C=c.clearTimeout,T=function(V){return n.getElementsByTagName(V);},r=Object.prototype.toString,s=function(){},w={},A={},a=/^[^?#]*\//.exec(N.href)[0],x=/^\w+\:\/\/\/?[^\/]+/.exec(a)[0],Q=T(U),p=c.opera&&r.call(c.opera)==g+"Opera]",q=("MozAppearance" in n.documentElement.style),d=(n.createElement(U).async===true),m={cache:!(q||p),order:q||p||d,xhr:G,dupe:G,base:"",which:k};m[v]=z;m[H]=G;w[k]=n.head||T(k);w[t]=T(t);function P(V){return r.call(V)===M;}function B(Y,X){var W=/^\w+\:\/\//,V;if(typeof Y!=h){Y="";}if(typeof X!=h){X="";}V=((/^\/\//.test(Y))?N.protocol:"")+Y;V=(W.test(V)?"":X)+V;return((W.test(V)?"":(V.charAt(0)==="/"?x:a))+V);}function J(V){return(B(V).indexOf(x)===0);}function i(X){var W,V=-1;while(W=Q[++V]){if(typeof W.src==h&&X===B(W.src)&&W.type!==E){return G;}}return z;}function l(ay,am){ay=!(!ay);if(am==y){am=m;}var al=z,af=ay&&am[H],at=af&&am.cache,av=af&&am.order,Z=af&&am.xhr,aw=am[v],Y=am.which,ap=am.base,aa=s,ao=z,ai,ac=G,ad={},au=[],ag=y;af=at||Z||av;function ax(aA,az){if((aA[O]&&aA[O]!==u&&aA[O]!=="loaded")||az[f]){return z;}aA[L]=aA[o]=y;return G;}function X(aB,aA,aC){aC=!(!aC);if(!aC&&!(ax(aB,aA))){return;}aA[f]=G;for(var az in ad){if(ad[I](az)&&!(ad[az][f])){return;}}al=G;aa();}function ah(az){if(P(az[D])){az[D]();az[D]=y;}}function ae(aA,az){if(!ax(aA,az)){return;}az[R]=G;e(function(){w[az[b]].removeChild(aA);ah(az);},0);}function V(aA,az){if(aA[O]===4){aA[o]=s;az[R]=G;e(function(){ah(az);},0);}}function ar(aB,aE,aC,aF,aD,az){var aA=aB[b];e(function(){if("item" in w[aA]){if(!w[aA][0]){e(arguments.callee,25);return;}w[aA]=w[aA][0];}var aG=n.createElement(U);if(typeof aC==h){aG.type=aC;}if(typeof aF==h){aG.charset=aF;}if(P(aD)){aG[L]=aG[o]=function(){aD(aG,aB);};aG.src=aE;if(d){aG.async=z;}}w[aA].insertBefore(aG,(aA===k?w[aA].firstChild:y));if(typeof az==h){aG.text=az;X(aG,aB,G);}},0);}function ak(az,aB,aA,aC){A[az[K]]=G;ar(az,aB,aA,aC,X);}function aq(aA,aC,aB,aD){var az=arguments;if(ac&&aA[R]==y){aA[R]=z;ar(aA,aC,E,aD,ae);}else{if(!ac&&aA[R]!=y&&!aA[R]){aA[D]=function(){aq.apply(y,az);};}else{if(!ac){ak.apply(y,az);}}}}function W(aA,aD,aB,aE){var az=arguments,aC;if(ac&&aA[R]==y){aA[R]=z;aC=aA.xhr=(S?new S("Microsoft.XMLHTTP"):new c.XMLHttpRequest());aC[o]=function(){V(aC,aA);};aC.open("GET",aD);aC.send("");}else{if(!ac&&aA[R]!=y&&!aA[R]){aA[D]=function(){W.apply(y,az);};}else{if(!ac){A[aA[K]]=G;ar(aA,aD,aB,aE,y,aA.xhr.responseText);aA.xhr=y;}}}}function aj(aF){if(typeof aF=="undefined"||!aF){return;}if(aF.allowDup==y){aF.allowDup=am.dupe;}var aE=aF.src,aC=aF.type,aG=aF.charset,aA=aF.allowDup,az=B(aE,ap),aB,aD=J(az);if(typeof aG!=h){aG=y;}aA=!(!aA);if(!aA&&((A[az]!=y)||(ac&&ad[az])||i(az))){if(ad[az]!=y&&ad[az][R]&&!ad[az][f]&&aD){X(y,ad[az],G);}return;}if(ad[az]==y){ad[az]={};}aB=ad[az];if(aB[b]==y){aB[b]=Y;}aB[f]=z;aB[K]=az;ao=G;if(!av&&Z&&aD){W(aB,az,aC,aG);}else{if(!av&&at){aq(aB,az,aC,aG);}else{ak(aB,az,aC,aG);}}}function ab(az){if(ay&&!av){au.push(az);}if(!ay||af){az();}}function an(aB){var aA=[],az;for(az=-1;++az<aB.length;){if(r.call(aB[az])===F){aA=aA.concat(an(aB[az]));}else{aA[aA.length]=aB[az];}}return aA;}ai={script:function(){C(ag);var aB=an(arguments),aA=ai,az;if(aw){for(az=-1;++az<aB.length;){if(P(aB[az])){aB[az]=aB[az]();}if(az===0){ab(function(){aj((typeof aB[0]==h)?{src:aB[0]}:aB[0]);});}else{aA=aA.script(aB[az]);}aA=aA.wait();}}else{for(az=-1;++az<aB.length;){if(P(aB[az])){aB[az]=aB[az]();}}ab(function(){for(az=-1;++az<aB.length;){aj((typeof aB[az]==h)?{src:aB[az]}:aB[az]);}});}ag=e(function(){ac=z;},5);return aA;},wait:function(aC){C(ag);ac=z;if(!P(aC)){aC=s;}var aD=l(ay||ao,am),az=aD.trigger,aB=function(){try{aC();}catch(aE){}az();};delete aD.trigger;var aA=function(){if(ao&&!al){aa=aB;}else{aB();}};if(ay&&!ao){au.push(aA);}else{ab(aA);}return aD;}};if(ay){ai.trigger=function(){var aA,az=-1;while(aA=au[++az]){aA();}au=[];};}else{ai.trigger=s;}return ai;}function j(Z){var V,X={},W={"UseCachePreload":"cache","UseLocalXHR":"xhr","UsePreloading":H,"AlwaysPreserveOrder":v,"AllowDuplicates":"dupe"},Y={"AppendTo":b,"BasePath":"base"};for(V in W){Y[V]=W[V];}X.order=!(!m.order);for(V in Y){if(Y[I](V)&&m[Y[V]]!=y){X[Y[V]]=(Z[V]!=y)?Z[V]:m[Y[V]];}}for(V in W){if(W[I](V)){X[W[V]]=!(!X[W[V]]);}}if(!X[H]){X.cache=X.order=X.xhr=z;}X.which=(X.which===k||X.which===t)?X.which:k;return X;}c.$LAB={setGlobalDefaults:function(V){m=j(V);},setOptions:function(V){return l(z,j(V));},script:function(){return l().script.apply(y,arguments);},wait:function(){return l().wait.apply(y,arguments);}};(function(X,V,W){if(n[O]==y&&n[X]){n[O]="loading"; | 5: (function(c){var h="string",k="head",t="body",U="script",O="readyState",R="preloaddone",D="loadtrigger",K="srcuri",H="preload",u="complete",f="done",b="which",v="preserve",o="onreadystatechange",L="onload",I="hasOwnProperty",E="script/cache",g="[object ",M=g+"Function]",F=g+"Array]",y=null,G=true,z=false,n=c.document,N=c.location,S=c.ActiveXObject,e=c.setTimeout,C=c.clearTimeout,T=function(V){return n.getElementsByTagName(V);},r=Object.prototype.toString,s=function(){},w={},A={},a=/^[^?#]*\//.exec(N.href)[0],x=/^\w+\:\/\/\/?[^\/]+/.exec(a)[0],Q=T(U),p=c.opera&&r.call(c.opera)==g+"Opera]",q=("MozAppearance" in n.documentElement.style),d=(n.createElement(U).async===true),m={cache:!(q||p),order:q||p||d,xhr:G,dupe:G,base:"",which:k};m[v]=z;m[H]=G;w[k]=n.head||T(k);w[t]=T(t);function P(V){return r.call(V)===M;}function B(Y,X){var W=/^\w+\:\/\//,V;if(typeof Y!=h){Y="";}if(typeof X!=h){X="";}V=((/^\/\//.test(Y))?N.protocol:"")+Y;V=(W.test(V)?"":X)+V;return((W.test(V)?"":(V.charAt(0)==="/"?x:a))+V);}function J(V){return(B(V).indexOf(x)===0);}function i(X){var W,V=-1;while(W=Q[++V]){if(typeof W.src==h&&X===B(W.src)&&W.type!==E){return G;}}return z;}function l(ay,am){ay=!(!ay);if(am==y){am=m;}var al=z,af=ay&&am[H],at=af&&am.cache,av=af&&am.order,Z=af&&am.xhr,aw=am[v],Y=am.which,ap=am.base,aa=s,ao=z,ai,ac=G,ad={},au=[],ag=y;af=at||Z||av;function ax(aA,az){if((aA[O]&&aA[O]!==u&&aA[O]!=="loaded")||az[f]){return z;}aA[L]=aA[o]=y;return G;}function X(aB,aA,aC){aC=!(!aC);if(!aC&&!(ax(aB,aA))){return;}aA[f]=G;for(var az in ad){if(ad[I](az)&&!(ad[az][f])){return;}}al=G;aa();}function ah(az){if(P(az[D])){az[D]();az[D]=y;}}function ae(aA,az){if(!ax(aA,az)){return;}az[R]=G;e(function(){w[az[b]].removeChild(aA);ah(az);},0);}function V(aA,az){if(aA[O]===4){aA[o]=s;az[R]=G;e(function(){ah(az);},0);}}function ar(aB,aE,aC,aF,aD,az){var aA=aB[b];e(function(){if("item" in w[aA]){if(!w[aA][0]){e(arguments.callee,25);return;}w[aA]=w[aA][0];}var aG=n.createElement(U);if(typeof aC==h){aG.type=aC;}if(typeof aF==h){aG.charset=aF;}if(P(aD)){aG[L]=aG[o]=function(){aD(aG,aB);};aG.src=aE;if(d){aG.async=z;}}w[aA].insertBefore(aG,(aA===k?w[aA].firstChild:y));if(typeof az==h){aG.text=az;X(aG,aB,G);}},0);}function ak(az,aB,aA,aC){A[az[K]]=G;ar(az,aB,aA,aC,X);}function aq(aA,aC,aB,aD){var az=arguments;if(ac&&aA[R]==y){aA[R]=z;ar(aA,aC,E,aD,ae);}else{if(!ac&&aA[R]!=y&&!aA[R]){aA[D]=function(){aq.apply(y,az);};}else{if(!ac){ak.apply(y,az);}}}}function W(aA,aD,aB,aE){var az=arguments,aC;if(ac&&aA[R]==y){aA[R]=z;aC=aA.xhr=(S?new S("Microsoft.XMLHTTP"):new c.XMLHttpRequest());aC[o]=function(){V(aC,aA);};aC.open("GET",aD);aC.send("");}else{if(!ac&&aA[R]!=y&&!aA[R]){aA[D]=function(){W.apply(y,az);};}else{if(!ac){A[aA[K]]=G;ar(aA,aD,aB,aE,y,aA.xhr.responseText);aA.xhr=y;}}}}function aj(aF){if(typeof aF=="undefined"||!aF){return;}if(aF.allowDup==y){aF.allowDup=am.dupe;}var aE=aF.src,aC=aF.type,aG=aF.charset,aA=aF.allowDup,az=B(aE,ap),aB,aD=J(az);if(typeof aG!=h){aG=y;}aA=!(!aA);if(!aA&&((A[az]!=y)||(ac&&ad[az])||i(az))){if(ad[az]!=y&&ad[az][R]&&!ad[az][f]&&aD){X(y,ad[az],G);}return;}if(ad[az]==y){ad[az]={};}aB=ad[az];if(aB[b]==y){aB[b]=Y;}aB[f]=z;aB[K]=az;ao=G;if(!av&&Z&&aD){W(aB,az,aC,aG);}else{if(!av&&at){aq(aB,az,aC,aG);}else{ak(aB,az,aC,aG);}}}function ab(az){if(ay&&!av){au.push(az);}if(!ay||af){az();}}function an(aB){var aA=[],az;for(az=-1;++az<aB.length;){if(r.call(aB[az])===F){aA=aA.concat(an(aB[az]));}else{aA[aA.length]=aB[az];}}return aA;}ai={script:function(){C(ag);var aB=an(arguments),aA=ai,az;if(aw){for(az=-1;++az<aB.length;){if(P(aB[az])){aB[az]=aB[az]();}if(az===0){ab(function(){aj((typeof aB[0]==h)?{src:aB[0]}:aB[0]);});}else{aA=aA.script(aB[az]);}aA=aA.wait();}}else{for(az=-1;++az<aB.length;){if(P(aB[az])){aB[az]=aB[az]();}}ab(function(){for(az=-1;++az<aB.length;){aj((typeof aB[az]==h)?{src:aB[az]}:aB[az]);}});}ag=e(function(){ac=z;},5);return aA;},wait:function(aC){C(ag);ac=z;if(!P(aC)){aC=s;}var aD=l(ay||ao,am),az=aD.trigger,aB=function(){try{aC();}catch(aE){}az();};delete aD.trigger;var aA=function(){if(ao&&!al){aa=aB;}else{aB();}};if(ay&&!ao){au.push(aA);}else{ab(aA);}return aD;}};if(ay){ai.trigger=function(){var aA,az=-1;while(aA=au[++az]){aA();}au=[];};}else{ai.trigger=s;}return ai;}function j(Z){var V,X={},W={"UseCachePreload":"cache","UseLocalXHR":"xhr","UsePreloading":H,"AlwaysPreserveOrder":v,"AllowDuplicates":"dupe"},Y={"AppendTo":b,"BasePath":"base"};for(V in W){Y[V]=W[V];}X.order=!(!m.order);for(V in Y){if(Y[I](V)&&m[Y[V]]!=y){X[Y[V]]=(Z[V]!=y)?Z[V]:m[Y[V]];}}for(V in W){if(W[I](V)){X[W[V]]=!(!X[W[V]]);}}if(!X[H]){X.cache=X.order=X.xhr=z;}X.which=(X.which===k||X.which===t)?X.which:k;return X;}c.$LAB={setGlobalDefaults:function(V){m=j(V);},setOptions:function(V){return l(z,j(V));},script:function(){return l().script.apply(y,arguments);},wait:function(){return l().wait.apply(y,arguments);}};(function(X,V,W){if(n[O]==y&&n[X]){n[O]="loading"; |
6: n[X](V,W=function(){n.removeEventListener(V,W,z);n[O]=u;},z);}})("addEventListener","DOMContentLoaded");})(window);if(typeof PUNBB==="undefined"||!PUNBB){var PUNBB={};}PUNBB.common=(function(){var d=document.documentElement,c=false,a=false;function b(e){return document.getElementById(e);}return{on_domready_init:function(){c=true;PUNBB.common.addClass(d,"js");PUNBB.common.attachWindowOpen();PUNBB.common.autoFocus();PUNBB.common.attachCtrlEnterForm();if(!PUNBB.common.input_support_attr("required")){PUNBB.common.attachValidateForm();}var e=b("brd-messages");if(e){setTimeout(function(){e.style.visibility="hidden";},3500);}},on_load_init:function(){a=true;},addLoadEvent:function(f){if(a===true){f();}else{var e=window.onload;window.onload=(e&&typeof e==="function")?function(){e();f();}:f;}},addDOMReadyEvent:function(g){var e=false;if(c===true){g();return;}if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){g();e=true;},false);window.addEventListener("load",function(){if(!e){g();}},false);}else{if(window.attachEvent){if(window.ActiveXObject&&window===window.top){f();}else{window.attachEvent("onload",g);}}else{PUNBB.common.addLoadEvent(g);}}function f(){try{d.doScroll("left");}catch(h){setTimeout(f,0);return;}g();}},hasClass:function(f,e){return(new RegExp("\\b"+e+"\\b")).test(f.className);},addClass:function(f,e){if(PUNBB.common.hasClass(f,e)){return false;}else{f.className+=" "+e;}return true;},removeClass:function(f,e){if(!PUNBB.common.hasClass(f,e)){return false;}e=new RegExp("\\s*\\b"+e+"\\b","g");f.className=f.className.replace(e,"");return true;},blink:function(g,f){if(typeof f===undefined){f=2;}var e=g.style.visibility;if(f&&e!=="hidden"){g.style.visibility="hidden";setTimeout(function(){g.style.visibility=e;},200);setTimeout(function(){PUNBB.common.blink(g,f-1);},400);}},onScreen:function(l){function i(){var m=-1;if(window.pageYOffset){m=window.pageYOffset;}else{if(d&&d.scrollTop){m=d.scrollTop;}else{if(document.body){m=document.body.scrollTop;}}}return m;}function h(){var m=-1;if(window.innerHeight){m=window.innerHeight;}else{if(d&&d.clientHeight){m=d.clientHeight;}else{if(document.body){m=document.body.clientHeight;}}}return m;}function f(o){var m=o.offsetTop;o=o.offsetParent;return o?m+=f(o):m;}var e=i(),k=e+h(),g=f(l),j=g+l.clientHeight;return g>=e&&j<k;},map:function(h,f){var g,e;for(g=0,e=f.length;g<e;g+=1){f[g]=h(f[g]);}return f;},find:function(h,f){var g,e;for(g=0,e=f.length;g<e;g+=1){if(h(f[g])){return g;}}return -1;},arrayOfMatched:function(j,g){var h,f,e=[];for(h=0,f=g.length;h<f;h+=1){if(j(g[h])){e.push(g[h]);}}return e;},flatten:function(f){var g,e,h=[];for(g=0,e=f.length;g<e;g+=1){if(typeof f[g]==="object"&&f.length){h.concat(PUNBB.common.flatten(f[g]));}else{h.push(f[g]);}}return h;},validateForm:function(g){var f=function(l){return l.name&&l.name.indexOf("req_")===0;};var i=g.elements,e=PUNBB.common.arrayOfMatched(f,i);f=function(l){return(/^\s*$/).test(l.value);};var h=PUNBB.common.find(f,e);if(h>-1){if(PUNBB.common.find(f,e)>-1){var k=b("req-msg");PUNBB.common.removeClass(k,"req-warn");var j=PUNBB.common.addClass(k,"req-error");if(!PUNBB.common.onScreen(k)){k.scrollIntoView();setTimeout(function(){PUNBB.common.blink(k);},500);}else{if(!j){PUNBB.common.blink(k);}}if(PUNBB.common.onScreen(e[h])){e[h].focus();}return false;}}return true;},doQuickjumpRedirect:function(g,f){var e=b("qjump-select")[b("qjump-select").selectedIndex].value;g=g.replace("$1",e);g=g.replace("$2",f[e]);document.location=g;return false;},attachQuickjumpRedirect:function(e,h){var g=b("qjump-select"),f=b("qjump-submit");if(g){g.onchange=function(){return PUNBB.common.doQuickjumpRedirect(e,h);};}if(f){f.onclick=function(){return PUNBB.common.doQuickjumpRedirect(e,h);};PUNBB.common.addClass(f,"visual-hidden");}},initToggleCheckboxes:function(){var j=function(i){return function(){return PUNBB.common.toggleCheckboxes(i);};};var f,e,k=document.getElementsByTagName("span");for(f=0,e=k.length;f<e;f+=1){var g=k[f];if(PUNBB.common.hasClass(g,"select-all")&&g.getAttribute("data-check-form")){var h=b(g.getAttribute("data-check-form"));if(h){g.onclick=j(h);}}}},toggleCheckboxes:function(h){if(!h){return false;}var f,e,j=h.getElementsByTagName("input");for(f=0,e=j.length;f<e;f+=1){var g=j[f];if(g.getAttribute("data-no-select-all")){continue;}if(g.getAttribute("type")=="checkbox"&&g.disabled===false){g.checked=!g.checked;}}return false;},attachCtrlEnterForm:function(){var q=function(f){return function(j){j=j||window.event;var i=j.keyCode||j.which;if(((i==13)||(i==10))&&(j.ctrlKey===true)){return f.submit();}};};var m=function(f){return f.tagName.toUpperCase()=="TEXTAREA";};var l,p,g=document.forms;for(l=0,p=g.length;l<p;l+=1){var o=g[l];if(!PUNBB.common.hasClass(o,"frm-ctrl-submit")){continue;}var k,n,e=o.elements,h=PUNBB.common.arrayOfMatched(m,e);for(k=0,n=h.length;k<n;k+=1){h[k].onkeypress=q(o);}}},attachValidateForm:function(){var n=function(i){return i.name&&i.name.indexOf("req_")===0;};var k=function(i){return i.type&&(i.type=="submit"&&i.name!="cancel"); | |
7: };var l=function(i){return function(){return PUNBB.common.validateForm(i);};};var j,m,f=document.forms;for(j=0,m=f.length;j<m;j+=1){var e=f[j].elements;if(PUNBB.common.find(n,e)>-1){var g=PUNBB.common.arrayOfMatched(k,e),h=f[j];g=PUNBB.common.map(function(i){i.onclick=l(h);},g);}}},attachWindowOpen:function(){if(!document.getElementsByTagName){return;}var g=function(){return function(){window.open(this.href);return false;};};var f,e=document.getElementsByTagName("a");for(f=0;f<e.length;f+=1){if(PUNBB.common.hasClass(e[f],"exthelp")){e[f].onclick=g();}}},autoFocus:function(){var f=function(h){return h.offsetWidth>0&&(h.tagName.toUpperCase()=="TEXTAREA"||(h.tagName.toUpperCase()=="INPUT"&&(h.type=="text")||(h.type=="password")||(h.type=="email")||(h.type=="url")||(h.type=="number")));};var e=b("afocus");if(!e||window.location.hash.replace(/#/g,"")){return;}e=e.all||e.getElementsByTagName("*");var g=PUNBB.common.find(f,e);if(g>-1){e[g].focus();}},input_support_attr:function(e){var f=document.createElement("input");if(!e){return false;}return !!(e in f);}};}());PUNBB.common.addDOMReadyEvent(PUNBB.common.on_domready_init);PUNBB.common.addLoadEvent(PUNBB.common.on_load_init); | |
8: | 6: |
| 7: n[X](V,W=function(){n.removeEventListener(V,W,z);n[O]=u;},z);}})("addEventListener","DOMContentLoaded");})(window);if(typeof PUNBB==="undefined"||!PUNBB){var PUNBB={};}PUNBB.common=(function(){var e=document.documentElement,d=false,a=false;function b(f){return document.getElementById(f);}function c(f,h){if(f&&h){if(f.value.length===0&&h.value.length===0){return;}if(f.value===h.value){return;}var g=parseInt(h.getAttribute("maxlength"),10)||0;if(g>0){h.value=f.value.replace(/@.*/,"").replace(/\s/g,"").substr(0,g);}else{h.value=f.value.replace(/@.*/,"").replace(/\s/g,"");}}}return{on_domready_init:function(){d=true;PUNBB.common.addClass(e,"js");PUNBB.common.attachWindowOpen();PUNBB.common.autoFocus();PUNBB.common.attachCtrlEnterForm();PUNBB.common.attachUsernameFromEmail();PUNBB.common.attachEmailFieldFixer();if(!PUNBB.common.input_support_attr("required")){PUNBB.common.attachValidateForm();}var f=b("brd-messages");if(f){setTimeout(function(){f.style.visibility="hidden";},3500);}},on_load_init:function(){a=true;},addLoadEvent:function(g){if(a===true){g();}else{var f=window.onload;window.onload=(f&&typeof f==="function")?function(){f();g();}:g;}},addDOMReadyEvent:function(h){var f=false;if(d===true){h();return;}if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){h();f=true;},false);window.addEventListener("load",function(){if(!f){h();}},false);}else{if(window.attachEvent){if(window.ActiveXObject&&window===window.top){g();}else{window.attachEvent("onload",h);}}else{PUNBB.common.addLoadEvent(h);}}function g(){try{e.doScroll("left");}catch(i){setTimeout(g,0);return;}h();}},hasClass:function(g,f){return(new RegExp("\\b"+f+"\\b")).test(g.className);},addClass:function(g,f){if(PUNBB.common.hasClass(g,f)){return false;}else{g.className+=" "+f;}return true;},removeClass:function(g,f){if(!PUNBB.common.hasClass(g,f)){return false;}f=new RegExp("\\s*\\b"+f+"\\b","g");g.className=g.className.replace(f,"");return true;},blink:function(h,g){if(typeof g===undefined){g=2;}var f=h.style.visibility;if(g&&f!=="hidden"){h.style.visibility="hidden";setTimeout(function(){h.style.visibility=f;},200);setTimeout(function(){PUNBB.common.blink(h,g-1);},400);}},onScreen:function(m){function j(){var n=-1;if(window.pageYOffset){n=window.pageYOffset;}else{if(e&&e.scrollTop){n=e.scrollTop;}else{if(document.body){n=document.body.scrollTop;}}}return n;}function i(){var n=-1;if(window.innerHeight){n=window.innerHeight;}else{if(e&&e.clientHeight){n=e.clientHeight;}else{if(document.body){n=document.body.clientHeight;}}}return n;}function g(p){var o=p.offsetTop;p=p.offsetParent;return p?o+=g(p):o;}var f=j(),l=f+i(),h=g(m),k=h+m.clientHeight;return h>=f&&k<l;},map:function(j,g){var h,f;for(h=0,f=g.length;h<f;h+=1){g[h]=j(g[h]);}return g;},find:function(j,g){var h,f;for(h=0,f=g.length;h<f;h+=1){if(j(g[h])){return h;}}return -1;},arrayOfMatched:function(k,h){var j,g,f=[];for(j=0,g=h.length;j<g;j+=1){if(k(h[j])){f.push(h[j]);}}return f;},flatten:function(g){var h,f,j=[];for(h=0,f=g.length;h<f;h+=1){if(typeof g[h]==="object"&&g.length){j.concat(PUNBB.common.flatten(g[h]));}else{j.push(g[h]);}}return j;},validateForm:function(h){var g=function(m){return m.name&&m.name.indexOf("req_")===0;};var j=h.elements,f=PUNBB.common.arrayOfMatched(g,j);g=function(m){return(/^\s*$/).test(m.value);};var i=PUNBB.common.find(g,f);if(i>-1){if(PUNBB.common.find(g,f)>-1){var l=b("req-msg");PUNBB.common.removeClass(l,"req-warn");var k=PUNBB.common.addClass(l,"req-error");if(!PUNBB.common.onScreen(l)){l.scrollIntoView();setTimeout(function(){PUNBB.common.blink(l);},500);}else{if(!k){PUNBB.common.blink(l);}}if(PUNBB.common.onScreen(f[i])){f[i].focus();}return false;}}return true;},doQuickjumpRedirect:function(h,g){var f=b("qjump-select")[b("qjump-select").selectedIndex].value;h=h.replace("$1",f);h=h.replace("$2",g[f]);document.location=h;return false;},attachQuickjumpRedirect:function(f,i){var h=b("qjump-select"),g=b("qjump-submit");if(h){h.onchange=function(){return PUNBB.common.doQuickjumpRedirect(f,i);};}if(g){g.onclick=function(){return PUNBB.common.doQuickjumpRedirect(f,i);};PUNBB.common.addClass(g,"visual-hidden");}},initToggleCheckboxes:function(){var k=function(i){return function(){return PUNBB.common.toggleCheckboxes(i);};};var g,f,l=document.getElementsByTagName("span");for(g=0,f=l.length;g<f;g+=1){var h=l[g];if(PUNBB.common.hasClass(h,"select-all")&&h.getAttribute("data-check-form")){var j=b(h.getAttribute("data-check-form"));if(j){h.onclick=k(j);}}}},toggleCheckboxes:function(j){if(!j){return false;}var g,f,k=j.getElementsByTagName("input");for(g=0,f=k.length;g<f;g+=1){var h=k[g];if(h.getAttribute("data-no-select-all")){continue;}if(h.getAttribute("type")=="checkbox"&&h.disabled===false){h.checked=!h.checked;}}return false;},attachCtrlEnterForm:function(){var r=function(f){return function(j){j=j||window.event;var i=j.keyCode||j.which;if(((i==13)||(i==10))&&(j.ctrlKey===true)){return f.submit();}};};var n=function(f){return f.tagName.toUpperCase()=="TEXTAREA"; |
| 8: };var m,q,h=document.forms;for(m=0,q=h.length;m<q;m+=1){var p=h[m];if(!PUNBB.common.hasClass(p,"frm-ctrl-submit")){continue;}var l,o,g=p.elements,k=PUNBB.common.arrayOfMatched(n,g);for(l=0,o=k.length;l<o;l+=1){k[l].onkeypress=r(p);}}},attachValidateForm:function(){var o=function(i){return i.name&&i.name.indexOf("req_")===0;};var l=function(i){return i.type&&(i.type=="submit"&&i.name!="cancel");};var m=function(i){return function(){return PUNBB.common.validateForm(i);};};var k,n,g=document.forms;for(k=0,n=g.length;k<n;k+=1){var f=g[k].elements;if(PUNBB.common.find(o,f)>-1){var h=PUNBB.common.arrayOfMatched(l,f),j=g[k];h=PUNBB.common.map(function(i){i.onclick=m(j);},h);}}},attachWindowOpen:function(){if(!document.getElementsByTagName){return;}var h=function(){return function(){window.open(this.href);return false;};};var g,f=document.getElementsByTagName("a");for(g=0;g<f.length;g+=1){if(PUNBB.common.hasClass(f[g],"exthelp")){f[g].onclick=h();}}},autoFocus:function(){var g=function(i){return i.offsetWidth>0&&(i.tagName.toUpperCase()=="TEXTAREA"||(i.tagName.toUpperCase()=="INPUT"&&(i.type=="text")||(i.type=="password")||(i.type=="email")||(i.type=="url")||(i.type=="number")));};var f=b("afocus");if(!f||window.location.hash.replace(/#/g,"")){return;}f=f.all||f.getElementsByTagName("*");var h=PUNBB.common.find(g,f);if(h>-1){f[h].focus();}},input_support_attr:function(f){var g=document.createElement("input");if(!f){return false;}return !!(f in g);},attachUsernameFromEmail:function(){var m=function(f){return(f.tagName.toUpperCase()=="INPUT"&&f.type=="email"&&f.getAttribute("data-suggest-role")==="email");};var p=function(f){return(f.tagName.toUpperCase()=="INPUT"&&f.type=="text"&&f.getAttribute("data-suggest-role")==="username");};var j,n,g=document.forms;for(j=0,n=g.length;j<n;j+=1){var l=g[j],k=-1,h=-1;if(!PUNBB.common.hasClass(l,"frm-suggest-username")){continue;}k=PUNBB.common.find(m,l.elements);h=PUNBB.common.find(p,l.elements);if(k>0&&h>0){var o=function(f){return function(i){c(this,f);};};l.elements[k].onkeyup=o(l.elements[h]);}}},attachEmailFieldFixer:function(){var n=function(i){return(i.tagName.toUpperCase()=="INPUT"&&i.type=="email");};var p=function(){var i=this;if(i&&i.value.length>0){i.value=i.value.replace(/\s/g,"");}};var l,o,g=document.forms;for(l=0,o=g.length;l<o;l+=1){var k,m,f=g[l].elements,h=PUNBB.common.arrayOfMatched(n,f);for(k=0,m=h.length;k<m;k+=1){h[k].onblur=p;}}}};}());PUNBB.common.addDOMReadyEvent(PUNBB.common.on_domready_init);PUNBB.common.addLoadEvent(PUNBB.common.on_load_init); |
9: | 9: |
punbb-1.4.1/include/js/min/punbb.timezone.min.js |
punbb-1.4.2/include/js/min/punbb.timezone.min.js |
1: if(typeof PUNBB==="undefined"||!PUNBB){var PUNBB={};}PUNBB.timezone=(function(){var b="SOUTH",a="NORTH",c="N/A",h={},e;e=function(l,k,j){this.utc_offset=l;this.olson_tz=k;this.uses_dst=j;};h.timezones={"-720,0":new e("-12:00","Etc/GMT+12",false),"-660,0":new e("-11:00","Pacific/Pago_Pago",false),"-600,1":new e("-11:00","America/Adak",true),"-660,1,s":new e("-11:00","Pacific/Apia",true),"-600,0":new e("-10:00","Pacific/Honolulu",false),"-570,0":new e("-09:30","Pacific/Marquesas",false),"-540,0":new e("-09:00","Pacific/Gambier",false),"-540,1":new e("-09:00","America/Anchorage",true),"-480,1":new e("-08:00","America/Los_Angeles",true),"-480,0":new e("-08:00","Pacific/Pitcairn",false),"-420,0":new e("-07:00","America/Phoenix",false),"-420,1":new e("-07:00","America/Denver",true),"-360,0":new e("-06:00","America/Guatemala",false),"-360,1":new e("-06:00","America/Chicago",true),"-360,1,s":new e("-06:00","Pacific/Easter",true),"-300,0":new e("-05:00","America/Bogota",false),"-300,1":new e("-05:00","America/New_York",true),"-270,0":new e("-04:30","America/Caracas",false),"-240,1":new e("-04:00","America/Halifax",true),"-240,0":new e("-04:00","America/Santo_Domingo",false),"-240,1,s":new e("-04:00","America/Asuncion",true),"-210,1":new e("-03:30","America/St_Johns",true),"-180,1":new e("-03:00","America/Godthab",true),"-180,0":new e("-03:00","America/Argentina/Buenos_Aires",false),"-180,1,s":new e("-03:00","America/Montevideo",true),"-120,0":new e("-02:00","America/Noronha",false),"-120,1":new e("-02:00","Etc/GMT+2",true),"-60,1":new e("-01:00","Atlantic/Azores",true),"-60,0":new e("-01:00","Atlantic/Cape_Verde",false),"0,0":new e("00:00","Etc/UTC",false),"0,1":new e("00:00","Europe/London",true),"60,1":new e("+01:00","Europe/Berlin",true),"60,0":new e("+01:00","Africa/Lagos",false),"60,1,s":new e("+01:00","Africa/Windhoek",true),"120,1":new e("+02:00","Asia/Beirut",true),"120,0":new e("+02:00","Africa/Johannesburg",false),"180,1":new e("+03:00","Europe/Moscow",true),"180,0":new e("+03:00","Asia/Baghdad",false),"210,1":new e("+03:30","Asia/Tehran",true),"240,0":new e("+04:00","Asia/Dubai",false),"240,1":new e("+04:00","Asia/Yerevan",true),"270,0":new e("+04:30","Asia/Kabul",false),"300,1":new e("+05:00","Asia/Yekaterinburg",true),"300,0":new e("+05:00","Asia/Karachi",false),"330,0":new e("+05:30","Asia/Kolkata",false),"345,0":new e("+05:45","Asia/Kathmandu",false),"360,0":new e("+06:00","Asia/Dhaka",false),"360,1":new e("+06:00","Asia/Omsk",true),"390,0":new e("+06:30","Asia/Rangoon",false),"420,1":new e("+07:00","Asia/Krasnoyarsk",true),"420,0":new e("+07:00","Asia/Jakarta",false),"480,0":new e("+08:00","Asia/Shanghai",false),"480,1":new e("+08:00","Asia/Irkutsk",true),"525,0":new e("+08:45","Australia/Eucla",true),"525,1,s":new e("+08:45","Australia/Eucla",true),"540,1":new e("+09:00","Asia/Yakutsk",true),"540,0":new e("+09:00","Asia/Tokyo",false),"570,0":new e("+09:30","Australia/Darwin",false),"570,1,s":new e("+09:30","Australia/Adelaide",true),"600,0":new e("+10:00","Australia/Brisbane",false),"600,1":new e("+10:00","Asia/Vladivostok",true),"600,1,s":new e("+10:00","Australia/Sydney",true),"630,1,s":new e("+10:30","Australia/Lord_Howe",true),"660,1":new e("+11:00","Asia/Kamchatka",true),"660,0":new e("+11:00","Pacific/Noumea",false),"690,0":new e("+11:30","Pacific/Norfolk",false),"720,1,s":new e("+12:00","Pacific/Auckland",true),"720,0":new e("+12:00","Pacific/Tarawa",false),"765,1,s":new e("+12:45","Pacific/Chatham",true),"780,0":new e("+13:00","Pacific/Tongatapu",false),"840,0":new e("+14:00","Pacific/Kiritimati",false)};function d(j){return -j.getTimezoneOffset();}function f(){return d(new Date(2011,0,1,0,0,0,0));}function i(){return d(new Date(2011,5,1,0,0,0,0));}function g(){var j=f(),k=i(),l=j-k;if(l<0){return{"utc_offset":j,"dst":1,"hemisphere":a};}else{if(l>0){return{"utc_offset":k,"dst":1,"hemisphere":b};}}return{"utc_offset":j,"dst":0,"hemisphere":c};}return{determine:function(){var l=g(),k="",j;if(l.hemisphere===b){k=",s";}j=l.utc_offset+","+l.dst.toString()+k;return{"timezone":h.timezones[j],"key":j};},detect_on_register_form:function(){PUNBB.common.addDOMReadyEvent(function(){var l=PUNBB.timezone.determine().timezone,k=document.getElementById("register_timezone"),j=document.getElementById("register_dst");if(k&&j){k.value=l.utc_offset;j.value=l.uses_dst?"1":"0";}});}};}()); | |
2: | 1: |
| 2: if(typeof PUNBB==="undefined"||!PUNBB){var PUNBB={};}PUNBB.timezone=(function(){var b="SOUTH",a="NORTH",c="N/A",h={},e;e=function(l,k,j){this.utc_offset=l;this.olson_tz=k;this.uses_dst=j;};h.timezones={"-720,0":new e("-12:00","Etc/GMT+12",false),"-660,0":new e("-11:00","Pacific/Pago_Pago",false),"-600,1":new e("-11:00","America/Adak",true),"-600,0":new e("-10:00","Pacific/Honolulu",false),"-570,0":new e("-09:30","Pacific/Marquesas",false),"-540,0":new e("-09:00","Pacific/Gambier",false),"-540,1":new e("-09:00","America/Anchorage",true),"-480,1":new e("-08:00","America/Los_Angeles",true),"-480,0":new e("-08:00","Pacific/Pitcairn",false),"-420,0":new e("-07:00","America/Phoenix",false),"-420,1":new e("-07:00","America/Denver",true),"-360,0":new e("-06:00","America/Guatemala",false),"-360,1":new e("-06:00","America/Chicago",true),"-360,1,s":new e("-06:00","Pacific/Easter",true),"-300,0":new e("-05:00","America/Bogota",false),"-300,1":new e("-05:00","America/New_York",true),"-270,0":new e("-04:30","America/Caracas",false),"-240,1":new e("-04:00","America/Halifax",true),"-240,0":new e("-04:00","America/Santo_Domingo",false),"-240,1,s":new e("-04:00","America/Asuncion",true),"-210,1":new e("-03:30","America/St_Johns",true),"-180,1":new e("-03:00","America/Godthab",true),"-180,0":new e("-03:00","America/Argentina/Buenos_Aires",false),"-180,1,s":new e("-03:00","America/Montevideo",true),"-120,0":new e("-02:00","America/Noronha",false),"-120,1":new e("-02:00","Etc/GMT+2",true),"-60,1":new e("-01:00","Atlantic/Azores",true),"-60,0":new e("-01:00","Atlantic/Cape_Verde",false),"0,0":new e("00:00","Etc/UTC",false),"0,1":new e("00:00","Europe/London",true),"60,1":new e("+01:00","Europe/Berlin",true),"60,0":new e("+01:00","Africa/Lagos",false),"60,1,s":new e("+01:00","Africa/Windhoek",true),"120,1":new e("+02:00","Asia/Beirut",true),"120,0":new e("+02:00","Africa/Johannesburg",false),"180,1":new e("+03:00","Europe/Moscow",true),"180,0":new e("+03:00","Asia/Baghdad",false),"210,1":new e("+03:30","Asia/Tehran",true),"240,0":new e("+04:00","Asia/Dubai",false),"240,1":new e("+04:00","Asia/Yerevan",true),"270,0":new e("+04:30","Asia/Kabul",false),"300,1":new e("+05:00","Asia/Yekaterinburg",true),"300,0":new e("+05:00","Asia/Karachi",false),"330,0":new e("+05:30","Asia/Kolkata",false),"345,0":new e("+05:45","Asia/Kathmandu",false),"360,0":new e("+06:00","Asia/Dhaka",false),"360,1":new e("+06:00","Asia/Omsk",true),"390,0":new e("+06:30","Asia/Rangoon",false),"420,1":new e("+07:00","Asia/Krasnoyarsk",true),"420,0":new e("+07:00","Asia/Jakarta",false),"480,0":new e("+08:00","Asia/Shanghai",false),"480,1":new e("+08:00","Asia/Irkutsk",true),"525,0":new e("+08:45","Australia/Eucla",true),"525,1,s":new e("+08:45","Australia/Eucla",true),"540,1":new e("+09:00","Asia/Yakutsk",true),"540,0":new e("+09:00","Asia/Tokyo",false),"570,0":new e("+09:30","Australia/Darwin",false),"570,1,s":new e("+09:30","Australia/Adelaide",true),"600,0":new e("+10:00","Australia/Brisbane",false),"600,1":new e("+10:00","Asia/Vladivostok",true),"600,1,s":new e("+10:00","Australia/Sydney",true),"630,1,s":new e("+10:30","Australia/Lord_Howe",true),"660,1":new e("+11:00","Asia/Kamchatka",true),"660,0":new e("+11:00","Pacific/Noumea",false),"690,0":new e("+11:30","Pacific/Norfolk",false),"720,1,s":new e("+12:00","Pacific/Auckland",true),"720,0":new e("+12:00","Pacific/Tarawa",false),"765,1,s":new e("+12:45","Pacific/Chatham",true),"780,0":new e("+13:00","Pacific/Tongatapu",false),"780,1,s":new e("+13:00","Pacific/Apia",true),"840,0":new e("+14:00","Pacific/Kiritimati",false)};function d(j){return -j.getTimezoneOffset();}function f(){var j=new Date();return d(new Date(j.getFullYear(),0,1,0,0,0,0));}function i(){var j=new Date();return d(new Date(j.getFullYear(),5,1,0,0,0,0));}function g(){var j=f(),k=i(),l=j-k;if(l<0){return{"utc_offset":j,"dst":1,"hemisphere":a};}else{if(l>0){return{"utc_offset":k,"dst":1,"hemisphere":b};}}return{"utc_offset":j,"dst":0,"hemisphere":c};}return{determine:function(){var l=g(),k="",j;if(l.hemisphere===b){k=",s";}j=l.utc_offset+","+l.dst.toString()+k;return{"timezone":h.timezones[j],"key":j};},detect_on_register_form:function(){PUNBB.common.addDOMReadyEvent(function(){var l=PUNBB.timezone.determine().timezone,k=document.getElementById("register_timezone"),j=document.getElementById("register_dst");if(k&&j){k.value=l.utc_offset;j.value=l.uses_dst?"1":"0";}});}};}()); |
3: | 3: |
punbb-1.4.1/profile.php |
punbb-1.4.2/profile.php |
2: /** | 2: /** |
3: * Allows users to view and edit their details. | 3: * Allows users to view and edit their details. |
4: * | 4: * |
5: * @copyright (C) 2008-2011 PunBB, partially based on code (C) 2008-2009 FluxBB.org | 5: * @copyright (C) 2008-2012 PunBB, partially based on code (C) 2008-2009 FluxBB.org |
6: * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher | 6: * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher |
7: * @package PunBB | 7: * @package PunBB |
8: */ | 8: */ |
123: $forum_page['crumbs'] = array( | 123: $forum_page['crumbs'] = array( |
124: array($forum_config['o_board_title'], forum_link($forum_url['index'])), | 124: array($forum_config['o_board_title'], forum_link($forum_url['index'])), |
125: array(sprintf($lang_profile['Users profile'], $user['username'], $lang_profile['Section about']), forum_link($forum_url['profile_about'], $id)), | 125: array(sprintf($lang_profile['Users profile'], $user['username'], $lang_profile['Section about']), forum_link($forum_url['profile_about'], $id)), |
126: ($forum_page['own_profile']) ? array($lang_profile['Change your password'], forum_link($forum_url['change_password'], $id)) : array(sprintf($lang_profile['Change user password'], forum_htmlencode($user['username'])),forum_link($forum_url['change_password']), $id) | 126: ($forum_page['own_profile']) ? $lang_profile['Change your password'] : sprintf($lang_profile['Change user password'], forum_htmlencode($user['username'])) |
127: ); | 127: ); |
128: | 128: |
129: ($hook = get_hook('pf_change_pass_key_pre_header_load')) ? eval($hook) : null; | 129: ($hook = get_hook('pf_change_pass_key_pre_header_load')) ? eval($hook) : null; |
165: | 165: |
166: ?> | 166: ?> |
167: <div id="req-msg" class="req-warn ct-box error-box"> | 167: <div id="req-msg" class="req-warn ct-box error-box"> |
168: <p class="important"><?php echo $lang_common['Required warn']; ?></p> | 168: <p class="important"><?php echo $lang_common['Required warn'] ?></p> |
169: </div> | 169: </div> |
170: <form id="afocus" class="frm-form" method="post" accept-charset="utf-8" action="<?php echo $forum_page['form_action'] ?>" autocomplete="off"> | 170: <form id="afocus" class="frm-form" method="post" accept-charset="utf-8" action="<?php echo $forum_page['form_action'] ?>" autocomplete="off"> |
171: <div class="hidden"> | 171: <div class="hidden"> |
179: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> | 179: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> |
180: <div class="sf-box text required"> | 180: <div class="sf-box text required"> |
181: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['New password'] ?></span> <small><?php echo $lang_profile['Password help'] ?></small></label><br /> | 181: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['New password'] ?></span> <small><?php echo $lang_profile['Password help'] ?></small></label><br /> |
182: <span class="fld-input"><input type="<?php echo($forum_config['o_mask_passwords'] == '1' ? 'password' : 'text') ?>" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_new_password1" size="35" value="<?php echo(isset($_POST['req_new_password1']) ? forum_htmlencode($_POST['req_new_password1']) : ''); ?>" required autocomplete="off" /></span><br /> | 182: <span class="fld-input"><input type="<?php echo($forum_config['o_mask_passwords'] == '1' ? 'password' : 'text') ?>" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_new_password1" size="35" value="<?php if (isset($_POST['req_new_password1'])) echo forum_htmlencode($_POST['req_new_password1']); ?>" required autocomplete="off" /></span><br /> |
183: </div> | 183: </div> |
184: </div> | 184: </div> |
185: <?php ($hook = get_hook('pf_change_pass_key_pre_new_password_confirm')) ? eval($hook) : null; ?> | 185: <?php ($hook = get_hook('pf_change_pass_key_pre_new_password_confirm')) ? eval($hook) : null; ?> |
187: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> | 187: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> |
188: <div class="sf-box text required"> | 188: <div class="sf-box text required"> |
189: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Confirm new password'] ?></span> <small><?php echo $lang_profile['Confirm password help'] ?></small></label><br /> | 189: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Confirm new password'] ?></span> <small><?php echo $lang_profile['Confirm password help'] ?></small></label><br /> |
190: <span class="fld-input"><input type="password" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_new_password2" size="35" value="<?php echo(isset($_POST['req_new_password2']) ? forum_htmlencode($_POST['req_new_password2']) : ''); ?>" required autocomplete="off" /></span><br /> | 190: <span class="fld-input"><input type="password" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_new_password2" size="35" value="<?php if (isset($_POST['req_new_password2'])) echo forum_htmlencode($_POST['req_new_password2']); ?>" required autocomplete="off" /></span><br /> |
191: </div> | 191: </div> |
192: </div> | 192: </div> |
193: <?php endif; ?> | 193: <?php endif; ?> |
292: $forum_page['crumbs'] = array( | 292: $forum_page['crumbs'] = array( |
293: array($forum_config['o_board_title'], forum_link($forum_url['index'])), | 293: array($forum_config['o_board_title'], forum_link($forum_url['index'])), |
294: array(sprintf($lang_profile['Users profile'], $user['username']), forum_link($forum_url['profile_about'], $id)), | 294: array(sprintf($lang_profile['Users profile'], $user['username']), forum_link($forum_url['profile_about'], $id)), |
295: ($forum_page['own_profile']) ? array($lang_profile['Change your password'], forum_link($forum_url['change_password'], $id)) : array(sprintf($lang_profile['Change user password'], forum_htmlencode($user['username'])),forum_link($forum_url['change_password'], $id)) | 295: ($forum_page['own_profile']) ? $lang_profile['Change your password'] : sprintf($lang_profile['Change user password'], forum_htmlencode($user['username'])) |
296: ); | 296: ); |
297: | 297: |
298: ($hook = get_hook('pf_change_pass_normal_pre_header_load')) ? eval($hook) : null; | 298: ($hook = get_hook('pf_change_pass_normal_pre_header_load')) ? eval($hook) : null; |
334: | 334: |
335: ?> | 335: ?> |
336: <div id="req-msg" class="req-warn ct-box error-box"> | 336: <div id="req-msg" class="req-warn ct-box error-box"> |
337: <p class="important"><?php echo $lang_common['Required warn']; ?></p> | 337: <p class="important"><?php echo $lang_common['Required warn'] ?></p> |
338: </div> | 338: </div> |
339: <form id="afocus" class="frm-form" method="post" accept-charset="utf-8" action="<?php echo $forum_page['form_action'] ?>" autocomplete="off"> | 339: <form id="afocus" class="frm-form" method="post" accept-charset="utf-8" action="<?php echo $forum_page['form_action'] ?>" autocomplete="off"> |
340: <div class="hidden"> | 340: <div class="hidden"> |
341: <?php echo implode("\n\t\t\t\t", $forum_page['hidden_fields'])."\n" ?> | 341: <?php echo implode("\n\t\t\t\t", $forum_page['hidden_fields'])."\n" ?> |
342: </div> | 342: </div> |
348: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> | 348: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> |
349: <div class="sf-box text required"> | 349: <div class="sf-box text required"> |
350: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Old password'] ?></span> <small><?php echo $lang_profile['Old password help'] ?></small></label><br /> | 350: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Old password'] ?></span> <small><?php echo $lang_profile['Old password help'] ?></small></label><br /> |
351: <span class="fld-input"><input type="<?php echo($forum_config['o_mask_passwords'] == '1' ? 'password' : 'text') ?>" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_old_password" size="35" value="<?php echo(isset($_POST['req_old_password']) ? forum_htmlencode($_POST['req_old_password']) : ''); ?>" required /></span> | 351: <span class="fld-input"><input type="<?php echo($forum_config['o_mask_passwords'] == '1' ? 'password' : 'text') ?>" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_old_password" size="35" value="<?php if (isset($_POST['req_old_password'])) echo forum_htmlencode($_POST['req_old_password']); ?>" required /></span> |
352: </div> | 352: </div> |
353: </div> | 353: </div> |
354: <?php endif; ($hook = get_hook('pf_change_pass_normal_pre_new_password')) ? eval($hook) : null; ?> | 354: <?php endif; ($hook = get_hook('pf_change_pass_normal_pre_new_password')) ? eval($hook) : null; ?> |
355: <div class="sf-set set<?php echo ++$forum_page['item_count']; echo($forum_config['o_mask_passwords'] == '1' ? ' prepend-top' : ''); ?>"> | 355: <div class="sf-set set<?php echo ++$forum_page['item_count']; if ($forum_config['o_mask_passwords'] == '1') echo ' prepend-top'; ?>"> |
356: <div class="sf-box text required"> | 356: <div class="sf-box text required"> |
357: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['New password'] ?></span> <small><?php echo $lang_profile['Password help'] ?></small></label><br /> | 357: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['New password'] ?></span> <small><?php echo $lang_profile['Password help'] ?></small></label><br /> |
358: <span class="fld-input"><input type="<?php echo($forum_config['o_mask_passwords'] == '1' ? 'password' : 'text') ?>" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_new_password1" size="35" value="<?php echo(isset($_POST['req_new_password1']) ? forum_htmlencode($_POST['req_new_password1']) : ''); ?>" required /></span><br /> | 358: <span class="fld-input"><input type="<?php echo($forum_config['o_mask_passwords'] == '1' ? 'password' : 'text') ?>" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_new_password1" size="35" value="<?php if (isset($_POST['req_new_password1'])) echo forum_htmlencode($_POST['req_new_password1']); ?>" required /></span><br /> |
359: </div> | 359: </div> |
360: </div> | 360: </div> |
361: <?php ($hook = get_hook('pf_change_pass_normal_pre_new_password_confirm')) ? eval($hook) : null; ?> | 361: <?php ($hook = get_hook('pf_change_pass_normal_pre_new_password_confirm')) ? eval($hook) : null; ?> |
363: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> | 363: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> |
364: <div class="sf-box text required"> | 364: <div class="sf-box text required"> |
365: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Confirm new password'] ?></span> <small><?php echo $lang_profile['Confirm password help'] ?></small></label><br /> | 365: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Confirm new password'] ?></span> <small><?php echo $lang_profile['Confirm password help'] ?></small></label><br /> |
366: <span class="fld-input"><input type="<?php echo($forum_config['o_mask_passwords'] == '1' ? 'password' : 'text') ?>" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_new_password2" size="35" value="<?php echo(isset($_POST['req_new_password2']) ? forum_htmlencode($_POST['req_new_password2']) : ''); ?>" required /></span><br /> | 366: <span class="fld-input"><input type="<?php echo($forum_config['o_mask_passwords'] == '1' ? 'password' : 'text') ?>" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_new_password2" size="35" value="<?php if (isset($_POST['req_new_password2'])) echo forum_htmlencode($_POST['req_new_password2']); ?>" required /></span><br /> |
367: </div> | 367: </div> |
368: </div> | 368: </div> |
369: <?php endif; ?> | 369: <?php endif; ?> |
559: $forum_page['crumbs'] = array( | 559: $forum_page['crumbs'] = array( |
560: array($forum_config['o_board_title'], forum_link($forum_url['index'])), | 560: array($forum_config['o_board_title'], forum_link($forum_url['index'])), |
561: array(sprintf($lang_profile['Users profile'], $user['username'], $lang_profile['Section about']), forum_link($forum_url['profile_about'], $id)), | 561: array(sprintf($lang_profile['Users profile'], $user['username'], $lang_profile['Section about']), forum_link($forum_url['profile_about'], $id)), |
562: ($forum_page['own_profile']) ? array($lang_profile['Change your e-mail'], forum_link($forum_url['change_email'], $id)) : array(sprintf($lang_profile['Change user e-mail'], forum_htmlencode($user['username'])), forum_link($forum_url['change_email'], $id)) | 562: ($forum_page['own_profile']) ? $lang_profile['Change your e-mail'] : sprintf($lang_profile['Change user e-mail'], forum_htmlencode($user['username'])) |
563: ); | 563: ); |
564: | 564: |
565: ($hook = get_hook('pf_change_email_normal_pre_header_load')) ? eval($hook) : null; | 565: ($hook = get_hook('pf_change_email_normal_pre_header_load')) ? eval($hook) : null; |
604: | 604: |
605: ?> | 605: ?> |
606: <div id="req-msg" class="req-warn ct-box error-box"> | 606: <div id="req-msg" class="req-warn ct-box error-box"> |
607: <p class="important"><?php echo $lang_common['Required warn']; ?></p> | 607: <p class="important"><?php echo $lang_common['Required warn'] ?></p> |
608: </div> | 608: </div> |
609: <form id="afocus" class="frm-form" method="post" accept-charset="utf-8" action="<?php echo $forum_page['form_action'] ?>"> | 609: <form id="afocus" class="frm-form" method="post" accept-charset="utf-8" action="<?php echo $forum_page['form_action'] ?>"> |
610: <div class="hidden"> | 610: <div class="hidden"> |
617: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> | 617: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> |
618: <div class="sf-box text required"> | 618: <div class="sf-box text required"> |
619: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['New e-mail'] ?></span></label><br /> | 619: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['New e-mail'] ?></span></label><br /> |
620: <span class="fld-input"><input type="email" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_new_email" size="35" maxlength="80" value="<?php echo(isset($_POST['req_new_email']) ? forum_htmlencode($_POST['req_new_email']) : ''); ?>" required /></span> | 620: <span class="fld-input"><input type="email" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_new_email" size="35" maxlength="80" value="<?php if (isset($_POST['req_new_email'])) echo forum_htmlencode($_POST['req_new_email']); ?>" required /></span> |
621: </div> | 621: </div> |
622: </div> | 622: </div> |
623: <?php ($hook = get_hook('pf_change_email_normal_pre_password')) ? eval($hook) : null; ?> | 623: <?php ($hook = get_hook('pf_change_email_normal_pre_password')) ? eval($hook) : null; ?> |
624: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> | 624: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> |
625: <div class="sf-box text required"> | 625: <div class="sf-box text required"> |
626: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Password'] ?></span><small><?php echo $lang_profile['Old password help'] ?></small></label><br /> | 626: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Password'] ?></span><small><?php echo $lang_profile['Old password help'] ?></small></label><br /> |
627: <span class="fld-input"><input type="<?php echo($forum_config['o_mask_passwords'] == '1' ? 'password' : 'text') ?>" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_password" size="35" value="<?php echo(isset($_POST['req_password']) ? forum_htmlencode($_POST['req_password']) : ''); ?>" required autocomplete="off" /></span> | 627: <span class="fld-input"><input type="<?php echo($forum_config['o_mask_passwords'] == '1' ? 'password' : 'text') ?>" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_password" size="35" value="<?php if (isset($_POST['req_password'])) echo forum_htmlencode($_POST['req_password']); ?>" required autocomplete="off" /></span> |
628: </div> | 628: </div> |
629: </div> | 629: </div> |
630: <?php ($hook = get_hook('pf_change_email_normal_pre_fieldset_end')) ? eval($hook) : null; ?> | 630: <?php ($hook = get_hook('pf_change_email_normal_pre_fieldset_end')) ? eval($hook) : null; ?> |
668: | 668: |
669: delete_user($id, isset($_POST['delete_posts'])); | 669: delete_user($id, isset($_POST['delete_posts'])); |
670: | 670: |
| 671: // Remove cache file with forum stats |
| 672: if (!defined('FORUM_CACHE_FUNCTIONS_LOADED')) |
| 673: { |
| 674: require FORUM_ROOT.'include/cache.php'; |
| 675: } |
| 676: |
| 677: clean_stats_cache(); |
| 678: |
671: // Add flash message | 679: // Add flash message |
672: $forum_flash->add_info($lang_profile['User delete redirect']); | 680: $forum_flash->add_info($lang_profile['User delete redirect']); |
673: | 681: |
690: $forum_page['crumbs'] = array( | 698: $forum_page['crumbs'] = array( |
691: array($forum_config['o_board_title'], forum_link($forum_url['index'])), | 699: array($forum_config['o_board_title'], forum_link($forum_url['index'])), |
692: array(sprintf($lang_profile['Users profile'], $user['username'], $lang_profile['Section admin']), forum_link($forum_url['profile_admin'], $id)), | 700: array(sprintf($lang_profile['Users profile'], $user['username'], $lang_profile['Section admin']), forum_link($forum_url['profile_admin'], $id)), |
693: array($lang_profile['Delete user'], forum_link($forum_url['delete_user'], $id)) | 701: $lang_profile['Delete user'] |
694: ); | 702: ); |
695: | 703: |
696: ($hook = get_hook('pf_delete_user_pre_header_load')) ? eval($hook) : null; | 704: ($hook = get_hook('pf_delete_user_pre_header_load')) ? eval($hook) : null; |
731: </fieldset> | 739: </fieldset> |
732: <?php ($hook = get_hook('pf_delete_user_fieldset_end')) ? eval($hook) : null; ?> | 740: <?php ($hook = get_hook('pf_delete_user_fieldset_end')) ? eval($hook) : null; ?> |
733: <div class="frm-buttons"> | 741: <div class="frm-buttons"> |
734: <span class="submit primary"><input type="submit" name="delete_user_comply" value="<?php echo $lang_common['Submit'] ?>" /></span> | 742: <span class="submit primary caution"><input type="submit" name="delete_user_comply" value="<?php echo $lang_profile['Delete user'] ?>" /></span> |
735: <span class="cancel"><input type="submit" name="cancel" value="<?php echo $lang_common['Cancel'] ?>" formnovalidate /></span> | 743: <span class="cancel"><input type="submit" name="cancel" value="<?php echo $lang_common['Cancel'] ?>" formnovalidate /></span> |
736: </div> | 744: </div> |
737: </form> | 745: </form> |
964: } | 972: } |
965: | 973: |
966: // Add http:// if the URL doesn't contain it or https:// already | 974: // Add http:// if the URL doesn't contain it or https:// already |
967: if ($form['url'] != '' && strpos(strtolower($form['url']), 'http://') !== 0 && strpos(strtolower($form['url']), 'https://') !== 0) | 975: if ($form['url'] != '' && strpos(strtolower($form['url']), 'http://') !== 0 && strpos(strtolower($form['url']), 'https://') !== 0) |
968: $form['url'] = 'http://'.$form['url']; | 976: $form['url'] = 'http://'.$form['url']; |
969: | 977: |
970: // Add http:// if the LinkedIn doesn't contain it or https:// already | 978: // Add http:// if the LinkedIn doesn't contain it or https:// already |
971: if ($form['linkedin'] != '' && strpos(strtolower($form['linkedin']), 'http://') !== 0 && strpos(strtolower($form['linkedin']), 'https://') !== 0) | 979: if ($form['linkedin'] != '' && strpos(strtolower($form['linkedin']), 'http://') !== 0 && strpos(strtolower($form['linkedin']), 'https://') !== 0) |
972: $form['linkedin'] = 'http://'.$form['linkedin']; | 980: $form['linkedin'] = 'http://'.$form['linkedin']; |
973: | 981: |
974: // If the ICQ UIN contains anything other than digits it's invalid | 982: // If the ICQ UIN contains anything other than digits it's invalid |
1110: | 1118: |
1111: if (is_uploaded_file($uploaded_file['tmp_name']) && empty($errors)) | 1119: if (is_uploaded_file($uploaded_file['tmp_name']) && empty($errors)) |
1112: { | 1120: { |
| 1121: // First check simple by size and mime type |
| 1122: $allowed_mime_types = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png'); |
1113: $allowed_types = array(IMAGETYPE_JPEG, IMAGETYPE_PNG, IMAGETYPE_GIF); | 1123: $allowed_types = array(IMAGETYPE_JPEG, IMAGETYPE_PNG, IMAGETYPE_GIF); |
1114: | 1124: |
1115: ($hook = get_hook('pf_change_details_avatar_allowed_types')) ? eval($hook) : null; | 1125: ($hook = get_hook('pf_change_details_avatar_allowed_types')) ? eval($hook) : null; |
1116: | 1126: |
1117: list($width, $height, $type,) = @/**/getimagesize($uploaded_file['tmp_name']); | 1127: if (!in_array($uploaded_file['type'], $allowed_mime_types)) |
1118: | |
1119: if (!in_array($type, $allowed_types)) | |
1120: $errors[] = $lang_profile['Bad type']; | 1128: $errors[] = $lang_profile['Bad type']; |
1121: else | 1129: else |
1122: { | 1130: { |
1127: | 1135: |
1128: if (empty($errors)) | 1136: if (empty($errors)) |
1129: { | 1137: { |
1130: // Determine type | 1138: $avatar_tmp_file = $forum_config['o_avatars_dir'].'/'.$id.'.tmp'; |
1131: $extension = null; | |
1132: $avatar_type = FORUM_AVATAR_NONE; | |
1133: if ($type == IMAGETYPE_GIF) | |
1134: { | |
1135: $extension = '.gif'; | |
1136: $avatar_type = FORUM_AVATAR_GIF; | |
1137: } | |
1138: else if ($type == IMAGETYPE_JPEG) | |
1139: { | |
1140: $extension = '.jpg'; | |
1141: $avatar_type = FORUM_AVATAR_JPG; | |
1142: } | |
1143: else if ($type == IMAGETYPE_PNG) | |
1144: { | |
1145: $extension = '.png'; | |
1146: $avatar_type = FORUM_AVATAR_PNG; | |
1147: } | |
1148: | |
1149: ($hook = get_hook('pf_change_details_avatar_determine_extension')) ? eval($hook) : null; | |
1150: | 1139: |
1151: // Move the file to the avatar directory. We do this before checking the width/height to circumvent open_basedir restrictions. | 1140: // Move the file to the avatar directory. We do this before checking the width/height to circumvent open_basedir restrictions. |
1152: if (!@move_uploaded_file($uploaded_file['tmp_name'], $forum_config['o_avatars_dir'].'/'.$id.'.tmp')) | 1141: if (!@move_uploaded_file($uploaded_file['tmp_name'], $avatar_tmp_file)) |
1153: $errors[] = sprintf($lang_profile['Move failed'], '<a href="mailto:'.forum_htmlencode($forum_config['o_admin_email']).'">'.forum_htmlencode($forum_config['o_admin_email']).'</a>'); | 1142: $errors[] = sprintf($lang_profile['Move failed'], '<a href="mailto:'.forum_htmlencode($forum_config['o_admin_email']).'">'.forum_htmlencode($forum_config['o_admin_email']).'</a>'); |
1154: | 1143: |
1155: if (empty($errors)) | 1144: if (empty($errors)) |
1156: { | 1145: { |
1157: ($hook = get_hook('pf_change_details_avatar_modify_size')) ? eval($hook) : null; | 1146: ($hook = get_hook('pf_change_details_avatar_modify_size')) ? eval($hook) : null; |
1158: | 1147: |
1159: // Now check the width/height | 1148: // Now check the width, height, type |
| 1149: list($width, $height, $type,) = @/**/getimagesize($avatar_tmp_file); |
1160: if (empty($width) || empty($height) || $width > $forum_config['o_avatars_width'] || $height > $forum_config['o_avatars_height']) | 1150: if (empty($width) || empty($height) || $width > $forum_config['o_avatars_width'] || $height > $forum_config['o_avatars_height']) |
1161: { | 1151: { |
1162: @unlink($forum_config['o_avatars_dir'].'/'.$id.'.tmp'); | 1152: @unlink($avatar_tmp_file); |
1163: $errors[] = sprintf($lang_profile['Too wide or high'], $forum_config['o_avatars_width'], $forum_config['o_avatars_height']); | 1153: $errors[] = sprintf($lang_profile['Too wide or high'], $forum_config['o_avatars_width'], $forum_config['o_avatars_height']); |
1164: } | 1154: } |
1165: else if ($type == 1 && $uploaded_file['type'] != 'image/gif') // Prevent dodgy uploads | 1155: else if ($type == IMAGETYPE_GIF && $uploaded_file['type'] != 'image/gif') // Prevent dodgy uploads |
1166: { | 1156: { |
1167: @unlink($forum_config['o_avatars_dir'].'/'.$id.'.tmp'); | 1157: @unlink($avatar_tmp_file); |
| 1158: $errors[] = $lang_profile['Bad type']; |
| 1159: } |
| 1160: |
| 1161: // Determine type |
| 1162: $extension = null; |
| 1163: $avatar_type = FORUM_AVATAR_NONE; |
| 1164: if ($type == IMAGETYPE_GIF) |
| 1165: { |
| 1166: $extension = '.gif'; |
| 1167: $avatar_type = FORUM_AVATAR_GIF; |
| 1168: } |
| 1169: else if ($type == IMAGETYPE_JPEG) |
| 1170: { |
| 1171: $extension = '.jpg'; |
| 1172: $avatar_type = FORUM_AVATAR_JPG; |
| 1173: } |
| 1174: else if ($type == IMAGETYPE_PNG) |
| 1175: { |
| 1176: $extension = '.png'; |
| 1177: $avatar_type = FORUM_AVATAR_PNG; |
| 1178: } |
| 1179: |
| 1180: ($hook = get_hook('pf_change_details_avatar_determine_extension')) ? eval($hook) : null; |
| 1181: |
| 1182: // Check type from getimagesize type format |
| 1183: if (!in_array($avatar_type, $allowed_types) || empty($extension)) |
| 1184: { |
| 1185: @unlink($avatar_tmp_file); |
1168: $errors[] = $lang_profile['Bad type']; | 1186: $errors[] = $lang_profile['Bad type']; |
1169: } | 1187: } |
1170: | 1188: |
1176: delete_avatar($id); | 1194: delete_avatar($id); |
1177: | 1195: |
1178: // Put the new avatar in its place | 1196: // Put the new avatar in its place |
1179: @rename($forum_config['o_avatars_dir'].'/'.$id.'.tmp', $forum_config['o_avatars_dir'].'/'.$id.$extension); | 1197: @rename($avatar_tmp_file, $forum_config['o_avatars_dir'].'/'.$id.$extension); |
1180: @chmod($forum_config['o_avatars_dir'].'/'.$id.$extension, 0644); | 1198: @chmod($forum_config['o_avatars_dir'].'/'.$id.$extension, 0644); |
1181: | 1199: |
1182: // Avatar | 1200: // Avatar |
1374: | 1392: |
1375: ($hook = get_hook('pf_view_details_selected')) ? eval($hook) : null; | 1393: ($hook = get_hook('pf_view_details_selected')) ? eval($hook) : null; |
1376: | 1394: |
1377: $forum_page['user_ident']['username'] = '<li class="username'.(($user['realname'] =='') ? ' fn nickname' : ' nickname').'"><strong>'.forum_htmlencode($user['username']).'</strong></li>'; | 1395: $forum_page['user_ident']['username'] = '<li class="username'.(($user['realname'] =='') ? ' fn nickname' : ' nickname').'"><strong>'.forum_htmlencode($user['username']).'</strong></li>'; |
1378: | 1396: |
1379: if ($forum_config['o_avatars'] == '1') | 1397: if ($forum_config['o_avatars'] == '1') |
1380: { | 1398: { |
1515: // Setup breadcrumbs | 1533: // Setup breadcrumbs |
1516: $forum_page['crumbs'] = array( | 1534: $forum_page['crumbs'] = array( |
1517: array($forum_config['o_board_title'], forum_link($forum_url['index'])), | 1535: array($forum_config['o_board_title'], forum_link($forum_url['index'])), |
1518: array(sprintf($lang_profile['Users profile'], $user['username']), forum_link($forum_url['user'], $id)) | 1536: sprintf($lang_profile['Users profile'], $user['username']) |
1519: ); | 1537: ); |
1520: | 1538: |
1521: $forum_page['group_count'] = $forum_page['item_count'] = $forum_page['fld_count'] = 0; | 1539: $forum_page['group_count'] = $forum_page['item_count'] = $forum_page['fld_count'] = 0; |
1597: // Setup breadcrumbs | 1615: // Setup breadcrumbs |
1598: $forum_page['crumbs'] = array( | 1616: $forum_page['crumbs'] = array( |
1599: array($forum_config['o_board_title'], forum_link($forum_url['index'])), | 1617: array($forum_config['o_board_title'], forum_link($forum_url['index'])), |
1600: array(sprintf($lang_profile['Users profile'], $user['username']), forum_link($forum_url['user'], $id)) | 1618: sprintf($lang_profile['Users profile'], $user['username']) |
1601: ); | 1619: ); |
1602: | 1620: |
1603: // Is this users own profile | 1621: // Is this users own profile |
1605: | 1623: |
1606: // Setup navigation menu | 1624: // Setup navigation menu |
1607: $forum_page['main_menu'] = array(); | 1625: $forum_page['main_menu'] = array(); |
1608: $forum_page['main_menu']['about'] = '<li class="first-item'.(($section == 'about') ? ' active' : '').'"><a href="'.forum_link($forum_url['profile_about'], $id).'"><span>'.$lang_profile['Section about'].'</span></a></li>'; | 1626: $forum_page['main_menu']['about'] = '<li class="first-item'.(($section == 'about') ? ' active' : '').'"><a href="'.forum_link($forum_url['profile_about'], $id).'"><span>'.$lang_profile['Section about'].'</span></a></li>'; |
1609: $forum_page['main_menu']['identity'] = '<li'.(($section == 'identity') ? ' class="active"' : '').'><a href="'.forum_link($forum_url['profile_identity'], $id).'"><span>'.$lang_profile['Section identity'].'</span></a></li>'; | 1627: $forum_page['main_menu']['identity'] = '<li'.(($section == 'identity') ? ' class="active"' : '').'><a href="'.forum_link($forum_url['profile_identity'], $id).'"><span>'.$lang_profile['Section identity'].'</span></a></li>'; |
1610: $forum_page['main_menu']['settings'] = '<li'.(($section == 'settings') ? ' class="active"' : '').'><a href="'.forum_link($forum_url['profile_settings'], $id).'"><span>'.$lang_profile['Section settings'].'</span></a></li>'; | 1628: $forum_page['main_menu']['settings'] = '<li'.(($section == 'settings') ? ' class="active"' : '').'><a href="'.forum_link($forum_url['profile_settings'], $id).'"><span>'.$lang_profile['Section settings'].'</span></a></li>'; |
1611: | 1629: |
1612: if ($forum_config['o_signatures'] == '1') | 1630: if ($forum_config['o_signatures'] == '1') |
1627: $forum_page['crumbs'] = array( | 1645: $forum_page['crumbs'] = array( |
1628: array($forum_config['o_board_title'], forum_link($forum_url['index'])), | 1646: array($forum_config['o_board_title'], forum_link($forum_url['index'])), |
1629: array(sprintf($lang_profile['Users profile'], $user['username']), forum_link($forum_url['user'], $id)), | 1647: array(sprintf($lang_profile['Users profile'], $user['username']), forum_link($forum_url['user'], $id)), |
1630: array(sprintf($lang_profile['Section about']), forum_link($forum_url['profile_about'], $id)), | 1648: sprintf($lang_profile['Section about']) |
1631: ); | 1649: ); |
1632: | 1650: |
1633: // Setup user identification | 1651: // Setup user identification |
1635: | 1653: |
1636: ($hook = get_hook('pf_change_details_about_selected')) ? eval($hook) : null; | 1654: ($hook = get_hook('pf_change_details_about_selected')) ? eval($hook) : null; |
1637: | 1655: |
1638: $forum_page['user_ident']['username'] = '<li class="username'.(($user['realname'] =='') ? ' fn nickname' : ' nickname').'"><strong>'.forum_htmlencode($user['username']).'</strong></li>'; | 1656: $forum_page['user_ident']['username'] = '<li class="username'.(($user['realname'] =='') ? ' fn nickname' : ' nickname').'"><strong>'.forum_htmlencode($user['username']).'</strong></li>'; |
1639: | 1657: |
1640: if ($forum_config['o_avatars'] == '1') | 1658: if ($forum_config['o_avatars'] == '1') |
1641: { | 1659: { |
1663: $forum_page['user_info']['lastvisit'] = '<li><span>'.$lang_profile['Last visit'].': <strong> '.format_time($user['last_visit']).'</strong></span></li>'; | 1681: $forum_page['user_info']['lastvisit'] = '<li><span>'.$lang_profile['Last visit'].': <strong> '.format_time($user['last_visit']).'</strong></span></li>'; |
1664: $forum_page['user_info']['lastpost'] = '<li><span>'.$lang_profile['Last post'].': <strong> '.format_time($user['last_post']).'</strong></span></li>'; | 1682: $forum_page['user_info']['lastpost'] = '<li><span>'.$lang_profile['Last post'].': <strong> '.format_time($user['last_post']).'</strong></span></li>'; |
1665: | 1683: |
1666: if ($forum_config['o_show_post_count'] == '1' || $forum_user['is_admmod']) | 1684: if ($forum_config['o_show_post_count'] == '1' || $forum_user['is_admmod']) |
1667: $forum_page['user_info']['posts'] = '<li><span>'.$lang_profile['Posts'].': <strong>'.forum_number_format($user['num_posts']).'</strong></span></li>'; | 1685: $forum_page['user_info']['posts'] = '<li><span>'.$lang_profile['Posts'].': <strong>'.forum_number_format($user['num_posts']).'</strong></span></li>'; |
1668: else | 1686: else |
1669: $forum_page['user_private']['posts'] = '<li><span>'.$lang_profile['Posts'].': <strong>'.forum_number_format($user['num_posts']).'</strong></span></li>'; | 1687: $forum_page['user_private']['posts'] = '<li><span>'.$lang_profile['Posts'].': <strong>'.forum_number_format($user['num_posts']).'</strong></span></li>'; |
1798: if (($forum_page['own_profile'] || $forum_user['g_id'] == FORUM_ADMIN) && $forum_config['o_subscriptions'] == '1') | 1816: if (($forum_page['own_profile'] || $forum_user['g_id'] == FORUM_ADMIN) && $forum_config['o_subscriptions'] == '1') |
1799: { | 1817: { |
1800: // Topic subscriptions | 1818: // Topic subscriptions |
1801: $forum_page['user_activity']['search_subs'] = '<li'.(empty($forum_page['user_activity']) ? ' class="first-item"' : '').'><a href="'.forum_link($forum_url['search_subscriptions'], $id).'">'.(($forum_page['own_profile']) ? $lang_profile['View your subscriptions'] : sprintf($lang_profile['View user subscriptions'], forum_htmlencode($user['username']))).'</a></li>'; | 1819: $forum_page['user_activity']['search_subs'] = '<li'.(empty($forum_page['user_activity']) ? ' class="first-item"' : '').'><a href="'.forum_link($forum_url['search_subscriptions'], $id).'">'.(($forum_page['own_profile']) ? $lang_profile['View your subscriptions'] : sprintf($lang_profile['View user subscriptions'], forum_htmlencode($user['username']))).'</a></li>'; |
1802: | 1820: |
1803: // Forum subscriptions | 1821: // Forum subscriptions |
1804: $forum_page['user_activity']['search_forum_subs'] = '<li'.(empty($forum_page['user_activity']) ? ' class="first-item"' : '').'><a href="'.forum_link($forum_url['search_forum_subscriptions'], $id).'">'.(($forum_page['own_profile']) ? $lang_profile['View your forum subscriptions'] : sprintf($lang_profile['View user forum subscriptions'], forum_htmlencode($user['username']))).'</a></li>'; | 1822: $forum_page['user_activity']['search_forum_subs'] = '<li'.(empty($forum_page['user_activity']) ? ' class="first-item"' : '').'><a href="'.forum_link($forum_url['search_forum_subscriptions'], $id).'">'.(($forum_page['own_profile']) ? $lang_profile['View your forum subscriptions'] : sprintf($lang_profile['View user forum subscriptions'], forum_htmlencode($user['username']))).'</a></li>'; |
1805: } | 1823: } |
1806: | 1824: |
1807: // Setup user options | 1825: // Setup user options |
1905: $forum_page['crumbs'] = array( | 1923: $forum_page['crumbs'] = array( |
1906: array($forum_config['o_board_title'], forum_link($forum_url['index'])), | 1924: array($forum_config['o_board_title'], forum_link($forum_url['index'])), |
1907: array(sprintf($lang_profile['Users profile'], $user['username']), forum_link($forum_url['user'], $id)), | 1925: array(sprintf($lang_profile['Users profile'], $user['username']), forum_link($forum_url['user'], $id)), |
1908: array($lang_profile['Section identity'],forum_link($forum_url['profile_identity'], $id)) | 1926: $lang_profile['Section identity'] |
1909: ); | 1927: ); |
1910: // Setup the form | 1928: // Setup the form |
1911: $forum_page['group_count'] = $forum_page['item_count'] = $forum_page['fld_count'] = 0; | 1929: $forum_page['group_count'] = $forum_page['item_count'] = $forum_page['fld_count'] = 0; |
1961: | 1979: |
1962: if ($forum_page['has_required']): ?> | 1980: if ($forum_page['has_required']): ?> |
1963: <div id="req-msg" class="req-warn ct-box error-box"> | 1981: <div id="req-msg" class="req-warn ct-box error-box"> |
1964: <p class="important"><?php echo $lang_common['Required warn']; ?></p> | 1982: <p class="important"><?php echo $lang_common['Required warn'] ?></p> |
1965: </div> | 1983: </div> |
1966: <?php endif; ?> | 1984: <?php endif; ?> |
1967: <form class="frm-form" method="post" accept-charset="utf-8" action="<?php echo $forum_page['form_action'] ?>"> | 1985: <form class="frm-form" method="post" accept-charset="utf-8" action="<?php echo $forum_page['form_action'] ?>"> |
2114: </fieldset> | 2132: </fieldset> |
2115: <?php ($hook = get_hook('pf_change_details_identity_contact_fieldset_end')) ? eval($hook) : null; ?> | 2133: <?php ($hook = get_hook('pf_change_details_identity_contact_fieldset_end')) ? eval($hook) : null; ?> |
2116: <div class="frm-buttons"> | 2134: <div class="frm-buttons"> |
2117: <span class="submit"><input type="submit" name="update" value="<?php echo $lang_profile['Update profile'] ?>" /></span> | 2135: <span class="submit primary"><input type="submit" name="update" value="<?php echo $lang_profile['Update profile'] ?>" /></span> |
2118: </div> | 2136: </div> |
2119: </form> | 2137: </form> |
2120: </div> | 2138: </div> |
2154: $forum_page['crumbs'] = array( | 2172: $forum_page['crumbs'] = array( |
2155: array($forum_config['o_board_title'], forum_link($forum_url['index'])), | 2173: array($forum_config['o_board_title'], forum_link($forum_url['index'])), |
2156: array(sprintf($lang_profile['Users profile'], $user['username']), forum_link($forum_url['user'], $id)), | 2174: array(sprintf($lang_profile['Users profile'], $user['username']), forum_link($forum_url['user'], $id)), |
2157: array($lang_profile['Section settings'],forum_link($forum_url['profile_settings'], $id)) | 2175: $lang_profile['Section settings'] |
2158: ); | 2176: ); |
2159: | 2177: |
2160: // Setup the form | 2178: // Setup the form |
2181: <h2 class="hn"><span><?php printf(($forum_page['own_profile']) ? $lang_profile['Settings welcome'] : $lang_profile['Settings welcome user'], forum_htmlencode($user['username'])) ?></span></h2> | 2199: <h2 class="hn"><span><?php printf(($forum_page['own_profile']) ? $lang_profile['Settings welcome'] : $lang_profile['Settings welcome user'], forum_htmlencode($user['username'])) ?></span></h2> |
2182: </div> | 2200: </div> |
2183: <div class="main-content main-frm"> | 2201: <div class="main-content main-frm"> |
2184: <form class="frm-form" method="post" accept-charset="utf-8" action="<?php echo $forum_page['form_action'] ?>"> | 2202: <form class="frm-form" method="post" accept-charset="utf-8" action="<?php echo $forum_page['form_action'] ?>"> |
2185: <div class="hidden"> | 2203: <div class="hidden"> |
2186: <?php echo implode("\n\t\t\t\t", $forum_page['hidden_fields'])."\n" ?> | 2204: <?php echo implode("\n\t\t\t\t", $forum_page['hidden_fields'])."\n" ?> |
2187: </div> | 2205: </div> |
2272: <?php ($hook = get_hook('pf_change_details_settings_pre_dst_checkbox')) ? eval($hook) : null; ?> | 2290: <?php ($hook = get_hook('pf_change_details_settings_pre_dst_checkbox')) ? eval($hook) : null; ?> |
2273: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> | 2291: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> |
2274: <div class="sf-box checkbox"> | 2292: <div class="sf-box checkbox"> |
2275: <span class="fld-input"><input type="checkbox" id="fld<?php echo ++$forum_page['fld_count'] ?>" name="form[dst]" value="1" <?php if ($user['dst'] == 1) echo 'checked="checked" ' ?>/></span> | 2293: <span class="fld-input"><input type="checkbox" id="fld<?php echo ++$forum_page['fld_count'] ?>" name="form[dst]" value="1"<?php if ($user['dst'] == 1) echo ' checked="checked"' ?> /></span> |
2276: <label for="fld<?php echo $forum_page['fld_count'] ?>"><?php echo $lang_profile['DST label'] ?></label> | 2294: <label for="fld<?php echo $forum_page['fld_count'] ?>"><?php echo $lang_profile['DST label'] ?></label> |
2277: </div> | 2295: </div> |
2278: </div> | 2296: </div> |
2473: <?php $forum_page['item_count'] = 0; ?> | 2491: <?php $forum_page['item_count'] = 0; ?> |
2474: <?php ($hook = get_hook('pf_change_details_settings_email_fieldset_end')) ? eval($hook) : null; ?> | 2492: <?php ($hook = get_hook('pf_change_details_settings_email_fieldset_end')) ? eval($hook) : null; ?> |
2475: <div class="frm-buttons"> | 2493: <div class="frm-buttons"> |
2476: <span class="submit"><input type="submit" name="update" value="<?php echo $lang_profile['Update profile'] ?>" /></span> | 2494: <span class="submit primary"><input type="submit" name="update" value="<?php echo $lang_profile['Update profile'] ?>" /></span> |
2477: </div> | 2495: </div> |
2478: </form> | 2496: </form> |
2479: </div> | 2497: </div> |
2500: $forum_page['crumbs'] = array( | 2518: $forum_page['crumbs'] = array( |
2501: array($forum_config['o_board_title'], forum_link($forum_url['index'])), | 2519: array($forum_config['o_board_title'], forum_link($forum_url['index'])), |
2502: array(sprintf($lang_profile['Users profile'], $user['username']), forum_link($forum_url['user'], $id)), | 2520: array(sprintf($lang_profile['Users profile'], $user['username']), forum_link($forum_url['user'], $id)), |
2503: array($lang_profile['Section signature'], forum_link($forum_url['profile_signature'], $id)) | 2521: $lang_profile['Section signature'] |
2504: ); | 2522: ); |
2505: | 2523: |
2506: // Setup the form | 2524: // Setup the form |
2562: } | 2580: } |
2563: | 2581: |
2564: ?> | 2582: ?> |
2565: <form id="afocus" class="frm-form" method="post" accept-charset="utf-8" action="<?php echo $forum_page['form_action'] ?>"> | 2583: <form id="afocus" class="frm-form frm-ctrl-submit" method="post" accept-charset="utf-8" action="<?php echo $forum_page['form_action'] ?>"> |
2566: <div class="hidden"> | 2584: <div class="hidden"> |
2567: <?php echo implode("\n\t\t\t\t", $forum_page['hidden_fields'])."\n" ?> | 2585: <?php echo implode("\n\t\t\t\t", $forum_page['hidden_fields'])."\n" ?> |
2568: </div> | 2586: </div> |
2588: </fieldset> | 2606: </fieldset> |
2589: <?php ($hook = get_hook('pf_change_details_signature_fieldset_end')) ? eval($hook) : null; ?> | 2607: <?php ($hook = get_hook('pf_change_details_signature_fieldset_end')) ? eval($hook) : null; ?> |
2590: <div class="frm-buttons"> | 2608: <div class="frm-buttons"> |
2591: <span class="submit"><input type="submit" name="update" value="<?php echo $lang_profile['Update profile'] ?>" /></span> | 2609: <span class="submit primary"><input type="submit" name="update" value="<?php echo $lang_profile['Update profile'] ?>" /></span> |
2592: </div> | 2610: </div> |
2593: </form> | 2611: </form> |
2594: </div> | 2612: </div> |
2612: $forum_page['crumbs'] = array( | 2630: $forum_page['crumbs'] = array( |
2613: array($forum_config['o_board_title'], forum_link($forum_url['index'])), | 2631: array($forum_config['o_board_title'], forum_link($forum_url['index'])), |
2614: array(sprintf($lang_profile['Users profile'], $user['username']), forum_link($forum_url['user'], $id)), | 2632: array(sprintf($lang_profile['Users profile'], $user['username']), forum_link($forum_url['user'], $id)), |
2615: array($lang_profile['Section avatar'],forum_link($forum_url['profile_avatar'], $id)) | 2633: $lang_profile['Section avatar'] |
2616: ); | 2634: ); |
2617: | 2635: |
2618: // Setup the form | 2636: // Setup the form |
2691: </ul> | 2709: </ul> |
2692: </div> | 2710: </div> |
2693: <div id="req-msg" class="req-warn ct-box info-box"> | 2711: <div id="req-msg" class="req-warn ct-box info-box"> |
2694: <p class="important"><?php echo $lang_profile['No upload warn'] ?></p> | 2712: <p class="important"><?php echo $lang_profile['No upload warn'] ?></p> |
2695: </div> | 2713: </div> |
2696: <fieldset class="frm-group group<?php echo ++$forum_page['group_count'] ?>"> | 2714: <fieldset class="frm-group group<?php echo ++$forum_page['group_count'] ?>"> |
2697: <legend class="group-legend"><strong><?php echo $lang_profile['Avatar'] ?></strong></legend> | 2715: <legend class="group-legend"><strong><?php echo $lang_profile['Avatar'] ?></strong></legend> |
2698: <?php ($hook = get_hook('pf_change_details_avatar_pre_cur_avatar_info')) ? eval($hook) : null; ?> | 2716: <?php ($hook = get_hook('pf_change_details_avatar_pre_cur_avatar_info')) ? eval($hook) : null; ?> |
2716: </fieldset> | 2734: </fieldset> |
2717: <?php ($hook = get_hook('pf_change_details_avatar_fieldset_end')) ? eval($hook) : null; ?> | 2735: <?php ($hook = get_hook('pf_change_details_avatar_fieldset_end')) ? eval($hook) : null; ?> |
2718: <div class="frm-buttons"> | 2736: <div class="frm-buttons"> |
2719: <span class="submit"><input type="submit" name="update" value="<?php echo $lang_profile['Update profile'] ?>" /></span> | 2737: <span class="submit primary"><input type="submit" name="update" value="<?php echo $lang_profile['Update profile'] ?>" /></span> |
2720: </div> | 2738: </div> |
2721: </form> | 2739: </form> |
2722: </div> | 2740: </div> |
2741: $forum_page['crumbs'] = array( | 2759: $forum_page['crumbs'] = array( |
2742: array($forum_config['o_board_title'], forum_link($forum_url['index'])), | 2760: array($forum_config['o_board_title'], forum_link($forum_url['index'])), |
2743: array(sprintf($lang_profile['Users profile'], $user['username']), forum_link($forum_url['user'], $id)), | 2761: array(sprintf($lang_profile['Users profile'], $user['username']), forum_link($forum_url['user'], $id)), |
2744: array($lang_profile['Section admin'],forum_link($forum_url['profile_admin'], $id)) | 2762: $lang_profile['Section admin'] |
2745: ); | 2763: ); |
2746: | 2764: |
2747: // Setup form | 2765: // Setup form |
2831: <?php ($hook = get_hook('pf_change_details_admin_pre_group_membership_submit')) ? eval($hook) : null; ?> | 2849: <?php ($hook = get_hook('pf_change_details_admin_pre_group_membership_submit')) ? eval($hook) : null; ?> |
2832: <div class="sf-set button-set set<?php echo ++$forum_page['item_count'] ?>"> | 2850: <div class="sf-set button-set set<?php echo ++$forum_page['item_count'] ?>"> |
2833: <div class="sf-box text"> | 2851: <div class="sf-box text"> |
2834: <span class="submit"><input type="submit" name="update_group_membership" value="<?php echo $lang_profile['Update groups'] ?>" /></span> | 2852: <span class="submit primary"><input type="submit" name="update_group_membership" value="<?php echo $lang_profile['Update groups'] ?>" /></span> |
2835: </div> | 2853: </div> |
2836: </div> | 2854: </div> |
2837: <?php | 2855: <?php |
2838: | 2856: |
2897: <?php ($hook = get_hook('pf_change_details_admin_mod_assignment_fieldset_end')) ? eval($hook) : null; ?> | 2915: <?php ($hook = get_hook('pf_change_details_admin_mod_assignment_fieldset_end')) ? eval($hook) : null; ?> |
2898: <div class="mf-set button-set set<?php echo ++$forum_page['item_count'] ?>"> | 2916: <div class="mf-set button-set set<?php echo ++$forum_page['item_count'] ?>"> |
2899: <div class="mf-box text"> | 2917: <div class="mf-box text"> |
2900: <span class="submit"><input type="submit" name="update_forums" value="<?php echo $lang_profile['Update forums'] ?>" /></span> | 2918: <span class="submit primary"><input type="submit" name="update_forums" value="<?php echo $lang_profile['Update forums'] ?>" /></span> |
2901: </div> | 2919: </div> |
2902: </div> | 2920: </div> |
2903: <?php | 2921: <?php |
2908: ?> | 2926: ?> |
2909: </div> | 2927: </div> |
2910: <div class="frm-buttons"> | 2928: <div class="frm-buttons"> |
2911: <span class="submit"><?php echo $lang_profile['Instructions'] ?></span> | 2929: <span class="submit primary"><?php echo $lang_profile['Instructions'] ?></span> |
2912: </div> | 2930: </div> |
2913: </div> | 2931: </div> |
2914: </form> | 2932: </form> |
punbb-1.4.1/register.php |
punbb-1.4.2/register.php |
2: /** | 2: /** |
3: * Allows the creation of new user accounts. | 3: * Allows the creation of new user accounts. |
4: * | 4: * |
5: * @copyright (C) 2008-2011 PunBB, partially based on code (C) 2008-2009 FluxBB.org | 5: * @copyright (C) 2008-2012 PunBB, partially based on code (C) 2008-2009 FluxBB.org |
6: * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher | 6: * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher |
7: * @package PunBB | 7: * @package PunBB |
8: */ | 8: */ |
71: <h2 class="hn"><span><?php echo $lang_profile['Reg rules head'] ?></span></h2> | 71: <h2 class="hn"><span><?php echo $lang_profile['Reg rules head'] ?></span></h2> |
72: </div> | 72: </div> |
73: <div class="main-content main-frm"> | 73: <div class="main-content main-frm"> |
74: <div class="ct-box user-box"> | 74: <div id="rules-content" class="ct-box user-box"> |
75: <?php echo $forum_config['o_rules_message'] ?> | 75: <?php echo $forum_config['o_rules_message'] ?> |
76: </div> | 76: </div> |
77: <form class="frm-form" method="get" accept-charset="utf-8" action="<?php echo forum_link($forum_url['register']) ?>"> | 77: <form class="frm-form" method="get" accept-charset="utf-8" action="<?php echo forum_link($forum_url['register']) ?>"> |
80: <?php ($hook = get_hook('rg_rules_pre_agree_checkbox')) ? eval($hook) : null; ?> | 80: <?php ($hook = get_hook('rg_rules_pre_agree_checkbox')) ? eval($hook) : null; ?> |
81: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> | 81: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> |
82: <div class="sf-box checkbox"> | 82: <div class="sf-box checkbox"> |
83: <span class="fld-input"><input type="checkbox" id="fld<?php echo ++$forum_page['fld_count'] ?>" name="req_agreement" value="1" /></span> | 83: <span class="fld-input"><input type="checkbox" id="fld<?php echo ++$forum_page['fld_count'] ?>" name="req_agreement" value="1" required /></span> |
84: <label for="fld<?php echo $forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Agreement'] ?></span> <?php echo $lang_profile['Agreement label'] ?></label> | 84: <label for="fld<?php echo $forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Agreement'] ?></span> <?php echo $lang_profile['Agreement label'] ?></label> |
85: </div> | 85: </div> |
86: </div> | 86: </div> |
272: | 272: |
273: // Must the user verify the registration or do we log him/her in right now? | 273: // Must the user verify the registration or do we log him/her in right now? |
274: if ($forum_config['o_regs_verify'] == '1') | 274: if ($forum_config['o_regs_verify'] == '1') |
| 275: { |
275: message(sprintf($lang_profile['Reg e-mail'], '<a href="mailto:'.forum_htmlencode($forum_config['o_admin_email']).'">'.forum_htmlencode($forum_config['o_admin_email']).'</a>')); | 276: message(sprintf($lang_profile['Reg e-mail'], '<a href="mailto:'.forum_htmlencode($forum_config['o_admin_email']).'">'.forum_htmlencode($forum_config['o_admin_email']).'</a>')); |
| 277: } |
| 278: else |
| 279: { |
| 280: // Remove cache file with forum stats |
| 281: if (!defined('FORUM_CACHE_FUNCTIONS_LOADED')) |
| 282: { |
| 283: require FORUM_ROOT.'include/cache.php'; |
| 284: } |
| 285: |
| 286: clean_stats_cache(); |
| 287: } |
276: | 288: |
277: $expire = time() + $forum_config['o_timeout_visit']; | 289: $expire = time() + $forum_config['o_timeout_visit']; |
278: | 290: |
295: // Setup breadcrumbs | 307: // Setup breadcrumbs |
296: $forum_page['crumbs'] = array( | 308: $forum_page['crumbs'] = array( |
297: array($forum_config['o_board_title'], forum_link($forum_url['index'])), | 309: array($forum_config['o_board_title'], forum_link($forum_url['index'])), |
298: array(sprintf($lang_profile['Register at'], $forum_config['o_board_title']), forum_link($forum_url['register'])), | 310: sprintf($lang_profile['Register at'], $forum_config['o_board_title']) |
299: | |
300: ); | 311: ); |
301: | 312: |
302: // Load JS for timezone detection | 313: // Load JS for timezone detection |
350: | 361: |
351: ?> | 362: ?> |
352: <div id="req-msg" class="req-warn ct-box error-box"> | 363: <div id="req-msg" class="req-warn ct-box error-box"> |
353: <p class="important"><?php echo $lang_common['Required warn']; ?></p> | 364: <p class="important"><?php echo $lang_common['Required warn'] ?></p> |
354: </div> | 365: </div> |
355: <form class="frm-form" id="afocus" method="post" accept-charset="utf-8" action="<?php echo $forum_page['form_action'] ?>" autocomplete="off"> | 366: <form class="frm-form frm-suggest-username" id="afocus" method="post" accept-charset="utf-8" action="<?php echo $forum_page['form_action'] ?>" autocomplete="off"> |
356: <div class="hidden"> | 367: <div class="hidden"> |
357: <input type="hidden" name="form_sent" value="1" /> | 368: <input type="hidden" name="form_sent" value="1" /> |
358: <input type="hidden" name="csrf_token" value="<?php echo generate_form_token($forum_page['form_action']) ?>" /> | 369: <input type="hidden" name="csrf_token" value="<?php echo generate_form_token($forum_page['form_action']) ?>" /> |
361: </div> | 372: </div> |
362: <?php ($hook = get_hook('rg_register_pre_group')) ? eval($hook) : null; ?> | 373: <?php ($hook = get_hook('rg_register_pre_group')) ? eval($hook) : null; ?> |
363: <div class="frm-group group<?php echo ++$forum_page['group_count'] ?>"> | 374: <div class="frm-group group<?php echo ++$forum_page['group_count'] ?>"> |
364: <?php ($hook = get_hook('rg_register_pre_username')) ? eval($hook) : null; ?> | 375: <?php ($hook = get_hook('rg_register_pre_email')) ? eval($hook) : null; ?> |
365: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> | 376: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> |
366: <div class="sf-box text required"> | 377: <div class="sf-box text required"> |
| 378: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['E-mail'] ?></span> <small><?php echo $lang_profile['E-mail help'] ?></small></label><br /> |
| 379: <span class="fld-input"><input type="email" data-suggest-role="email" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_email1" value="<?php echo(isset($_POST['req_email1']) ? forum_htmlencode($_POST['req_email1']) : '') ?>" size="35" maxlength="80" required spellcheck="false" /></span> |
| 380: </div> |
| 381: </div> |
| 382: <?php ($hook = get_hook('rg_register_pre_username')) ? eval($hook) : null; ?> |
| 383: <div class="sf-set set<?php echo ++$forum_page['item_count']; if ($forum_config['o_regs_verify'] == '0') echo ' prepend-top'; ?>"> |
| 384: <div class="sf-box text required"> |
367: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Username'] ?></span> <small><?php echo $lang_profile['Username help'] ?></small></label><br /> | 385: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Username'] ?></span> <small><?php echo $lang_profile['Username help'] ?></small></label><br /> |
368: <span class="fld-input"><input type="text" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_username" value="<?php echo(isset($_POST['req_username']) ? forum_htmlencode($_POST['req_username']) : '') ?>" size="35" maxlength="25" required /></span> | 386: <span class="fld-input"><input type="text" data-suggest-role="username" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_username" value="<?php echo(isset($_POST['req_username']) ? forum_htmlencode($_POST['req_username']) : '') ?>" size="35" maxlength="25" required spellcheck="false" /></span> |
369: </div> | 387: </div> |
370: </div> | 388: </div> |
371: <?php ($hook = get_hook('rg_register_pre_password')) ? eval($hook) : null; ?> | 389: <?php ($hook = get_hook('rg_register_pre_password')) ? eval($hook) : null; ?> |
372: <?php if ($forum_config['o_regs_verify'] == '0'): ?> <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> | 390: <?php if ($forum_config['o_regs_verify'] == '0'): ?> |
| 391: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> |
373: <div class="sf-box text required"> | 392: <div class="sf-box text required"> |
374: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Password'] ?></span> <small><?php echo $lang_profile['Password help'] ?></small></label><br /> | 393: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Password'] ?></span> <small><?php echo $lang_profile['Password help'] ?></small></label><br /> |
375: <span class="fld-input"><input type="<?php echo($forum_config['o_mask_passwords'] == '1' ? 'password' : 'text') ?>" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_password1" size="35" value="<?php echo(isset($_POST['req_password1']) ? forum_htmlencode($_POST['req_password1']) : ''); ?>" required autocomplete="off" /></span> | 394: <span class="fld-input"><input type="<?php echo($forum_config['o_mask_passwords'] == '1' ? 'password' : 'text') ?>" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_password1" size="35" value="<?php if (isset($_POST['req_password1'])) echo forum_htmlencode($_POST['req_password1']); ?>" required autocomplete="off" /></span> |
376: </div> | 395: </div> |
377: </div> | 396: </div> |
378: <?php ($hook = get_hook('rg_register_pre_confirm_password')) ? eval($hook) : null; ?> | 397: <?php ($hook = get_hook('rg_register_pre_confirm_password')) ? eval($hook) : null; ?> |
379: <?php if ($forum_config['o_mask_passwords'] == '1'): ?> | 398: <?php if ($forum_config['o_mask_passwords'] == '1'): ?> |
380: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> | 399: <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>"> |
381: <div class="sf-box text required"> | 400: <div class="sf-box text required"> |
382: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Confirm password'] ?></span> <small><?php echo $lang_profile['Confirm password help'] ?></small></label><br /> | 401: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Confirm password'] ?></span> <small><?php echo $lang_profile['Confirm password help'] ?></small></label><br /> |
383: <span class="fld-input"><input type="password" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_password2" size="35" value="<?php echo(isset($_POST['req_password2']) ? forum_htmlencode($_POST['req_password2']) : ''); ?>" required autocomplete="off" /></span> | 402: <span class="fld-input"><input type="password" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_password2" size="35" value="<?php if (isset($_POST['req_password2'])) echo forum_htmlencode($_POST['req_password2']); ?>" required autocomplete="off" /></span> |
384: </div> | 403: </div> |
385: </div> | 404: </div> |
| 405: <?php endif; ?> |
386: <?php endif; ?> | 406: <?php endif; ?> |
387: <?php endif; ($hook = get_hook('rg_register_pre_email')) ? eval($hook) : null; ?> <div class="sf-set set<?php echo ++$forum_page['item_count']; if ($forum_config['o_regs_verify'] == '0') echo ' prepend-top'; ?>"> | |
388: <div class="sf-box text required"> | |
389: <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['E-mail'] ?></span> <small><?php echo $lang_profile['E-mail help'] ?></small></label><br /> | |
390: <span class="fld-input"><input type="email" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_email1" value="<?php echo(isset($_POST['req_email1']) ? forum_htmlencode($_POST['req_email1']) : '') ?>" size="35" maxlength="80" required /></span> | |
391: </div> | |
392: </div> | |
393: <?php ($hook = get_hook('rg_register_pre_email_confirm')) ? eval($hook) : null; | 407: <?php ($hook = get_hook('rg_register_pre_email_confirm')) ? eval($hook) : null; |
394: | 408: |
395: $languages = array(); | 409: $languages = array(); |
438: </div> | 452: </div> |
439: <?php ($hook = get_hook('rg_register_group_end')) ? eval($hook) : null; ?> | 453: <?php ($hook = get_hook('rg_register_group_end')) ? eval($hook) : null; ?> |
440: <div class="frm-buttons"> | 454: <div class="frm-buttons"> |
441: <span class="submit"><input type="submit" name="register" value="<?php echo $lang_profile['Register'] ?>" /></span> | 455: <span class="submit primary"><input type="submit" name="register" value="<?php echo $lang_profile['Register'] ?>" /></span> |
442: </div> | 456: </div> |
443: </form> | 457: </form> |
444: </div> | 458: </div> |
punbb-1.4.1/style/Oxygen/min/Oxygen.min.css |
punbb-1.4.2/style/Oxygen/min/Oxygen.min.css |
1: html,body,div,p,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,legend,blockquote,table,th,td,input,textarea,button,select{margin:0;padding:0;text-align:left}fieldset,img,cite{border:0}.visual-hidden{visibility:hidden}br,hr,.hr,.hidden{display:none}.border-less{border:none!important}.small-font{font-size:.917em}.list-clean{list-style-type:none}.prepend-top{margin-top:1em!important}.nowrap{white-space:nowrap}html{height:99%;overflow-y:scroll}body{font-size:100%}.brd-page{font:75%/1.5em Verdana,Helvetica,Arial,sans-serif}h1,h2,h3,h4,h5,h6{font-size:1em;font-weight:normal}samp,code,pre,option,optgroup,input,select,textarea,td,th{font-size:1em;font-family:Verdana,Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal}samp,code,pre{font-family:monospace,sans-serif}.brd-page:after,.gen-content:after,.ct-box:after,#brd-index .item-head:after,#brd-index .main-item:after,#brd-index ul.item-info:after,.frm-group:after,.mf-set:after,.sf-set:after,.mf-box:after,.sf-box:after,.mf-item:after,.txt-set:after,.txt-box:after,.frm-form label:after,fieldset:after,span.fld-input:after,.posthead:after,.postbody:after,.postfoot .post-options:after{content:"\0020";display:block;font-size:0;height:0;line-height:.0;overflow:hidden;visibility:hidden;clear:both}.clearfix:before,.clearfix:after{content:"\0020";display:block;height:0;overflow:hidden}.clearfix:after{clear:both}.clearfix{zoom:1}#brd-stats .hn,#qjump label,.post-byline span,.posthead .post-link span,.admin .main-subhead,.main-item .item-info li span.label,.main-item .item-info li label,.main-item .you-posted,.main-item .item-num,.group-legend,.group-legend span,.sf-set legend,.sf-set legend span,.main-pagehead .page-info,p.item-select label,.mf-extra .mf-field label,.mf-extra .mf-field .aslabel,.item-subject .item-nav span,.post-options a span,.main-title,.main-head .hn small,.entry-title,.menu-page .main-head{font-size:0;left:-999em;text-indent:-999em;position:absolute;line-height:0;visibility:hidden}.brd{padding:1.3em 2em;margin:0 auto;max-width:1100px;min-width:700px;width:90%}#brd-redirect,#brd-maint,#brd-util{margin:50px auto 12px auto;width:60%}.brd-page{float:left;width:100%;position:relative}.main-content,.gen-content{border-style:solid;border-width:1px}.gen-content{padding:0 1.5em}#brd-about,#brd-stats{margin-top:1em}.main-content,#brd-visit,#brd-qpost,#brd-announcement{margin-bottom:1em}#brd-announcement{padding:.5em 1.5em;margin-top:1em}#brd-announcement br{display:inline}.main-options{border-top:0;margin:-1em 0 1em 0}p,.hn{padding:.35em 0}ul,ol{padding:.35em 0 .35em 2em}ul.spaced{padding:.25em 0 .25em 2em}.spaced li{padding:.25em 0}th{font-size:1.084em;padding:.462em 1.417em;border-bottom-style:solid;border-bottom-width:1px}.main-head,.main-foot{border-style:solid;border-width:1px;padding:0 1.417em}.main-head .hn,.main-foot .hn{padding-right:10em}h2.main-subhead{border-style:solid;border-width:1px;padding:.462em 10em .426em 1.417em}.column-title{border-style:solid;border-width:1px;position:relative;margin-bottom:-1px}.main-subhead{border-style:solid;border-width:1px;border-bottom:0}.main-subhead .hn{padding:.462em 1.417em;position:relative}.main-foot{margin-top:-1em}#brd-announcement h1,.main-extensions .ct-legend,.main-hotfixes .ct-legend{border-bottom-style:dashed;border-bottom-width:1px;font-size:1.1em;font-weight:bold}#brd-announcement h1{margin-bottom:.5em}.main-pagehead .hn{padding:.5em 0}.content-head{margin:.5em 1.417em 0}.content-head .hn{border-style:none none double none;border-width:3px;padding:.462em 0}.options>span{padding:0 0 0 .3em;margin:0 0 0 .25em}.options .js_link{padding:0;margin:0 0 0 .55em}.options>span.first-item{border-left:0;padding-left:0;margin-left:0}.extension .options,.hotfix .options{border-top-style:dashed;border-top-width:1px}.ct-box{border-style:solid;border-width:1px;-moz-border-radius:.35em;-webkit-border-radius:.35em;-khtml-border-radius:.35em;border-radius:.35em;margin:1.417em;padding:.5em 1em;position:relative}.ct-box li{padding:0;margin:0 0 .7em 0}.ct-set{border-style:solid;border-width:1px;margin:1.417em;padding:0 0 0 17em;position:relative}.ct-group{border-style:solid;border-width:1px;margin:1.417em}.frm-group .ct-set{border-style:dashed none none none;margin:0}.ct-group .ct-set{border-style:dashed none none none;margin:0 1em;padding:0 0 0 16em}.ct-group .group-item1{border:0}.ct-group .set1,.frm-group .set1{border-top:0}.ct-group .ct-box,.frm-group .ct-box{border-style:none;margin:0}.ct-group .ct-set .ct-box,.ct-set .ct-box,.frm-group .ct-set .ct-box{border-style:none;margin:0}.ct-group .set1{border-top:0}.ct-set .ct-legend{float:left;margin-left:-17em;width:16em;position:relative;text-align:right;font-weight:bold}.ct-set ul{padding-left:0;list-style:none}.ct-box div{padding:.35em 0}.ct-box p.options{float:none}.ct-box .info-list{padding-bottom:0}.user-ident{padding-left:0;list-style:none}.user-ident .username a,.user-ident .username strong{font-size:1.5em;font-weight:normal} | |
2: .user-ident .username a,.user-ident .username a:link,.user-ident .username a:visited{text-decoration:none}.user-ident .username a:hover,.user-ident .username a:active,.user-ident .username a:focus{text-decoration:underline}.user-ident .usertitle{font-weight:bold}.user-ident .useravatar{padding:.25em 0}.user-ident .useravatar img{display:block}.main-message{padding:.5em 1.417em}.main-message p span{display:block;padding-top:.5em}#brd-maint .main-message{padding:0}.main-menu,.admin-menu{border:0;padding:.4em 0 .2em .75em}.main-menu ul,.admin-menu ul{list-style-type:none;float:left;padding:0}.main-menu li,.admin-menu li{float:left;display:inline}.main-menu a,.admin-menu a{float:left;position:relative;padding:.2em .75em .4em .75em}.main-menu .active a,.admin-menu .active a{font-weight:bold}.main-menu li.first-item,.admin-menu li.first-item{border-left:0}.admin-submenu{border-style:solid;border-width:0 1px}.admin-submenu ul{padding:.5em 0;list-style:none}.admin-submenu li{display:inline;margin-right:.75em}.admin-submenu .active a{font-weight:bold}#brd-head{padding-bottom:.75em;padding-top:1em;border-radius:.4em .4em 0 0}#brd-title{padding-bottom:0}#brd-title a,#brd-title strong{font-size:1.5em;text-decoration:none;font-weight:normal}#brd-desc{padding-top:0;padding-bottom:0}#brd-navlinks ul{margin:0;padding:.4em 0;float:left}#brd-navlinks li{display:inline;margin-right:1em}#brd-navlinks li a{text-decoration:none}#brd-admod{float:right;text-align:right}#brd-admod span{margin-left:.75em}#brd-access{text-align:right;padding:0;height:0;margin:0;position:absolute;background:transparent}#brd-access a,#brd-access a:link,#brd-access a:visited{height:2em;line-height:2em;position:absolute;left:-999em;margin:1px;width:12em}#brd-access a:hover,#brd-access a:active,#brd-access a:focus{text-indent:0;background:#000;position:static;float:right}#brd-visit #welcome{float:left}#brd-visit #visit-links{text-align:right;float:none}#brd-pagepost-end{border-top:0}#brd-pagepost-top{border-bottom:0}#brd-admin-bans #brd-pagepost-end{margin-top:-1em}.paging{float:left}.posting{text-align:right;float:right}.paging{white-space:nowrap}.paging a,.paging strong,.paging span{padding:0 1em;border-left-style:solid;border-left-width:1px;float:left;white-space:nowrap}.paging .first-item,.paging span.pages{border-left:0;padding-left:0}.posting .newpost{font-size:1.084em;font-weight:bold}.crumbs .crumblast span{font-weight:normal}.crumbs span,.crumbs a{white-space:nowrap}.crumbs{margin:.5em 0;padding:0 1.417em;font-size:1.084em}#brd-crumbs-top .crumblast{font-size:1.15em}#brd-stats ul{list-style:none;padding-left:0}#brd-stats ul li.st-users{float:left;clear:both;white-space:nowrap}#brd-stats ul li.st-activity{text-align:right;display:block;white-space:nowrap}#brd-stats li strong{font-weight:bold}#brd-online{padding-top:.5em;padding-bottom:.5em;border-top:0}#brd-online .hn,#brd-online p{padding-bottom:0;padding-top:0}#brd-online .hn{float:left;margin-right:.5em}#qjump{float:left;padding:.5em 0}#qjump div,#qjump label{padding:0;border:0}#copyright{text-align:right;margin:0}#querytime{text-align:right;font-size:.917em;padding:0}#extensions-used{border-bottom:1px dotted}p.options{border-top:0;float:right}.main-modoptions .options{text-align:center}a.feed{padding-left:22px;background:url(feed-icon.png) center left no-repeat}.content-options,.ct-options{float:right;margin-top:-2.6em;padding:.5em 1.417em;position:relative}.item-summary{height:2.5em;padding:0;position:relative;font-size:1em}.item-summary span{width:100%;position:absolute;left:-999em;text-indent:-999em;display:block}.item-summary strong{position:absolute;left:999em;text-indent:0;padding:.5em 0;white-space:nowrap;font-weight:normal}.item-summary strong:first-letter {text-transform:uppercase}.item-summary .subject-title{padding-left:1.417em}.item-summary .info-topics,.item-summary .info-replies{margin-left:100%;text-align:center;width:7em;left:965em}.item-summary .info-forum{margin-left:100%;text-align:center;width:20em;left:952em}.item-summary .info-posts,.item-summary .info-views{margin-left:100%;text-align:center;width:7em;left:972em}.item-summary .info-lastpost{margin-left:100%;left:980em}p.forum-noview .info-replies{left:972em}.main-content .main-item{border-top-style:solid;border-top-width:1px;overflow:hidden;position:relative;line-height:1.4em}.main-content .main-first-item{border-top:0}.main-content .main-item ul{float:right;position:relative;padding:0;list-style:none}.main-content .main-item p,.main-content .main-item .hn{padding:0}.hn .item-status{font-weight:normal}.hn .item-status em{font-style:normal}.main-item .item-subject,.main-content .main-item li{float:left;border-left-style:solid;border-left-width:1px;margin:0 -2px -9.7em 0;position:relative;padding-top:.6em;padding-bottom:10.4em}.main-item .item-subject{overflow:hidden;width:100%}li.info-topics,li.info-posts,li.info-views,li.info-replies{width:7em;text-align:center}li.info-forum{width:20em;text-align:center}li.info-lastpost{width:20em} | |
3: li.info-lastpost cite{overflow:hidden;width:18em}.main-item li strong{font-weight:normal}.main-content .main-item{padding-right:35em;padding-left:3.75em}.main-content .main-item .hn{position:relative}.main-content .main-item ul{width:34em;right:-35em;margin-left:-34em}.forum-noview .main-item{padding-right:28em}.forum-noview .main-item ul{width:27em;right:-28em;margin-left:-27em}.forum-forums .main-item{padding-right:48em}.forum-forums .main-item ul{width:47em;right:-48em;margin-left:-47em}.item-subject span.modlist{display:block}#brd-index .main-item .hn span{font-size:1.084em;font-weight:bold}#brd-index .main-item .hn small{font-size:1em}.item-status{font-weight:bold}.main-content .main-item cite{font-style:normal}.item-nav,.item-nav a,.item-nav span{white-space:nowrap;font-style:normal}.item-subject .hn,.item-subject p{margin:0 0 0 1.5em}li.info-lastpost cite,li.info-lastpost span,li.info-forum a{display:block;padding:0 1em;font-style:normal;font-weight:normal}li.info-lastpost strong{padding:0 0 0 1em;font-style:normal;font-weight:normal}.main-item li.info-select{position:absolute;right:0;top:0;padding:.3em;border-style:none none solid solid;border-width:1px}.main-content .main-item .icon{border-style:solid;border-width:.5833em;height:0;width:0;float:left;margin-top:.667em;margin-left:-2.417em}.main-content .main-item .hn .posted-mark{position:absolute;font-size:2em;width:1em;left:-0.5em;top:0}.frm-group{border-top-style:dashed;border-top-width:1px;margin:1.417em;padding:1.3em 0 0}.group1{border-top:0;padding-top:0}.sf-box,.mf-box,.txt-box{margin:1.417em;padding:.5em 0;position:relative}.sf-set,.mf-set,.txt-set{margin:1.417em;padding:0 0 0 17em;position:relative}.sf-set .sf-box,.mf-set .mf-box,.txt-set .txt-box{margin:0}.frm-group .sf-set,.frm-group .mf-set,.frm-group .txt-set{margin:0}.text input,.select select{font-size:1.084em}optgroup{font-weight:bold}.frm-buttons{margin:.75em 1.417em .8em 1.417em;position:relative;border-top-style:solid;border-top-width:1px;padding:1.1em 0 .3em 18em}.frm-buttons .submit{margin-right:.75em}.frm-buttons .primary{margin-right:2em}.submit input,.cancel input{overflow:visible;padding-left:.5em;padding-right:.5em;font-size:1.084em}.button-set .submit{padding-left:1em}button{width:auto;overflow:visible}label,input[type="button"],input[type="submit"],button,select{cursor:pointer}input[type="submit"],input[type="button"],input[type="reset"],button{display:inline-block;vertical-align:baseline;text-align:center;text-decoration:none;padding:.5em .65em;-moz-border-radius:.25em;-webkit-border-radius:.25em;-khtml-border-radius:.25em;border-radius:.25em;border-style:solid;border-width:1px;-webkit-appearance:button;line-height:normal}input[type="submit"]::-moz-focus-inner,input[type="button"]::-moz-focus-inner,input[type="file"]::-moz-focus-inner,input[type="reset"]::-moz-focus-inner,button::-moz-focus-inner{border:0;padding:0}input[type="submit"]:active,input[type="button"]:active,input[type="reset"]:active,button:active{position:relative;top:1px}input[type="submit"][disabled]:active,input[type="button"][disabled]:active,input[type="reset"][disabled]:active,button[disabled]:active{position:relative;top:0}.js_link{border-bottom-style:dashed;border-bottom-width:1px}.sf-box label,.sf-box .aslabel{float:left;padding:0}.sf-set .checkbox label{padding:2px 0 2px 2.7em}.sf-set .text label span,.sf-set .select label span,.sf-set .aslabel span{float:left;margin-left:-17em;display:block;position:relative;padding:2px 0 2px 1em;width:16em;text-align:right}.sf-set .checkbox label span{float:left;margin-left:-18em;display:block;position:relative;padding:0 0 0 2em;width:16em;left:-3em;text-align:right;font-weight:bold}.sf-set .text label small,.sf-set .select label small{display:block;text-align:left;position:relative;margin:2em 1em 0 1em;padding-top:.25em;font-size:.917em}.sf-set .fld-input{position:absolute;top:0;left:0;display:block;padding:.5em 1em}.sf-set .checkbox input{margin:.2em 0 .2em -0.2em}.sf-set .text input:not([title]){height:100%}.sf-set .sf-short input{width:4em}.sf-set .sf-short label small{font-size:1em;padding:2px 0;margin:0 1em 0 7em}input[type="radio"]{vertical-align:middle;bottom:1px}input[type="checkbox"]{vertical-align:middle;bottom:1px}table input[type="checkbox"]{vertical-align:baseline}.mf-box .mf-item{position:relative;top:-0.166em;padding:.3em 0}.mf-set legend{position:absolute;height:0;background:transparent}.mf-set legend span{position:absolute;left:-17em;width:16em;padding:.5em 1em;margin:1px 0 2px 0;overflow:hidden;display:block;text-align:right;font-weight:bold} | |
4: .mf-set legend span em{display:block;white-space:normal;font-style:normal;font-weight:normal;font-size:.917em}.mf-item .fld-input{position:absolute;top:.25em;left:0;display:block;padding:0 1em}.mf-item input{margin:.1em 0 .1em -0.25em}.mf-item label{padding:1px 0 1px 2.7em;float:left}.mf-set .mf-yesno .mf-item{width:11em;float:left}.mf-set .mf-field{float:left;padding:0 1em 0 1em;border-left:1px solid #ccc}.mf-set .mf-field1{border-left:none}.mf-set .mf-field label,.mf-set .mf-field .aslabel{position:absolute;top:-2em;display:block}.mf-set .mf-cell .fld-input{position:static;padding:0 0 0 1em;border-left:1px solid #ccc}.frm-hdgroup{padding-top:2em}.sf-set .sf-box .sf-forum{width:25em}.mf-set .mf-box .forum-field{width:25em}.checklist{min-height:6em;max-height:9em;max-width:30em;overflow:auto;border-style:solid;border-width:1px;position:relative;padding:.25em .5em;margin:0 1em}.checklist fieldset{height:auto}.checklist legend,.checklist legend span{font-weight:bold;position:static;padding:0;height:auto;text-align:left}.checklist legend span{width:auto;max-width:25em}.checklist-item{position:relative;height:auto}.checklist-item label{display:block;padding:0 0 0 2.25em;float:none;height:100%}.checklist-item .fld-input{position:absolute;left:0;top:0;padding:0;margin:0}.checklist-item input{margin:0}.txt-box label{float:left}.txt-set label span{float:left;margin-left:-17em;display:block;position:relative;padding:2px 1em;width:16em;text-align:right}.txt-set label small{display:block;text-align:left;position:relative;margin:0 1em 0 -1px;padding:2px 1.25em;font-size:.917em;z-index:100}.txt-set .txt-input{position:relative;width:100%}.txt-set .fld-input{display:block;padding:0 0 0 1em}.txt-set textarea{width:95%;resize:vertical}input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="search"],input[type="number"],textarea{border-width:1px;border-style:solid;padding:.25em}#quick-search{padding:.1em .2em}.req-warn{display:none}#req-msg p em,.required label span em{font-style:normal;font-weight:normal}.required label span em{float:left;font-size:.917em;line-height:1.2em;width:100%;position:relative}.req-error{display:block}.required label span{font-weight:bold}.post{border-style:solid;border-width:1px;position:relative;margin:1.417em;margin-top:-1.417em}.firstpost,.singlepost{margin-top:1.417em}.main-topic .lastpost{border-bottom:0}.main-topic .post{border-style:solid none;margin:0}.main-topic .firstpost{border-top:0}.posthead{margin-left:18em;border-style:none none none solid;border-width:1px}.posthead .hn{padding-right:1.5em;padding-left:1em;border-style:none none dashed none;border-width:1px}.posthead .post-byline a,.posthead .post-byline strong{font-size:1.167em;font-weight:bold;text-decoration:none;font-style:normal}.posthead .post-byline{float:left;width:15.5em;padding:.5em 1em .5em 1.5em;margin-left:-19em;margin-top:-0.5em;position:relative;left:-1px;overflow:hidden}.posthead .post-num{float:right}#brd-modtopic .posthead .hn{padding-right:2.7em}.post-title{padding:0 1.5em .5em 1em;margin-top:-1px;position:relative}.post-title span{display:block;width:100%;overflow:hidden}.post-title a{font-size:1em;text-decoration:none;font-weight:bold}.post-title small,.post-title small a{font-size:1em;font-weight:normal;white-space:nowrap}.posthead p.item-select{position:absolute;top:0;right:.75em;height:2.5em}.postbody{margin-left:18em;position:relative;border-left-style:solid;border-left-width:1px;padding:.5em 1.5em 0 1em;clear:both}.postfoot{padding-left:18em;border-top-style:none;border-top-width:1px;position:relative}.postfoot .post-options{border-left-style:solid;border-left-width:1px}.postbody .post-author{float:left;width:15.5em;margin-left:-19em;left:-1px;position:relative;padding:0 1em .5em 1.5em;overflow:hidden;margin-top:-1em}.postbody .post-author ul{margin:0;padding:0 0 .5em 0;list-style:none}.author-ident .useravatar img{display:block;padding:.5em 0}.author-ident .username{display:none}.author-ident .usertitle{font-weight:bold;line-height:normal}.author-ident .userstatus{padding:.75em 0 .25em 0;margin:0;line-height:.75em;width:100%}.author-ident .userstatus span{font-size:.917em;display:block;border-left-style:solid;border-left-width:.7em;text-indent:.5em}.author-info li span strong{font-weight:normal}.online .author-ident .userstatus span{font-weight:bold}.postfoot .post-contacts{float:left;margin-left:-18em;width:15.5em;padding:.5em 1em .5em 1.5em;position:relative;left:-1px}.postfoot .post-actions{padding:.5em 1.5em .5em 1em;text-align:right;display:block;float:right}.postfoot .post-actions>span{margin-left:.75em}.postfoot .post-contacts>span{margin-right:.75em}.entry-content{padding-bottom:1em;overflow:hidden;width:100%;min-height:8em;font-size:1.084em}#brd-help .entry-content{min-height:4em}.entry-content ol{padding-left:2.5em;list-style-type:decimal} | |
5: .entry-content ol p,.entry-content ul p{padding:0}.entry-content ol.alpha{list-style-type:upper-alpha}.entry-content h5{font-weight:bold;font-size:1.084em;padding:.5em 0}.entry-content img{vertical-align:text-top;max-width:100%}.entry-content .quotebox,.entry-content .codebox{border-style:solid;border-width:1px;margin:.75em 1em;padding:1em .75em}.entry-content .codebox{font-size:.97em}.entry-content blockquote{overflow:hidden;width:100%}.entry-content .quotebox cite{display:block;font-style:normal;font-weight:bold}.entry-content pre{margin:0;max-height:35em;min-height:2em;overflow:auto;padding:0 2% .1em 0;width:98%}.entry-content span.bbu{text-decoration:underline}.entry-content br,.sig-demo br,.user-box br,.main-message br{display:inline}.sig-content{padding-top:2em;font-size:.917em}span.sig-line{display:block;width:200px;border-top-style:solid;border-top-width:1px;padding-bottom:.5em}table{width:100%;table-layout:fixed;empty-cells:show;border-spacing:0;line-height:1.3333em;border-collapse:collapse}td{overflow:hidden;vertical-align:middle}table caption{display:none}#brd-userlist table .tc0{width:30%}#brd-userlist table .tc1{width:20%;text-align:left}#brd-userlist table .tc2{width:10%;text-align:center}#brd-debug table{border:0;font-size:.95em}#brd-debug .tcl{white-space:nowrap;width:10%}#brd-debug .tcr{white-space:normal;width:90%}#brd-admin-uresults table .tc0,#brd-admin-iresults table .tc0{width:45%}#brd-admin-uresults table .tc1,#brd-admin-iresults table .tc1,#brd-admin-iresults table .tc2{width:20%}#brd-admin-uresults table .tc2,#brd-admin-uresults table .tc4{width:10%;text-align:center}#brd-admin-uresults .tc3{width:15%}#brd-admin-uresults td.tc0 span,#brd-admin-uresults td.tc3 span{display:block;white-space:nowrap}#brd-admin-iresults table .tc0{width:25%}#brd-admin-iresults table .tc1{width:25%}#brd-admin-iresults table .tc2{width:20%}#brd-admin-iresults .tc3{width:30%}.main-content th{font-size:1.084em;padding:.462em 1.417em;font-weight:normal}td{padding:.5em 1.417em;border-width:1px;border-style:solid none none solid}td.tc0{border-left-style:none;border-left-width:0}th{padding:.5em 1.3em;border-style:none}td.actions,th.actions{text-align:right}td.actions span{display:block}.report{margin-left:4em}.report h3 span{display:block;font-style:normal}.report h3 cite{font-style:normal;font-size:1.084em;font-weight:bold}.report h3 strong{position:absolute;left:-3.1em;width:1.5em;text-align:right;font-size:1.167em}.report p strong{display:block;font-weight:normal}.report h4{border-bottom-style:dashed;border-bottom-width:1px}#brd-admin-reports .frm-buttons{margin-left:4em;margin-top:0}#brd-admin-reports .select-all{float:right}.report .item-select{position:absolute;top:0;right:.75em;height:2.5em}.help-box samp{display:block;margin-left:1.5em}.help-box h5 samp{margin-left:1.417em}.help-box code{font-family:courier;font-size:1.084em}.help-box .entry-content{padding:0}.help-box .hn{padding-bottom:.5em;border-bottom-style:dashed;border-bottom-width:1px;margin-bottom:.5em;color:#294f6e}#brd-messages{text-align:center;position:fixed;top:0;z-index:999;padding:0;left:0;right:0}#brd-messages span{text-align:center;padding:.35em 1.3em;margin:0 1em;font:87%/1.5em Arial,sans-serif;font-weight:bold;line-height:2em;border-width:1px;border-style:solid}.ie6 .brd-page,.ie6 .main,.ie6 #brd-index .main-subhead,.ie6 .main-content .main-item,.ie6 .main-content .main-item ul,.ie6 .gen-content,.ie6 .main-content,.ie6 .ct-box,.ie6 .frm-group,.ie6 .mf-set,.ie6 .sf-set,.ie6 .mf-box,.ie6 .sf-box,.ie6 .mf-item,.ie6 .txt-set,.ie6 .txt-box,.ie6 .frm-form label,.ie6 fieldset,.ie6 span.fld-input,.ie6 .main-subhead .hn,.ie6 .post,.ie6 .posthead,.ie6 .postbody,.ie6 .post-entry,.ie6 .postfoot .post-options{zoom:1}.ie6 .ct-box ol,.ie6 .ct-box ol li{zoom:normal}.ie6 .postfoot .post-contacts{position:absolute}.ie6 #brd-wrap fieldset{padding-top:1px;position:relative}.ie6 fieldset legend{margin-left:-7px}.ie6 #brd-wrap .checklist{height:9em;width:30em;overflow:auto}.ie6 .sf-set .checkbox label span{padding-right:0;padding-left:5em}.ie6 #info-censored-intro,.ie6 #info-ranks-intro{margin-bottom:3em}.ie6 .important strong{margin-right:1ex}.ie6 #brd-stats .st-users{margin-bottom:-1ex}.ie6 .txt-box label span{position:absolute}.ie6 #brd-index .main-head{position:relative}.ie6 input{vertical-align:text-bottom}.ie6 #extensions-used{clear:left}.oldie textarea{overflow:auto}.ie7 .brd-page,.ie7 .main,.ie7 #brd-index .main-subhead,.ie7 #brd-index .forum-item,.ie7 .gen-content,.ie7 .main-content,.ie7 .ct-box,.ie7 .frm-group,.ie7 .mf-set,.ie7 .sf-set,.ie7 .mf-box,.ie7 .sf-box,.ie7 .mf-item,.ie7 .txt-set,.ie7 .txt-box,.ie7 .frm-group label,.ie7 fieldset,.ie7 span.fld-input,.ie7 .main-subhead .hn,.ie7 .post,.ie7 .posthead,.ie7 .postbody,.ie7 .post-entry,.ie7 .postfoot .post-options,.ie7 #brd-stats ul{max-height:100%;zoom:1}.ie7 #brd-wrap fieldset{padding-top:1px;position:relative}.ie7 fieldset legend{margin-left:-7px}.ie7 .entry-content .codebox pre{min-height:3em} | |
6: .ie7 #info-censored-intro,.ie7 #info-ranks-intro{margin-bottom:3em}.ie7 .main-forum .main-item .item-starter{margin-left:1ex}.ie7 #brd-admin-settings-setup #fld19,.ie7 #brd-post textarea#fld1,.ie7 #brd-post textarea#fld2,.ie7 #brd-viewtopic textarea#fld1,.ie7 #brd-postedit #fld2{margin-top:-19px}.ie7 .item-starter{position:relative;left:-0.5em}.ie7 input[type="checkbox"]{vertical-align:baseline}body{background:#fff;color:#222}a:focus{outline:0}a:link,a:visited,.js_link{color:#00579c;text-decoration:none}a:hover,a:active,a:focus{color:#cd0021;text-decoration:underline}.js_link{cursor:pointer;border-color:#00579c;-moz-user-select:none;-webkit-user-select:none;user-select:none}.js_link:hover{color:#cd0021;border-color:#cd0021}.entry-content a:visited{color:#909}.entry-content a:visited:hover{color:#cd0021}.sig-content a,.sig-content a:visited{color:#999;text-decoration:underline}.sig-content a:hover,.sig-content a:active,.sig-content a:focus,.sig-content a:visited:hover{color:#333}.gen-content,.main-content{background:#fbfbfb;border-color:#d3dae1;border-bottom-color:#cbd1d8}.main-pagepost{background:#fff;border-color:#dde4eb}#brd-crumbs-top .crumblast a,#brd-crumbs-top .crumblast a:hover{color:#111;text-decoration:none}.main-item,.main-item li,.main-item div,td{border-color:#dde4eb}.main-content .main-item .item-nav{color:#888}.main-content .sticky{background:#f2f4fa}.main-content .main-item .hn .item-status em.sticky,.main-content .main-item .hn .item-status em.closed{color:#314b60;font-weight:bold}.main-content .main-item .hn .item-status em.moved{color:#666}.post div,h3.post-ident,h4.post-title,.posthead h3,.userstatus span,.sig-line{border-color:#dde4eb}.post-num{color:#999}.post{border-color:#dde4eb;border-top-color:#fff;border-bottom-color:#ccc;background:#edf1f5}#topic-review .firstpost,.singlepost{border-top-color:#dde4eb;border-bottom-color:#dde4eb}.posthead,.postbody,.post-options{background:#f9f9f9}.posthead .hn{background:#f1f1f1}.post-title small{color:#999}.sig-content{color:#999}.sig-demo{color:#333}.sig-demo a,.sig-demo a:visited{color:#333;text-decoration:underline}.online .userstatus span{border-color:#3f9439}.ct-box,.ct-set,.ct-group,.frm-group{border-color:#dbe0e4}.admin-page .ct-box{background:#feffe6}.admin-page .ct-set .ct-box,.report{background:#f4f9fd}.admin-page .warn-set .warn-box{background:#feffe6}.main-frm .ct-group,#brd-announcement{background:#f4f9fd}.main-content .info-box{background:#ffffe1}.main-extensions .extension,.main-hotfixes .hotfix{background:#f4f9fd}.main-extensions .disabled,.main-hotfixes .disabled{background:#ffffe1}.warn-group,.warn-set,.warn-box,.error-box,#admin-alerts{background:#feffe6;border-color:#f4ebce}.warn-group,.warn-set,.warn-box,.error-box{border-color:#e6d190}.info-list li,.error-list li{color:#5d5636}.info-list li span,.error-list li span{color:#5d5636}ul li strong{color:#222}.user-box{background:#f4f9fd}.ct-box .hn{border-color:#dbe0e4;color:#333}.error-box .hn{color:#222}.help-box{background:#f4f4f4}.help-box .hn{color:#294f6e}.frm-buttons,.extension .options,.hotfix .options{border-color:#e3e3e3}.checklist{background:#fff;border-color:#ccc}label,.aslabel,.mf-set legend,.ct-legend,.ct-legend span,.ct-legend cite,.ct-legend strong{color:#333}.paging span,.paging a,.paging strong{border-color:#dedfdf}.required label em,#req-msg em,.warn strong,.important strong{color:#b42000}.sf-set .text label small,.sf-set .select label small,.txt-set .textarea label small{color:#999}.entry-content .quotebox,.entry-content .codebox{background:#fff;border-color:#ddd}#brd-announcement .userbox{background:#f4f9fd none repeat scroll 0 0}.main-content .main-item .hn .posted-mark{color:#99C}.lastedit em{font-size:.95em;font-style:normal;color:#999}.user-ident .username strong{color:#222}#brd-navlinks{background:#0066b9;border-color:#0066b9;color:#eee}#brd-navlinks a:link,#brd-navlinks a:visited{color:#eee}#brd-navlinks a:hover,#brd-navlinks a:active,#brd-navlinks a:focus{color:#fff;text-decoration:underline}.main-options,.main-options span{background:#f1f1f1}.main-menu,.admin-menu{background:#0066b9}.admin-submenu{background:#e4e4ec;border-color:#d3dae1}.main-menu a:link,.main-menu a:visited,.admin-menu a:link,.admin-menu a:visited{color:#ddd;text-decoration:none}.main-menu a:hover,.main-menu a:active,.main-menu a:focus,.admin-menu a:hover,.admin-menu a:active,.admin-menu a:focus{text-decoration:underline;color:#fff}.main-menu .active a:hover,.main-menu .active a:active,.main-menu .active a:focus,.main-menu .active a:visited,.admin-menu .active a:hover,.admin-menu .active a:active,.admin-menu .active a:focus,.admin-menu .active a:visited{text-decoration:none}.main-menu .active a{color:#fff}.admin-menu .active a{color:#eef}#brd-admod #alert a{color:yellow}#brd-head{background:#f5f5f5;color:#222}#brd-head a,#brd-head a:link,#brd-head a:visited{color:#222}.main-head,.main-foot{background:#0066b9;color:#ddd;border-color:#0066b9}#brd-announcement h1{border-color:#bbb} | |
7: .main-subhead{border-color:#d3dae1 #D3DAE1 #cbd1d8 #D3DAE1;background:#f4f4f4}.column-title{border-color:#f4f4f4 #F4F4F4 #cbd1d8 #F4F4F4;background:#f4f4f4}.group-head{background:#edf1f5;border-color:#dbe0e4}.content-head .hn{border-color:#dbe0e4;color:#666}.main-head a:link,.main-head a:visited,.main-foot .options a:link,.main-foot .options a:visited,.main-head .js_link,.main-foot .options .js_link{color:#ddd}.main-head .js_link,.main-foot .options .js_link{border-color:#ccc}.main-head a:hover,.main-head a:active,.main-head a:focus,.main-head .js_link:hover,.main-foot .options a:hover,.main-foot .options a:active,.main-foot .options a:focus,.main-foot .options .js_link:hover{color:#fff}.main-head .js_link:hover,.main-foot .options .js_link:hover{border-color:#fff}th{background:#f4f4f4}.main-frm .ct-group td{background:#fbfbfb}#extensions-used{border-bottom-color:#999}.main-content .main-item .icon{border-color:#edf1f5 #DDE0E4 #c6cbd3 #BABFC6}.main-content .redirect .icon{border-color:#f4f4f4 #f4f4f4 #f4f4f4 #f4f4f4}.main-content .sticky .icon{border-color:#d7e5f3 #C3CFDc #9fb3c7 #90A2B4}.main-content .closed .icon{border-color:#acacac #979797 #898989 #7A7A7A}.main-content .sticky.closed .icon{border-color:#d7e5f3 #C3CFDc #898989 #7A7A7A}.main-content .new .icon{border-color:#0080d7 #0065C0 #0058b3 #0072CA}.checklist-item label{background:#fff}.checklist-item label:hover{background:#edf1f5}input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="number"],input[type="search"],textarea{border-color:#d3dae1}input[type="text"]:active,input[type="text"]:focus,input[type="password"]:active,input[type="password"]:focus,input[type="email"]:active,input[type="email"]:focus,input[type="url"]:active,input[type="url"]:focus,input[type="search"]:active,input[type="search"]:focus,input[type="number"]:active,input[type="number"]:focus,textarea:active,textarea:focus{border-color:#c8d3dc #D3DAE1 #d3dae1 #C8D3DC;box-shadow:0 1px 2px rgba(0,0,0,0.1) inset;background:#fffff3;background:-moz-linear-gradient(top,#fffee8,#fff);background:-o-linear-gradient(top,#fffee8,#fff);background:-webkit-gradient(linear,0 0,0 100%,from(#fffee8),to(#fff));background:-webkit-linear-gradient(top,#fffee8,#fff);background:-ms-linear-gradient(top,#fffee8,#fff);background:linear-gradient(top,#fffee8,#fff)}input[type="submit"],input[type="button"],input[type="reset"],button{background:#f6f6f6;background:-moz-linear-gradient(top,#fff,#eee);background:-o-linear-gradient(top,#fff,#eee);background:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#eee));background:-webkit-linear-gradient(top,#fff,#eee);background:-ms-linear-gradient(top,#fff,#eee);background:linear-gradient(top,#fff,#eee);border-color:#ccc;color:#404040;text-shadow:0 1px 1px #ddd}input[type="submit"]:hover,input[type="submit"]:focus,input[type="reset"]:hover,input[type="reset"]:focus,input[type="button"]:hover,input[type="button"]:focus,button:hover,button:focus{background:#f3f3f3;background:-moz-linear-gradient(top,#fff,#ebebeb);background:-o-linear-gradient(top,#fff,#ebebeb);background:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#ebebeb));background:-webkit-linear-gradient(top,#fff,#ebebeb);background:-ms-linear-gradient(top,#fff,#ebebeb);background:linear-gradient(top,#fff,#ebebeb);border-color:#84bce4;color:#111;-moz-box-shadow:0 1px 2px rgba(0,0,0,.1);-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1)}input[type="submit"][disabled],input[type="button"][disabled],input[type="reset"][disabled],button[disabled]{border-color:#ccc;color:#999}input[type="submit"][disabled]:hover,input[type="submit"][disabled]:focus,input[type="reset"][disabled]:hover,input[type="reset"][disabled]:focus,input[type="button"][disabled]:hover,input[type="button"][disabled]:focus,button[disabled]:hover,button[disabled]:focus{color:#999}#querytime{color:#999}.quiet{color:#999}.loud{color:#000}#brd-debug th{background:#fff;border:0;border-bottom:2px solid #dde4eb;color:#111} | |
8: #brd-debug td{background:#fff;border:0;border-bottom:solid 1px #eee;color:#666}#brd-messages span{color:#333;-webkit-border-bottom-right-radius:.3em;-webkit-border-bottom-left-radius:.3em;-moz-border-radius-bottomright:.3em;-moz-border-radius-bottomleft:.3em;border-bottom-right-radius:.3em;border-bottom-left-radius:.3em;-moz-box-shadow:0 2px 3px rgba(0,0,0,.2);-webkit-box-shadow:0 2px 3px rgba(0,0,0,.2);box-shadow:0 2px 3px rgba(0,0,0,.2)}#brd-messages .message_error{border-color:#ffe475;background:#ffbdac}#brd-messages .message_warning{border-color:#ffe475;background:#ffd0ac}#brd-messages .message_info{border-color:#ffe475;background:#ffc;background:-moz-linear-gradient(center top,#fffbea,#fef7cb);background:-o-linear-gradient(top,#fffbea,#fef7cb);background:-webkit-gradient(linear,0 0,0 100%,from(#fffbea),to(#fef7cb));background:-webkit-linear-gradient(top,#fffbea,#fef7cb);background:-ms-linear-gradient(top,#fffbea,#fef7cb);background:linear-gradient(top,#fffbea,#fef7cb)} | |
9: | 0: |
punbb-1.4.1/style/Oxygen/Oxygen.min.css |
punbb-1.4.2/style/Oxygen/Oxygen.min.css |
| 1: html,body,div,p,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,legend,blockquote,table,th,td,input,textarea,button,select{margin:0;padding:0;text-align:left}fieldset,img,cite{border:0}.visual-hidden{visibility:hidden}br,hr,.hr,.hidden{display:none}.border-less{border:none!important}.small-font{font-size:.917em}.list-clean{list-style-type:none}.prepend-top{margin-top:1em!important}.nowrap{white-space:nowrap}html{height:99%;overflow-y:scroll}body{font-size:100%}.brd-page{font:75%/1.5em Verdana,Helvetica,Arial,sans-serif}h1,h2,h3,h4,h5,h6{font-size:1em;font-weight:normal}samp,code,pre,option,optgroup,input,select,textarea,td,th{font-size:1em;font-family:Verdana,Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal}samp,code,pre{font-family:monospace,sans-serif;white-space:pre-wrap;word-wrap:break-word}.brd-page:after,.gen-content:after,.ct-box:after,#brd-index .item-head:after,#brd-index .main-item:after,#brd-index ul.item-info:after,.frm-group:after,.mf-set:after,.sf-set:after,.mf-box:after,.sf-box:after,.mf-item:after,.txt-set:after,.txt-box:after,.frm-form label:after,fieldset:after,span.fld-input:after,.posthead:after,.postbody:after,.postfoot .post-options:after{content:"\0020";display:block;font-size:0;height:0;line-height:.0;overflow:hidden;visibility:hidden;clear:both}.clearfix:before,.clearfix:after{content:"\0020";display:block;height:0;overflow:hidden}.clearfix:after{clear:both}.clearfix{zoom:1}#brd-stats .hn,#qjump label,.post-byline span,.posthead .post-link span,.admin .main-subhead,.main-item .item-info li span.label,.main-item .item-info li label,.main-item .you-posted,.main-item .item-num,.group-legend,.group-legend span,.sf-set legend,.sf-set legend span,.main-pagehead .page-info,p.item-select label,.mf-extra .mf-field label,.mf-extra .mf-field .aslabel,.item-subject .item-nav span,.post-options a span,.main-title,.main-head .hn small,.entry-title,.menu-page .main-head{font-size:0;left:-999em;text-indent:-999em;position:absolute;line-height:0;visibility:hidden}.brd{padding:1em 2em;margin:0 auto;max-width:1100px;min-width:700px;width:90%}#brd-redirect,#brd-maint,#brd-util{margin:50px auto 12px auto;width:60%}.brd-page{float:left;width:100%;position:relative}.main-content,.gen-content{border-style:solid;border-width:1px}.gen-content{padding:0 1.5em}#brd-about,#brd-stats{margin-top:1em}.main-content,#brd-visit,#brd-qpost,#brd-announcement{margin-bottom:1em}#brd-announcement{padding:.5em 1.5em;margin-top:1em}#brd-announcement br{display:inline}.main-options{border-top:0;margin:-1em 0 1em 0}#rules-content{padding:1.5em}#rules-content h1{font-size:1.3em;line-height:1em;margin-bottom:.7em}#rules-content h2{font-size:1.2em;font-weight:bold;margin-bottom:.3em}#rules-content h3{font-size:1.1em;font-weight:bold}#rules-content h4,#rules-content h5{font-size:1;font-weight:bold}#rules-content p{margin:0 0 .65em}p,.hn{padding:.35em 0}ul,ol{padding:.35em 0 .35em 2em}ul.spaced{padding:.25em 0 .25em 2em}.spaced li{padding:.25em 0}th{font-size:1.084em;padding:.462em 1.417em;border-bottom-style:solid;border-bottom-width:1px}.main-head,.main-foot{border-style:solid;border-width:1px;padding:0 1.417em}.main-head .hn,.main-foot .hn{padding-right:10em}h2.main-subhead{border-style:solid;border-width:1px;padding:.462em 10em .426em 1.417em}.column-title{border-style:solid;border-width:1px;position:relative;margin-bottom:-1px}.main-subhead{border-style:solid;border-width:1px;border-bottom:0}.main-subhead .hn{padding:.462em 1.417em;position:relative}.main-foot{margin-top:-1em}#brd-announcement h1,.main-extensions .ct-legend,.main-hotfixes .ct-legend{border-bottom-style:dashed;border-bottom-width:1px;font-size:1.1em;font-weight:bold}#brd-announcement h1{margin-bottom:.5em}.main-pagehead .hn{padding:.5em 0}.content-head{margin:.5em 1.417em 0}.content-head .hn{border-style:none none double none;border-width:3px;padding:.462em 0}.options>span{padding:0 0 0 .3em;margin:0 0 0 .25em}.options .js_link{padding:0;margin:0 0 0 .55em}.options>span.first-item{border-left:0;padding-left:0;margin-left:0}.extension .options,.hotfix .options{border-top-style:dashed;border-top-width:1px}.extension h3>em{font-style:normal}.extension .data-list{list-style-type:none;padding-left:0}.ct-box{border-style:solid;border-width:1px;-moz-border-radius:.35em;-webkit-border-radius:.35em;-khtml-border-radius:.35em;border-radius:.35em;margin:1.417em;padding:.5em 1em;position:relative}.ct-box li{padding:0;margin:0 0 .7em 0}.ct-set{border-style:solid;border-width:1px;margin:1.417em;padding:0 0 0 17em;position:relative}.ct-group{border-style:solid;border-width:1px;margin:1.417em}.frm-group .ct-set{border-style:dashed none none none;margin:0}.ct-group .ct-set{border-style:dashed none none none;margin:0 1em;padding:0 0 0 16em}.ct-group .group-item1{border:0}.ct-group .set1,.frm-group .set1{border-top:0}.ct-group .ct-box,.frm-group .ct-box{border-style:none;margin:0}.ct-group .ct-set .ct-box,.ct-set .ct-box,.frm-group .ct-set .ct-box{border-style:none;margin:0} |
| 2: .ct-group .set1{border-top:0}.ct-set .ct-legend{float:left;margin-left:-17em;width:16em;position:relative;text-align:right;font-weight:bold}.ct-set ul{padding-left:0;list-style:none}.ct-box div{padding:.35em 0}.ct-box p.options{float:none}.ct-box .info-list{padding-bottom:0}.user-ident{padding-left:0;list-style:none}.user-ident .username a,.user-ident .username strong{font-size:1.5em;font-weight:normal}.user-ident .username a,.user-ident .username a:link,.user-ident .username a:visited{text-decoration:none}.user-ident .username a:hover,.user-ident .username a:active,.user-ident .username a:focus{text-decoration:underline}.user-ident .usertitle{font-weight:bold}.user-ident .useravatar{padding:.25em 0}.user-ident .useravatar img{display:block}.main-message{padding:.5em 1.417em}.main-message p span{display:block;padding-top:.5em}#brd-maint .main-message{padding:0}#brd-navlinks,.main-menu,.admin-menu{padding:0 .75em}.main-menu,.admin-menu{border:0}#brd-navlinks ul,.main-menu ul,.admin-menu ul{list-style-type:none;float:left;padding:0}#brd-navlinks li,.main-menu li,.admin-menu li{float:left;display:inline}#brd-navlinks a,.main-menu a,.admin-menu a{float:left;position:relative;padding:.55em .7em}#brd-navlinks a{padding:.43em .7em}#brd-navlinks li.first-item,.main-menu li.first-item,.admin-menu li.first-item{border-left:0}.admin-submenu{border-style:solid;border-width:0 1px}.admin-submenu ul{padding:.5em 0;list-style:none}.admin-submenu li{display:inline;margin-right:.75em}.admin-submenu .active a{font-weight:bold}#brd-head{padding-bottom:.75em;padding-top:1em;border-radius:.4em .4em 0 0}#brd-title{padding-bottom:0}#brd-title a,#brd-title strong{font-size:1.5em;text-decoration:none;font-weight:normal}#brd-desc{padding-top:0;padding-bottom:0}#brd-navlinks ul{margin:0;float:left}#brd-navlinks li{display:inline}#brd-navlinks li a{text-decoration:none}ul#brd-admod{float:right;text-align:right}#brd-access{text-align:right;padding:0;height:0;margin:0;position:absolute;background:transparent}#brd-access a,#brd-access a:link,#brd-access a:visited{height:2em;line-height:2em;position:absolute;left:-999em;margin:1px;width:12em}#brd-access a:hover,#brd-access a:active,#brd-access a:focus{text-indent:0;background:#000;position:static;float:right}#brd-visit #welcome{float:left}#brd-visit #visit-links{text-align:right;float:none}#brd-pagepost-end{border-top:0}#brd-pagepost-top{border-bottom:0}#brd-admin-bans #brd-pagepost-end{margin-top:-1em}.paging{float:left}.posting{text-align:right;float:right}.paging{white-space:nowrap}.paging a,.paging strong,.paging span{padding:0 1em;border-left-style:solid;border-left-width:1px;float:left;white-space:nowrap}.paging .first-item,.paging span.pages{border-left:0;padding-left:0}.posting .newpost{font-size:1.084em;font-weight:bold}.crumbs .crumblast span{font-weight:normal}.crumbs span,.crumbs a{white-space:nowrap}.crumbs{margin:.5em 0;padding:0 1.417em;font-size:1.084em}#brd-crumbs-top .crumblast{font-size:1.15em}#brd-stats ul{list-style:none;padding-left:0}#brd-stats ul li.st-users{float:left;clear:both;white-space:nowrap}#brd-stats ul li.st-activity{text-align:right;display:block;white-space:nowrap}#brd-stats li strong{font-weight:bold}#brd-online{padding-top:.5em;padding-bottom:.5em;border-top:0}#brd-online .hn,#brd-online p{padding-bottom:0;padding-top:0}#brd-online .hn{float:left;margin-right:.5em}#qjump{float:left;padding:.5em 0}#qjump div,#qjump label{padding:0;border:0}#copyright{text-align:right;margin:0}#querytime{text-align:right;font-size:.917em;padding:0}#extensions-used{border-bottom:1px dotted}p.options{border-top:0;float:right}.main-modoptions .options{text-align:center}a.feed{padding-left:22px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAVZQTFRFzF0V2XIp2l4q3GEr3W4v3mUs3m8v3nAw33Ew4Got4HVF4XQw4Xgx4nA24nYx424u43kx43ky5Hsy5HxH5XQu5Xwy5X0y5nQv5n8z5otg53gv54Ez6Hkx6II06IM06IU16IlV6X456YU16Yg26n0x6oc16olJ638y64k17IEy7Io27JZj7oUz7oU07pFM7ppk7quJ7rKV741B751k8Ik08Ys18beX8o018pNC8qNm86Rn9JE29KZn9Kxz9LKA9L2Y9ZI39alo9b+Z9cCY9pQ39ptE95c496FQ961p98OZ99S++Jk5+J5E+K9p+LR1+L+O+Zo5+Z1B+Z9F+aVS+cib+de/+pw5+qJG+qxe+rNq+r6D+sOP+s6n+tOz+506+6lS+69e+7l3++bY/MKE/Nm1/OPN/dq1/d/B/eXN/fHm/ubO/uza/vHm/vLm/vfy/vjy//nz////L/lnWgAAAAJ0Uk5TEI9BVkHYAAAA50lEQVQY0yXOu07DMBSA4XNxnDtE4bYBFYxMMPAaPCoPg5gqBgRDSVtok1McO3awxPj904+ApSJFzIqZxrcZ8brXRcIZq5wK7Z65Cu1Vy/TvbBiV0vU9QPjcYfRGmIsjtkDJ8ZkO0bLnukL73f1WKoNOxPQxNI9taUTr9Gdr7IE4S6g6v21MDwtvZYoD9nU1YWOXhhpxnpTK58OX4Kl5gTtnvOKcFjyu00SvPOf7mZhOijTZvsOFLKGZAsW/GQbpoHZrwBDw5iET2RibTR9K70yC+GTjjxVn7BTmckDAS3bOT977ENjOfw1gcm/NBi+EAAAAAElFTkSuQmCC) center left no-repeat}.content-options,.ct-options{float:right;margin-top:-2.6em;padding:.5em 1.417em;position:relative}.item-summary{height:2.5em;padding:0;position:relative;font-size:1em}.item-summary span{width:100%;position:absolute;left:-999em;text-indent:-999em;display:block}.item-summary strong{position:absolute;left:999em;text-indent:0;padding:.5em 0;white-space:nowrap;font-weight:normal} |
| 3: .item-summary strong:first-letter {text-transform:uppercase}.item-summary .subject-title{padding-left:1.417em}.item-summary .info-topics,.item-summary .info-replies{margin-left:100%;text-align:center;width:7em;left:965em}.item-summary .info-forum{margin-left:100%;text-align:center;width:20em;left:952em}.item-summary .info-posts,.item-summary .info-views{margin-left:100%;text-align:center;width:7em;left:972em}.item-summary .info-lastpost{margin-left:100%;left:980em}p.forum-noview .info-replies{left:972em}.main-content .main-item{border-top-style:solid;border-top-width:1px;overflow:hidden;position:relative;line-height:1.4em}.main-content .main-first-item{border-top:0}.main-content .main-item ul{float:right;position:relative;padding:0;list-style:none}.main-content .main-item p,.main-content .main-item .hn{padding:0}.hn .item-status{font-weight:normal}.hn .item-status em{font-style:normal}.main-item .item-subject,.main-content .main-item li{float:left;border-left-style:solid;border-left-width:1px;margin:0 -2px -9.7em 0;position:relative;padding-top:.6em;padding-bottom:10.4em}.main-item .item-subject{overflow:hidden;width:100%}li.info-topics,li.info-posts,li.info-views,li.info-replies{width:7em;text-align:center}li.info-forum{width:20em;text-align:center}li.info-lastpost{width:20em}li.info-lastpost cite{overflow:hidden;width:18em}.main-item li strong{font-weight:normal}.main-content .main-item{padding-right:35em;padding-left:3.75em}.main-content .main-item .hn{position:relative}.main-content .main-item ul{width:34em;right:-35em;margin-left:-34em}.forum-noview .main-item{padding-right:28em}.forum-noview .main-item ul{width:27em;right:-28em;margin-left:-27em}.forum-forums .main-item{padding-right:48em}.forum-forums .main-item ul{width:47em;right:-48em;margin-left:-47em}.item-subject span.modlist{display:block}#brd-index .main-item .hn span{font-size:1.084em;font-weight:bold}#brd-index .main-item .hn small{font-size:1em}.item-status{font-weight:bold}.main-content .main-item cite{font-style:normal}.item-nav,.item-nav a,.item-nav span{white-space:nowrap;font-style:normal}.item-subject .hn,.item-subject p{margin:0 0 0 1.5em}li.info-lastpost cite,li.info-lastpost span,li.info-forum a{display:block;padding:0 1em;font-style:normal;font-weight:normal}li.info-lastpost strong{padding:0 0 0 1em;font-style:normal;font-weight:normal}.main-item li.info-select{position:absolute;right:0;top:0;padding:.3em;border-style:none none solid solid;border-width:1px}.main-content .main-item .icon{border-style:solid;border-width:.5833em;height:0;width:0;float:left;margin-top:.667em;margin-left:-2.417em}.main-content .main-item .hn .posted-mark{position:absolute;font-size:2em;width:1em;left:-0.5em;top:0}.frm-group{border-top-style:dashed;border-top-width:1px;margin:1.417em;padding:1.3em 0 0}.group1{border-top:0;padding-top:0}.sf-box,.mf-box,.txt-box{margin:1.417em;padding:.5em 0;position:relative}.sf-set,.mf-set,.txt-set{margin:1.417em;padding:0 0 0 17em;position:relative}.sf-set .sf-box,.mf-set .mf-box,.txt-set .txt-box{margin:0}.frm-group .sf-set,.frm-group .mf-set,.frm-group .txt-set{margin:0}.text input{font-size:1.084em}select{height:25px;*height:auto;line-height:25px;padding-left:3px}optgroup{font-weight:bold}.frm-buttons{margin:.75em 1.417em .8em 1.417em;position:relative;border-top-style:solid;border-top-width:1px;padding:1.1em 0 .3em 18em}.frm-buttons .submit{margin-right:.75em}.frm-buttons .primary{margin-right:2em}.submit input,.cancel input{overflow:visible;padding-left:.5em;padding-right:.5em;font-size:1.084em}.button-set .submit{padding-left:1em}button{width:auto;overflow:visible}label,input[type="button"],input[type="submit"],button,select{cursor:pointer}input[type="submit"],input[type="button"],input[type="reset"],button{display:inline-block;vertical-align:baseline;text-align:center;text-decoration:none;padding:.5em .6em;-moz-border-radius:2px;-webkit-border-radius:2px;-khtml-border-radius:2px;border-radius:2px;border-style:solid;border-width:1px;-webkit-appearance:button;line-height:normal}input[type="submit"]::-moz-focus-inner,input[type="button"]::-moz-focus-inner,input[type="file"]::-moz-focus-inner,input[type="reset"]::-moz-focus-inner,button::-moz-focus-inner{border:0;padding:0}input[type="submit"]:active,input[type="button"]:active,input[type="reset"]:active,button:active{position:relative;top:1px}input[type="submit"][disabled]:active,input[type="button"][disabled]:active,input[type="reset"][disabled]:active,button[disabled]:active{position:relative;top:0}.primary input[type="submit"],.primary input[type="button"],.primary input[type="reset"],.primary button{padding-left:1.2em;padding-right:1.2em} |
| 4: .js_link{border-bottom-style:dashed;border-bottom-width:1px}.sf-box label,.sf-box .aslabel{float:left;padding:0}.sf-set .checkbox label{padding:2px 0 2px 2.7em}.sf-set .text label span,.sf-set .select label span,.sf-set .aslabel span{float:left;margin-left:-17em;display:block;position:relative;padding:2px 0 2px 1em;width:16em;text-align:right}.sf-set .checkbox label span{float:left;margin-left:-18em;display:block;position:relative;padding:0 0 0 2em;width:16em;left:-3em;text-align:right;font-weight:bold}.sf-set .text label small,.sf-set .select label small{display:block;text-align:left;position:relative;margin:2em 1em 0 1em;padding-top:.25em;font-size:.917em}.sf-set .fld-input{position:absolute;top:0;left:0;display:block;padding:.5em 1em}.sf-set .checkbox input{margin:.2em 0 .2em -.1em}.sf-set .text input:not([title]){height:100%}.sf-set .sf-short input{width:4em}.sf-set .sf-short label small{font-size:1em;padding:2px 0;margin:0 1em 0 7em}input[type="radio"]{vertical-align:middle;bottom:1px}input[type="checkbox"]{vertical-align:middle;bottom:1px}table input[type="checkbox"]{vertical-align:baseline}.mf-box .mf-item{position:relative;top:-0.166em;padding:.3em 0}.mf-set legend{position:absolute;height:0;background:transparent}.mf-set legend span{position:absolute;left:-17em;width:16em;padding:.5em 1em;margin:1px 0 2px 0;overflow:hidden;display:block;text-align:right;font-weight:bold}.mf-set legend span em{display:block;white-space:normal;font-style:normal;font-weight:normal;font-size:.917em}.mf-item .fld-input{position:absolute;top:.25em;left:0;display:block;padding:0 1em}.mf-item input{margin:.1em 0 .1em -.1em}.mf-item label{padding:1px 0 1px 2.7em;float:left}.mf-set .mf-yesno .mf-item{width:11em;float:left}.mf-set .mf-field{float:left;padding:0 1em 0 1em;border-left:1px solid #ccc}.mf-set .mf-field1{border-left:none}.mf-set .mf-field label,.mf-set .mf-field .aslabel{position:absolute;top:-2em;display:block}.mf-set .mf-cell .fld-input{position:static;padding:0 0 0 1em;border-left:1px solid #ccc}.frm-hdgroup{padding-top:2em}.sf-set .sf-box .sf-forum{width:25em}.mf-set .mf-box .forum-field{width:25em}.checklist{min-height:6em;max-height:9em;max-width:30em;overflow:auto;border-style:solid;border-width:1px;position:relative;padding:.25em .5em;margin:0 1em}.checklist fieldset{height:auto}.checklist legend,.checklist legend span{font-weight:bold;position:static;padding:0;height:auto;text-align:left}.checklist legend span{width:auto;max-width:25em}.checklist-item{position:relative;height:auto}.checklist-item label{display:block;padding:0 0 0 2.25em;float:none;height:100%}.checklist-item .fld-input{position:absolute;left:0;top:0;padding:0;margin:0}.checklist-item input{margin:0}.txt-box label{float:left}.txt-set label span{float:left;margin-left:-17em;display:block;position:relative;padding:2px 1em;width:16em;text-align:right}.txt-set label small{display:block;text-align:left;position:relative;margin:0 1em 0 -1px;padding:2px 1.25em;font-size:.917em;z-index:100}.txt-set .txt-input{position:relative;width:100%}.txt-set .fld-input{display:block;padding:0 0 0 1em}.txt-set textarea{width:95%;resize:vertical}input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="search"],input[type="number"],textarea{border-width:1px;border-style:solid;padding:.25em}#quick-search{padding:.1em .2em}.req-warn{display:none}#req-msg p em,.required label span em{font-style:normal;font-weight:normal}.required label span em{float:left;font-size:.917em;line-height:1.2em;width:100%;position:relative}.req-error{display:block}.required label span{font-weight:bold}.post{border-style:solid;border-width:1px;position:relative;margin:1.417em;margin-top:-1.417em}.firstpost,.singlepost{margin-top:1.417em}.main-topic .lastpost{border-bottom:0}.main-topic .post{border-style:solid none;margin:0}.main-topic .firstpost{border-top:0}.posthead{margin-left:18em;border-style:none none none solid;border-width:1px}.posthead .hn{padding-right:1.5em;padding-left:1em;border-style:none none dashed none;border-width:1px}.posthead .post-byline a,.posthead .post-byline strong{font-size:1.167em;font-weight:bold;text-decoration:none;font-style:normal}.posthead .post-byline{float:left;width:15.5em;padding:.5em 1em .5em 1.5em;margin-left:-19em;margin-top:-0.5em;position:relative;left:-1px;overflow:hidden}.posthead .post-num{float:right}#brd-modtopic .posthead .hn{padding-right:2.7em}.post-title{padding:0 1.5em .5em 1em;margin-top:-1px;position:relative}.post-title span{display:block;width:100%;overflow:hidden}.post-title a{font-size:1em;text-decoration:none;font-weight:bold}.post-title small,.post-title small a{font-size:1em;font-weight:normal;white-space:nowrap}.posthead p.item-select{position:absolute;top:0;right:.75em;height:2.5em} |
| 5: .postbody{margin-left:18em;position:relative;border-left-style:solid;border-left-width:1px;padding:.5em 1.5em 0 1em;clear:both}.postfoot{padding-left:18em;border-top-style:none;border-top-width:1px;position:relative}.postfoot .post-options{border-left-style:solid;border-left-width:1px}.postbody .post-author{float:left;width:15.5em;margin-left:-19em;left:-1px;position:relative;padding:0 1em .5em 1.5em;overflow:hidden;margin-top:-1em}.postbody .post-author ul{margin:0;padding:0 0 .5em 0;list-style:none}.author-ident .useravatar img{display:block;padding:.5em 0}.author-ident .username{display:none}.author-ident .usertitle{font-weight:bold;line-height:normal}.author-ident .userstatus{padding:.75em 0 .25em 0;margin:0;line-height:.75em;width:100%}.author-ident .userstatus span{font-size:.917em;display:block;border-left-style:solid;border-left-width:.7em;text-indent:.5em}.author-info li span strong{font-weight:normal}.online .author-ident .userstatus span{font-weight:bold}.postfoot .post-contacts{float:left;margin-left:-18em;width:15.5em;padding:.5em 1em .5em 1.5em;position:relative;left:-1px}.postfoot .post-actions{padding:.5em 1.5em .5em 1em;text-align:right;display:block;float:right}.postfoot .post-actions>span{margin-left:.75em}.postfoot .post-contacts>span{margin-right:.75em}.entry-content{padding-bottom:2em;overflow:hidden;width:100%;min-height:7em}#brd-help .entry-content{min-height:4em}.entry-content ol{padding-left:2.5em;list-style-type:decimal}.entry-content ol p,.entry-content ul p{padding:0}.entry-content ol.alpha{list-style-type:upper-alpha}.entry-content h5{font-weight:normal;font-size:1.5em;line-height:1.5em}.entry-content img{vertical-align:text-top;max-width:100%}.entry-content .quotebox,.entry-content .codebox{border-style:solid;border-width:1px;margin:.75em 1em;padding:1em .75em}.entry-content .codebox{font-size:.97em}.entry-content blockquote{overflow:hidden;width:100%}.entry-content .quotebox cite{display:block;font-style:normal;font-weight:bold}.entry-content pre{margin:0;max-height:35em;min-height:2em;overflow:auto;padding:0 2% .1em 0;width:98%}.entry-content span.bbu{text-decoration:underline}.entry-content br,.sig-demo br,.user-box br,.main-message br{display:inline}.sig-content{padding-top:2em;font-size:.95em}.sig-content a,.sig-demo a{border-bottom:solid;border-width:1px}span.sig-line{display:block;width:200px;border-top-style:solid;border-top-width:1px;padding-bottom:.5em}table{width:100%;table-layout:fixed;empty-cells:show;border-spacing:0;line-height:1.3333em;border-collapse:collapse}td{overflow:hidden;vertical-align:middle}table caption{display:none}#brd-userlist table .tc0{width:30%}#brd-userlist table .tc1{width:20%;text-align:left}#brd-userlist table .tc2{width:10%;text-align:center}#brd-debug table{border:0;font-size:.95em}#brd-debug .tcl{white-space:nowrap;width:10%}#brd-debug .tcr{white-space:normal;width:90%}#brd-admin-uresults table .tc0,#brd-admin-iresults table .tc0{width:45%}#brd-admin-uresults table .tc1,#brd-admin-iresults table .tc1,#brd-admin-iresults table .tc2{width:20%}#brd-admin-uresults table .tc2,#brd-admin-uresults table .tc4{width:10%;text-align:center}#brd-admin-uresults .tc3{width:15%}#brd-admin-uresults td.tc0 span,#brd-admin-uresults td.tc3 span{display:block;white-space:nowrap}#brd-admin-iresults table .tc0{width:25%}#brd-admin-iresults table .tc1{width:25%}#brd-admin-iresults table .tc2{width:20%}#brd-admin-iresults .tc3{width:30%}.main-content th{font-size:1.084em;padding:.462em 1.417em;font-weight:normal}td{padding:.5em 1.417em;border-width:1px;border-style:solid none none solid}td.tc0{border-left-style:none;border-left-width:0}th{padding:.5em 1.3em;border-style:none}td.actions,th.actions{text-align:right}td.actions span{display:block}.report{margin-left:4em}.report h3 span{display:block;font-style:normal}.report h3 cite{font-style:normal;font-size:1.084em;font-weight:bold}.report h3 strong{position:absolute;left:-3.1em;width:1.5em;text-align:right;font-size:1.167em}.report p strong{display:block;font-weight:normal;margin-top:1em}.report h4{border-bottom-style:dashed;border-bottom-width:1px}#brd-admin-reports .frm-buttons{margin-left:4em;margin-top:0}#brd-admin-reports .select-all{float:right}.report .item-select{position:absolute;top:0;right:.75em;height:2.5em}.help-box samp{display:block;margin-left:1.5em}.help-box h5 samp{margin-left:1.417em}.help-box code{font-family:courier;font-size:1.084em}.help-box .entry-content{padding:0}.help-box .hn{padding-bottom:.5em;border-bottom-style:dashed;border-bottom-width:1px;margin-bottom:.5em;color:#294f6e}#brd-messages{text-align:center;position:fixed;top:0;z-index:999;padding:0;left:0;right:0}#brd-messages span{text-align:center;padding:.35em 1.3em;margin:0 1em;font:87%/1.5em Arial,sans-serif;font-weight:bold;line-height:2em;border-width:1px;border-style:solid}.ie6 a.feed,.ie7 a.feed{background:url(feed-icon.png) center left no-repeat}.ie6 .brd-page,.ie6 .main,.ie6 #brd-index .main-subhead,.ie6 .main-content .main-item,.ie6 .main-content .main-item ul,.ie6 .gen-content,.ie6 .main-content,.ie6 .ct-box,.ie6 .frm-group,.ie6 .mf-set,.ie6 .sf-set,.ie6 .mf-box,.ie6 .sf-box,.ie6 .mf-item,.ie6 .txt-set,.ie6 .txt-box,.ie6 .frm-form label,.ie6 fieldset,.ie6 span.fld-input,.ie6 .main-subhead .hn,.ie6 .post,.ie6 .posthead,.ie6 .postbody,.ie6 .post-entry,.ie6 .postfoot .post-options{zoom:1} |
| 6: .ie6 .ct-box ol,.ie6 .ct-box ol li{zoom:normal}.ie6 .postfoot .post-contacts{position:absolute}.ie6 #brd-wrap fieldset{padding-top:1px;position:relative}.ie6 fieldset legend{margin-left:-7px}.ie6 #brd-wrap .checklist{height:9em;width:30em;overflow:auto}.ie6 .sf-set .checkbox label span{padding-right:0;padding-left:5em}.ie6 #info-censored-intro,.ie6 #info-ranks-intro{margin-bottom:3em}.ie6 .important strong{margin-right:1ex}.ie6 #brd-stats .st-users{margin-bottom:-1ex}.ie6 .txt-box label span{position:absolute}.ie6 #brd-index .main-head{position:relative}.ie6 input{vertical-align:text-bottom}.ie6 #extensions-used{clear:left}.oldie textarea{overflow:auto}.ie7 .brd-page,.ie7 .main,.ie7 #brd-index .main-subhead,.ie7 #brd-index .forum-item,.ie7 .gen-content,.ie7 .main-content,.ie7 .ct-box,.ie7 .frm-group,.ie7 .mf-set,.ie7 .sf-set,.ie7 .mf-box,.ie7 .sf-box,.ie7 .mf-item,.ie7 .txt-set,.ie7 .txt-box,.ie7 .frm-group label,.ie7 fieldset,.ie7 span.fld-input,.ie7 .main-subhead .hn,.ie7 .post,.ie7 .posthead,.ie7 .postbody,.ie7 .post-entry,.ie7 .postfoot .post-options,.ie7 #brd-stats ul{max-height:100%;zoom:1}.ie7 #brd-wrap fieldset{padding-top:1px;position:relative}.ie7 fieldset legend{margin-left:-7px}.ie7 .entry-content .codebox pre{min-height:3em}.ie7 #info-censored-intro,.ie7 #info-ranks-intro{margin-bottom:3em}.ie7 .main-forum .main-item .item-starter{margin-left:1ex}.ie7 #brd-admin-settings-setup #fld19,.ie7 #brd-post textarea#fld1,.ie7 #brd-post textarea#fld2,.ie7 #brd-viewtopic textarea#fld1,.ie7 #brd-postedit #fld2{margin-top:-19px}.ie7 .item-starter{position:relative;left:-0.5em}.ie7 input[type="checkbox"]{vertical-align:baseline}body{background:#fff;color:#222}a:focus{outline:0}a:link,a:visited,.js_link{color:#00579c;text-decoration:none}a:hover,a:active,a:focus{color:#cd0021;text-decoration:underline}.js_link{cursor:pointer;border-color:#00579c;-moz-user-select:none;-webkit-user-select:none;user-select:none}.js_link:hover{color:#cd0021;border-color:#cd0021}.entry-content a:visited{color:#909}.entry-content a:visited:hover{color:#cd0021}.sig-content a,.sig-content a:visited{color:#999;border-color:#ddd}.sig-content a:hover,.sig-content a:active,.sig-content a:focus,.sig-content a:visited:hover{color:#333;border-color:#999;text-decoration:none}.entry-content h5{color:#d93315}.gen-content,.main-content{background:#fbfbfb;border-color:#d3dae1;border-bottom-color:#cbd1d8}.main-pagepost{background:#fff;border-color:#dde4eb}#brd-crumbs-top .crumblast a,#brd-crumbs-top .crumblast a:hover{color:#111;text-decoration:none}.main-item,.main-item li,.main-item div,td{border-color:#dde4eb}.main-content .main-item .item-nav{color:#888}.main-content .sticky{background:#f2f4fa}.main-content .main-item .hn .item-status em.sticky,.main-content .main-item .hn .item-status em.closed{color:#314b60;font-weight:bold}.main-content .main-item .hn .item-status em.moved{color:#666}.post div,h3.post-ident,h4.post-title,.posthead h3,.userstatus span,.sig-line{border-color:#dde4eb}.post-num,.post-edit{color:#999}.post{border-color:#dde4eb;border-top-color:#fff;border-bottom-color:#ccc;background:#edf1f5}#topic-review .firstpost,.singlepost{border-top-color:#dde4eb;border-bottom-color:#dde4eb}.posthead,.postbody,.post-options{background:#fafafa}.posthead .hn{background:#f1f1f1}.post-title small{color:#999}.sig-content{color:#999}.sig-demo{color:#333}.sig-demo a,.sig-demo a:visited{color:#333;text-decoration:none;border-color:#bbb}.online .userstatus span{border-color:#3f9439}.ct-box,.ct-set,.ct-group,.frm-group{border-color:#dbe0e4}.admin-page .ct-box{background:#feffe6}.admin-page .ct-set .ct-box,.report{background:#f4f9fd}.admin-page .warn-set .warn-box{background:#feffe6}.main-frm .ct-group,#brd-announcement{background:#f4f9fd}.main-content .info-box{background:#ffffe1}.main-extensions .extension,.main-hotfixes .hotfix{background:#f4f9fd}.main-extensions .disabled,.main-hotfixes .disabled{background:#ffffe1}.warn-group,.warn-set,.warn-box,.error-box,#admin-alerts{background:#feffe6;border-color:#f4ebce}.warn-group,.warn-set,.warn-box,.error-box{border-color:#e6d190}.info-list li,.error-list li{color:#5d5636}.info-list li span,.error-list li span{color:#5d5636}ul li strong{color:#222}.user-box{background:#f4f9fd}.ct-box .hn{border-color:#dbe0e4;color:#333}.error-box .hn{color:#222}.help-box{background:#f4f4f4}.help-box .hn{color:#294f6e}#rules-content{background:#fff}.frm-buttons,.extension .options,.hotfix .options,#rules-content{border-color:#e3e3e3}.checklist{background:#fff;border-color:#ccc}label,.aslabel,.mf-set legend,.ct-legend,.ct-legend span,.ct-legend cite,.ct-legend strong{color:#333}.paging span,.paging a,.paging strong{border-color:#dedfdf}.required label em,#req-msg em,.warn strong,.important strong{color:#b42000}.sf-set .text label small,.sf-set .select label small,.txt-set .textarea label small{color:#999}.entry-content .quotebox,.entry-content .codebox{background:#fff;border-color:#ddd}#brd-announcement .userbox{background:#f4f9fd none repeat scroll 0 0} |
| 7: .main-content .main-item .hn .posted-mark{color:#99C}.lastedit em{font-size:.95em;font-style:normal;color:#999}.user-ident .username strong{color:#222}#brd-navlinks{border-color:#376daa}#brd-navlinks a:link,#brd-navlinks a:visited{color:#eee;text-decoration:none}.main-options,.main-options span{background:#f1f1f1}#brd-navlinks,.main-menu,.admin-menu,.main-head,.main-foot{background-color:#0066b9;background-image:-moz-linear-gradient(bottom,#2a6ab8 0,#4795cc 100%);background-image:-ms-linear-gradient(bottom,#2a6ab8 0,#4795cc 100%);background-image:-o-linear-gradient(bottom,#2a6ab8 0,#4795cc 100%);background-image:-webkit-gradient(linear,0 100%,0 0,from(#2a6ab8),to(#4795cc));background-image:-webkit-linear-gradient(bottom,#2a6ab8 0,#4795cc 100%);background-image:linear-gradient(bottom,#2a6ab8 0,#4795cc 100%)}.admin-submenu{background:#e4e4ec;border-color:#d3dae1}#brd-navlinks a:link,#brd-navlinks a:visited,.main-menu a:link,.main-menu a:visited,.admin-menu a:link,.admin-menu a:visited{color:#eee;text-decoration:none;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}#brd-navlinks a:hover,#brd-navlinks a:active,#brd-navlinks a:focus,.main-menu a:hover,.main-menu a:active,.main-menu a:focus,.admin-menu a:hover,.admin-menu a:active,.admin-menu a:focus{color:#fff}#brd-navlinks .isactive a,.main-menu .active a,.admin-menu .active a{color:#fff;background:#2a6ab8}#brd-admod #alert a{color:yellow;font-weight:bold}#brd-head{background:#f5f5f5;color:#222}#brd-head a,#brd-head a:link,#brd-head a:visited{color:#222}.main-head,.main-foot{color:#fff;border-color:#4a86c1;text-shadow:0 -1px 0 rgba(0,0,0,0.15)}#brd-announcement h1{border-color:#bbb}.main-subhead{border-color:#d3dae1 #D3DAE1 #cbd1d8 #D3DAE1;background:#f4f4f4}.column-title{border-color:#f4f4f4 #F4F4F4 #cbd1d8 #F4F4F4;background:#f4f4f4}.group-head{background:#edf1f5;border-color:#dbe0e4}.content-head .hn{border-color:#dbe0e4;color:#666}.main-head a:link,.main-head a:visited,.main-foot .options a:link,.main-foot .options a:visited,.main-head .js_link,.main-foot .options .js_link{color:#ddd}.main-head .js_link,.main-foot .options .js_link{border-color:#ccc}.main-head a:hover,.main-head a:active,.main-head a:focus,.main-head .js_link:hover,.main-foot .options a:hover,.main-foot .options a:active,.main-foot .options a:focus,.main-foot .options .js_link:hover{color:#fff}.main-head .js_link:hover,.main-foot .options .js_link:hover{border-color:#fff}th{background:#f4f4f4}.main-frm .ct-group td{background:#fbfbfb}#extensions-used{border-bottom-color:#999}.main-content .main-item .icon{border-color:#edf1f5 #DDE0E4 #c6cbd3 #BABFC6}.main-content .redirect .icon{border-color:#f4f4f4 #f4f4f4 #f4f4f4 #f4f4f4}.main-content .sticky .icon{border-color:#d7e5f3 #C3CFDc #9fb3c7 #90A2B4}.main-content .closed .icon{border-color:#acacac #979797 #898989 #7A7A7A}.main-content .sticky.closed .icon{border-color:#d7e5f3 #C3CFDc #898989 #7A7A7A}.main-content .new .icon{border-color:#0080d7 #0065C0 #0058b3 #0072CA}.checklist-item label{background:#fff}.checklist-item label:hover{background:#edf1f5}input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="number"],input[type="search"],textarea{border-color:#d3dae1}input[type="text"]:active,input[type="text"]:focus,input[type="password"]:active,input[type="password"]:focus,input[type="email"]:active,input[type="email"]:focus,input[type="url"]:active,input[type="url"]:focus,input[type="search"]:active,input[type="search"]:focus,input[type="number"]:active,input[type="number"]:focus,textarea:active,textarea:focus{border-color:#c8d3dc #D3DAE1 #d3dae1 #C8D3DC;box-shadow:0 1px 2px rgba(0,0,0,0.1) inset;background:#fffff3;background-image:-moz-linear-gradient(top,#fffee8,#fff);background-image:-ms-linear-gradient(top,#fffee8,#fff);background-image:-o-linear-gradient(top,#fffee8,#fff);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fffee8),to(#fff));background-image:-webkit-linear-gradient(top,#fffee8,#fff);background-image:linear-gradient(top,#fffee8,#fff)}input[type="submit"],input[type="button"],input[type="reset"],button{color:#404040;border-color:#ccc;background:#f6f6f6;background-image:-moz-linear-gradient(top,#fff,#eee);background-image:-ms-linear-gradient(top,#fff,#eee);background-image:-o-linear-gradient(top,#fff,#eee);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,#eee);background-image:linear-gradient(top,#fff,#eee);text-shadow:0 1px 1px #ddd} |
| 8: .primary input[type="submit"],.primary input[type="button"],.primary input[type="reset"],.primary button{color:#fafafa;background:#4897d9;border-color:#2575ae;text-shadow:0 -1px 1px rgba(0,0,0,0.4);box-shadow:0 1px 0 rgba(255,255,255,0.2) inset,0 1px 2px rgba(0,0,0,0.05);background-image:-moz-linear-gradient(top,#5cb7f7,#4897d9);background-image:-ms-linear-gradient(top,#5cb7f7,#4897d9);background-image:-o-linear-gradient(top,#5cb7f7,#4897d9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5cb7f7),to(#4897d9));background-image:-webkit-linear-gradient(top,#5cb7f7,#4897d9);background-image:linear-gradient(top,#5cb7f7,#4897d9)}.primary.caution input[type="submit"],.primary.caution input[type="button"],.primary.caution input[type="reset"],.primary.caution button{border-color:#c0372a;background:#d95548;background-image:-moz-linear-gradient(top,#f7655b,#d95548);background-image:-ms-linear-gradient(top,#f7655b,#d95548);background-image:-o-linear-gradient(top,#f7655b,#d95548);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f7655b),to(#d95548));background-image:-webkit-linear-gradient(top,#f7655b,#d95548);background-image:linear-gradient(top,#f7655b,#d95548)}input[type="submit"]:hover,input[type="submit"]:focus,input[type="reset"]:hover,input[type="reset"]:focus,input[type="button"]:hover,input[type="button"]:focus,button:hover,button:focus{color:#101010;background:#f3f3f3;background-image:-moz-linear-gradient(top,#fff,#ebebeb);background-image:-ms-linear-gradient(top,#fff,#ebebeb);background-image:-o-linear-gradient(top,#fff,#ebebeb);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#ebebeb));background-image:-webkit-linear-gradient(top,#fff,#ebebeb);background-image:linear-gradient(top,#fff,#ebebeb);border-color:#84bce4;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1)}.primary input[type="submit"]:hover,.primary input[type="submit"]:focus,.primary input[type="reset"]:hover,.primary input[type="reset"]:focus,.primary input[type="button"]:hover,.primary input[type="button"]:focus,.primary button:hover,.primary button:focus{color:#fff;text-shadow:0 -1px 1px rgba(0,0,0,0.4);border-color:#2575ae;background:#2e8bd9;background-image:-moz-linear-gradient(top,#5cb7f7,#2e8bd9);background-image:-ms-linear-gradient(top,#5cb7f7,#2e8bd9);background-image:-o-linear-gradient(top,#5cb7f7,#2e8bd9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5cb7f7),to(#2e8bd9));background-image:-webkit-linear-gradient(top,#5cb7f7,#2e8bd9);background-image:linear-gradient(top,#5cb7f7,#2e8bd9);-webkit-box-shadow:0 1px 0 rgba(255,255,255,0.2) inset,0 1px 2px rgba(0,0,0,.2);box-shadow:0 1px 0 rgba(255,255,255,0.2) inset,0 1px 2px rgba(0,0,0,.2)}.primary.caution input[type="submit"]:hover,.primary.caution input[type="submit"]:focus,.primary.caution input[type="button"]:hover,.primary.caution input[type="button"]:focus,.primary.caution input[type="reset"]:hover,.primary.caution input[type="reset"]:focus,.primary.caution button:hover,.primary.caution button:focus{border-color:#c0372a;background:#d93d2e;background-image:-moz-linear-gradient(top,#f7655b,#d93d2e);background-image:-ms-linear-gradient(top,#f7655b,#d93d2e);background-image:-o-linear-gradient(top,#f7655b,#d93d2e);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f7655b),to(#d93d2e));background-image:-webkit-linear-gradient(top,#f7655b,#d93d2e);background-image:linear-gradient(top,#f7655b,#d93d2e)}input[type="submit"][disabled],input[type="button"][disabled],input[type="reset"][disabled],button[disabled]{border-color:#ccc;color:#999}input[type="submit"][disabled]:hover,input[type="submit"][disabled]:focus,input[type="reset"][disabled]:hover,input[type="reset"][disabled]:focus,input[type="button"][disabled]:hover,input[type="button"][disabled]:focus,button[disabled]:hover,button[disabled]:focus{color:#999}#querytime{color:#999}.quiet{color:#999}.loud{color:#000}#brd-debug th{background:#fff;border:0;border-bottom:2px solid #dde4eb;color:#111}#brd-debug td{background:#fff;border:0;border-bottom:solid 1px #eee;color:#666} |
| 9: #brd-messages span{color:#333;-webkit-border-bottom-right-radius:.3em;-webkit-border-bottom-left-radius:.3em;-moz-border-radius-bottomright:.3em;-moz-border-radius-bottomleft:.3em;border-bottom-right-radius:.3em;border-bottom-left-radius:.3em;-moz-box-shadow:0 2px 3px rgba(0,0,0,.2);-webkit-box-shadow:0 2px 3px rgba(0,0,0,.2);box-shadow:0 2px 3px rgba(0,0,0,.2)}#brd-messages .message_error{border-color:#ffe475;background:#ffbdac}#brd-messages .message_warning{border-color:#ffe475;background:#ffd0ac}#brd-messages .message_info{border-color:#ffe475;background:#ffc;background:-moz-linear-gradient(center top,#fffbea,#fef7cb);background:-o-linear-gradient(top,#fffbea,#fef7cb);background:-webkit-gradient(linear,0 0,0 100%,from(#fffbea),to(#fef7cb));background:-webkit-linear-gradient(top,#fffbea,#fef7cb);background:-ms-linear-gradient(top,#fffbea,#fef7cb);background:linear-gradient(top,#fffbea,#fef7cb)}::-moz-selection{background:#fff2a8;color:#000;text-shadow:none}::selection{background:#fff2a8;color:#000;text-shadow:none} |
0: | 10: |