Intereting Posts
format_date () не работает Изменить форму редактирования коллекции полей в hook_menu_alter Есть ли какой-либо модуль для выбора фотографий для поля изображения на мобильных платформах, таких как iphone Правило изменения истечения срока действия ubercart при предоставлении роли Как показать список названий статей Я использую настраиваемый модуль, который вводит образ профиля пользователя в индекс apra solr, а затем я использую его для просмотра, но изображение не отображается Блок поиска не отображается, если не зарегистрирован Почему мой пантеон Git не загружается правильно? Отображение пользователя Drupal для пользователя SalesForce Просмотр доступа по ролям Проверка наличия имени machine_name или нет Добавить атрибут в заголовок контента Как скрыть поле (cck) на основе поля даты? Могу ли я позволить пользователю добавлять дополнительные вкладки в quicktabs? Когда я меняю настройки, вид продолжает сбой

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

введите описание изображения здесь

На самом деле это мой контент, и в нем есть одно поле списка. Если я выберу «Новый мусор» и нажмите «Сохранить», я должен создать письмо автору. Если, однако, я выбираю любое другое значение для этого поля (и нажимаю на сохранение), тогда нет необходимости генерировать электронное письмо.

Как я могу это сделать?

Solutions Collecting From Web of "Как отправить электронное письмо автору узла после выбора определенного значения в выбранном поле списка?"

Вы можете использовать hook_node_presave (), и в этой функции проверьте, является ли значение выбора «новым мусором» и генерирует электронную почту.

function YOUR_MODULE_NAME_node_presave($node){ if($node->type == 'YOUR_CONTENT_TYPE'){ //get your field value $field = field_get_items('node', $node, 'YOUR_FIELD_MACHINE_NAME')[0]['value']; //check if value equals "new litter" key if($field == 'NEW_LITTER_KEY'){ generate_email(); } } } 

изменить строчные буквы с именами модулей и машин

Надежда ниже кода поможет вам.

 function mycustom_node_insert($node) { switch ($node->type) { case 'cage-card-info': $warning = $node->field_warnings['und'][0]['value'] if($warning == "new litter"){ $user = user_load($node->uid); $authr_email = $user->email; //Send mail function to the author } break; } } 

Ниже приведен пример правила (в формате экспорта правил ), который отправит электронную почту, аналогичную тому, что задано в вопросе:

 { "rules_notify_author_of_selected_field_updates" : { "LABEL" : "Notify author of selected field updates", "PLUGIN" : "reaction rule", "OWNER" : "rules", "REQUIRES" : [ "rules" ], "ON" : { "node_update" : [], "node_insert" : [] }, "IF" : [ { "entity_has_field" : { "entity" : [ "node" ], "field" : "field_optionlist" } }, { "data_is" : { "data" : [ "node:field-optionlist" ], "value" : "C" } } ], "DO" : [ { "mail" : { "to" : "[node:author:mail]", "subject" : "Notification about a node with a special field value", "message" : "Go checkout the node with nid [node:nid] and title [node:title]: it has a field with a value you needed to be informed about ..." } } ] } } 

Некоторые подробности для дальнейшего объяснения вышеприведенного примера:

  • Событие «Правила», которое я использую, это «После сохранения нового содержимого» или «Обновление существующего контента.
  • В моем случае у меня есть поле списка выбора с именем field_optionlist .
  • Это поле фактически имеет 3 возможных значения, например:
    • A (= Дополнительно).
    • B (= Базовый).
    • C (= Пользовательский).
  • В качестве образца я решил использовать в качестве условия «Выбранное значение должно быть« Custom ».
  • Если это значение выбрано, то (как действие правил) электронная почта будет инициирована автору узла.

Измените имя поля field_optionlist чтобы он соответствовал имени поля вашего типа контента, и адаптировал фактические данные электронной почты (тема и т. Д.) В соответствии с вашими потребностями. Затем импортируйте его на свой сайт (используя пользовательский интерфейс правил). Вот и все.