Создание функциональности «ON / OFF News Links» для блока, созданного с помощью View Module - PullRequest
1 голос
/ 14 июня 2010

Я новичок друпал, которому нужен совет ...

У меня есть блок списка новостей на домашней странице, созданный с помощью View Module. Это список всех добавленных новостей заголовок и ссылку. Пока все круто. Теперь мне нужно добавить опцию ВКЛ / ВЫКЛ на стороне администратора для блока новостей главной страницы. Когда настройка включена, она будет работать как есть. Когда он выключен, будут отображаться только заголовки без ссылки на страницу с подробностями новостей.

Итак, где я должен добавить эту опцию ВКЛ / ВЫКЛ? У меня есть только добавить / изменить / удалить страницы для каждой новости, нет общей страницы новостей, чтобы добавить такую ​​опцию. Должен ли я создать страницу администратора с такой опцией ВКЛ / ВЫКЛ? Также я думаю, что мне нужно создать таблицу БД, чтобы сохранить этот статус ВКЛ / ВЫКЛ. и управляют этим значением в блоке домашней страницы, если оно равно 1 или 0, и отображают ссылки в соответствии со значением в db: /

это выглядит слишком далеко

  1. Создать таблицу базы данных
  2. Создать страницу с параметром ВКЛ / ВЫКЛ в
  3. добавить php коды для обновления БД по выбору администратора
  4. получить значение db в блоке домашней страницы для отображения ссылок и т. Д.

Есть ли какой-нибудь более короткий и лучший способ сделать то, что мне нужно?

Ценить помогает так много !!! Большое спасибо !!

Ответы [ 3 ]

3 голосов
/ 15 июня 2010

Вам определенно не нужно создавать какие-либо таблицы базы данных для чего-то подобного. Если вам нужна базовая страница администратора, вам нужно написать простой модуль. Сначала следуйте этому краткому руководству руководству по настройке базового модуля. (Примечание: вам не нужно добавлять эти запросы к базе данных в ваш файл .install)

Как только ваш модуль будет включен ...

1) В файле mynewmodule.module добавьте пункт меню, чтобы сообщить Drupal, где можно получить доступ к вашей странице администратора:


function mynewmodule_menu() {
  return array(
    'admin/settings/mynewmodule' => array(
      'title' => 'My New Module',
      'description' => 'Change settings for news display.',
      'page callback' => 'drupal_get_form',
      'page arguments' => array('mynewmodule_admin_form'),
      'acces callback' => 'user_access',
      'access arguments' => array('administer site configuration'),
    ),
  );
}

2) Также в файле mynewmodule.module добавьте функцию для создания формы, на которую вы только что ссылались, в пункте меню:


function mynewmodule_admin_form() {
  $form = array();
  $form['mynewmodule-on-off-switch'] = array(
   '#type' => 'checkbox',
   '#title' => t('Enable news links'),
   '#description' => t('Control whether news items are linked to stories'),
   '#default_value' => variable_get('mynewmodule-on-off-switch', 1),
  );
  return system_settings_form($form);
}

3) Очистите кеш, чтобы Drupal распознал вашу страницу администратора (вам необходимо очищать ее каждый раз, когда вы вносите изменения в mynewmodule_menu ()). Вы можете очистить это здесь: admin / settings / performance

4) Посетите admin / settings / mynewmodule, чтобы увидеть форму администратора. Это работает, когда вы сохраняете конфигурацию, Drupal сохраняет переменную с именем «mynewmodule-on-off-switch» (то же имя, что и ключ массива в форме) в таблице переменных в базе данных. Вы можете получить это значение где угодно с помощью variable_get ().

1 голос
/ 15 июня 2010

Слабость Drupal, IMHO, это огромное количество настроек администратора, которые нужно настроить, чтобы сайт работал, и вы не хотите добавлять к этому.

То, что я хотел бы сделать, - это показать два разных блока, один с полным видом, другой с сокращенным видом. Тогда вся конфигурация может быть выполнена через интерфейс блока, который будет гораздо более гибким в долгосрочной перспективе. Например, используя: подстановочные знаки или код php для видимости блока; показывать разные взгляды пользователям с разными ролями; позволяя посетителям контролировать, какой вид они видят; более аккуратное представление двух видов движку теминга; и интеграция с любым другим модулем, который работает с блоками.

1 голос
/ 14 июня 2010

создать форму в admin / settings / on-off-switch.в функции отправки формы: variable_set ('on / off switch', $ value) (попробуйте использовать логическое значение для значения).затем в теме просмотра проверьте переменные_get ('on / off switch', $ default_value) перед печатью ссылок.

...