Помощь {full-story} в разных шаблонах

Тема в разделе "DLE", создана пользователем Denis_Pi, 21 окт 2013.

Информация :
Актуальная версия DataLife Engine 12.0
( Final Release v.12.0 | Скачать DataLife Engine | Скачать 12.0 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.3 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. Denis_Pi

    Denis_Pi Art сreator

    Заблокирован
    Регистр.:
    8 май 2012
    Сообщения:
    398
    Симпатии:
    214
    Нужно выводить текст из {full-story} в любом шаблоне...
    например в шаблоне модуля...

    например : вот здесь сделано для старой версии движка и для шаблона short, а мне надо для актуальной версии и для всех шаблонов
     
    Последнее редактирование: 21 окт 2013
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.211
    Симпатии:
    2.239
    Чтобы в теге custom работал тег {full-story}, в теории, открыть /engine/modules/show.custom.php, найти:
    PHP:
    $tpl->compile'content' );
    ВЫШЕ вставить:
    PHP:
    Тут был не верный код =)
    Актуально для ДЛЕ 10.0

    Использовать тег одного шаблона в другом невозможно... Это как пытаться вывести переменную в другом, которые никак не связаны.
    Каждый тег имеет область видимости. Для других шаблонов он не определён. Объясню подробно.

    Представим главную страницу и шаблон main.tpl. Мы вставляет {full-story}. Всё замечательно, но что ему выводить? На странице 10 статей из разных категорий никак не связанных друг с другом. А если мы зайдём на страницу "обратная связь" - что там выводить? Там ни одной статьи нет и даже запросов нету в базу со статьями.

    Посему либо custom, либо fullstory.tpl.
     
    Последнее редактирование: 21 окт 2013
    Denis_Pi нравится это.
  3. Denis_Pi

    Denis_Pi Art сreator

    Заблокирован
    Регистр.:
    8 май 2012
    Сообщения:
    398
    Симпатии:
    214
    не работает,
    выводит только цифры "849" - к каждой новости разная,
    я так понимаю это id новости из базы..
     
  4. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.211
    Симпатии:
    2.239
    Багфикс... Целка дура, в чём убеждаюсь который раз... Экономия 2 кб памяти и нежелание переименовать переменную приводит вот к таким результатам...
    /engine/modules/function.php, ищем:
    PHP:
        $sql_select "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " PREFIX "_post p LEFT JOIN " PREFIX "_post_extras e ON (p.id=e.news_id)";
    Меняем на:
    PHP:
        $sql_select "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.full_story as full__story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " PREFIX "_post p LEFT JOIN " PREFIX "_post_extras e ON (p.id=e.news_id)";
    /engine/modules/show.custom.php ищем:
    PHP:
    $tpl->compile'content' );
    Вставляем:
    PHP:
        if ($smartphone_detected) {

            if (!
    $config['allow_smart_format']) {

                    
    $row['full__story'] = strip_tags$row['full__story'], '<p><br><a>' );

            } else {


                if ( !
    $config['allow_smart_images'] ) {
        
                    
    $row['full__story'] = preg_replace"#<!--TBegin-->(.+?)<!--TEnd-->#is"""$row['full__story'] );
                    
    $row['full__story'] = preg_replace"#<img(.+?)>#is"""$row['full__story'] );
        
                }
        
                if ( !
    $config['allow_smart_video'] ) {
        
                    
    $row['full__story'] = preg_replace"#<!--dle_video_begin(.+?)<!--dle_video_end-->#is"""$row['full__story'] );
                    
    $row['full__story'] = preg_replace"#<!--dle_audio_begin(.+?)<!--dle_audio_end-->#is"""$row['full__story'] );
        
                }

            }

        }

        
    $row['full__story'] = stripslashes$row['full__story'] );

        if( 
    $user_group[$member_id['user_group']]['allow_hide'] ) $row['full__story'] = str_ireplace"[hide]"""str_ireplace"[/hide]"""$row['full__story']) );
        else 
    $row['full__story'] = preg_replace "#\[hide\](.+?)\[/hide\]#ims""<div class=\"quote\">" $lang['news_regus'] . "</div>"$row['full__story'] );

        if (
    stripos $tpl->copy_template"{image-" ) !== false) {

            
    $images = array();
            
    preg_match_all('/(img|src)=("|\')[^"\'>]+/i'$row['full__story'], $media);
            
    $data=preg_replace('/(img|src)("|\'|="|=\')(.*)/i',"$3",$media[0]);

            foreach(
    $data as $url) {
                
    $info pathinfo($url);
                if (isset(
    $info['extension'])) {
                    if (
    $info['filename'] == "spoiler-plus" OR $info['filename'] == "spoiler-plus" ) continue;
                    
    $info['extension'] = strtolower($info['extension']);
                    if ((
    $info['extension'] == 'jpg') || ($info['extension'] == 'jpeg') || ($info['extension'] == 'gif') || ($info['extension'] == 'png')) array_push($images$url);
                }
            }

            if ( 
    count($images) ) {
                
    $i=0;
                foreach(
    $images as $url) {
                    
    $i++;
                    
    $tpl->copy_template str_replace'{image-'.$i.'}'$url$tpl->copy_template );
                    
    $tpl->copy_template str_replace'[image-'.$i.']'""$tpl->copy_template );
                    
    $tpl->copy_template str_replace'[/image-'.$i.']'""$tpl->copy_template );
                }

            }

            
    $tpl->copy_template preg_replace"#\[image-(.+?)\](.+?)\[/image-(.+?)\]#is"""$tpl->copy_template );
            
    $tpl->copy_template preg_replace"#\\{image-(.+?)\\}#i""{THEME}/dleimages/no_image.jpg"$tpl->copy_template );

        }

        
    $tpl->set'{full-story}'$row['full__story'] );

        if ( 
    preg_match"#\\{full-story limit=['\"](.+?)['\"]\\}#i"$tpl->copy_template$matches ) ) {
            
    $countintval($matches[1]);
        
            
    $row['full__story'] = str_replace"</p><p>"" "$row['full__story'] );
            
    $row['full__story'] = strip_tags$row['full__story'], "<br>" );
            
    $row['full__story'] = trim(str_replace"<br>"" "str_replace"<br />"" "str_replace"\n"" "str_replace"\r"""$row['full__story'] ) ) ) ));
        
            if( 
    $count AND dle_strlen$row['full__story'], $config['charset'] ) > $count ) {
                            
                
    $row['full__story'] = dle_substr$row['full__story'], 0$count$config['charset'] );
                            
                if( (
    $temp_dmax dle_strrpos$row['full__story'], ' '$config['charset'] )) ) $row['full__story'] = dle_substr$row['full__story'], 0$temp_dmax$config['charset'] );
                        
            }
        
            
    $tpl->set$matches[0], $row['full__story']);
        
        }
    Как-то так...
     
    Denis_Pi нравится это.