Всем привет!
Собственно,вопрос: как добавить к ноде кнопку в Drupal 7? Насколько я понял,это делается через hook_node_view,но непонятно,что добавить к аргументу $node (я вообще почему-то не могу найти описание полей этого объекта ). И как сделать так чтобы кнопка была видна только зарегистрированным пользователям? Проверять пользователя в функции хука и добавлять кнопку,если пользователь зарегистрирован или есть какой-то элегантный стандартный способ?
Комментарии
Распишите еще что за кнопка. Кнопка может быть частью формы, а может быть просто ссылкой. И на какой ноде ее вывести? На одной какой-то конкретной или всех нодах какого-то content type?
Планируется добавить кнопку к ноде определенного типа и повесить на нее ajax-обработчик.
Ajax.
В сети полно материалов по Form API и его AJAX'ификации.
Ajax Forms in Drupal 7
Еще, крайне рекомендую разобрать модуль примеров (он для того и создан).
> как добавить к ноде кнопку в Drupal 7?
Если если на страницу node/xxx, то
if($vm == 'full'){
$node->content['my_but'] = array(
'#markup' => '<button>Большая красная кнопка</button>',
);
}
}
https://api.drupal.org/api/drupal/modules%21node%21node.api.php/function...
>И как сделать так чтобы кнопка была видна только зарегистрированным пользователям?
https://api.drupal.org/api/drupal/modules%21user%21user.module/function/...
Я собственно про это и писал в вопросе:
<?php
$node->content['my_but'] = array(
'#markup' => '<button>Большая красная кнопка</button>',
);
?>
1) Где посмотреть список аттрибутов типа #markup для объекта типа node?
«>И как сделать так чтобы кнопка была видна только зарегистрированным пользователям?
https://api.drupal.org/api/drupal/modules%21user%21user.module/function/...»
2) То есть все таки,кроме как проверить в хуке и исходя из значения is_anonymous() добавлять кнопку или нет,решения стандатртного нет (типа назначения доступа через аттрибут) нет,я правильно понимаю?
> 1) Где посмотреть список аттрибутов типа #markup для объекта типа node?
- В коде
- В *.api.php
2) То есть все таки,кроме как проверить в хуке и исходя из значения is_anonymous() добавлять кнопку или нет,решения стандатртного нет (типа назначения доступа через аттрибут) нет,я правильно понимаю?
1. FAPI
2. Access
Есть кнопки, которыми куртку застёгивают. Есть кнопка, по нажатию которой произойдет ядерный Армагеддон. Есть тэг button, который можно воткнуть в шаблон, если кнопка - это самодостаточный субъект, которому просто достаточно быть.
Но в 90% случаев под кнопкой подразумевают форму, которую ещё нужно где-то объявить, а потом просто добавить к билду в упомянутом вами хуке.
«Но в 90% случаев под кнопкой подразумевают форму, которую ещё нужно где-то объявить, а потом просто добавить к билду в упомянутом вами хуке.»
См. мой ответ выше для 3_14yavka
а как добавить кнопку на страницу добавления материала?
в файле template.php?
hook_form_alter()
а пример какой нить?
и если кнопка нужна рядом с определенным полем?
В хук форм альтер добавляете свою кнопку, и задаёте ей нужный #weight, чтобы она появилась в нужном месте.
Но ещё нужно знать, что должна делать эта кнопка. Возможно, вам нужен не hook_form_alter, a hook_field_formatter_info_alter
'#type' => 'submit',
'#value' => t('Submit'),
);
так кнопка получается
как присвоить id,class
и чтобы была рядом с полем [field-adress]
↑↑↑
у меня поле адрес, сделать кнопку найти
после нажатия адрес передается в геокодер яндекс
и выставляется метка на карту по адресу
карта с помощью yandexmaps
как это реализовать?
Тут не просто "кнопку добавить" нужно. Нужно писать модуль с кастомной формой, которая будет реализовать ваш функционал
в песочнице яндекса много примеров как реализовать js