О том, как я блоги в меню выводил и ЛС ломал
Скорее всего этот вариант не самый лучший, но…
Задача состоит в том, чтобы из меню Блогов убрать персональные/коллективные
и вывести список определенных блогов сайта(подразумевается, что сайт не имеет персональных блогов, а еще тематика сайта очень строгая, более-менее статичная).
Менять нужно 2 файла.
В самом начале метода комментируем строки
где-то после проверки на существование топика(и всякие там валидности). Лично я вставлял после строк:
Вставляем свитч, который чекает текущий выбранный элемент меню и делает соотв. метку:
где 2,3,4,5,6,7,8,9,10 — это АйДи ваших блогов в БД.
Параметры meal, communication, job — задаем по вкусу(я ставил идентичными УРЛ блогов).
Теперь спускаемся ниже в метод EventShowBlog()
После строк:
Вставляем похожий код:
Задача состоит в том, чтобы из меню Блогов убрать персональные/коллективные
и вывести список определенных блогов сайта(подразумевается, что сайт не имеет персональных блогов, а еще тематика сайта очень строгая, более-менее статичная).
Менять нужно 2 файла.
Во-первых \classes\actions\ActionBlog.class.php
Вандализируем метод EventShowTopic()В самом начале метода комментируем строки
$this->sMenuItemSelect='blog';
$this->sMenuItemSelect='log';
где-то после проверки на существование топика(и всякие там валидности). Лично я вставлял после строк:
* Если номер топика правильный но УРЛ блога косяный то корректируем его и перенаправляем на нужный адрес
*/
if ($sBlogUrl!='' and $oTopic->getBlog()->getUrl()!=$sBlogUrl) {
Router::Location($oTopic->getUrl());
}
Вставляем свитч, который чекает текущий выбранный элемент меню и делает соотв. метку:
switch($oTopic->getBlog()->getBlogId())
{
case '2': $this->sMenuItemSelect = 'meal'; break;
case '3': $this->sMenuItemSelect = 'communication'; break;
case '4': $this->sMenuItemSelect = 'job'; break;
case '5': $this->sMenuItemSelect = 'transport'; break;
case '6': $this->sMenuItemSelect = 'rest'; break;
case '7': $this->sMenuItemSelect = 'education'; break;
case '8': $this->sMenuItemSelect = 'health'; break;
case '9': $this->sMenuItemSelect = 'other'; break;
case '10': $this->sMenuItemSelect = 'public_utility'; break;
default: break;
}
где 2,3,4,5,6,7,8,9,10 — это АйДи ваших блогов в БД.
Параметры meal, communication, job — задаем по вкусу(я ставил идентичными УРЛ блогов).
Теперь спускаемся ниже в метод EventShowBlog()
После строк:
/**
* Меню
*/
$this->sMenuSubItemSelect=$sShowType;
$this->sMenuSubBlogUrl=$oBlog->getUrlFull();
Вставляем похожий код:
switch($oBlog->getId())
{
case '2': $this->sMenuItemSelect = 'meal'; break;
case '3': $this->sMenuItemSelect = 'communication'; break;
case '4': $this->sMenuItemSelect = 'job'; break;
case '5': $this->sMenuItemSelect = 'transport'; break;
case '6': $this->sMenuItemSelect = 'rest'; break;
case '7': $this->sMenuItemSelect = 'education'; break;
case '8': $this->sMenuItemSelect = 'health'; break;
case '9': $this->sMenuItemSelect = 'other'; break;
case '10': $this->sMenuItemSelect = 'public_utility'; break;
default: break;
}
Во-вторых \templates\skin\шаблончег\menu.blog.tpl
В нужном месте вставить что-то типо:<li {if $sMenuItemSelect=='meal'}class="active"{/if}>
Рубрики:
<a href="{cfg name='path.root.web'}/blog/meal/">Еда</a>
</li>
<li {if $sMenuItemSelect=='communication'}class="active"{/if}>
<a href="{cfg name='path.root.web'}/blog/communication/">Связь</a>
</li>
и так далее и так далее и так далее и так далее и так далее и так далее
1 комментарий