Так что я хочу, чтобы мой модуль сначала сделал страницу. Но следует ввести ссылку на простую страницу. Я делаю это на Drupal 7. Я создал форму настроек в функции _menu.Динамическое создание ссылки на пользовательскую страницу с помощью модуля Drupal
$items['admin/config/content/settings'] = array(
'title' => 'Setings',
'description' => 'A form to change settings',
'page callback' => 'drupal_get_form',
'page arguments' => array('settings_form'),
'access arguments' => array('access administration pages'),
'type' => MENU_NORMAL_ITEM,
);
Затем я добавил это:
function settings_form($form, &$form_state){
$form['locationUrl'] = array(
'#type' => 'textfield',
'#title' => t("URL kādu vēlaties?"),
'#description' => t("Example. about"),
'#required' => true
);
return system_settings_form($form);
}
А потом я добавил к функции _menu:
$items[variable_get('admin/config/content/settings','locationUrl')] = array(//this creates a URL that will call this form at "examples/form-example"
'title' => '', //page title
'page callback' => 'DGMap', //this is the function that will be called when the page is accessed. for a form, use drupal_get_form
'access arguments' => array('access simple page'),
);
И я добавить следующее:
function page(){
return array('#markup' => '<h1>Hello?</h1>');
}
Я сохранить его все до. Очистить кэш. И перейдите к настройкам и сохраните locationUrl, например, «about». И тогда try/drupal/об этом дает мне исключение из страницы не найденное.
Может ли кто-нибудь помочь мне в этом? Я надеюсь, что это понятно, что я пытаюсь сделать.
Спасибо за помощь.
Конец, который я хочу сделать, так это то, что мой модуль мог создать в нем страницу с настраиваемым JavaScript. Если бы кто-нибудь мог связать меня с учебником, который был бы хорош для этого, я бы очень признателен этому. Если есть способ, чтобы мой модуль размещал на странице пользовательский JavaScript, который тоже был бы хорош.
Это сработало! Единственное, что я должен добавить, это то, что после выполнения части сохранения конфигурации мне пришлось снова очистить кеш. Большое вам спасибо за помощь! :) У вас есть идеи, как я могу автоматизировать это? Чтобы кеш был очищен после сохранения. – DaveLV
'cache_clear_all();' может сделать это в обработчике отправки. Но тогда я думаю, вам придется отходить от автоматизации, предоставляемой 'system_settings_form ($ form);' и писать форму custom для сохранения вашей конфигурации. ** Пользователи DrupalStackExchange **, вероятно, могут дать вам лучший ответ на этот вопрос: –
Спасибо за помощь! :) – DaveLV