В файле /published/SC/html/scripts/modules/test/class.test.php есть такая функция, которая выводит текст Регистрация, Вход с паролем и др, или Мой счет и выход, в зависимости от того авторизованы вы или нет, но что если вы захотите это меню вывести совсем не в списке и убрать всякие другие ссылки?
находим функцию
комментируем ее и ниже пишем свой аналог
function cpt_divisions_navigation()
{
if (isset($_SESSION["log"]))
echo '<a href="/myaccount">Мой кабинет</a> | <a href="/logout">Выйти</a>';
else
echo '<a href="/auth">Вход с паролем</a> | <a href="/register">Регистрация</a>';
}
находим функцию
function cpt_divisions_navigation()
{
list($local_settings) = $this->__getFromStack('call_params');
if(isset($local_settings['local_settings']))$local_settings = $local_settings['local_settings'];
$pages = array();
$SubDivs = &DivisionModule::getBranchDivisions(DivisionModule::getDivisionIDByUnicKey('TitlePage'), array('xEnabled'=>1));
foreach ($SubDivs as $_SubDiv){
if($_SubDiv->UnicKey == 'order_status' && isset($_SESSION["log"])){continue;}
if($_SubDiv->UnicKey == 'auth' && isset($_SESSION["log"]))
{
$login_id = $_SubDiv->ID;
$_SubDiv = DivisionModule::getDivisionByUnicKey('logout');
$_SubDiv->ID = $login_id;
}
if($_SubDiv->UnicKey == 'register' && isset($_SESSION["log"])){
$register_id = $_SubDiv->ID;
$_SubDiv = DivisionModule::getDivisionByUnicKey('office');
$_SubDiv->ID = $register_id;
}
/* @var $_SubDiv Division*/
$pages[] = array(
'id' => $_SubDiv->ID,
'name' => translate($_SubDiv->Name),
'ukey' => $_SubDiv->UnicKey,
);
if(isset($local_settings['divisions']) && $local_settings['divisions']=='mobile' && ($_SubDiv->UnicKey=='office'||$_SubDiv->UnicKey=='register')){
$_SubDiv = DivisionModule::getDivisionByUnicKey('cart');
$pages[] = array(
'id' => $_SubDiv->ID,
'name' => translate(translate($_SubDiv->Name)),
'ukey' => $_SubDiv->UnicKey,
);
}
}
if(!count($pages))return ;
$allowed_pages = explode(':', $local_settings['divisions']);
print '<ul class="'.($local_settings['view'] == 'horizontal'?'horizontal':'vertical').'">';
foreach ($pages as $page){
if(!in_array($page['id'], $allowed_pages) && !(isset($allowed_pages[0]) && $allowed_pages[0]=='mobile'))continue;
print '<li><a href="'.xHtmlSetQuery($page['ukey']?'?ukey='.$page['ukey']:'?did='.$page['id']).'">'.xHtmlSpecialChars($page['name']).'</a></li>';
}
print '</ul>';
}
{
list($local_settings) = $this->__getFromStack('call_params');
if(isset($local_settings['local_settings']))$local_settings = $local_settings['local_settings'];
$pages = array();
$SubDivs = &DivisionModule::getBranchDivisions(DivisionModule::getDivisionIDByUnicKey('TitlePage'), array('xEnabled'=>1));
foreach ($SubDivs as $_SubDiv){
if($_SubDiv->UnicKey == 'order_status' && isset($_SESSION["log"])){continue;}
if($_SubDiv->UnicKey == 'auth' && isset($_SESSION["log"]))
{
$login_id = $_SubDiv->ID;
$_SubDiv = DivisionModule::getDivisionByUnicKey('logout');
$_SubDiv->ID = $login_id;
}
if($_SubDiv->UnicKey == 'register' && isset($_SESSION["log"])){
$register_id = $_SubDiv->ID;
$_SubDiv = DivisionModule::getDivisionByUnicKey('office');
$_SubDiv->ID = $register_id;
}
/* @var $_SubDiv Division*/
$pages[] = array(
'id' => $_SubDiv->ID,
'name' => translate($_SubDiv->Name),
'ukey' => $_SubDiv->UnicKey,
);
if(isset($local_settings['divisions']) && $local_settings['divisions']=='mobile' && ($_SubDiv->UnicKey=='office'||$_SubDiv->UnicKey=='register')){
$_SubDiv = DivisionModule::getDivisionByUnicKey('cart');
$pages[] = array(
'id' => $_SubDiv->ID,
'name' => translate(translate($_SubDiv->Name)),
'ukey' => $_SubDiv->UnicKey,
);
}
}
if(!count($pages))return ;
$allowed_pages = explode(':', $local_settings['divisions']);
print '<ul class="'.($local_settings['view'] == 'horizontal'?'horizontal':'vertical').'">';
foreach ($pages as $page){
if(!in_array($page['id'], $allowed_pages) && !(isset($allowed_pages[0]) && $allowed_pages[0]=='mobile'))continue;
print '<li><a href="'.xHtmlSetQuery($page['ukey']?'?ukey='.$page['ukey']:'?did='.$page['id']).'">'.xHtmlSpecialChars($page['name']).'</a></li>';
}
print '</ul>';
}
комментируем ее и ниже пишем свой аналог
function cpt_divisions_navigation()
{
if (isset($_SESSION["log"]))
echo '<a href="/myaccount">Мой кабинет</a> | <a href="/logout">Выйти</a>';
else
echo '<a href="/auth">Вход с паролем</a> | <a href="/register">Регистрация</a>';
}
3 комментария:
Бредовое решение
Поясните свое мнение, если мне не нужно мультиязычности и других фишек, если решение применяется только в моем проекте и не требует ни какой гибкости и настраиваемости
Полный бред.
cpt_divisions_navigation не только для ссылок логина.
Отправить комментарий