Убрать дату в тизере а в странице оставить

Аватар пользователя Dyatel Dyatel 7 июня 2017 в 23:41

Всем доброго дня.
Прочел все темы что нашел по похожим вопросам..
Не нашел ответ на свой вопрос.
Что нужно подправить и как это и где сделать, чтобы дата в тизере не отображалась, а при просмотре полной версии-была
А о получается, что они дублируются визуально:
Пример
Пробовал через Views-поля и т.д.
Так можно, но не устраивает оформление заголовков, текста анонса и т.д.
Поэтому желательно что-то где-то подправить в коде. Чтобы не менялось оформление.
Может как-то Views заставить подхватить оформление темы ?

0 Thanks

Комментарии

Аватар пользователя fairrandir fairrandir 7 июня 2017 в 23:59

Display Suite
или

<?php
function MYTHEME_preprocess_node(&$vars) {
  if(
$vars['view_mode'] == 'teaser') {
    
$vars['theme_hook_suggestions'][] = 'node__' $vars['node']->type '__teaser';   
  }
}
?>

и сделать файло node--article--teaser.tpl.php, который верстать как угодно
https://www.drupal.org/docs/7/theming/template-theme-hook-suggestions
https://drupal.stackexchange.com/questions/27974/what-is-the-template-su...

Аватар пользователя Dyatel Dyatel 8 июня 2017 в 13:28

Спасибо за ответ.
Я слаб в английском. Начальный уровень.
Но смог понять, что этот код надо вставить в template.php
Я вставил в конец. Перед }?>
Да... это из кода выше пришлось удалить "<?php"
function MYTHEME_preprocess_node(&$vars) {
if($vars['view_mode'] == 'teaser') {
$vars['theme_hook_suggestions'][] = 'node__' . $vars['node']->type . '__teaser';
}
} это тоже "?>"

Вообщем вопрос еще: как и что прописать в node--article--teaser.tpl.php, чтобы все отображалось кроме даты ?
Пришлось старательно переводить приведенные выше ссылки. Может с этим как-то справлюсь

Аватар пользователя Dyatel Dyatel 8 июня 2017 в 13:31

А чтобы этот тизер был для всех типов материала одинаков.
Для Блог, статья, Новость (тип созданный для Views), Basic Page
Надо видимо создать по аналогии с node--article--teaser.tpl.php
node--node--teaser.tpl.php это Base PAge
node--blog--teaser.tpl.php это Блог
node--news--teaser.tpl.php это тип материала Новость для Views

Аватар пользователя Dyatel Dyatel 13 июня 2017 в 15:18

Сделал так. Все работает. Правильно это или нет. Есть возможно более легкие и более правильные пути. Возможно. Моё решение, которое работает выглядит так:

1. В файл template.php в самом конце вставил
/**
* Preprocess function for node.tpl.php.
*/
function МОЯ_ТЕМА_preprocess_node(&$vars) {
$node_type_suggestion_key = array_search('node__' . $vars['type'], $vars['theme_hook_suggestions']);
if ($node_type_suggestion_key !== FALSE) {
$node_view_mode_suggestion = 'node__' . $vars['type'] . '__' . $vars['view_mode'];
array_splice($vars['theme_hook_suggestions'], $node_type_suggestion_key + 1, 0, array($node_view_mode_suggestion));
}
}

Создал файл
node--article--teaser.tpl.php
node--news--teaser.tpl.php
node--blog--teaser.tpl.php
В этих файлах вставил код полностью из node.tpl
В коде во всех этих созданных файлах удалил вывод даты.
Результат меня устраивает
Было мнение, что нежелательно плодить много шаблонов. Но ....как-то так

Аватар пользователя deadie deadie 14 июня 2017 в 8:54

Покатит. Как вариант, можно было и одним node.tpl.php обойтись, а в нем условия прописать в зависимости от типа ноды + unset(вывод_даты).

Аватар пользователя multpix multpix 14 июня 2017 в 14:16

Привет Дятел!

Dyatel wrote:

Доброго дня. Не хочу быть забаненым. Сделайте так, что бы этот чел: Ху ли GUN, не мог мне писать сообщения. А опять придется посылать его на три буквы. А вы потом бан будете накладывать

Зря ты так остро реагируешь, Ден тебе дело говорит!
просто включить мозг - это порой снимает массу проблем))

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