Помощь Помогите составить новый макрос DLE

Тема в разделе "DLE", создана пользователем TAX[I], 30 янв 2011.

Информация :
Актуальная версия 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
    Сообщения:
    176
    Симпатии:
    28
    Здравствуйте. В данный момент понадобилось реализовать макрос, который будет выводить укороченный вариант {title} в короткой новости (например пусть будет {short_title_x})

    В данный момент сделал так:
    PHP:
    $somemnogot=null;
    if(
    strlen($row["title"])>20) {$somemnogot="...";}
    $tpl->set'{title}'stripslashessubstr($row["title"],0,20).$somemnogot ) );
    Но он задействует сам макрос {title}, поэтому нельзя будет например составить html-код так:

    HTML:
    <a href="http://searchengines.ru" title="Оптимизация и продвижение сайта">Оптимизация и про...</a>
    Хотелось бы, чтобы можно было составить именно таким образом:
    HTML:
    <a href="http://searchengines.ru" title="{title}">{short_title_x}</a>
    Прошу помощи составить макрос, который будет соответствовать этому коду
    ps: версия DLE 9.2
     
  2. killoff

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

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.022
    Симпатии:
    692
    Так не проверяли?
    PHP:
    $tpl->set'{title}'stripslashessubstr($row["title"],0,20).$somemnogot )
    прописать так:
    PHP:
    $tpl->set'{short_title_x}'stripslashessubstr($row["title"],0,20).$somemnogot )
    По таким образом задается переменная {short_title_x} урезанная до 20 знаков...
    Сам в php не силен, но возможно и заработает так ;)
     
  3. TAX[I]

    TAX[I]

    Регистр.:
    21 окт 2008
    Сообщения:
    176
    Симпатии:
    28
    Уверен, что не так просто. Макросы подключаються не только в одном файле. Где-то обезательно нужно прописывать, что в скрипте есть макрос {short_title_x}
     
  4. killoff

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

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.022
    Симпатии:
    692
    я например для себя делал немного измененный {full-link) - если нужно чтобы было и в короткой и в полной новости чтобы это работало, то нужно править два файла /engine/modules/show.short.php и show.full.php (думаю понятно какой файл за что отвечает).
    Поскольку титлы новостей также формируются в этих новостях, то думаю без проблем можно в них добавить новый макрос (или тэг - кто так их называет)...
    Хотя это также зависит от того, в каком месте и в каком файле шаблона нужно выводить его. Выше описано только для шаблонов showshort и showfull
     
  5. TAX[I]

    TAX[I]

    Регистр.:
    21 окт 2008
    Сообщения:
    176
    Симпатии:
    28
    Как я и сказал, не все так просто:
     
  6. killoff

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

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.022
    Симпатии:
    692
    проверил на 9,2:
    файл show.short.php, после
    PHP:
    $tpl->set'{title}'stripslashes$row['title'] ) );
    примерно 448 строка, и добавить ниже
    PHP:
    ////обрезание титла новости по символам////////////
    $titlenew substr$row['title'], 015 ) . " ...";
    $tpl->set'{titlenew}'$titlenew );
    ////обрезание титла новости по символам////////////
    В шаблоне showshort.tpl прописать {titlenew} - и будет 15 символов титла...
    Аналогично можно добавить и для полной новости... Как добавить это в другие файлы шаблона - не пробовал поэтому не знаю :)
     

    Вложения:

    TAX[I] нравится это.
  7. TAX[I]

    TAX[I]

    Регистр.:
    21 окт 2008
    Сообщения:
    176
    Симпатии:
    28
    Все просто супер, большое спасибо, осталось немного переделать, чтобы удовлетворял условиям:
    - Если {title} меньше 15 символов, то "..." не ставиться
    - Если больше, то ставиться "..."
     
  8. killoff

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

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.022
    Симпатии:
    692
    ну здесь только методом проб и ошибок :D в пхп не силен :ah:
     
  9. TAX[I]

    TAX[I]

    Регистр.:
    21 окт 2008
    Сообщения:
    176
    Симпатии:
    28
    killoff, всеравно спс биг :ay:
     
Статус темы:
Закрыта.