Как обрезать обрезать текст превью в шаблоне html\com_content\category\blog_item.php?

  • 6 Ответов
  • 885 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Kuzmitch

  • Осваиваюсь на форуме
  • ***
  • 150
  • 7
Код
if (strlen($article->images['intro']['image']))
    $content .= $article->image($article->images['intro']);
$content .= $article->intro($article->intro); // как обрезать вывод превью ?
if (strlen($article->readmore))
    $content .= $article->readmore($article->readmore, $article->readmoreLink);

Есть кусок кода который отвечает за превью в блоге категории, как его обрезать в 200 символов ?

*

motokraft

  • Живу я здесь
  • ******
  • 1338
  • 59
как его обрезать в 200 символов ?

Код
JString::substr($article->intro($article->intro), 0, 200)
...

*

passer

  • Живу я здесь
  • ******
  • 874
  • 70
Не все так просто, а если эти 200 обрежут закрывающий тег или придутся на середину ссылки. Придет пц верстке всей страницы.

*

Kuzmitch

  • Осваиваюсь на форуме
  • ***
  • 150
  • 7
Код
JString::substr($article->intro($article->intro), 0, 200)

К сожалению не получилось.
вот полны код вывода - на всякий случай. п.с. код не мой
Код
<?php
defined('_JEXEC') or die;

JHtml::addIncludePath(JPATH_COMPONENT . '/helpers');
JHtml::_('behavior.tooltip');
JHtml::core();

Artx::load("Artx_Content");

$component = new ArtxContent($this, $this->params);
$article = $component->article('category', $this->item, $this->item->params);

$params = $article->getArticleViewParameters();
if (strlen($article->title)) {
    $params['header-text'] = $this->escape($article->title);
    if (strlen($article->titleLink))
        $params['header-link'] = $article->titleLink;
}
// Change the order of ""if"" statements to change the order of article metadata header items.
if (strlen($article->created))
    $params['metadata-header-icons'][] = "<span class=\"art-postdateicon\">" . $article->createdDateInfo($article->created). "</span>";
if (strlen($article->modified))
    $params['metadata-header-icons'][] = "<span class=\"art-postdateicon\">" . $article->modifiedDateInfo($article->modified). "</span>";
if (strlen($article->published))
    $params['metadata-header-icons'][] = "<span class=\"art-postdateicon\">" . $article->publishedDateInfo($article->published). "</span>";
if (strlen($article->author))
    $params['metadata-header-icons'][] = "<span class=\"art-postauthoricon\">" . $article->authorInfo($article->author, $article->authorLink). "</span>";
if ($article->editIconVisible)
    $params['metadata-header-icons'][] = $article->editIcon();
if (strlen($article->hits))
    $params['metadata-header-icons'][] = $article->hitsInfo($article->hits);
// Build article content
$content = '';
if (!$article->introVisible)
    $content .= $article->event('afterDisplayTitle');
$content .= $article->event('beforeDisplayContent');
if (strlen($article->images['intro']['image']))
    $content .= $article->image($article->images['intro']);
//JString::substr($article->intro($article->intro), 0, 200);

$content .= $article->intro($article->intro);
if (strlen($article->readmore))
    $content .= $article->readmore($article->readmore, $article->readmoreLink);
$content .= $article->event('afterDisplayContent');
$params['content'] = $content;

// Render article
echo $article->article($params);

Быть может для этого плагин какой-то есть ?

*

robert

  • Профи
  • ********
  • 4002
  • 371
Что это вы все помешаны на плагинах (модулях, компонентах), когда можно обходиться 01 строкой кода в шаблоне?
1. Вы не там ставили код.
2. Послушайте совет
Не все так просто, а если эти 200 обрежут закрывающий тег или придутся на середину ссылки. Придет пц верстке всей страницы.
и определитесь с начала, будут ли в обрезанном тексте HTML-тэги.

P.S. И вообще, надо проверить работоспособность кода.
« Последнее редактирование: 14.07.2015, 22:28:54 от robert »
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

midav

  • Живу я здесь
  • ******
  • 927
  • 113
Можно вырезать HTML теги :
Код: php
echo mb_substr( strip_tags($introtext), 0, 200, 'UTF-8')

Переменную introtext надо заменить на свою .
Ответы на вопросы по CSS . Откройте для себя Firebug

*

Kuzmitch

  • Осваиваюсь на форуме
  • ***
  • 150
  • 7
В общем под свои нужды сделал так.
Код: php
echo mb_substr( strip_tags($article->intro($article->intro), '<img>'), 0, 210, 'UTF-8')."...";
Оставил текст, и картинку т.к. у меня фото вставляется в текст превьюхи.
Всем спасибо за помощь!