О том, как я блоги в меню выводил и ЛС ломал

Скорее всего этот вариант не самый лучший, но…
Задача состоит в том, чтобы из меню Блогов убрать персональные/коллективные
и вывести список определенных блогов сайта(подразумевается, что сайт не имеет персональных блогов, а еще тематика сайта очень строгая, более-менее статичная).

Менять нужно 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>

и так далее и так далее и так далее и так далее и так далее и так далее


В третьих

Нужно открыть языковой файл, определить там все буквы, которые вы написали в предыдущем пункте(Еда, Связь, Сиськи, Кирпич), а затем в пункте номер 2 навести красоту.

В четвертых

спасибо господину netlanc за плагин Disabling personal blogs.

1 комментарий

avatar
среда обитания?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.