Подходим к заключительной части создания нашего шаблона для Drupal 7, а именно темизируем ноду, как мы видим содержимое сайта у нас выводится по умолчанию, а именно выводится всё то, что нам абсолютно не нужно (аватар пользователя создавший материал, дата публикации, ник пользователя, ссылка подробнее, ссылка добавить комментарий, количество просмотров ), хотя нам необходимо выводить анонс материала, его заголовок – который так же является ссылкой на полное содержимое статьи
Приступим, как мы знаем за вывод ноды на сайте отвечает файл
node.tpl.php
Поэтому давайте создадим файл с таким именем в корне нашего шаблона, не забываем про кодировку UTF-8. Теперь скопируем html код нашего контента из свёртсаного шаблона в только что созданный файл, выглядит код вот так
<h2>Добропожаловать на наш сайт!</h2> <p>Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться. Lorem Ipsum используют потому, что тот обеспечивает более или менее стандартное заполнение шаблона, а также реальное распределение букв и пробелов в абзацах, которое не получается при простой дубликации "Здесь ваш текст.. Здесь ваш текст.. Здесь ваш текст.." Многие программы электронной вёрстки и редакторы HTML используют Lorem Ipsum в качестве текста по умолчанию, так что поиск по ключевым словам "lorem ipsum" сразу показывает, как много веб-страниц всё ещё дожидаются своего настоящего рождения. За прошедшие годы текст Lorem Ipsum получил много версий. Некоторые версии появились по ошибке, некоторые - намеренно (например, юмористические варианты).</p>
Сохраняем и давайте пересохраним наш шаблон, чистим кеш и посмотрим, что получилось у нас на сайте.
Как мы видим вместо каждой ноды у на теперь выводится именно тот контент, который прописан в
node.tpl.php
Теперь осталось только вывести заголовок ноды и содержимое. Приступим, открываем опять наш файл
node.tpl.php
Для вывода заголовка используем вот такую конструкцию
print $node->title;
Вставим данный код между заголовком H2.
Сохраняем и смотрим, что у нас на сайте
Видим, что заголовки у нас вывелись. Теперь выведем содержимое анонса, используем вот такую конструкцию
print $node->body['und']['0']['summary'];
Вставим данный код в параграф
Сохраняем и смотрим результат на сайте
Как видим, содержимое анонса у нас так же появилось. Не хватает только одного, а именно ссылки на полное содержимое статьи, ссылки в Drupal строятся как
site_name/node/nid
вытащить nid для ноды можно конструкцией
print $node->nid;
Открываем файл
node.tpl.php
И в заголовок анонса впишем ссылку, выглядеть должно вот так
Сохраняем и видим, что ссылка на полное содержимое у нас так же появилась. В данном выводите мы видим, что при клике по ссылке у нас открывается не полное содержимое статьи, а так же подгружается анонс материала, всё дело в том, что мы не указали в каком случае подгружать анонс, а в каком полное содержимое. Давайте этим займёмся:
Для начала нам нужно сделать проверку на анонс, которая пишется как обычное условие
if($teaser): else: endif;
И добавим эту конструкцию в файл
node.tpl.php
Сохраняем и видим, что при клике на полное содержимое у нас открывается пустая страница. Теперь необходимо написать вывод заголовка статьи без ссылки и текст полного содержимого.
Вывод полного содержимого статьи пишется как
print $node->body['und']['0']['value'];
И внесём данную конструкцию в
node.tpl.php
а так же выведем заголовок статьи без ссылки, выглядеть должно вот так
Сохраняем и видим, что полное содержимое у нас так же подгружается. На этом темизация ноды можно считать законченой. Возможно вам понадобится выводить что-то ещё в ноду, список переменных для создания
node.tpl.php
можно посмотреть вот здесь.
Комментарии (78)
здесь
Подскажите в каком шаблоне темизировать добавление ноды пользователем? Например я хочу сделать заявку (node/add/zayavki), пользователям разрешено добавлять этот тип ноды, и хотелось бы темизировать это добавление.
Огромное спасибо
Может кто-то уже такое задавал, но вопрос невероятно важный и случай просто абсурдный. Вот ваш код:
Почему тег "a" закрывается в месте $node->, а именно в первом попавшемся обработчику ">". У меня не получается сформировать ссылку эту вообщем
вам бы основы PHP сначала подучить
И тем не менее как быть? Мне даже notepade++ выделяет внутри php-кода закрывающую > , когда я навожу на a-тег. А php я знаю совсем не плохо
судя по всему вы его не знаете совсем. Что у вас не получается, известно только вам и что вызывает трудности - не совсем понятно. Здесь всего лишь, для атрибута href выводится nid ноды, вывод производится через обращение к объекту $node. Скидывайте весь код целиком иначе вы ничего не добьетесь - экстрасенсов нет.
О, а такой тон мне больше нравится). Когда я в первом случае выложил код то я кое-что пропустил, вот полный вариант
На следующем фото видно где якобы закрывается тег
http://f-picture.net/lfp/s018.radikal.ru/i526/1504/75/0b4a7808e6f3.png/htm
То есть при первом же увиденном символе >, хоть он и внутри php-кода, поэтому не получается ссылка
в данном коде все правильно, единственное что -не хватает названия ссылки
Я специально пропустил текст внутри ссылки. Вы никак не поймете что мне надо. Извини что я уже задолбал тебя, но тот код, который ты выложил - он не привальный!!!!)). Обработчик закрывает открытый тег "". Я в предыдущем сообщении на фото показал это.
И вообще на этом сайте немножко не удобно отправлять сообщения. Пишешь одно, а оно потом теряет какую-то часть написанного(
мда, учись вообщем. То что тебе редактор, там что-то подсвечивает - не означает, что это не правильно. Я тебе еще раз говорю, учи PHP - там код абсолютно правильный. Используй нормальный редактор кода, например Sublime Text.
Что бы твой код не терялся, в форме комментариев есть специальные кнопки для вставки какого либо кода (PHP, JS, CSS, HTML) - но тебе видимо они не о чем не говорят.
Ладно, спасибо за прямую работу с посетителями сайта. Не на всех сайтах так расписывают диалог
Здравствуйте, после того, как был создан файл node.tpl.php, и прописано
- содержимое анонса не выводится, а в админ-панели выводится ошибка: "Notice: Undefined index: und в функции include() (строка 2 в файле /var/www/u0097845/data/www/gumanitarka.com/sites/all/themes/gumanitarka/node.tpl.php)."
Подскажите, как с этим бороться, что не так? Дело в том, что у меня в место правой колонки webform обратной связи и соответственно выводится только заголовок, а самой формы нет.
так у вас же написано, что не найден индекс UND, скорее всего вы не вывели поле BODY для полного содержимого. Проверьте в панели отображения полями.
А вот в чем и интересная ситуация, я не могу найти «управление полями» , структура - тип содержимого у меня "Имя" и только возможность изменить или удалить. а ссылки на управление полями нет. либо я не могу ее отыскать. Буду признателен ответу.
находится в табах вверху страницы.
Не могу их вверху увидеть. нет никаких табов
нажмите на изменить для любого типа материала и увидите...
Сверху так же ничего нет. Слева лишь: Настройки формы, параметры публикации, Настройки отображения, Параметры меню и Webform
Проверьте включен ли у вас модуль Field UI.
Да, действительно, данный модуль был выключен. Все отобразилось. Огромное спасибо!
у меня содержимое ноды не прокручивается
if (!empty($_GET["name"])&&!empty($_GET["age"]))
{ echo " Получены новые вводные: имя - ".$_GET["name"].", возраст - ".$_GET["age"]." лет";}
else { echo "Переменные не дошли. Проверьте все еще раз."; }
?>
Прочитал все комментарии, может уже какие либо изменения произошли, но для 2017 года не работает, либо я кривой)) создал ноду в корне темы нашей (т е где и page.tpl.php, style.css, скриншот и т д), и написал там все как указано у тебя, но увы, нефига не отобразилось) очищал и кеши и опенсервер перезагружал и че только не делал)) подскажи в чем может быть проблема?)
проверь стоят ли у тебя именно 2 тире(--), в названии файла