Хак Корректная обрезка короткой новости автоматически

Тема в разделе "DLE", создана пользователем E-body, 1 янв 2011.

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

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

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

    E-body

    Регистр.:
    6 сен 2007
    Сообщения:
    980
    Симпатии:
    315
    Требуется:
    Обрезать (корректно по целому слову соблюдая указанного количества символов) длинный текст в shortstory и если текст был укорочен то указывать в конце линк на полную новость.

    Решение:
    Сначало добавим bb код short.show.php (данный код будет работать только в шаблоне shortstory.tpl)
    PHP:
    // если короткая короче 145 знаков то линк не выводит, а пусто ""
            
    if ( (strlen$row['short_story'] ) < 145)) 
            
    $tpl->set_block"'\\[fullz\\](.*?)\\[/fullz\\]'si""" );
    // но если она больше то выводим линк на полну через бб код [fullz]
                    
    else {
                
    $tpl->set'[fullz]'"<span><a {$go_page}href=\"" $full_link "\"><span>" );
            
    $tpl->set'[/fullz]'"</a></span>" );
            }
    В shortstory.tpl добавить bb код [fullz]Далее...[/fullz].
    Не стал трогать уже имещийся [full-link]
    Стоит отметиь что это обрезка по словам, если у вас в начале текса присутствует оформление ббкодами то могут быть некорректности обрезки.
    п.с. От версии и типа лицензии движка не зависит.

    /showthread.php?t=154677 обрезает символы не соблюдая целостность слов.
     
  2. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.068
    Симпатии:
    197
    удаляете все теги из новости, а потом режите ее как вам удобно...
     
  3. surfer7

    surfer7 Создатель

    Регистр.:
    20 дек 2007
    Сообщения:
    31
    Симпатии:
    1
    [fullz] я так понимаю, нужно заменить на [full-story] ?
     
  4. MSW

    MSW

    Регистр.:
    27 авг 2007
    Сообщения:
    491
    Симпатии:
    408
    обрезка по словам:
    PHP:
    function max_word($text$counttext 50$sep ' ') {
        
    $words split($sep$text);
        if(
    count($words)>$counttext$text join($separray_slice($words0$counttext));
        return 
    $text;
    }
    вызывать так:
    PHP:
    $short max_word(strip_tags($row['short_story']), 30);
    ну а там куда надо и как надо уже подстраиваете.
     
  5. rosty2008

    rosty2008 Постоялец

    Регистр.:
    7 авг 2008
    Сообщения:
    52
    Симпатии:
    9
    а таким способом и все новости обрежуться, даже которые были уже на сайте?
     
  6. E-body

    E-body

    Регистр.:
    6 сен 2007
    Сообщения:
    980
    Симпатии:
    315
    Укоротит новости старые и добавлаемые. (не затрагивая то что есть в дб)
    -
    Можно обрезку текста применить в добавление новостей (для короткой новости), чтоб лишнего в дб не было.
     
  7. LeXiKoN

    LeXiKoN Постоялец

    Регистр.:
    11 окт 2008
    Сообщения:
    54
    Симпатии:
    8
    а может кто подсказать? как сделать чтобы выводился только плеер видео! из новости...
    новости выводятся тэгом {custom}
    как сделать чтоб в {short-story} было только код плеера и все?
    есть вот такой код
    Код:
    preg_replace( "#<!--dle_video_begin(.+?)<!--dle_video_end-->#is", "", $row['short_story'] );
    вообщем вырезает из новости видео! как сделать чтобы вырезало все кроме видео :D
     
Статус темы:
Закрыта.