web-dev-qa-db-fra.com

Comment afficher du contenu dans une superposition?

Je souhaite afficher du contenu, renvoyé d'un appel AJAX dans une superposition ou une fenêtre contextuelle.

Avez-vous une idée de comment je peux le faire?

18
Sameer

Si vous utilisez Drupal 7, vous pouvez utiliser la superposition administrative avec un module personnalisé.

Vous aurez besoin de 3 crochets dans votre fichier 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;
}
8
Gueno

Dans le sens de la réponse d'ipwa ci-dessus, le module de chemins de superposition est simple et facile à utiliser pour ce type de chose.

5
kbrinner

Le moyen le plus simple consiste à implémenter un module personnalisé simple qui effectue les opérations suivantes:

  • Implémentez hook_menu () et définit un rappel de page personnalisé
  • Renvoyez le contenu que vous souhaitez dans votre rappel de page
  • Incluez votre plugin lightbox jQuery préféré (soit via un module Drupal ou à la main)
  • Ajouter un fichier javascript personnalisé via drupal_add_js ()
  • Dans votre fichier javascript personnalisé, liez l'événement de votre choix et faites en sorte que le plugin lightbox charge le contenu externe à partir de l'URL dans votre hook_menu ()

Si vous préférez, vous pouvez toujours faire en sorte que votre menu hook renvoie le contenu sous forme JSON, en utilisant drupal_json () et l'ajoute en tant que html en ligne à la lightbox, au lieu de référencer un fichier externe.

3
Alex Weber

Pour afficher le contenu d'une page entière dans une superposition (popup), utilisez le module overlay_path .

Installez le module et dans la configuration u incluez l'url de la page que vous devez afficher en superposition (popup).

2
smsivaprakaash

Un moyen très simple de le faire depuis Afficher le nœud comme une fenêtre contextuelle : Il existe de nombreuses solutions pour ce genre de choses. Je le ferais dans la couche thème pour avoir quelque chose de vraiment léger. Vous pouvez également utiliser la variété de modules contextuels pour cela. Une façon simple de le faire est d'utiliser le module Lightbox2, consultez cette page de documentation: http://drupal.org/node/25226

2
ipwa

vous pouvez utiliser quelques jquery et css simples comme mentionné ici et charger une page externe par ajax.

0
ayush

Module de dialogue simple peut être utile, il est facile d'implémenter un lien vers votre page popup

0
pico34