8Dle
Авторизация

Размещаем текст описания на страницах доп. полей

С тех пор как возникла возможность в DLE сделать из доп полей отличную перелинковку, в особенности для киносайтов, я все время пытался впихнуть туда текст. Кто не знает что за ссылки вот пример:
Размещаем текст описания на страницах доп. полей


В общем когда ты создаешь дополнительные поля и разрешает сделать это доп поле перекрестной гиперссылкой.
Как разместить текст описания на страницах доп. полей в DLE
То ты получаешь отменную функцию для перелинковки. Удобно пользователям, найти фильмы по годам, по актера или по жанру. В тоже время поисковики блуждают по сайту и радуются.

Эта функция добавляет много и много страниц.

Пример: http://site.org/xfsearch/2005/

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

Не буду о простом долго писать.
1. Открываем файл "templates.class.php " находится он по адресу "/engine/classes"

Находим в нем:
$this->copy_template = $this->template;
$this->template_parse_time += $this->get_real_time() - $time_before;


ВЫШЕ этого вставляем:


 if( strpos( $this->template, "{request=" ) !== false or strpos( $this->template, "[request=" ) !== false ) {        
        preg_match_all("#[\\{\\[]request=['\"](.+?)['\"]#is",$this->template,$matchs,PREG_PATTERN_ORDER);
        $matchs = ((isset($matchs[1]) and is_array($matchs[1]))?$matchs[1]:array());
        $matchs = array_unique($matchs);
        foreach($matchs as $match){
            $vmatch = explode('=',$match);
            $amatch = explode('->',$vmatch[0]);
            $value = $_REQUEST;
            foreach($amatch as $imatch)
                $value = (($value and isset($value[$imatch]))?$value[$imatch]:false);
            if((isset($vmatch[1]) and (is_array($value) and in_array($vmatch[1],$value) or $vmatch[1]==$value)) or (!isset($vmatch[1]) and $value)){
                $this->template = preg_replace ( "#\\{request=['\"]{$vmatch[0]}['\"]\\}#is", (is_array($value)?'array':$value), $this->template );
                $this->template = preg_replace ( "#\\[request=['\"]{$vmatch[0]}['\"]\\](.+?)\\[/request\\]#is", '\\1', $this->template );
                $this->template = preg_replace ( "#\\[request=['\"]{$vmatch[0]}={$vmatch[1]}['\"]\\](.+?)\\[/request\\]#is", '\\1', $this->template );
            } else {
                $this->template = preg_replace ( "#\\{request=['\"]{$vmatch[0]}['\"]\\}#is", '', $this->template );
                $this->template = preg_replace ( "#\\[request=['\"]{$vmatch[0]}['\"]\\](.+?)\\[/request\\]#is", '', $this->template );
                $this->template = preg_replace ( "#\\[request=['\"]{$vmatch[0]}={$vmatch[1]}['\"]\\](.+?)\\[/request\\]#is", '', $this->template );
            }
        }
    }
    if( strpos( $this->template, "{request}" ) !== false) {
        var_dump($_REQUEST);
        $this->template = str_replace('{request}', '', $this->template );
    }

Или скачайте в txt
123.zip [790 b] (cкачиваний: 70)

Сохраняем сайт и заливаем обратно на сервер с заменой.

2. Теперь открываем файл шаблона main.tpl
В месте где у вас должен быть текст, нужно вставить:
[aviable=xfsearch]
[request="xf=2014"]
Тут текст
 [/request]
[aviable]


Если вы хотите что бы текст был только на первой странице и не отображался на page страницах, то вам нужно вставить такой код:

[aviable=xfsearch]
 [page-count=1][request="xf=2014"]
Тут текст
 [/request][/page-count]
[aviable]

Жмите на Кнопу ниже, или подписывайтесь!


Читайте также
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Dle это движок который изначально проектировался для создания новостных сайтов, но по мере своего развития движка значительно расширил свою функциональность и стал универсальным средством разработки и сопровождения сайтов и блогов различной направленности и тематики. По сравнению с другими бесплатными (и некоторыми платными) CMS системами движок dle обладает довольно обширными возможности.

Авторизация