Меню администрирования

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

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

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


person YsoL8    schedule 19.07.2010    source источник


Ответы (2)


Если вы хотите серьезно заняться разработкой Drupal, я бы посоветовал вам прочитать книгу Pro Drupal developemnt. Это была самая полезная книга по 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. Затем вам необходимо реализовать обработчики проверки и отправки для вашей формы, если вы используете _5 _, вы можете выполнить большую часть работы за вас.

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

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

person googletorp    schedule 19.07.2010
comment
Это моя книга. Просто я не совсем следую тому, что он от меня хочет. - person YsoL8; 19.07.2010
comment
Для каждой главы есть полный пример кода, который вы можете просто скопировать и использовать при чтении книги. Что это ты не понимаешь. - person googletorp; 19.07.2010

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

person user11977    schedule 19.07.2010