Mich hat schon immer gestört das bei der Einsatz von mehreren Portalseiten der Seitentitel immer Portal (bzw. der mittels $lang['Home'] definierte Name) ist und außerdem in der Online-Liste angezeigt wird, das der jeweilige Benutzer sich im Foren-Index befindet.

Als ich die diese Tatsache geändert habe, sind mir einige Codestellen aufgefallen die nicht 100%ig sauber Programmiert sind. Sei es das sie nicht phpBB konform sind oder das sie minimal optimiert werden können.
Das Ergebnis sieht so aus:
- Code: Alles auswählen
#
#----------[ OPEN ]-------------------------------------
#
portal.php
#
#----------[ FIND ]-------------------------------------
#
$userdata = session_pagestart( $user_ip, PAGE_INDEX );
#
#----------[ REPLACE WITH ]-----------------------------
#
$userdata = session_pagestart( $user_ip, PAGE_PORTAL );
#
#----------[ FIND & DELETE ]----------------------------
#
include_once($phpbb_root_path . 'includes/lite.'.$phpEx);
#
#----------[ FIND ]-------------------------------------
#
if(isset($HTTP_GET_VARS['page']))
{
$layout = intval($HTTP_GET_VARS['page']);
}else
{
$layout = $portal_config['default_portal'];
}
#
#----------[ REPLACE WITH ]-----------------------------
#
(isset($HTTP_GET_VARS['page'])) ? $layout = intval($HTTP_GET_VARS['page']) : $layout = $portal_config['default_portal'];
#
#----------[ FIND ]-------------------------------------
#
if($portal_config['cache_enabled'])
$layout_row=$var_cache->get('lr' . strval($layout), 86400, 'layout');
#
#----------[ REPLACE WITH ]-----------------------------
#
if($portal_config['cache_enabled'])
{
$layout_row=$var_cache->get('lr' . strval($layout), 86400, 'layout');
}
#
#----------[ FIND ]-------------------------------------
#
$sql = "SELECT template, forum_wide, view, groups FROM " . LAYOUT_TABLE . " WHERE lid = '" . $layout . "'";
#
#----------[ REPLACE WITH ]-----------------------------
#
$sql = "SELECT name, template, forum_wide, view, groups FROM " . LAYOUT_TABLE . " WHERE lid = '" . $layout . "'";
#
#----------[ FIND ]-------------------------------------
#
if(($layout_row['template']!='')&&$portal_config['cache_enabled'])
$var_cache->save($layout_row, 'lr' . strval($layout), 'layout');
#
#----------[ REPLACE WITH ]-----------------------------
#
if(($layout_row['template']!='')&&$portal_config['cache_enabled'])
{
$var_cache->save($layout_row, 'lr' . strval($layout), 'layout');
}
#
#----------[ FIND ]-------------------------------------
#
$layout_template = $layout_row['template'];
#
#----------[ BEFORE, ADD ]------------------------------
#
$page_title = $layout_row['name'];
#
#----------[ FIND ]-------------------------------------
#
if($portal_config['cache_enabled'])
$layout_row=$var_cache->get('lr' . strval($layout), 86400, 'layout');
#
#----------[ REPLACE WITH ]-----------------------------
#
if($portal_config['cache_enabled'])
{
$layout_row=$var_cache->get('lr' . strval($layout), 86400, 'layout');
}
#
#----------[ FIND ]-------------------------------------
#
$sql = "SELECT template, forum_wide FROM " . LAYOUT_TABLE . " WHERE lid = '" . $layout . "'";
#
#----------[ REPLACE WITH ]-----------------------------
#
$sql = "SELECT name, template, forum_wide FROM " . LAYOUT_TABLE . " WHERE lid = '" . $layout . "'";
#
#----------[ FIND ]-------------------------------------
#
if($portal_config['cache_enabled'])
$var_cache->save($layout_row, 'lr' . strval($layout), 'layout');
#
#----------[ REPLACE WITH ]-----------------------------
#
if($portal_config['cache_enabled'])
{
$var_cache->save($layout_row, 'lr' . strval($layout), 'layout');
}
#
#----------[ FIND ]-------------------------------------
#
$layout_template = $layout_row['template'];
#
#----------[ BEFORE, ADD ]------------------------------
#
$page_title = $layout_row['name'];
#
#----------[ FIND ]-------------------------------------
#
$page_title = $lang['Home'];
#
#----------[ REPLACE WITH ]-----------------------------
#
$page_title = (!$page_title) ? $lang['Home'] : ((@$lang[$page_title]) ? $lang[$page_title] : $page_title);
#
#----------[ OPEN ]-------------------------------------
#
viewonline.php
#
#----------[ FIND ]-------------------------------------
#
case PAGE_INDEX:
$location = $lang['Forum_index'];
$location_url = "index.$phpEx";
break;
#
#----------[ BEFORE, ADD ]------------------------------
#
case PAGE_PORTAL:
$location = $lang['Viewing_portal'];
$location_url = "portal.$phpEx";
break;
#
#----------[ OPEN ]-------------------------------------
#
admin/index.php
#
#----------[ FIND ]-------------------------------------
#
case PAGE_INDEX:
$location = $lang['Forum_index'];
$location_url = "index.$phpEx?pane=right";
break;
#
#----------[ BEFORE, ADD ]------------------------------
#
case PAGE_PORTAL:
$location = $lang['Viewing_portal'];
$location_url = "portal.$phpEx?pane=right";
break;
#
#----------[ FIND ]-------------------------------------
#
case PAGE_INDEX:
$location = $lang['Forum_index'];
$location_url = "index.$phpEx?pane=right";
break;
#
#----------[ BEFORE, ADD ]------------------------------
#
case PAGE_PORTAL:
$location = $lang['Viewing_portal'];
$location_url = "portal.$phpEx?pane=right";
break;
#
#----------[ OPEN ]-------------------------------------
#
includes/constants.php
#
#----------[ FIND ]-------------------------------------
#
define('PAGE_GROUPCP', -11);
#
#----------[ AFTER, ADD ]-------------------------------
#
# Note: if there is already a "-12" line change the number
define('PAGE_PORTAL', -12);
#
#----------[ OPEN ]-------------------------------------
#
includes/functions_portal.php
#
#----------[ FIND ]-------------------------------------
#
include_once($phpbb_root_path . 'includes/lite.'.$phpEx);
$options = array(
'cacheDir' => $phpbb_root_path . 'var_cache/',
);
$var_cache = new Cache_Lite($options);
#
#----------[ REPLACE WITH ]-----------------------------
#
include($phpbb_root_path . 'includes/lite.'.$phpEx);
#
#----------[ FIND ]-------------------------------------
#
if($type)
return $bview;
else
return $append;
#
#----------[ REPLACE WITH ]-----------------------------
#
if($type)
{
return $bview;
} else {
return $append;
}
#
#----------[ FIND ]-------------------------------------
#
if($portal_config['cache_enabled'])
$layout_pos=$var_cache->get('lp' . strval($layout), 86400, 'layout_pos');
#
#----------[ REPLACE WITH ]-----------------------------
#
if($portal_config['cache_enabled'])
{
$layout_pos=$var_cache->get('lp' . strval($layout), 86400, 'layout_pos');
}
#
#----------[ FIND ]-------------------------------------
#
if($portal_config['cache_enabled'])
$var_cache->save($layout_pos, 'lp' . strval($layout), 'layout_pos');
#
#----------[ REPLACE WITH ]-----------------------------
#
if($portal_config['cache_enabled'])
{
$var_cache->save($layout_pos, 'lp' . strval($layout), 'layout_pos');
}
#
#----------[ FIND ]-------------------------------------
#
if($portal_config['cache_enabled'])
$block_info=$var_cache->get('bi' . portal_blocks_view(false) . $temp_type, 86400, 'block_info');
#
#----------[ REPLACE WITH ]-----------------------------
#
if($portal_config['cache_enabled'])
{
$block_info=$var_cache->get('bi' . portal_blocks_view(false) . $temp_type, 86400, 'block_info');
}
#
#----------[ FIND ]-------------------------------------
#
if($portal_config['cache_enabled'])
$var_cache->save($block_info, 'bi' . portal_blocks_view(false) . $temp_type, 'block_info');
#
#----------[ REPLACE WITH ]-----------------------------
#
if($portal_config['cache_enabled'])
{
$var_cache->save($block_info, 'bi' . portal_blocks_view(false) . $temp_type, 'block_info');
}
#
#----------[ FIND ]-------------------------------------
#
if(($portal_config['cache_enabled'])&&($block_info[$b_counter]['cache']))
$output_block=$var_cache->get('b' . strval($block_info[$b_counter]['bid']), $block_info[$b_counter]['cache_time'], 'block');
#
#----------[ REPLACE WITH ]-----------------------------
#
if(($portal_config['cache_enabled'])&&($block_info[$b_counter]['cache']))
{
$output_block=$var_cache->get('b' . strval($block_info[$b_counter]['bid']), $block_info[$b_counter]['cache_time'], 'block');
}
#
#----------[ FIND ]-------------------------------------
#
if(($portal_config['cache_enabled'])&&($block_info[$b_counter]['cache']))
$var_cache->save($output_block, 'b' . strval($block_info[$b_counter]['bid']), 'block');
#
#----------[ REPLACE WITH ]-----------------------------
#
if(($portal_config['cache_enabled'])&&($block_info[$b_counter]['cache']))
{
$var_cache->save($output_block, 'b' . strval($block_info[$b_counter]['bid']), 'block');
}
#
#----------[ OPEN ]-------------------------------------
#
language/lang_english/lang_main.php
#
#----------[ FIND ]-------------------------------------
#
$lang['Forum_index'] = 'Forum index';
#
#----------[ BEFORE, ADD ]------------------------------
#
$lang['Viewing_portal'] = 'Viewing a portal page';
#
#----------[ OPEN ]-------------------------------------
#
language/lang_german/lang_main.php
#
#----------[ FIND ]-------------------------------------
#
$lang['Forum_index'] = 'Forum-Index';
#
#----------[ BEFORE, ADD ]------------------------------
#
$lang['Viewing_portal'] = 'Portalseite';
#
#----------[ SAVE AND CLOSE ALL FILES ]-----------------
#
# EoM
Zugefügt nach 1 Stunde(n) 47 Minute(n):
Ich vergaß zu erwähnen das jetzt der Seitentitel Sprachabhängig sein kann.

Grundsätzlich wird der Name angezeigt der im ACP (IM-Portal -> Page Management) definiert wurde. Wenn nun aber, in den Sprachdateien (vorzugsweise lang_main.php) eine gleichnamige Variable existiert, dann wird deren Inhalt als Seitentitel ausgegeben.

Zum Beispiel:
Die Beispielseite, von AmigaLink.de, ist eine IM-Portalseite.
Im Page Management habe ich ihr den Namen "Beispielseite" gegeben, der bei Benutzern mit Deutscher Spracheinstellung auch benutzt wird. Englischsprachige Benutzer bekommen aber als Titel "Example page" angezeigt, weil in der language/lang_english/lang_main.php folgende Zeile existiert:
- Code: Alles auswählen
$lang['Beispielseite'] = 'Example page';