node

Убрать системные пункты из списка меню "Создать материал"

При создании ноды (материала) есть возможность добавить пункт в меню, чтобы нода отображалась в primary, secondary или созданном вами меню. В списке родителя нового элемента приходится все время пролистывать целую кучу, ненужных для ноды (пункты навигации) родителей.

Как убрать из этого списка, к примеру, все меню "Навигация", чтобы отображались только основные и дополнительные ссылки?

Вывод комментариев отдельно от материала

По-умолчанию Drupal выводит комментарии сразу после тела ноды. А если нам нужно между телом и комментариями вставить какой-нибудь блок (рекламы к примеру), что тогда? К счастью разделить вывод можно в файле темплейта темы.

Следующий сниппет позволит отделить переменную комментариев и форму комментирования от тела ноды:

Шаблоны node.tpl.php на все случаи жизни

После вбивания кода в template.php будут доступны следующие шаблоны:

  • node.tpl.php - дефолтный шаблон
  • node-front.tpl.php - шаблон ноды для главной страницы
  • node-page.tpl.php - шаблон при отображении ноды в виде страницы
  • node-[CCK type]-page.tpl.php - шаблон для типа CCK при отображении в виде страницы
  • node-[nid]-page.tpl.php - шаблон для отдельной ноды с конкретным id при отображении в виде страницы
  • node-[CCK type].tpl.php - шаблон для типа CCK при отображении в виде нескольких нод на страницу в полном виде
  • node-[CCK type]-teaser.tpl.php - шаблон для типа CCK при отображении в виде нескольких нод на страницу в виде анонсов
  • node-[nid]-teaser.tpl.php - шаблон для отдельной ноды с конкретным id при отображении в виде нескольких нод на страницу и в виде тизера

Далее сам код (и источник):

Создание ноды с минимальным вводом

Цель: необходимо иметь мини-формы для создания конкретных типов узлов "на лету" из любого места на сайте. Вместо того, чтобы пользователь нажав кнопку "Создать материал", выбрать тип материала "foo", а затем, заполнив форму, сохранять ноду - можно создать форму для этого типа содержимого, которую можно будет отобразить в блоке. Таким образом, создать ноду можно быстро.

Два способа сделать это:

  • Вызвать drupal_get_form('nodetype_node_form'), а затем использовать hook_form_alter() чтобы исключить (unset) некоторые элементы формы
RSS-материал