Недавно возникла ситуация когда нужно выводить заданный тизер в записи, с сохранением форматирования.
Стандартные средства движка этого не позволяют. (В стандарте есть только обрезка текста до заданного количества симоволов + режет форматирование).
Решение:
исспользоавние тега <!--more-->, подобно тому как это сделано в Wordpress.
Контент вывожу следующим образом
<?php echo $fields['content']['handler']->setItem($item)->parseTeaser($item[$fields['content']['name']]); ?>
Функция parseTeaser находится в \instantcms\system\fields\html.php
И после изменения выглядит следующим образом
public function parseTeaser($value) { $max_len = $this->getOption('teaser_len'); if($more) { } elseif ($max_len){ $url = href_to($this->item['ctype']['name'], $this->item['slug'] . ".html"); $value = string_short($value, $max_len); $value .= '<a class="read-more" href="'.$url.'">'.LANG_MORE.'</a>'; } return $value; }
На гениальность не претендую.