Revision 1953
Added by darkviper over 11 years ago
settings.php | ||
---|---|---|
90 | 90 |
// $mLang->setLanguage(dirname(__FILE__).'/languages/', LANGUAGE, DEFAULT_LANGUAGE); |
91 | 91 |
$mLang = Translate::getinstance(); |
92 | 92 |
$mLang->enableAddon('admin\pages'); |
93 |
$oDb = WbDatabase::getInstance(); |
|
93 | 94 |
$sDisabled = ' disabled="disabled"'; |
94 | 95 |
$sSelected = ' selected="selected"'; |
95 | 96 |
$sChecked = ' checked="checked"'; |
... | ... | |
417 | 418 |
} else { |
418 | 419 |
$oTpl->set_var('DISPLAY_VIEWERS', 'display:none;'); |
419 | 420 |
} |
420 |
/*-- start multilanguage page_code 20090904 --------------------------------------------*/ |
|
421 |
// Work-out if page languages feature is enabled |
|
421 |
/*-- start multilanguage page_code -----------------------------------------------------*/ |
|
422 | 422 |
$oTpl->set_block('main_block', 'show_page_code_block', 'show_page_code'); |
423 | 423 |
if( (defined('PAGE_LANGUAGES') && PAGE_LANGUAGES) && |
424 | 424 |
isset($aCurrentPage['page_code']) && class_exists('m_MultiLingual_Lib')) |
425 | 425 |
{ |
426 |
// workout field is set but module missing |
|
427 |
$oTpl->set_var('TEXT_PAGE_CODE', |
|
428 |
'<a href="'.WB_URL.'/modules/MultiLingual/update_keys.php?page_id='.$page_id.'">'.$mLang->TEXT_PAGE_CODE.'</a>' |
|
429 |
); |
|
430 |
/*-- begin recursive function page_code list ---------------------------------------*/ |
|
431 |
function page_code_list($parent) |
|
432 |
{ |
|
433 |
global $admin, $database, $oTpl, $aCurrentPage, $pageCode; |
|
434 |
$default_language = DEFAULT_LANGUAGE; |
|
435 |
|
|
436 |
$sql = 'SELECT * FROM `'.TABLE_PREFIX.'pages` ' |
|
437 |
. 'WHERE `parent`='.$parent.' AND `language`=\''.$default_language.'\' ' |
|
438 |
. 'ORDER BY `position` ASC'; |
|
439 |
$get_pages = $database->query($sql); |
|
440 |
|
|
441 |
while($page = $get_pages->fetchRow(MYSQL_ASSOC)) |
|
442 |
{ |
|
443 |
if(($admin->page_is_visible($page)==false) && ($page['visibility'] <> 'none') ) { continue; } |
|
444 |
|
|
445 |
$oTpl->set_var('FLAG_CODE_ICON',' none '); |
|
446 |
if( $page['parent'] == 0 ) |
|
447 |
{ |
|
448 |
$oTpl->set_var('FLAG_CODE_ICON','url('.THEME_URL.'/images/flags/'.strtolower($page['language']).'.png)'); |
|
449 |
} |
|
450 |
|
|
451 |
// If the current page cannot be parent, then its children neither |
|
452 |
$list_next_level = true; |
|
453 |
// Stop users from adding pages with a level of more than the set page level limit |
|
454 |
if($page['level']+1 < PAGE_LEVEL_LIMIT) |
|
455 |
{ |
|
456 |
$can_modify = ($admin->ami_group_member($page['admin_groups']) || |
|
457 |
$admin->is_group_match($admin->get_user_id(), $page['admin_users'])); |
|
458 |
$title_prefix = ''; |
|
459 |
for($i = 1; $i <= $page['level']; $i++) { $title_prefix .= ' - - '; } |
|
460 |
// $space = str_repeat(' ', 3); $space.'<'..'>' |
|
461 |
$oTpl->set_var(array( |
|
462 |
'VALUE' => intval($page['page_code']), |
|
463 |
'PAGE_VALUE' => $title_prefix.$page['menu_title'], |
|
464 |
'PAGE_CODE' => $title_prefix.$page['page_id'] |
|
465 |
) |
|
466 |
); |
|
467 |
if($aCurrentPage['page_code'] == $page['page_code']) |
|
468 |
{ |
|
469 |
$oTpl->set_var('SELECTED', ' selected="selected"'); |
|
470 |
} elseif($aCurrentPage['page_code'] == $page['page_code']) |
|
471 |
{ |
|
472 |
$oTpl->set_var('SELECTED', ' disabled="disabled" class="disabled"'); |
|
473 |
$list_next_level=false; |
|
474 |
} elseif($can_modify != true) |
|
475 |
{ |
|
476 |
$oTpl->set_var('SELECTED', ' disabled="disabled" class="disabled"'); |
|
477 |
} else { |
|
478 |
$oTpl->set_var('SELECTED', ''); |
|
479 |
} |
|
480 |
$oTpl->parse('page_code_list', 'page_code_list_block', true); |
|
481 |
} |
|
482 |
if ($list_next_level) |
|
483 |
page_code_list($page['page_id']); |
|
484 |
} |
|
426 |
$aTplBlockData = array(); |
|
427 |
// workout field is set but module missing |
|
428 |
$aTplBlockData['PAGE_CODE_LABEL_TEXT'] = $mLang->TEXT_PAGE_CODE; |
|
429 |
$aTplBlockData['PAGE_CODE_UPDATE_URL'] = WB_REL.'/modules/MultiLingual/update_keys.php?page_id='.$page_id; |
|
430 |
// get the root element(level 0) of current page with same language in same menu |
|
431 |
$sql = 'SELECT `page_id` FROM `'.$oDb->TablePrefix.'pages` ' |
|
432 |
. 'WHERE `language`=\''.DEFAULT_LANGUAGE.'\' ' |
|
433 |
. 'AND `level`=0 '; |
|
434 |
if(defined('MULTIPLE_MENUS') && MULTIPLE_MENUS == 'true') { |
|
435 |
$sql .= 'AND `menu`='.$aCurrentPage['menu'].' '; |
|
485 | 436 |
} |
486 |
/*-- end recursive function page_code list -----------------------------------------*/ |
|
487 |
// Insert code_page values from page to modify |
|
437 |
$sql .= 'ORDER BY `position` ASC'; |
|
438 |
$iLangStartPageId = $oDb->get_one($sql); |
|
439 |
// read the tree of the found root element |
|
440 |
$oPageList = new a_pages_SmallRawPageTree(); |
|
441 |
$aLangCodePagesList = $oPageList->getParentList($iLangStartPageId); |
|
442 |
// create option list for the select box |
|
488 | 443 |
$oTpl->set_block('show_page_code_block', 'page_code_list_block', 'page_code_list'); |
489 |
if($admin->get_permission('pages_add_l0') == true OR $aCurrentPage['level'] == 0) { |
|
490 |
$selected = ($aCurrentPage['parent'] == 0 ? $sSelected : ''); |
|
491 |
$oTpl->set_var(array( |
|
492 |
'VALUE' => 0, |
|
493 |
'PAGE_CODE' => $mLang->TEXT_NONE, |
|
494 |
'PAGE_VALUE' => '', |
|
495 |
'SELECTED' => $selected |
|
496 |
) |
|
497 |
); |
|
444 |
$aTplItemData = array(); |
|
445 |
$bPageCodeIsSelected = false; |
|
446 |
// add 'no selection' option at top |
|
447 |
if($admin->get_permission('pages_add_l0') OR !$aCurrentPage['level']) |
|
448 |
{ |
|
449 |
$aTplItemData['PAGE_CODE_VALUE'] = 0; |
|
450 |
$aTplItemData['PAGE_CODE_PAGE_TITLE'] = $mLang->TEXT_NONE; |
|
451 |
$bPageCodeIsSelected = ($aCurrentPage['page_code'] == 0); |
|
452 |
$aTplItemData['PAGE_CODE_SELECTED'] = ($bPageCodeIsSelected ? $sSelected : ''); |
|
453 |
$oTpl->set_var($aTplItemData); |
|
498 | 454 |
$oTpl->parse('page_code_list', 'page_code_list_block', true); |
455 |
$aTplItemData = array(); |
|
499 | 456 |
} |
500 |
// get pagecode form this page_id |
|
501 |
page_code_list(0); |
|
457 |
$iLastEntryLevel = 0; |
|
458 |
$bSkipChildren = false; |
|
459 |
// loop through all items |
|
460 |
while (list(, $aPage) = each($aLangCodePagesList)) |
|
461 |
{ |
|
462 |
// skip child pages where current user has no rights for |
|
463 |
if($bSkipChildren && ($aPage['level'] > $iLastEntryLevel)) { continue; } |
|
464 |
$bSkipChildren = false; |
|
465 |
$iLastEntryLevel = $aPage['level']; |
|
466 |
//skip entry if it's not visible |
|
467 |
if(($admin->page_is_visible($aPage)==false) && ($aPage['visibility'] <> 'none') ) { continue; } |
|
468 |
// insert language flag on level 0 |
|
469 |
$sThemeRel = WB_REL.'/'.str_replace(WB_URL, '', THEME_URL).'/images/flags/'.strtolower($aPage['language']).'.png)'; |
|
470 |
$aTplItemData['PAGE_CODE_ICON_URL'] = ($aPage['level'] ? 'url('.$sThemeRel.')' : 'none'); |
|
471 |
// create indent chars |
|
472 |
$sTitlePrefix = str_repeat('-- ', $aPage['level']).' '; |
|
473 |
$aTplItemData['PAGE_CODE_PAGE_TITLE'] = $sTitlePrefix . $aPage['menu_title']; |
|
474 |
$aTplItemData['PAGE_CODE_VALUE'] = intval($aPage['page_code']); |
|
475 |
// set SELECTED status of this entry |
|
476 |
if( $aPage['page_id'] == $aCurrentPage['page_code'] |
|
477 |
&& $aCurrentPage['page_code'] != 0 |
|
478 |
&& !$bPageCodeIsSelected |
|
479 |
) |
|
480 |
{ // |
|
481 |
$aTplItemData['PAGE_CODE_SELECTED'] = $sSelected; |
|
482 |
$bPageCodeIsSelected = true; |
|
483 |
} elseif(!$aPage['iswriteable']) |
|
484 |
{ // |
|
485 |
$aTplItemData['PAGE_CODE_SELECTED'] = $sDisabled.' class="disabled"'; |
|
486 |
$bSkipChildren = true; |
|
487 |
} else { |
|
488 |
$aTplItemData['PAGE_CODE_SELECTED'] = ''; |
|
489 |
} |
|
490 |
// output item data |
|
491 |
$oTpl->set_var($aTplItemData); |
|
492 |
$oTpl->parse('page_code_list', 'page_code_list_block', true); |
|
493 |
$aTplItemData = array(); |
|
494 |
} |
|
495 |
// output block data |
|
496 |
$oTpl->set_var($aTplBlockData); |
|
502 | 497 |
$oTpl->parse('show_page_code', 'show_page_code_block', true); |
503 | 498 |
}else { |
504 | 499 |
$oTpl->set_block('show_page_code', ''); |
505 | 500 |
} |
506 |
/*-- end multilanguage page_code 20090904 ----------------------------------------------*/
|
|
501 |
/*-- end multilanguage page_code -------------------------------------------------------*/
|
|
507 | 502 |
|
508 | 503 |
/*-- show list of parent pages ---------------------------------------------------------*/ |
509 | 504 |
$oTpl->set_block('main_block', 'parent_page_list_block', 'parent_page_list'); |
... | ... | |
515 | 510 |
) ); |
516 | 511 |
$oTpl->parse('parent_page_list', 'parent_page_list_block', true); |
517 | 512 |
} |
513 |
|
|
518 | 514 |
parent_list(0); |
519 | 515 |
$oTpl->set_var('DISPLAY_MODIFIED', ($modified_ts == 'Unknown' ? 'hide' : '')); |
520 | 516 |
|
Also available in: Unified diff
solved some problems with MultiLingual module