Хак Количество символов {title} в короткой новости

Тема в разделе "DLE", создана пользователем TAX[I], 31 дек 2010.

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

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

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

    TAX[I]

    Регистр.:
    21 окт 2008
    Сообщения:
    175
    Симпатии:
    28
    Здравствуйте!
    Хочу сделать, чтобы в короткой новости, {title} выводился до определенного кол-ва символов (например 20 символов), после чего ставилось "..." (Но это лишь тогда, когда заголовок дествительно превышает 20 символов, если же меньше или равен 20, то "..." не ставиться)

    Вот я пробывал делать в show.short.php:

    PHP:
    $tpl->set'{title}'stripslashes$row['title'] ) );
    заменил на:

    PHP:
    $tpl->set'{title}'stripslashessubstr($row["title"],0,20)."..." ) ); 
    Все работает прекрасно, но не удовлетворяет вот этому: "если же меньше или равен 20, то "..." не ставиться"
    т.е. в любом случае в данный момент ставит "..."

    Помогите доделать пожалуйста :)
     
  2. eshkin

    eshkin

    Регистр.:
    13 апр 2006
    Сообщения:
    598
    Симпатии:
    256
    чуть чуть терпения) http://www.php.su/learnphp/cs/?co там нужная вам конструкция во втором примере висит) иф $row["title"] больше 20, то обрезать, если меньше ... можно наростить =)
     
  3. GIwild

    GIwild Постоялец

    Регистр.:
    6 май 2006
    Сообщения:
    116
    Симпатии:
    6
    Кто подскажет решение для DLE 9.5
    есть ли решение обрезания заголовка новости с помощью тега
    Код:
    {custom category="2" template="хххх" aviable="main" from="0" limit="5" cache="yes"}
    Буду признателен если выложите все решения для обрезания короткой новости в DLE 9.5
    Всем за ранее спасибо!
     
  4. GIwild

    GIwild Постоялец

    Регистр.:
    6 май 2006
    Сообщения:
    116
    Симпатии:
    6
    Было когда то такое решение, но сейчас попробовал на 9.5 не работает
    Код:
    1. Открыть index.php
    ---------------------
    #найти
     
    if (strpos ( $tpl->copy_template, "{custom" ) !== false) {
        $tpl->copy_template = preg_replace ( "#\\{custom category=['\"](.+?)['\"] template=['\"](.+?)['\"] aviable=['\"](.+?)['\"] from=['\"](.+?)['\"] limit=['\"](.+?)['\"] cache=['\"](.+?)['\"]\\}#ies", "custom_print('\\1', '\\2', '\\3', '\\4', '\\5', '\\6', '{$dle_module}')", $tpl->copy_template );
    }
     
    #заменить на
     
    if (strpos ( $tpl->copy_template, "{custom" ) !== false) {
        $tpl->copy_template = preg_replace ( "#\\{custom category=['\"](.+?)['\"] template=['\"](.+?)['\"] aviable=['\"](.+?)['\"] from=['\"](.+?)['\"] limit=['\"](.+?)['\"] title=['\"](.+?)['\"] story=['\"](.+?)['\"] cache=['\"](.+?)['\"]\\}#ies", "custom_print('\\1', '\\2', '\\3', '\\4', '\\5', '\\6', '\\7', '\\8', '{$dle_module}')", $tpl->copy_template );
    }
     
    2. Открыть engine/modules/functions.php
    ---------------------
    #найти
     
    function custom_print($custom_category, $custom_template, $aviable, $custom_from, $custom_limit, $custom_cache, $do)
     
    #заменить на
    function custom_print($custom_category, $custom_template, $aviable, $custom_from, $custom_limit,
    $custom_title, $custom_story, $custom_cache, $do)
     
    #найти
    $custom_limit = intval( $custom_limit );
     
    #ниже добавить
    $custom_title = intval( $custom_title );
    $custom_story = intval( $custom_story );
     
    3. Открыть engine/modules/show.custom.php
    ---------------------
    #найти
    $tpl->set( '{title}', stripslashes( $row['title'] ) );
     
    #заменить на
    if ( $custom_story > 0 and strlen ( $row['title'] ) > $custom_title )
        $tpl->set( '{title}', substr ( stripslashes( $row['title'] ) , 0, $custom_title ) . '&#133;' );
    else
        $tpl->set( '{title}', stripslashes( $row['title'] ) );
     
    #найти
        $tpl->set( '{short-story}', stripslashes( $row['short_story'] ) );
     
    #заменить на
    if ( $custom_story > 0 and strlen ( $row['short_story'] ) > $custom_story )
        $tpl->set( '{short-story}', substr ( stripslashes( $row['short_story'] ) , 0, $custom_story ) . '&#133;' );
    else
        $tpl->set( '{short-story}', stripslashes( $row['short_story'] ) );
     
    4. Теперь в тег {custom} можно добавлять новые аргументы title и story, для контролирования длины заголовка и короткой новости соответственно.
     
    #например
    {custom category="1" template="custom" aviable="global" from="0" limit="5" title="45" story="300" cache="no"}
     
  5. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.102
    Симпатии:
    758
    Что именно не работает? Не обрабатывает в кастоме title="45" story="300" или вообще выводит просто {custom.....} ?
    В 9.5 при замене точно все пункты по замене совпадали или замену делали что-то похожее на то что указано по замене?
     
  6. GIwild

    GIwild Постоялец

    Регистр.:
    6 май 2006
    Сообщения:
    116
    Симпатии:
    6
    Не обрезается заголовок новости, саму новость вообще не пробовал обрезать, так как мне нужно обрезать только заголовок, не вписывается в дизайн. Делал все так как указано, руки прямые, голова с серым веществом ;)
     
  7. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.102
    Симпатии:
    758
    Пока могу предложить только повторить действия show.custom.php в файле show.short.php. В данный момент не могу проверить работоспособность этого хака...
     
  8. GIwild

    GIwild Постоялец

    Регистр.:
    6 май 2006
    Сообщения:
    116
    Симпатии:
    6
    Парни, кто может, проверьте работоспособность хака на версии 9.5
    так же принимаются другие варианты по обработке тэга custom
     
  9. alexzh

    alexzh

    Регистр.:
    13 сен 2006
    Сообщения:
    222
    Симпатии:
    88
    есть такая функция на чистом php не моя, очень простая, ща найду...
    я ее выкладывал тут

    если что спрашивайте функция простая, быстрая и рабочая на все 100%
     
  10. GIwild

    GIwild Постоялец

    Регистр.:
    6 май 2006
    Сообщения:
    116
    Симпатии:
    6
    Я в php не силен, как сие чудо установить? Мне главное в custom научиться обрезать длину заголовка