Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Использовать {short-story} несколько раз в одном tpl файле

Использовать {short-story} несколько раз в одном tpl файле


     03.10.2013    Общие вопросы по PHP    1813

вопрос
Здравствуйте уважаемые!
Очень интересует такой вопрос:
Как использовать 2 раза тег {short-story} в одном tpl файле.

Поясняю ситуацию

shortstory.tpl:

<div class="view-list">
{include file="table.tpl"}        
</div>
<div class="view-grid">
{include file="grid.tpl"}
</div>


table.tpl:
 
{short-story limit="400"}


grid.tpl:
 
{short-story limit="400"}



На выводе получаю только первый раз сам shortstory а на втором просто тег SMARTY {short-story}
Пробовал даже сделать один с лимитом а другой без, не помогло
Версия 10.

Ответил: cybernatic


Решение нашел сам может кому и пригодится если вдруг вы будете использовать несколько раз тег short-story
в файле engine/modules/show.short.php

Ищем

            $tpl->set( '{title}', $row['title'] );


и добавляем после него

        $textshortstory = $row['short_story'];
            
$tpl->set( '{short2}', $textshortstory );

if ( preg_match( "#\\{short2 limit=['\"](.+?)['\"]\\}#i", $tpl->copy_template, $matcheZ ) ) {
                $cxzcz= intval($matcheZ[1]);
    
                $row['short_story'] = str_replace( "</p><p>", " ", $textshortstory );
                $row['short_story'] = strip_tags($textshortstory,"<br>" );
                $row['short_story'] = trim(str_replace( "<br>", " ", str_replace( "<br />", " ", str_replace( "\n", " ", str_replace( "\r", "", $textshortstory ) ) ) ));
    
                if( $count AND dle_strlen($textshortstory, $config['charset'] ) > $cxzcz ) {
                        
                    $row['short_story'] = dle_substr( $textshortstory, 0, $cxzcz, $config['charset'] );
                        
                    if( ($temp_dmaxaasda = dle_strrpos( $textshortstory, ' ', $config['charset'] )) ) $textshortstory = dle_substr( $textshortstory, 0, $temp_dmaxaasda, $config['charset'] );
                    
                }
                $tpl->set( $matcheZ[0], $row['short_story'] );
    
            }


Теперь можно пользоваться тегом {short2} для вывода инф еще раз

Комментарии пользователей (12)

dj-avtosh
39

1479 | 390

dj-avtosh - 3 октября 2013 21:13 - шашлычник

Скажите, а при чем тут тег SMARTY?

skype: elhan.isaev

cybernatic
12

124 | 125

cybernatic - 4 октября 2013 12:05 - Эксперт

Если вы хотели этим сообщением дать понят что вы "УМНЫЙ" то да у вас это получилось

dj-avtosh
39

1479 | 390

dj-avtosh - 4 октября 2013 12:19 - шашлычник

Я в отличии от "умных" тут вопросы не задаю, а отвечаю на них. На Ваши тактично отвечать не буду.

skype: elhan.isaev

cybernatic
12

124 | 125

cybernatic - 4 октября 2013 12:21 - Эксперт

Ваше право =) Не имею никаких к Вам притензий насчет того что будите ли Вы отвечать или нет =) Флаг Вам в руки и добра =)

Attyla
72

243 | 128

Attyla - 4 октября 2013 12:12 - Юзер

А без include, не работает?!

cybernatic
12

124 | 125

cybernatic - 4 октября 2013 12:13 - Эксперт

Там нет инклюда Вам нужно всего лишь 1 файл поправить

dj-avtosh
39

1479 | 390

dj-avtosh - 4 октября 2013 12:22 - шашлычник

А кстати решение идиотское. Достаточно было в классе шаблонизатора добавить модификатор.

skype: elhan.isaev

cybernatic
12

124 | 125

cybernatic - 4 октября 2013 12:23 - Эксперт

идиотское или нет но факт в том что работает =)
Задача решена, всем спасибо, все свободны =)

dj-avtosh
39

1479 | 390

dj-avtosh - 4 октября 2013 12:27 - шашлычник

Гавнокод рулит

skype: elhan.isaev

cybernatic
12

124 | 125

cybernatic - 4 октября 2013 12:28 - Эксперт

ну Вам виднее с Вашим то опытом такого же кодирования =)

dj-avtosh
39

1479 | 390

dj-avtosh - 4 октября 2013 12:33 - шашлычник

Ваш гкод в ответе. Я такого копипаста никогда в жизни не делал бы.

skype: elhan.isaev

cybernatic
12

124 | 125

cybernatic - 4 октября 2013 13:24 - Эксперт

Это Ваше дело что делать и что не делать =) свобода слова и действий гарантированна конституцией той страны где Вы находитесь и проживаете

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы