Revision 1782
Added by Luisehahne about 13 years ago
| class.wb.php | ||
|---|---|---|
| 3 | 3 | * | 
| 4 | 4 | * @category framework | 
| 5 | 5 | * @package frontend | 
| 6 | * @author Ryan Djurovich, WebsiteBaker Project | |
| 6 |  * @author          Ryan Djurovich (2004-2009), WebsiteBaker Project
 | |
| 7 | 7 | * @copyright 2009-2012, WebsiteBaker Org. e.V. | 
| 8 | 8 | * @link http://www.websitebaker2.org/ | 
| 9 | 9 | * @license http://www.gnu.org/licenses/gpl.html | 
| ... | ... | |
| 31 | 31 | {
 | 
| 32 | 32 |  | 
| 33 | 33 | public $password_chars = 'a-zA-Z0-9\_\-\!\#\*\+\@\$\&\:'; // General initialization function | 
| 34 |  | |
| 34 | 35 | // performed when frontend or backend is loaded. | 
| 35 |  | |
| 36 | 36 | 	public function  __construct($mode = SecureForm::FRONTEND) {
 | 
| 37 | 37 | parent::__construct($mode); | 
| 38 | 38 | } | 
| 39 | 39 |  | 
| 40 |  | |
| 41 | /** | |
| 42 | * | |
| 43 | * | |
| 44 | * @param mixed $lang | |
| 45 | * @param mixed $level | |
| 46 | * @param mixed $parent | |
| 47 | * @return | |
| 48 | */ | |
| 49 | 	public function GetLanguagesPages ( $lang, $level, $parent ) {
 | |
| 50 | global $database; | |
| 51 | $page = array(); | |
| 52 | $sql = | |
| 53 | 'SELECT `language`,`visibility`,`viewing_groups`,`viewing_users`,`language`,`position`, '. | |
| 54 | '`page_id`,`level`,`parent`,`root_parent`,`page_code`,`link` '. | |
| 55 | 'FROM `'.TABLE_PREFIX.'pages` '. | |
| 56 | 'WHERE `level`=\''.$level.'\' '. | |
| 57 | 'AND `language`=\''.$lang['language'].'\' '. | |
| 58 | 'AND `visibility`!=\'none\' '. | |
| 59 | 'AND `visibility`!=\'hidden\' '. | |
| 60 | 'AND `parent`=\''.$parent.'\' '. | |
| 61 | 'AND `root_parent`=`page_id` '. | |
| 62 | 'ORDER BY `position`'; | |
| 63 | if($oPage = $database->query($sql)) | |
| 64 |         {
 | |
| 65 | $page = $oPage->fetchRow(MYSQL_ASSOC); | |
| 66 | } | |
| 67 | return $page; | |
| 68 | } | |
| 69 |  | |
| 70 | /** | |
| 71 | * | |
| 72 | * | |
| 73 | * @return | |
| 74 | */ | |
| 75 | 	public function GetLanguagesInUsed (  ) {
 | |
| 76 | global $database; | |
| 77 | $retVal = ''; | |
| 78 | $page = array(); | |
| 79 | $sql = | |
| 80 | 'SELECT DISTINCT `language` '. | |
| 81 | 'FROM `'.TABLE_PREFIX.'pages` '. | |
| 82 | 'WHERE `level`= \'0\' '. | |
| 83 | 'AND `visibility`!=\'none\' '. | |
| 84 | 'AND `visibility`!=\'hidden\' '. | |
| 85 | 'ORDER BY `position`'; | |
| 86 |  | |
| 87 | if($oRes = $database->query($sql)) | |
| 88 |         {
 | |
| 89 | while($lang = $oRes->fetchRow(MYSQL_ASSOC)) | |
| 90 |             {
 | |
| 91 | $page = $this->GetLanguagesPages ( $lang, 0, 0 ); | |
| 92 |                 if(!$this->page_is_visible($page)) {continue;}
 | |
| 93 | $retVal .= $page['language'].','; | |
| 94 | } | |
| 95 | } | |
| 96 | return trim($retVal,','); | |
| 97 | } | |
| 98 |  | |
| 99 |  | |
| 40 | 100 | /* **************** | 
| 41 | 101 | * check if one or more group_ids are in both group_lists | 
| 42 | 102 | * | 
| ... | ... | |
| 429 | 489 | } | 
| 430 | 490 | return $retval; | 
| 431 | 491 | } | 
| 492 | /* | |
| 493 | * @param string $type: 'locked'(default) or 'new' | |
| 494 | * @return void: terminates application | |
| 495 | * @description: 'locked' >> Show maintenance screen and terminate, if system is locked | |
| 496 | * 'new' >> Show 'new site under construction'(former print_under_construction) | |
| 497 | */ | |
| 498 | public function ShowMaintainScreen($type = 'locked') | |
| 499 | 	{
 | |
| 500 | global $database, $MESSAGE; | |
| 501 | $CHECK_BACK = $MESSAGE['GENERIC_PLEASE_CHECK_BACK_SOON']; | |
| 502 | $BE_PATIENT = ''; | |
| 503 | $LANGUAGE = strtolower((isset($_SESSION['LANGUAGE']) ? $_SESSION['LANGUAGE'] : LANGUAGE )); | |
| 432 | 504 |  | 
| 505 | $show_screen = false; | |
| 506 | if($type == 'locked') | |
| 507 | 		{
 | |
| 508 | $curr_user = (intval(isset($_SESSION['USER_ID']) ? $_SESSION['USER_ID'] : 0) ) ; | |
| 509 | 			if( (defined('SYSTEM_LOCKED') && (int)SYSTEM_LOCKED == 1) && ($curr_user != 1))
 | |
| 510 | 			{
 | |
| 511 | header($_SERVER['SERVER_PROTOCOL'].' 503 Service Unavailable'); | |
| 512 | // first kick logged users out of the system | |
| 513 | // delete all remember keys from table 'user' except user_id=1 | |
| 514 | $sql = 'UPDATE `'.TABLE_PREFIX.'users` SET `remember_key`=\'\' '; | |
| 515 | $sql .= 'WHERE `user_id`<>1'; | |
| 516 | $database->query($sql); | |
| 517 | // delete remember key-cookie if set | |
| 518 | 				if (isset($_COOKIE['REMEMBER_KEY'])) {
 | |
| 519 | 					setcookie('REMEMBER_KEY', '', time() - 3600, '/');
 | |
| 520 | } | |
| 521 | // overwrite session array | |
| 522 | $_SESSION = array(); | |
| 523 | // delete session cookie if set | |
| 524 | 				if (ini_get("session.use_cookies")) {
 | |
| 525 | $params = session_get_cookie_params(); | |
| 526 | setcookie(session_name(), '', time() - 42000, $params["path"], | |
| 527 | $params["domain"], $params["secure"], $params["httponly"] | |
| 528 | ); | |
| 529 | } | |
| 530 | // delete the session itself | |
| 531 | session_destroy(); | |
| 532 | $PAGE_TITLE = $MESSAGE['GENERIC_WEBSITE_LOCKED']; | |
| 533 | $BE_PATIENT = $MESSAGE['GENERIC_BE_PATIENT']; | |
| 534 | $PAGE_ICON = 'system'; | |
| 535 | $show_screen = true; | |
| 536 | } | |
| 537 | 		} else {
 | |
| 538 | header($_SERVER['SERVER_PROTOCOL'].' 503 Service Unavailable'); | |
| 539 | $PAGE_TITLE = $MESSAGE['GENERIC_WEBSITE_UNDER_CONSTRUCTION']; | |
| 540 | $PAGE_ICON = 'negative'; | |
| 541 | $show_screen = true; | |
| 542 | } | |
| 543 | if($show_screen) | |
| 544 | 		{
 | |
| 545 |             $sMaintanceFile = $this->correct_theme_source('maintance.htt');
 | |
| 546 | if(file_exists($sMaintanceFile)) | |
| 547 |     		{
 | |
| 548 | $tpl = new Template(dirname( $sMaintanceFile )); | |
| 549 | $tpl->set_file( 'page', 'maintance.htt' ); | |
| 550 | $tpl->set_block( 'page', 'main_block', 'main' ); | |
| 551 |  | |
| 552 |     			if(defined('DEFAULT_CHARSET'))
 | |
| 553 |     			{
 | |
| 554 | $charset=DEFAULT_CHARSET; | |
| 555 |     			} else {
 | |
| 556 | $charset='utf-8'; | |
| 557 | } | |
| 558 | $tpl->set_var( 'PAGE_TITLE', $MESSAGE['GENERIC_WEBSITE_UNDER_CONSTRUCTION'] ); | |
| 559 | $tpl->set_var( 'CHECK_BACK', $MESSAGE['GENERIC_PLEASE_CHECK_BACK_SOON'] ); | |
| 560 | $tpl->set_var( 'CHARSET', $charset ); | |
| 561 | $tpl->set_var( 'WB_URL', WB_URL ); | |
| 562 | $tpl->set_var( 'BE_PATIENT', $BE_PATIENT ); | |
| 563 | $tpl->set_var( 'THEME_URL', THEME_URL ); | |
| 564 | $tpl->set_var( 'PAGE_ICON', $PAGE_ICON); | |
| 565 | $tpl->set_var( 'LANGUAGE', strtolower(LANGUAGE)); | |
| 566 | $tpl->parse( 'main', 'main_block', false ); | |
| 567 | $tpl->pparse( 'output', 'page' ); | |
| 568 | exit(); | |
| 569 |     		} else {
 | |
| 570 | require_once(WB_PATH.'/languages/'.DEFAULT_LANGUAGE.'.php'); | |
| 571 | echo '<!DOCTYPE html PUBLIC "-W3CDTD XHTML 1.0 TransitionalEN" "http:www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| 572 | <head><title>'.$MESSAGE['GENERIC_WEBSITE_UNDER_CONSTRUCTION'].'</title> | |
| 573 |     		<style type="text/css"><!-- body{ font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 12px; background-image: url("'.WB_URL.'/templates/'.DEFAULT_THEME.'/images/background.png");background-repeat: repeat-x; background-color: #A8BCCB; text-align: center; }
 | |
| 574 |     		h1 { margin: 0; padding: 0; font-size: 18px; color: #000; text-transform: uppercase;}--></style></head><body>
 | |
| 575 | <br /><h1>'.$MESSAGE['GENERIC_WEBSITE_UNDER_CONSTRUCTION'].'</h1><br /> | |
| 576 | '.$MESSAGE['GENERIC_PLEASE_CHECK_BACK_SOON'].'</body></html>'; | |
| 577 | } | |
| 578 | flush(); | |
| 579 | exit(); | |
| 580 | } | |
| 581 | } | |
| 582 |  | |
| 433 | 583 | // Validate send email | 
| 434 | 584 | 	function mail($fromaddress, $toaddress, $subject, $message, $fromname='', $replyTo='') {
 | 
| 435 | 585 | /* | 
Also available in: Unified diff
+ add maintance modus in backend