Smarty: Можно ли загнать в массив строку текста, разбив на две или три части?

Dreamer

Новичок
Smarty: Можно ли загнать в массив строку текста, разбив на две или три части?

Предполагается, что имеется некая новость, которая храниться в базе данных должна разбита на нескольсо страниц. Для начала считаю сколько символов есть вообще.

{*Расчет колличества символов*}
{assign var="newsmore1" value=$newsmore|count_characters}

{*Обрезаю ровно половину*}
{$newsmore|truncate:$newsmore1/2}</div>

А теперь встрял в то, что не могу показать вторую половину.
Какая связка действий должна быть обратной модификатору переменной truncate?
 

Demiurg

Guest
разбивкой новости должен заниматься php а не смарти
 

matross

Новичок
Re: Smarty: Можно ли загнать в массив строку текста, разбив на две или три части?

Тобешь изначально разбиваешь, а потом загоняешь в переменные смарти!
 

Dreamer

Новичок
Ну почему же, smarty же по идее умеет операции над текстом выполнять, хотя естественно, видимо, можно внедрить и код на php, это уже когда дойдет до постраничного вывода, сейчас хотя бы разобратся как поделить текст на части...
Думаю не мне одному интересно!
 

Serguitar

Новичок->продвинутый
Думаю не мне одному интересно!
Сначала подумай над своей проблемой.
можно внедрить и код на php
Ничего не нужно внедрять в шаблон.
Тебе просто нужно произвести все операции на текстом ещё до того, как скормить егол шаблону.
 

Demiurg

Guest
Микроскоп тоже умеет забивать гвозди.
 

Dreamer

Новичок
Так ведь совственно смарти и призван, для того что бы осуществлять операции над текстом, а именно вывод!
Неужели никто хотябы конструктивного совета не даст, я понимаю что все можно сделать на PHP.
 

Фанат

oncle terrible
Команда форума
конструктивный ответ тебе дали.
у тебя просто ума не хватает это понять
 

Dreamer

Новичок
Фанат ну конечно, ты же самый умный и мудрый, лучше бы по делу чего сказал. Такие комментарии я тоже могу отпускать! Просьба без оскорблений!
 

matross

Новичок
Dreamer
Тебя никто не оскорблял, тебе подсказали как решить твою проблему, что еще тебе нуно?
 

WeirD

Новичок
Dreamer
По делу? Пожалуйста.
Смарти - это шаблонизатор! Его задача, получить _подготовленные_ данные, вставить их в шаблон, и вывести получившийся html.

Никаких обработок данных с помощью смарти, делать НЕ нужно.

тем более, что ты "понимаю что все можно сделать на PHP"
 

Dreamer

Новичок
Хорошо, вот вам пример вывода из массива в два столбика:
{assign var="ncols" value=2}
<table width="100%">
<tr>
{foreach from=$news_array item=news}
{assign var="nnewtr" value=$nnewtr+1}
<td>
<a href="{$news.link}">{$news.title|truncate:30}</a>
<br>
<div>
{$news.text|truncate:150}</div>
<div align="right"><a href="{$news.link}">{$lang.readmorenews}</a></div>
<br />
</td>
{if $nnewtr % $ncols == 0}</tr><tr>{/if}
{/foreach}
</tr>
</table>
Что то в таком духе...

И в конечном счете я поставил вопрос, есть ли нечто обратное truncate? Вывод не до символа nn, а начиная с nn
 

alexhemp

Новичок
WeirD

А откуда берется аксиома про подготовленные данные? Что считать подготовкой.

Налицо столкновение подходов. На мой взгляд разбиение текста скажем на колонки - вполне себе задача для смарти. ;-)

Можно безусловно в php коде это сделать, но если уже выбран смарти, то нужно юзать его на полную катушку, что и пытается сделать Dreamer.

И потом, не забывайте, что страницы новости меняться могут и на одной странице, например JavaScript-ом.
 

Dreamer

Новичок
В том то и дело, что в мануале было написано, что текст может быть абсолютно без форматирования, а смарти получая его, неважно откуда, может вытворять чего угодно.
Что называется разделить задачи программиста и дизайнера.
Предположим, что я не программер, и пытаюсь понять все богатые возможности этого дела! Чего и вам всем желаю!

Demiurg
Хм, а в мануале по смарти, этой команды и соответственно синтаксиса нет! substr повторяет синтаксис php?
Или вообще имеется ввиду нужно делать врезку на php?
 

alexhemp

Новичок
Dreamer

Чтобы делать что-то сложное на смарти нужно как минимум понимать как это сделать любом другом языке программирования, желательно конечно PHP.

Смарти умеет вызывать ф-ции PHP в качестве модификаторов.

Вот пример как раз с substr
http://www.phpinsider.com/smarty-forum/viewtopic.php?t=5189&highlight=substr
 

Dreamer

Новичок
alexhemp, от спасибо за примерчик! То что нужно! Думаю дело продвинеться! Я конечно же утрировал... Безусловно понимаю о чем говорю, хотя php начал изучать совершенно недавно. Ничего сложного во всем этом нет.
 
Сверху