• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

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

Denis_Pi

Art сreator
Заблокирован
Регистрация
8 Май 2012
Сообщения
405
Реакции
240
  • Автор темы
  • Заблокирован
  • #1
Нужно выводить текст из {full-story} в любом шаблоне...
например в шаблоне модуля...

например : Для просмотра ссылки Войди или Зарегистрируйся сделано для старой версии движка и для шаблона short, а мне надо для актуальной версии и для всех шаблонов
 
Последнее редактирование:
Чтобы в теге custom работал тег {full-story}, в теории, открыть /engine/modules/show.custom.php, найти:
PHP:
$tpl->compile( 'content' );
ВЫШЕ вставить:
PHP:
Тут был не верный код =)
Актуально для ДЛЕ 10.0

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

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

Посему либо custom, либо fullstory.tpl.
 
Последнее редактирование:
  • Автор темы
  • Заблокирован
  • #3
не работает,
выводит только цифры "849" - к каждой новости разная,
я так понимаю это id новости из базы..
 
Багфикс... Целка дура, в чём убеждаюсь который раз... Экономия 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 ) ) {
        $count= intval($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']);
    
    }

Как-то так...
 
Назад
Сверху