Lightbox2 et affichage de contenu de node

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

J'ai un petit souci avec lightbox2...
Je cherche à ouvrir un lien sur une page avec lightbox.

En fait j'ai créé un annuaire.
Sur une page classique, j'ai écris un texte avec le nom de certaines personnes et je voudrais que lorsqu'on click sur leur nom on puisse voir la page relative à leur biographie dans lightbox, une sorte de popup lightbox en fait.
J'arrive à ouvrir des pages avec lightbox mais il m'ouvre mon site en entier, c'est à dire avec les menus, l'entente, le pied de page et tout... Est ce qu'il est possible d'ouvrir les pages avec lightbox mais juste le contenu du node ?

Merci beaucoup pour vitre aide !

Version de Drupal : 

Bonsoir,
J'ai finalement trouvé comment faire pour afficher le contenu d'un node avec lightbox2.
En revanche ca ne marche plus depuis que j'ai modifié l'url de mes pages avec le module path.
Ca ne m'affiche plus le contenu du node avec lightbox sauf si je laisse node/2.
En fait je ne peux pas utiliser l'url que j'ai définie...
Quelqu'un a une idée d'ou ca peut venir ?

Merci:)

Bonjour,

je cherche moi aussi à réaliser la même chose : ouvrir dans une fenêtre modale (ou un lightbox) le contenu d'un node. Pouvez-vous m'indiquer votre façon de procéder pour y arriver.
aussi, avez-vous aussi résolu votre problème de liens ?
Merci

Bonjour,
Pouvez vous m'expliquer comment vous avez fait pour ouvrir un node dans une lightbox???
Moi aussi je suis a la recherche d'une solution pour cette recherche.
Merci d'avance.

Bonjour,

Il faut créer un template spécial pour les nodes Lightbox2 et configurer les filtres d'entrées pour gérer l'ouverture des liens dans une lightbox.

Par contre n'oubliez pas de spécifier dans votre template <base target="_top"> si vous ne voulez pas que lorsqu'on clique sur un lien dans la lightbox, la nouvelle page s'affiche toujours dans la lightbox.

Sinon sans iframe il y a le module Popup qui fonctionne bien, je préfère utiliser celui-ci.

Salut,
J'ai ajouté le module popup a mon site drupal.
Et apres plusieurs tests et recherches je ne vois vraiment pas comment faire pour ouvrir un de mes types de contenus dans une fenetre popup.
Pourrais tu me donner quelques pistes pour le paramétrage a mettre en place pour realiser cette recherche??
Je te remercie d'avance.

Hello, pour cela il suffit d'ajouter la classe "popups" aux liens que tu souhaites ouvrir dans un popup. Par exemple : <a href="node/123" class="popups">mon lien</a>. C'est le même principe qu'avec Lightbox, où il fallait ajouter /lightbox2 à la fin du lien ou alors rel="lightframe".

Salut,

Désolé de poser des questions à la con (mais je suis vraiment une bulle dans tout ce qui est paramétrage et encore plus tout ce qui touche au code pur), pourrais t me dire sur quel fichier je dois jouer pour pouvoir ajouter la ligne de commande que tu m'as donné??

Est il possible de créer une ligne de commande générique qui m'ouvre tout mes types de contenu ex: mon_contenuA automatiquement en popup ou lightbox sans avoir a ajouter a nouveau une ligne a la main dans le fichier de paramétrage lors de la création d'un nouveau contenu de ce type??

L'idée en fait est que via une views je liste mes différents de contenue de type mon_contenuA.
Et qu'en suite en cliquant sur un de liens il s'ouvre en popup ou lightbox.

Hello,

Pour les views il est relativement simple d'automatiser l'ouverture d'un lien dans une popup :

  • Choisis les champs que tu veux afficher, ex : "Node: Titre" et "Node: Résumé". Ajoute aussi "Node: NID". Place "Node: NID" au sommet de la liste.
  • Dans les options de "Node: NID", choisis de l'exclure de l'affichage. Dans celle de "Node: Titre", choisis de ne pas afficher ce champ comme un lien, et choisis de réécrire la sortie de ce champ. Dans la zone de texte qui apparaît, écris quelque chose comme <a href="/node/[nid]" class="popups">[title]</a>.

[nid] sera remplacé automatiquement par le node ID du node courant, et [title] par le titre du node courant. Ainsi quand tu cliqueras sur le titre d'un node dans ta vue, celui-ci s'ouvrira en popup.

Bonjour,

Finallemnt, j'ai décidé d'utiliser une lightbox (j'utilise shadowbox)pour l'ouverture de mes liens à partir d'une vue crée par Views. Je trouve que le rendu est beaucoup mieux via une lightbox que via une fenetre popup. Comme tu me le disais, j'ai injecté du code lors de la création de la view (en occurence: [title].

La lightbox s'ouvre tres bien et fonctionne bien.

Mais helas, çà m'affiche a la fois le contenu de mon node ainsi que le pied de page, les divers blocks que j'ai mis en place,mes menus, etc,... En fait je voudrais que soit affiché uniquement le contenu de ma page sans ce qu'il y a autour.

Je voudrais donc savoir si qqn a une idée????

Je pensais éventuellement essayer de passer un argument test lors de l'ouverture de mes liens et faire en sorte que cet argument soit testé par les différents blocs du site pour savoir si ces derniers doivent s'afficher ou non.

Ou 2eme idée faire appel à une nouveau template pour l'ouverture spécifique de ces liens.

Etant vraiment débutant en programmation, j'aurais aimé avoir des avis et qqs pistes eventuelles.

Merci d'avance.

Désolé de na pas avoir répondu plus tôt.
Le principe est simple : ajouter à tes url (de ta views) un paramètre qui dit 'ouvrir juste le node, pas toute la page'. C'est donc un paramètre GET, que dans mon cas j'ai appellé 'view-node-ref'. Tu vas ensuite personnalisé le template.php de ton thème pour détecter ce paramètre et au besoin n'afficher que le node sans le reste des éléments de la page.

Donc moi mon lien ressemble à ça : http://www.exemple.fr/?q=view_noderef_fichier/1551&ajax=1&view-node-ref=1&content=fichier

Dans template.php tu modifies ou créé au besoin la fonction

function phptemplate_preprocess_page(&$vars) {
  $vars['tabs2'] = menu_secondary_local_tasks();

  // Hook into color.module
  if (module_exists('color')) {
    _color_page_alter($vars);
  }
 
  if ( isset($_GET['view-node-ref']) && $_GET['view-node-ref'] == 1 ) {
    switch ($_GET['content']) {

         case "page":
     $vars['view_header'] = "<i>(Cliquer sur le titre d'une page li&eacute;e &agrave; ce contenu pour la visiter.)</i>";
       break;
        
       case "son":
      $vars['view_header'] = "<i>(Cliquer sur le titre d'un fichier son pour voir sa description et l'&eacute;couter.)</i>";
       break;
        
       case "video":
        $vars['view_header'] = "<i>(Cliquer sur le titre d'un fichier vid&eacute;o pour voir sa description et le visionner.)</i>";
       break;
        
       case "diaporama":
        $vars['view_header'] = "<i>(Cliquer sur le titre de ce diaporama pour accéder à cette page. Cliquer sur le titre ou la vignette d'une image pour y accéder directement.)</i>";
        break;
        
       case "fichier":
      $vars['view_header'] = "<i>(Cliquer sur le nom du fichier pour l'ouvrir dans une autre fen&ecirc;tre.)</i>";
          break;
     } // end switch
   
   $vars['template_file'] = 'page-view-node-ref';
  } // end if 'view-node-ref'==1
 
}

tu rajoutes le if qui vérifie si le paramètre est présent et s'il est égal à 1
(moi je rajoute un titre personnalisé grâce au switch) puis tu définie le template à utiliser ($vars['template_file'] = 'mon fichier de template')

tu créé un fichier de template qui n'aura pas de menu etc...
dans mon cas : page-view-node-ref.tpl.php

et t'y mets dedans ce qu'il te faut

<?php
// $Id: views-view.tpl.php,v 1.13 2009/06/02 19:30:44 merlinofchaos Exp $
/**
 * @file views-view.tpl.php
 * Main view template
 *
 * Variables available:
 * - $css_name: A css-safe version of the view name.
 * - $header: The view header
 * - $footer: The view footer
 * - $rows: The results of the view query, if any
 * - $empty: The empty text to display if the view is empty
 * - $pager: The pager next/prev links to display, if any
 * - $exposed: Exposed widget form/info to display
 * - $feed_icon: Feed icon to display, if any
 * - $more: A link to view more, if any
 * - $admin_links: A rendered list of administrative links
 * - $admin_links_raw: A list of administrative links suitable for theme('links')
 *
 * @ingroup views_templates
 */

if ($view_header) {
  print
$view_header;
}

print $content;

?>

et voilou, pour toute url qui a ce paramètre GET, le node sera ouvert avec un autre fichier de template (autre que page.tpl.php) !

A+

Edouard

Si tu as ajouté /lightbox2 à la fin de l'adresse du node ("node/123/lightbox2"), tu pourras utiliser le template page-node-lightbox2.tpl.php, dont un exemple se trouve dans le dossier du module lightbox2. Ainsi les blocs, en-tête et pied de page n'apparaîtront plus.

Merci a vous deux pour ces infos.

Je n'ai pas encore eu l'occasion de tester vos différentes méthodes mais çà ne va pas tarder.
Comme je m'oriente plus vers une utilisation de Shadowbox à la place de lightbox2 je vais donc pencher plus pour la solution de EDDYL sauf si entre temps je trouve un moyen de lancer un node dans shadowbox aussi simplement que mdupont le présente avec lightbox2.

Je teste tout çà tres rapidement.

Bonsoir,
J'utilise également lightbox pour afficher le contenu de ma node. J'ai créé un nouveau template de page. Tout s'affiche bien, en revanche je n'arrive pas à modifier les CSS à l'intérieur de la lightbox?
Pourriez vous me dire comment faire?

Merci d'avance pour votre aide.