• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

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

Статус
В этой теме нельзя размещать новые ответы.

TAX[I]

Знаток
Регистрация
21 Окт 2008
Сообщения
187
Реакции
28
Здравствуйте. В данный момент понадобилось реализовать макрос, который будет выводить укороченный вариант {title} в короткой новости (например пусть будет {short_title_x})

В данный момент сделал так:
PHP:
$somemnogot=null;
if(strlen($row["title"])>20) {$somemnogot="...";}
$tpl->set( '{title}', stripslashes( substr($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
 
Так не проверяли?
PHP:
$tpl->set( '{title}', stripslashes( substr($row["title"],0,20).$somemnogot )
прописать так:
PHP:
$tpl->set( '{short_title_x}', stripslashes( substr($row["title"],0,20).$somemnogot )
По таким образом задается переменная {short_title_x} урезанная до 20 знаков...
Сам в php не силен, но возможно и заработает так ;)
 
Уверен, что не так просто. Макросы подключаються не только в одном файле. Где-то обезательно нужно прописывать, что в скрипте есть макрос {short_title_x}
 
Уверен, что не так просто. Макросы подключаються не только в одном файле. Где-то обезательно нужно прописывать, что в скрипте есть макрос {short_title_x}
я например для себя делал немного измененный {full-link) - если нужно чтобы было и в короткой и в полной новости чтобы это работало, то нужно править два файла /engine/modules/show.short.php и show.full.php (думаю понятно какой файл за что отвечает).
Поскольку титлы новостей также формируются в этих новостях, то думаю без проблем можно в них добавить новый макрос (или тэг - кто так их называет)...
Хотя это также зависит от того, в каком месте и в каком файле шаблона нужно выводить его. Выше описано только для шаблонов showshort и showfull
 
Как я и сказал, не все так просто:
Parse error: syntax error, unexpected T_VARIABLE in Z:\home\in.net\www\engine\modules\show.short.php on line 452
 
проверил на 9,2:
файл show.short.php, после
PHP:
$tpl->set( '{title}', stripslashes( $row['title'] ) );
примерно 448 строка, и добавить ниже
PHP:
////обрезание титла новости по символам////////////
$titlenew = substr( $row['title'], 0, 15 ) . " ...";
$tpl->set( '{titlenew}', $titlenew );
////обрезание титла новости по символам////////////
В шаблоне showshort.tpl прописать {titlenew} - и будет 15 символов титла...
Аналогично можно добавить и для полной новости... Как добавить это в другие файлы шаблона - не пробовал поэтому не знаю :)
 

Вложения

  • 61529-130201133021pm.png
    61529-130201133021pm.png
    12,3 KB · Просмотры: 15
Все просто супер, большое спасибо, осталось немного переделать, чтобы удовлетворял условиям:
- Если {title} меньше 15 символов, то "..." не ставиться
- Если больше, то ставиться "..."
 
Все просто супер, большое спасибо, осталось немного переделать, чтобы удовлетворял условиям:
- Если {title} меньше 15 символов, то "..." не ставиться
- Если больше, то ставиться "..."
ну здесь только методом проб и ошибок :D в пхп не силен :ah:
 
killoff, всеравно спс биг :ay:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху