Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Как вывести в short-story текст из полной новости?

Тема в разделе "Вопросы- ответы", создана пользователем hostlime, 3 авг 2016.

03.08.16 в 23:20
10.06.24 в 11:22
22
5.931
1
  1. TopicStarter Overlay
    hostlime

    hostlime Бывалый

    Регистрация:
    10 фев 2016
    Сообщения:
    463
    Лучших ответов:
    0
    Рейтинги:
    +51 / 0 / -0
    Уверен вопрос заезженный, но все же! Как вывести в short-story текст из полного описания?
    грубо говоря нужно что бы работало это: {full-story limit=200} o_O
     
    • Нравится Нравится x 1
  2. Serhii

    Забанен

    Регистрация:
    5 ноя 2015
    Сообщения:
    1.867
    Лучших ответов:
    0
    Рейтинги:
    +545 / 0 / -0
    А фулл стори не вместе пишеться?
     
  3. fourdeltaonex

    fourdeltaonex Зелёный

    Регистрация:
    27 янв 2016
    Сообщения:
    22
    Лучших ответов:
    0
    Рейтинги:
    +8 / 0 / -0
    Открыть файл engine/engine.php
    Найти в SQL запросе (примерно 13 шт.)
    Код:
    CHAR_LENGTH(p.full_story) as full_story, p.xfields,
    Заменить на (привести в такой вид)
    Код:
    CHAR_LENGTH(p.full_story) as full_story, p.full_story, p.xfields,
    Открыть файл engine/modules/show.short.php
    Найти
    Код:
     
    if( isset($view_template) AND $view_template == "rss" ) {
    $tpl->set( '{rsslink}', $full_link );
    Добавить выше
    Код:
    $row['full_story'] = stripslashes($row['full_story']);
    // out this tags "{full-story limit=x}"
    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'] );
    } else {
    $tpl->set( '{full-story}', $row['full_story'] );
    }
    // out this tags "{full-story limit=x}"
    В шаблоне shortstory.tpl использовать следующие теги:
    Код:
    {full-story}
    {full-story limit="200"}
    Очистить Кеш, Готово!
     
    • Нравится Нравится x 2
    • Лучший Лучший x 1
  4. TopicStarter Overlay
    hostlime

    hostlime Бывалый

    Регистрация:
    10 фев 2016
    Сообщения:
    463
    Лучших ответов:
    0
    Рейтинги:
    +51 / 0 / -0
    Спасибо, очень выручил))) это будет на 11-й версии работать?
     
  5. fourdeltaonex

    fourdeltaonex Зелёный

    Регистрация:
    27 янв 2016
    Сообщения:
    22
    Лучших ответов:
    0
    Рейтинги:
    +8 / 0 / -0
    да
     
  6. w00t

    Забанен

    Регистрация:
    18 июл 2016
    Сообщения:
    28
    Лучших ответов:
    0
    Рейтинги:
    +5 / 0 / -0
    Для 11 версии это не работает. Другие варианты, найденные в интернет, работают до версии 10+
    Возможно, кто-либо сможет подсказать правильное решение для текущей актуальной версии?
     
  7. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.316
    Лучших ответов:
    31
    Рейтинги:
    +3.908 / 98 / -0
    Открыть /engine/engine.php найти в SQL запросе (примерно 13 шт.)
    Код:
    CHAR_LENGTH(p.full_story) as full_story
    Заменить на (привести в такой вид)
    Код:
    p.full_story
    Открыть /engine/modules/show.short.php найти
    PHP:
    if ( preg_match"#\\{short-story limit=['\"](.+?)['\"]\\}#i"$tpl->copy_template$matches ) ) {
    выше вставить :
    PHP:
    $row['full_story'] = stripslashes($row['full_story']);
    $tpl->set'{full-story}'$row['full_story'] );

    if ( 
    preg_match"#\\{full-story limit=['\"](.+?)['\"]\\}#i"$tpl->copy_template$matches ) ) {
        
    $countintval($matches[1]);
       
        
    $row['full_story'] = preg_replace"#<!--TBegin(.+?)<!--TEnd-->#is"""$row['full_story'] );
        
    $row['full_story'] = preg_replace"#<!--MBegin(.+?)<!--MEnd-->#is"""$row['full_story'] );
        
    $row['full_story'] = preg_replace"'\[attachment=(.*?)\]'si"""$row['full_story'] );
        
    $row['full_story'] = preg_replace "#\[hide\](.+?)\[/hide\]#ims"""$row['full_story'] );
           
        
    $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'] );

    }
    теги :
    Код:
    {full-story}
    {full-story limit="200"}
     
    • Нравится Нравится x 3
  8. fourdeltaonex

    fourdeltaonex Зелёный

    Регистрация:
    27 янв 2016
    Сообщения:
    22
    Лучших ответов:
    0
    Рейтинги:
    +8 / 0 / -0
    не знаю как устанавливали , у меня лично на 11 версии работает.
    чистите кеш!
     
  9. w00t

    Забанен

    Регистрация:
    18 июл 2016
    Сообщения:
    28
    Лучших ответов:
    0
    Рейтинги:
    +5 / 0 / -0
    Воспользовался вариантом @Gameer - все отлично, спасибо!
    Возможно ли в этой ветке спросить совета еще про кастом? В шортстори теперь нормально выводит фуллстори, а custom по-прежнему никак. Просто решения, найденные в интернет не актуальны были, а самостоятельно не получается еще.
     
  10. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.316
    Лучших ответов:
    31
    Рейтинги:
    +3.908 / 98 / -0
    Открыть /engine/modules/functions.php найти в SQL запросе
    Код:
    CHAR_LENGTH(p.full_story) as full_story
    Заменить на (привести в такой вид)
    Код:
    p.full_story
    Открыть /engine/modules/show.custom.php найти
    PHP:
    if ( preg_match"#\\{short-story limit=['\"](.+?)['\"]\\}#i"$tpl->copy_template$matches ) ) {
    выше вставить :
    PHP:
    $row['full_story'] = stripslashes($row['full_story']);
    $tpl->set'{full-story}'$row['full_story'] );

    if ( 
    preg_match"#\\{full-story limit=['\"](.+?)['\"]\\}#i"$tpl->copy_template$matches ) ) {
     
    $countintval($matches[1]);
     
     
    $row['full_story'] = preg_replace"#<!--TBegin(.+?)<!--TEnd-->#is"""$row['full_story'] );
     
    $row['full_story'] = preg_replace"#<!--MBegin(.+?)<!--MEnd-->#is"""$row['full_story'] );
     
    $row['full_story'] = preg_replace"'\[attachment=(.*?)\]'si"""$row['full_story'] );
     
    $row['full_story'] = preg_replace "#\[hide\](.+?)\[/hide\]#ims"""$row['full_story'] );
     
     
    $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'] );

    }
    теги :
    Код:
    {full-story}
    {full-story limit="200"}
     
    • Нравится Нравится x 1
  11. nginx

    nginx Новичок

    Регистрация:
    4 авг 2016
    Сообщения:
    32
    Лучших ответов:
    0
    Рейтинги:
    +8 / 0 / -0
    @Gameer, спасибо за подсказки! - тоже интересовала эта тема.
    Есть еще такой очень насущный вопрос, можно ли как-нибудь убрать дубли актеров и режиссеров, которые парсятся из кп и вставляются из категорий, пример на скрине - нужно чтобы "Джейсон Стетхем" выводился 1 раз ссылкой из категории.
    Заранее спасибо!
    sthm.png
     
  12. w00t

    Забанен

    Регистрация:
    18 июл 2016
    Сообщения:
    28
    Лучших ответов:
    0
    Рейтинги:
    +5 / 0 / -0
    Однако, что-то я навертел.
    Вместо short-story по советам сделал вывод full-story в кастом и в шортстори. В этом плане все отлично.
    Пытаюсь копать дальше, потому что про результаты то поиска забыл... Если в searchresult.tpl вместо short-story прописать full-story (да, у меня так, шорстори - всего лишь картинка, а в поле фуллстори - весь текст), то появляются какие-то три цифры вместо полного текста новости.

    Пробовал копнуть сюда /engine/ajax/search.php
    Менял вот это участок кода
    Код:
    $db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND (short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%' OR title LIKE '%{$query}%') ORDER by date DESC LIMIT 5");
    На этот
    Код:
    $db->query("SELECT id, full_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND (short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%' OR title LIKE '%{$query}%') ORDER by date DESC LIMIT 5");
    Затем этот
    Код:
    if( dle_strlen( $row['short_story'], $config['charset'] ) > 150 ) $description = dle_substr( $row['short_story'], 0, 150, $config['charset'] ) . " ...";
    else $description = $row['short_story'];
    На это
    Код:
    if( dle_strlen( $row['full_story'], $config['charset'] ) > 150 ) $description = dle_substr( $row['full_story'], 0, 150, $config['charset'] ) . " ...";
    else $description = $row['full_story'];
    Но не помогает. В результатах поиска по-прежнему не выводится полная новость. Ну а если в searchresult.tpl прописать не шорт а фуллстори, то опять три цифры выводится, в каждой найденной новости. Что-то где-то не то, не догоняю где.
     
  13. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.316
    Лучших ответов:
    31
    Рейтинги:
    +3.908 / 98 / -0
    /engine/modules/search.php
     
    • Нравится Нравится x 1
  14. w00t

    Забанен

    Регистрация:
    18 июл 2016
    Сообщения:
    28
    Лучших ответов:
    0
    Рейтинги:
    +5 / 0 / -0
    Понял, спасибо. На всякий случай, вдруг кому-то пригодится, что поменял

    В файле
    Код:
    CHAR_LENGTH(" . PREFIX . "_post.full_story) as full_story, 
    на
    Код:
    CHAR_LENGTH(" . PREFIX . "_post.full_story) as full_story, " . PREFIX . "_post.full_story as full_story, 
    Теперь тег фулл-стори нормально заработал в searchresult.tpl
     
  15. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.316
    Лучших ответов:
    31
    Рейтинги:
    +3.908 / 98 / -0
    на
    Код:
    " . PREFIX . "_post.full_story as full_story, 
     
    • Нравится Нравится x 1
  16. djusel

    djusel Бывалый

    Регистрация:
    12 окт 2015
    Сообщения:
    423
    Лучших ответов:
    0
    Рейтинги:
    +50 / 0 / -0
    Не помогает этот вариант, двиг 10.6
     
  17. djusel

    djusel Бывалый

    Регистрация:
    12 окт 2015
    Сообщения:
    423
    Лучших ответов:
    0
    Рейтинги:
    +50 / 0 / -0
    @Gameer, помоги с выводом в результатах поиска
     
  18. aeneas

    Забанен

    Регистрация:
    12 мар 2016
    Сообщения:
    11.489
    Лучших ответов:
    10
    Рейтинги:
    +4.043 / 208 / -0
    обновляться так то пора давно уже )

    блин тоже надо а страшно )
     
  19. djusel

    djusel Бывалый

    Регистрация:
    12 окт 2015
    Сообщения:
    423
    Лучших ответов:
    0
    Рейтинги:
    +50 / 0 / -0
    У меня лицензия. Обновиться будет дорого, год прошел...
     
  20. Forian

    Forian Местный

    Регистрация:
    24 окт 2019
    Сообщения:
    1.374
    Лучших ответов:
    3
    Рейтинги:
    +318 / 45 / -0
    спасибо, полезно
     
    #20 Forian, 10 апр 2020
    Последнее редактирование: 10 апр 2020
Похожие темы
  1. Kinoblud
    Ответов:
    4
    Просмотров:
    880
  2. geony
    Ответов:
    3
    Просмотров:
    773
  3. Terras
    Ответов:
    11
    Просмотров:
    909
Загрузка...
Яндекс.Метрика