Создаем модуль на друпал, быстрый старт

Начнем с api.drupal.org, откройте страницу хука hook_node_presave(), который срабатывает перед добовлением ноды.

http://api.drupal.org/api/drupal/modules!node!node.api.php/function/hook_node_validate/7

Хуки позволяют нам встроить наш код в обычный ход вещей в друпале, добавлять проверки, поля данных, элементы форм и т.д.

Добавляем наш модуль в папку sites/all/modules:

sites/all/modules/custom/

sites/all/modules/custom/custom.info

sites/all/modules/custom/custom.module

В файле custom.info напишите:

name = Custom
description = Custom
core = 7.x

В файле custom.module сделаем проверку того, что в поле содержимого есть хоть что-то, если поле пустое, то выведем ошибку (хотя с тем же успехом мы могли бы в админке друпала поставить обязательность заполнения, но...):

custom.module

<?php

 

function custom_node_validate($node){
  if(empty($node->body['und'][0]['value'])){
    form_set_error('node-body', 'Body is empty');  //Выводим ошибку и не сохраняем тем самым ноду
  }
}

В нашем случае когда язык на сайте только один, да и тот und (undefined, неопределен), то мы проверяем первый textarea поля body (ведь можно поставить неограниченное количество textarea для полей).

Используйте модуль devel и его функцию dsm(), чтобы вывести на экран сообщение с распечаткой нужного объекта или массива:

<?php

 

function custom_node_view($node){

  dsm($node);

}

Комментарии

Добавить комментарий

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Пожалуйста, исправьте в

Пожалуйста, исправьте в предложении "Начнем с api.drupal.org, откройте страницу хука hook_node_presave(), который срабатывает перед добовлением ноды." слово "добАвлением"