Помощь Отображение модуля только на главной

LEXAlForpostl

Мой дом здесь!
Регистрация
21 Май 2008
Сообщения
766
Реакции
228
Здравствуйте.
Подскажите, пожалуйста, как сделать так, чтобы модуль в сайдбаре отображался только на главной странице.
 
aviable раздел в котором будет выводится запрашиваемые новости, может принимать следующие значения:

global - во всех разделах
main - на главной странице
date - при просмотре новостей за определенные даты
cat - при просмотре категории
showfull - при просмотре полной новости
search - при просмотре результатов поиска
userinfo - при просмотре профиля
register - при регистрации
stats - при просмотре статистики
pm - при просмотре персональных сообщений
feedback - при просмотре обратной связи
favorites - при просмотре закладок
newposts - при просмотре новых сообщений
addnews - при добавлении новости
lastcomments - при просмотре последних комментариев
static - при просмотре статических страниц
catalog - при просмотре каталога страниц
alltags - при просмотре облака тегов
tags - при просмотре новостей из облака тегов

Вы можете комбинировать разделы при помощи "|", например aviable="userinfo|register|main" будет выводить ваши новости на главной, при регистрации и при просмотре профиля пользователя.
from номер новости с которой начнется вывод

limit сколько новостей будет выведено

cache принимает значения yes или no - устанавливает кешировать вывод или нет, рекомендуется кешировать для снижения нагрузки.

Внимание необходимо указывать все параметры обязательны а также необходимо соблюдать их порядок.

Помните что каждое использование этого тега создает дополнительную нагрузку на базу данных, т.к. идет дополнительная выборка, поэтому используйте ее с умом если необходимо экономить на ресурсах.

Тег [aviable=раздел]текст[/aviable], выводит текст заключенный в теги если просматривается указанный раздел сайта:

Тег принимает параметры аналогичные параметру aviable тега {custom}.

Для примера [aviable=main] текст [/aviable] будет выводить текст заключенный на главной. Bы можете задать также тег [not aviable=main] текст [/aviable]
который полностью противоположен тегу aviable и выводить текст везде кроме перечисленных разделов
 
Для примера [available=main] текст [/available] будет выводить текст заключенный на главной. Bы можете задать также тег [not available=main] текст [/available]
Нету в DLE тега available, есть только aviable. А если использовать [aviable=main]текст[/aviable], то текст будет отображаться даже на странице два, три и т.д.

По сему предлагаю свой хак:
Открываем engine/classes/templates.class.php и ищем код:
PHP:
$this->template = file_get_contents( $this->dir . DIRECTORY_SEPARATOR . $tpl_name );
После него вставляем:
PHP:
if (strpos ( $this->template, "[mainpage]" ) !== false) {
            if( $_SERVER['REQUEST_URI'] == '/index.php' OR $_SERVER['REQUEST_URI']== '/' )
                $this->template = preg_replace ( "#\\[mainpage\\](.*?)\\[/mainpage\\]#is", "\\1", $this->template );
            else
                $this->template = preg_replace ( "#\\[mainpage\\](.*?)\\[/mainpage\\]#is", '', $this->template );
        }
и ищем код:
PHP:
$template = file_get_contents( $this->dir . DIRECTORY_SEPARATOR . $tpl_name );
После него вставляем:
PHP:
if (strpos ( $template, "[mainpage]" ) !== false) {
            if( $_SERVER['REQUEST_URI'] == '/index.php' OR $_SERVER['REQUEST_URI']== '/' )
                $template = preg_replace ( "#\\[mainpage\\](.*?)\\[/mainpage\\]#is", "\\1", $template );
            else
                $template = preg_replace ( "#\\[mainpage\\](.*?)\\[/mainpage\\]#is", '', $template );
        }

После, в любом .tpl Файле шаблона вставляеш теги:
[mainpage]текст[/mainpage]
 
available - aviable вечно путаю :)
Список всех разделов -> Рекламные материалы -> Добавить баннер (баннер, можно и текст, без разницы, если баннер просто надо теги хтмл знать и всё) и ставите галку "Показывать только на главной (несквозной баннер)" -> Сохранить. После этого вставляете в main тег рекламы, типа {banner_header}. :D Вот таким образом отображается только и только на главном.
 
Нету в DLE тега available, есть только aviable. А если использовать [aviable=main]текст[/aviable], то текст будет отображаться даже на странице два, три и т.д.

По сему предлагаю свой хак:
Открываем engine/classes/templates.class.php и ищем код:
PHP:
$this->template = file_get_contents( $this->dir . DIRECTORY_SEPARATOR . $tpl_name );
После него вставляем:
PHP:
if (strpos ( $this->template, "[mainpage]" ) !== false) {
            if( $_SERVER['REQUEST_URI'] == '/index.php' OR $_SERVER['REQUEST_URI']== '/' )
                $this->template = preg_replace ( "#\\[mainpage\\](.*?)\\[/mainpage\\]#is", "\\1", $this->template );
            else
                $this->template = preg_replace ( "#\\[mainpage\\](.*?)\\[/mainpage\\]#is", '', $this->template );
        }
и ищем код:
PHP:
$template = file_get_contents( $this->dir . DIRECTORY_SEPARATOR . $tpl_name );
После него вставляем:
PHP:
if (strpos ( $template, "[mainpage]" ) !== false) {
            if( $_SERVER['REQUEST_URI'] == '/index.php' OR $_SERVER['REQUEST_URI']== '/' )
                $template = preg_replace ( "#\\[mainpage\\](.*?)\\[/mainpage\\]#is", "\\1", $template );
            else
                $template = preg_replace ( "#\\[mainpage\\](.*?)\\[/mainpage\\]#is", '', $template );
        }

После, в любом .tpl Файле шаблона вставляеш теги:
[mainpage]текст[/mainpage]

Зачет! только в DLE 10.1 немного методом тыка пришлось т.к. templates.class.php изменен - но в итоге получилось! Спасибо!
Только вот вопрос почему [aviable=main] с {custom} [/aviable] у меня не работал
 
Зачет! только в DLE 10.1 немного методом тыка пришлось т.к. templates.class.php изменен - но в итоге получилось! Спасибо!
Только вот вопрос почему [aviable=main] с {custom} [/aviable] у меня не работал
а что мешало использовать стандартный феункционал который делает тоже самое...?

[page-count=1,2,3] текст [/page-count]



Будет выводить текст заключенный в них, если пользователь находится на определенной по номеру страницы в навигации по новостям, независимо от раздела сайта, где 1,2,3 это номера страниц в навигации. Данный тег позволит очень гибко настроить вывод той или иной информации, на определенной странице и полезен для информационных блоков и рекламы. Вы можете использовать данный тег совместно с другими, опеределяющими разделы сайта и категории.
 
а что мешало использовать стандартный феункционал который делает тоже самое...?
задача была выводить блоки только на главной

[aviable=main] - не работал
{custom с параметром aviable=main } - тоже не работал

версия двигателя 10.1

возможно не выводил блоки из за того что принудительно убрал из url id новостей... это мои догадки... может баг при нуле
 
droni4, слабо:
Код:
[page-count=1][aviable=main] текст [/aviable][/page-count]
 
Мне необходимо к конкретной статической странице показать необходимый div со скриптом, который будет указан в шаблоне main.
Как сделать?
Внутрь самой статической странице отобразить данный скрипт мне не подходит.

Версия DLE 10.2
 
djav, нет, документацию в этой стране читать не принято...
[static=имя страницы] текст [/static]

будет выводить текст заключенный в теги, если посетитель просматривает статическую страницу с указанным именем. Допускается также перечесление страниц в теге через запятую. Например [static=test1,test2,test3] текст [/static] будет выводить текст на страницах test1, test2 и test3

[not-static=имя страницы] текст [/not-static]

будет выводить текст заключенный в теги, если посетитель не просматривает статическую страницу с указанным именем. Допускается также перечесление страниц в теге через запятую.
 
Назад
Сверху