Мне нужно вывести отдельно ноду и отдельно ее тизер (чтобы можно было кастомизировать отдельно отображение тизера и отдельно содержания ноды без тизера).
Для 6-ки пользовался предложенным здесь кодом:
<?php
function template_preprocess_node(&$variables) {
if ($variables['page'] == TRUE) {
$node = node_load($variables['nid']);
$teaser_only = check_markup($node->teaser, $node->format, FALSE);
$variables['teaser_only'] = $teaser_only;
$content_wo_teaser = str_replace($teaser_only,'',$variables['content']);
$variables['content'] = $content_wo_teaser;
}
else {
$variables['teaser_only'] = '';
}
}
?>
А как сделать аналогичное в 7-ке? Как отобразить содержание ноды без тизера?
Комментарии
node_view?
А возможностей "Управления отображением" и "Режимы отображения" не хватает?
Варианты отображения "Анонс" и "По умолчанию" например.
Если нужно это выводить на одной странице одновременно - можно задействовать Views. Зачем тут что-то писать?
Вывести тизер – не проблема. Уперся в вывод текста ноды (node:body) без тизера. Т.е. задача – автоматически вырезать везде тизер из ноды и отобразить отдельно тизер, отдельно – текст ноды без него.
Если это можно сделать стандартными средствами D7 или через Views – буду благодарен за решение.
Готов заплатить за решение 200 р (через Webmoney/Яндекс Деньги).
напиши мне в скайп, помогу
Написал - пока в ответ тишина..
Нашел вот такой вариант, но что-то он не работает:
<?php
$node = node_load($variables['nid']);
$teaser = node_view($node, 'teaser');
$content_wo_teaser = str_replace($teaser, '', $variables['content']);
?>
В общем, пока пришел к такому решению - буду везде отделять анонсы от основного текста (через стандартное редактирование ноды) и потом просто выведу везде отдельно тизер.