2010-07-19 5 views
1

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

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

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

ответ

2

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

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

  1. Реализовать hook_menu зарегистрировать URL, который вы хотите использовать в вашем случае admin/settings/name должна быть тонкой
  2. Реализация функции обратного вызова, которая будет вызываться, когда пользователь перейти к вашей. В вашем случае вам не нужно реализовывать его, как вы должны использовать drupal_get_form, но вместо этого вам нужно создать форму, которую пользователь должен увидеть, используя 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. Затем необходимо осуществить проверку и представить обработчик для формы, это вы используете system_settings_form, вы можете получить много из работа для вас.

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

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

+0

Это у меня есть книга. Просто я не совсем понимаю, что мне нужно. – YsoL8

+0

Существует полный пример кода для каждой главы, которую вы можете просто скопировать и использовать, когда читаете книгу. Что вы не понимаете. – googletorp

Смежные вопросы