1

Тема: превью статей

В шаблоне preview_list.tpl есть вот такая конструкция {$item->getPreview()} которая выводит текст из краткого описания.
Как-то можно выводить ограниченное количество символов?

2 Отредактировано Закусило Александр (27.06.2016 13:55:37)

Re: превью статей

Конечно, ведь:

/**
* Возвращает краткий текст заданный пользователем, 
* а если он не задан, то сформированный из основного текста
* 
* @param integer $length - длинна текста
* @param boolean $html - выводить как HTML? 
*/
    function getPreview($length = 500, $html = true)

Т.е. {$item->getPreview(Нужная длинна в цифрах)}

3 Отредактировано Sergey T. (27.06.2016 15:03:21)

Re: превью статей

{$item->getPreview(50)} - делаю вот так, но превью не обрезается sad

http://luchski.ru/text-news/ - вот целевая страница

а вот preview_list.tpl

<ul class="articles">
{foreach from=$list item=item}
    <li {$item->getDebugAttributes()}>
        <a class="link" href="{$item->getUrl()}">
            <span class="preview">
                {if !empty($item.image)}<img src="{$item.__image->getUrl(170,120,'xy')}" class="image">{/if}
                <span class="date">{$item.dateof|date_format:"%d %m %Y":"":"rus"}</span><br>
                <span class="title">{$item.title}</span>
                <div class="little_block"></div>
                    
                {$item->getPreview(50)}

                
            </span>
        </a>
    </li>
{/foreach}
</ul>

4 Отредактировано Сергей Дмитриевич (27.06.2016 18:36:53)

Re: превью статей

Может быть {$item->getPreview($length = 50)} ?

Повысить оценку Понизить оценку

Re: превью статей

Может быть {$item->getPreview($length = 50)} ?

Нет всё правильно, {$item->getPreview(50)}.
$length то Вам зачем?

В Вашем случае, будет лучше если укажите признак показа в виде простого текста:

{$item->getPreview(50, false)}

Судя из страницы, что Вы привели, очень похоже, что там у Вас не тот шаблон выводит, эту страницу. Попробуйте проверить тестово выведя абракодабру.

6

Re: превью статей

Шаблон именно тот, проверил еще раз.
Добавил абракадабру

http://s19.radikal.ru/i192/1606/4a/3a5fa3c244b0.png

все вывелось

http://i057.radikal.ru/1606/30/c1b0559aeab8.png

но вот так {$item->getPreview(50, false)} текст все равно не сокращается sad

Re: превью статей

Напишите нам в поддержку разберёмся. Всё должно работать.

8

Re: превью статей

Написал, жду ответа.

9 Отредактировано Сергей Дмитриевич (29.06.2016 11:55:09)

Re: превью статей

Стало интересно. Проверил у себя.
В итоге заметил такую штуку. Конструкция {$item->getPreview(50)} работает только в том случае, если у новости НЕ заполнено поле "Краткий текст" на вкладке "Расширенные", а только есть полный текст.
Если же поле "Краткий текст" заполнено, то конструкция не работает.

http://fpicture.ru/img/2016-06/29/joj1b5hzi626n0wj6vajrw2s1.jpg

Повысить оценку Понизить оценку

Re: превью статей

Спасибо. Разберёмся.

Re: превью статей

Это кстати с какой-то стороны и правильно.

Хочешь оригинальный анонс для статьи писать  - пиши и укладывайся в количество символов.

Не хочешь - не пиши, оставляй поле пустым и анонс будет формироваться из основного текста новости с обрезкой по количеству символов.

Повысить оценку Понизить оценку

12

Re: превью статей

Здесь не никакой ошибки в логике:
1. Если у вас заведен вручную краткий текст, то выводится именно он без обрезки.
2. Если краткий текст не заведен, то выводится обрезанный полный текст.

Если вы хотите всегда обрезать текст, то вам необходимо воспользоваться модификаторами Smarty:
{$item->getPreview()|truncate:"50"}

http://www.smarty.net/docsv2/ru/languag … uncate.tpl

Повысить оценку Понизить оценку

13 Отредактировано Sergey T. (29.06.2016 23:52:58)

Re: превью статей

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

Re: превью статей

{$preview=strip_tags($item->getPreview())}
{$preview|truncate:"50"}

15 Отредактировано Дмитрий (04.07.2016 17:33:39)

Re: превью статей

У меня в шаблоне lastnews.tpl текст их поля анонс выводился вот так {$item->getPreview()}
Теперь, после обновления, там выводиться обрезанный полный текст.
Как мне вывести снова краткий?

Повысить оценку Понизить оценку

Re: превью статей

{$item.short_content}