Меню администрирования - PullRequest
1 голос
/ 19 июля 2010

Я ищу ресурсы для начинающих для друпала.Я писал свой собственный модуль, чтобы научить себя основам разработки, и мне нравится идея использовать Drupal, когда Wordpress не может справиться.(Хотя WordPress быстро становится таким же совершенным, как и Drupal, но это не то, о чем вопросы.)

У меня есть модуль, отображаемый на экране включения / выключения, и файл module.install работает без проблем.То, на чем я застрял, - это создание области администратора для редактирования записей в таблице, которую я использую.У меня есть функция module_admin_settings () в module.admin.inc, плюс module.menu () в module.module.

Но она не появляется в меню, и я озадачен, почему это так,Поэтому я надеюсь, что кто-то знает хороший учебник, который объясняет, как генерировать параметры администратора.

Ответы [ 2 ]

2 голосов
/ 19 июля 2010

Если вы хотите серьезно заняться разработкой Drupal, я бы посоветовал вам изучить книгу Pro Drupal developmnt .Это была самая полезная книга о Drupal, которую я когда-либо читал.

Что касается вашего вопроса, то создание раздела администратора мало чем отличается от создания представления где.Что вам нужно сделать, это:

  1. Реализация hook_menu для регистрации URL, который вы хотите использовать, в вашем случае admin/settings/name должно быть хорошо
  2. Реализовать функцию обратного вызова, которая должна вызываться при переходе пользователя к вашему.В вашем случае вам не нужно реализовывать его, так как вы должны использовать drupal_get_form, но вместо этого вам нужно создать форму, которую пользователь должен видеть, используя API формы .

    Вам необходимо поместить эту информацию в hook_menu следующим образом:

    function modulename_menu() {
      $items = array();
      $items['admin/settings/modulename'] = array(
        'title' => 'Menu item',
        'description' => 'The description of the menu item. It is used as title attribute and on the administration overview page.',
        'page callback' => 'drupal_get_form',
        'page arguments' => array('form_id'),
        'access arguments' => array('administer modulename'), // access restriction to admins only
      );
      return $items;
    }
    
  3. Затем вам нужно реализовать проверку и отправить обработчики для вашей формы, если вы используетеa system_settings_form, вы можете выполнить большую часть работы за вас.

  4. Всякий раз, когда вы вносите изменения в hook_menu, вам необходимо очистить кэш (меню), поскольку Drupal кэширует эту информацию для оптимизации производительности.

Вот и все.Теперь вам не нужно использовать разные файлы в вашем модуле.Если модуль маленький, все можно просто зайти в файл .module.Но для более крупных модулей вы можете поместить часть своего кода в .inc файлы, чтобы немного упорядочить ваш код.Fx modulename.admin.inc для ваших обратных вызовов / функций администратора, modulename.page.inc для ваших обычных обратных вызовов / функций и т. Д.

0 голосов
/ 19 июля 2010

http://drupal.org/node/206761 - это то, что я использую в качестве отправной точки.

...