drupal cck and teasers
Есть вот такая связка - Drupal + CCK. Все чудесно, пока в разделах не начинают отображаться длинные новости. Я с ужасом обнаружил, что такое понятие как teaser перестает работать для CCK.
Мои поиски привели меня к патчу для CCK. Но ничего хорошего из этого не вышло, пока я не нашел вот этот пост - и все чудесным образом заработало.
Там описаны действия для PHPTemplates. Я же использую Smarty, поэтому решение пришлось слегка видоизменить до такого варианта.
Хочу заметить, что поле с основным текстом у меня называется field_text, а cck_teaser - это уже появляется из примера ниже, до этого такого поля нет.
/themes/mytheme/smartytemplate.php
[cc lang="php"]
function _smarty_variables($hook, $vars = array()) {
switch ($hook) {
case 'node': if($vars['node']->type == 'сontent_myitem')
if ($vars['field_text'][0]['value']) {
$vars['cck_teaser'] = node_teaser($vars['field_text'][0]['value'], $format = NULL);
}
break;
}
return $vars;
}
[/cc]
и в коде шаблона (node-content_myitem.tpl) в том месте, где отображалось это самое поле я его заменил на
[cc lang="smarty"] {if $teaser eq 1}
{$cck_teaser}
{else}
{$field_text[0].view}
{/if}
[/cc]
Решение, наверное, не самое лучшее, но это то, что я смог сделать, не ламая чего-то другого.