#drupal #drupal-6 #drupal-hooks
#drupal #drupal-6 #drupal-крючки
Вопрос:
Я пытаюсь добавить новый тип контента из модуля, и я в значительной степени позаимствовал модуль ubercart product kit, поскольку я хочу использовать его в качестве основы для этого нового типа:
/**
* Implementation of hook_node_info().
*
* @return Node type information for flexible product bundles.
*/
function amh_shop_bundles_node_info() {
return array(
'amh_shop_flexi_bundle' => array(
'name' => t('Flexible Product Bundle'),
'module' => 'amh_shop_bundles',
'description' => t('This node represents a flexible bundle package that allows customers to mix and match products and get discounts.'),
'title_label' => t('Name'),
'body_label' => t('Description'),
),
);
}
Но этот новый тип контента не отображается в моем списке типов контента вместе с другими. Я знаю, что модуль загружается правильно, поскольку я также создал функцию amh_shop_bundle_perm() для перечисления разрешений, и они включаются в список пользовательских разрешений, как и ожидалось.
Я что-то пропустил? (Ну, скорее всего, да). В документации Drupal говорится, что это действительно должно быть так просто.
Обновить:
Я нашел комментарий, в котором содержится проверка того, правильно ли сгенерирован тип контента — путем доступа к /admin/content /node-type / amh-shop-flexi-bundle
Это сработало, но тип содержимого по-прежнему отсутствует в списке с другими.
Обновление 2:
Поскольку я мог получить доступ к пустой форме узла в / node / add / amh-shop-flexi-bundle, я решил, что могу перейти к реализации других перехватов — и обнаружил, что вам нужно реализовать hook_form() для перечисления типа содержимого.
Комментарии:
1. Итак, ваша проблема решена с помощью реализации hook_form()? Тогда, пожалуйста, напишите свое решение в отдельном ответе и примите свой собственный ответ. Спасибо.
2. справедливое замечание — я сделаю это, но это должно произойти завтра, когда передо мной будет код для ссылки.
3. извините — похоже, этот код был удален давным-давно, поскольку модуль больше не был нужен, и мне трудно найти его в репозитории.
4. 🙁 Но в вашем «Обновлении 2» есть возможный короткий ответ — если это правильно.
5. Мне пришлось бы снова попробовать с нуля… но у меня действительно нет времени, извините — вы могли бы попробовать?
Ответ №1:
Совет по реализации hook_form() сделал свое дело за меня!
Я добавил только эти строки, и баам:
function hook_form(){
$form = array();
return $form;
}