Как мне показать контент в оверлее?

18

Я хочу отобразить некоторый контент, возвращенный из вызова AJAX в оверлее или всплывающем окне.

У вас есть идеи, как я могу это сделать?

Самир
источник

Ответы:

8

Если вы используете Drupal 7, вы можете использовать административный оверлей с пользовательским модулем.

Вам понадобится 3 хука в файле CUSTOM_MODULE_NAME_HERE.module:

/**
 * Implements hook_menu().
 */
function CUSTOM_MODULE_NAME_HERE_menu() {
  $items = array();
  $items['your/path/to/your/page'] = array(
     'page callback'    => 'CUSTOM_MODULE_NAME_HERE_page',
     'access arguments' => array('access content'),
     'type'             => MENU_NORMAL_ITEM,
  );
  return $items;
}

/**
 * Implements hook_admin_paths_alter().
 */
function CUSTOM_MODULE_NAME_HERE_admin_paths_alter(&$paths) {
    $paths['your/path/to/your/page'] = TRUE;
}

/**
 * page callback
 */
 function CUSTOM_MODULE_NAME_HERE_page(){
    $output = 'your page content';
    return $output;
}
Güeno
источник
3

Самый простой способ - реализовать простой пользовательский модуль, который выполняет следующие действия:

  • Реализовать hook_menu () и определяет пользовательские страницы обратного вызова
  • Верните контент, который вы хотите в вашей странице обратного вызова
  • Включите ваш любимый плагин лайтбокса jQuery (либо через модуль Drupal, либо вручную)
  • Добавьте пользовательский файл JavaScript через drupal_add_js ()
  • В своем пользовательском файле javascript свяжите событие по вашему выбору и заставьте плагин лайтбокса загружать внешнее содержимое с URL-адреса в вашем hook_menu ()

Если вы предпочитаете, вы всегда можете сделать так, чтобы ваше меню ловушек возвращало содержимое в форме JSON, используя drupal_json (), и добавляло его в виде встроенного html в лайтбокс вместо ссылки на внешний файл.

Алекс Вебер
источник
2

Очень простой способ сделать это из узла Display в виде всплывающего окна : существует множество решений для такого рода вещей. Я бы сделал это в слое темы, чтобы получить что-то действительно легкое. Вы также можете использовать различные всплывающие модули для этого. Один из простых способов сделать это - использовать модуль Lightbox2, зайти на эту страницу документации: http://drupal.org/node/252260

ipwa
источник
2

Чтобы показать все содержимое страницы в оверлее (всплывающем окне ), используйте модуль overlay_path .

Установите модуль и в настройках укажите URL страницы, которую нужно показать как наложение (всплывающее окно).

smsivaprakaash
источник
0

Вы можете использовать несколько простых jquery и css, как упомянуто здесь, и загрузить внешнюю страницу с помощью ajax.

Ayush
источник
эй, приятель, спасибо за твой ответ .. Но я уже пробовал с этим .. Но возникли некоторые проблемы .. Так что я ищу какую-то другую альтернативу .. !!
Самер
1
Правильный способ сделать это - использовать основные API оверлея, если таковые имеются.
Шиваджи
Я полностью согласен с Бартом. Может быть, этот сайт переехал сюда: jquerytools.org/documentation/overlay .
Sk8erPeter