Revision 1953
Added by darkviper about 12 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