Comment afficher du contenu dans une superposition?

18

Je veux afficher du contenu, renvoyé d'un appel AJAX dans une superposition ou une popup.

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

Sameer
la source

Réponses:

8

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;
}
Gueno
la source
3

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é (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 demander à votre menu hook de renvoyer le contenu sous forme JSON, à l'aide de drupal_json () et de l'ajouter en tant que code HTML en ligne à la lightbox, au lieu de référencer un fichier externe.

Alex Weber
la source
2

Un moyen très simple de le faire à partir du nœud d'affichage en tant que 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 popup pour cela. Une façon simple de le faire est d'utiliser le module Lightbox2, consultez cette page de documentation: http://drupal.org/node/252260

ipwa
la source
2

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).

smsivaprakaash
la source
0

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

ayush
la source
Hé mon pote, merci pour votre réponse .. Mais j'ai déjà essayé avec ça .. Mais j'ai quelques problèmes .. Donc je cherche une autre alternative .. !!
Sameer
1
La bonne façon de procéder consiste à utiliser les API de superposition de base si elles sont disponibles.
Sivaji
Je suis totalement d'accord avec Bart. Peut-être que ce site a déménagé ici: jquerytools.org/documentation/overlay .
Sk8erPeter