Wie zeige ich Inhalte in einem Overlay an?

18

Ich möchte Inhalte anzeigen, die von einem AJAX-Aufruf in einem Overlay oder Popup zurückgegeben wurden.

Hast du eine Idee, wie ich das machen kann?

Sameer
quelle

Antworten:

8

Wenn Sie Drupal 7 verwenden, können Sie das administrative Overlay mit einem benutzerdefinierten Modul verwenden.

Sie benötigen 3 Hooks in Ihrer CUSTOM_MODULE_NAME_HERE.module-Datei:

/**
 * 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;
}
Gueno
quelle
5

In Anlehnung an die obige Antwort von ipwa ist das Modul für Overlay-Pfade für diese Art von Dingen einfach und leicht zu verwenden.

kbrinner
quelle
3

Am einfachsten ist es, ein einfaches benutzerdefiniertes Modul zu implementieren, das die folgenden Aufgaben ausführt:

  • Implementieren hook_menu () und definiert eine benutzerdefinierte Seite Rückruf
  • Geben Sie den gewünschten Inhalt in Ihrem Seitenrückruf zurück
  • Fügen Sie Ihr Lieblings-Plugin für jQuery lightbox hinzu (entweder über ein Drupal-Modul oder von Hand)
  • Füge eine benutzerdefinierte Javascript-Datei über drupal_add_js () hinzu
  • Binden Sie in Ihrer benutzerdefinierten Javascript-Datei das Ereignis Ihrer Wahl und lassen Sie das Lightbox-Plugin externe Inhalte von der URL in Ihrem hook_menu laden ()

Wenn Sie möchten, können Sie in Ihrem Hook-Menü jederzeit den Inhalt in JSON-Form mit drupal_json () zurückgeben und als Inline-HTML zum Leuchtkasten hinzufügen, anstatt auf eine externe Datei zu verweisen.

Alex Weber
quelle
2

Eine sehr einfache Möglichkeit, dies vom Anzeigeknoten als Popup-Fenster aus zu tun : Es gibt viele Lösungen für diese Art von Dingen. Ich würde es in der Themenebene tun, um etwas wirklich Leichtes zu haben. Hierfür können Sie auch die verschiedenen Popup-Module verwenden. Eine einfache Möglichkeit hierfür ist die Verwendung des Lightbox2-Moduls. Weitere Informationen finden Sie auf der folgenden Dokumentationsseite: http://drupal.org/node/252260

ipwa
quelle
2

Verwenden Sie das Modul overlay_path , um den gesamten Seiteninhalt in einem Overlay (Popup) anzuzeigen .

Installieren Sie das Modul und geben Sie in der Konfiguration die URL der Seite an, die Sie als Overlay anzeigen möchten (Popup).

smsivaprakaash
quelle
0

Sie können, wie hier erwähnt , eine einfache JQuery und CSS verwenden und eine externe Seite von Ajax laden.

ayush
quelle
Hey Kumpel, danke für deine Antwort. Aber ich habe es bereits versucht. Aber ich habe ein paar Probleme. Also suche ich nach einer anderen Alternative.
Sameer
1
Der richtige Weg, dies zu tun, ist die Verwendung der Overlay-APIs, falls verfügbar.
Sivaji
Ich stimme Bart voll und ganz zu. Vielleicht ist diese Seite hierher gezogen: jquerytools.org/documentation/overlay .
Sk8erPeter