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.
Salut, Pourrais-tu préciser
Permalien Soumis par drupalfrance le 23 Mai, 2007 - 11:56
Salut,
Pourrais-tu préciser ta question : ce qui te pose problème, c'est de faire en sorte que le lien cliqué s'ouvre dans une popup (auquel cas, ça n'est pas vraiment du Drupal, mais plutôt du JavaScript) ou c'est que la page affichée dans la popup doit avoir un certain format (par ex. on masque la nav, le pied de page...) ?
Salut, Merci pour votre
Permalien Soumis par haimr le 23 Mai, 2007 - 13:22
Salut,
Merci pour votre réponse, en fait c'est la deuxieme proposition.
Je veux avoir un popup qui contient pas toute la page drupal, mais juste le BODY (sans le header....).
En ce qui concerne le lien, j'utilise thickbox et ca fonctionne à merveille.
Merci pour votre réponse
OK. La solution comprend 2
Permalien Soumis par drupalfrance le 23 Mai, 2007 - 13:50
OK.
La solution comprend 2 éléments. D'abord, il faut que tu trouves un moyen d'identifier les pages qui vont s'ouvrir dans des popups. Là, tu as plusieurs méthodes :
Rajouter un paramètre dans l'URL, par exemple http://monsite.com/node/18?pop=TRUE ; ici ?pop=TRUE indique que l'URL en question devra s'afficher en mode "popup".
Ou bien, définir dans ton code une règle permettant d'identifier les pages qui doivent s'afficher en mode "popup", par exemple : "tous les nodes de type story" ou "les nodes portant l'id 12, 24, ou 52".
Ensuite, il faut trouver un moyen d'indiquer à Drupal que si l'une des conditions ci-dessus est remplie, il faut utiliser un template spécial popup plutôt que le template standard servant à afficher une page (
page.tpl.php
).Pour ça, il faut créer un fichier
template.php
dans le répertoire de ton thème, et y ajouter la fonction suivante :En gros, ce code dit "si le paramètre pop=TRUE est trouvé dans l'URL, utilise le template
page-popup.tpl.php
pour afficher la page".Il te reste une chose à faire pour que ce code fonctionne : créer le template
page-popup.tpl.php
. Va dans le répertoire de ton thème et duplique le fichierpage.tpl.php
pour le renommer enpage-popup.tpl.php
. Dans ce nouveau fichier, supprime les zones que tu ne veux pas voir apparaître dans la popup (header, footer, sidebar_left, sidebar_right...), et le tour est joué.Ce code suppose que tu utilises un thème basé sur le moteur PHPTemplate (c'est le cas de bluemarine ou garland).
Merci vincent je vais
Permalien Soumis par haimr le 23 Mai, 2007 - 14:22
Merci vincent
je vais appliquer votre methode.
Bonne journée
Je vais chipoter mais juste
Permalien Soumis par tostinni le 23 Mai, 2007 - 16:52
Je vais chipoter mais juste une micro remarque :D
Il ne faut pas mettre http://monsite.com/node/18?pop=TRUE mais http://monsite.com/node/18&pop=TRUE car en fait le ? est passe en premier lieu apres le .com
Si t'as pas active les cleans URLs tu vois http://monsite.com/?q=node/18 les cleans URLs quittent le ?q= mais en realite il est tjs la mais n'est affiche nulle part ;)
Merci pour la micro
Permalien Soumis par haimr le 23 Mai, 2007 - 17:23
Merci pour la micro remarque, ce genre de remarque evite parfois de chercher des heures sans savoir d'ou viens le probleme
:)
Je crois pas que t'aurais
Permalien Soumis par drupalfrance le 23 Mai, 2007 - 19:47
Je crois pas que t'aurais cherché pendant des heures : le code que je t'ai indiqué fonctionne (déjà utilisé). Simplement, celui de tost est syntaxiquement - plus - correct. :)
Bonjour, très
Permalien Soumis par yoda le 10 Novembre, 2009 - 16:57
Bonjour,
très intéressantes vos réponses. J'aimerai moi afficher le formulaire d'une page de l'admin dans une popup (ex:monsite.com/admin/node/add/nodeType) et non un node. Auriez-vous une astuce car là je bloque depuis un moment.
Merci beaucoup et bonne journée...
PS: je précise que j'utilise la version 6.14.
merci
Bonjour tout le monde, j’ai
Permalien Soumis par Baze-a le 16 Novembre, 2010 - 16:44
Bonjour tout le monde,
j'ai suivi la méthode de Vincent , mais je n'arrive pas à basculer sur la bonne template lorsque ma variable "pop" est initialisé dans l'url.
J'ai besoin d'afficher un sondage dans une popup, du coup j'ai repris la fonction en remplacant "page" par "webform"
<?php
function _phptemplate_variables($hook, $vars = array()) {
if ($hook == 'webform' && isset($_GET['pop']) && $_GET['pop']) {
$vars['template_file'] = 'page-popup';
}
return $vars;
}
?>
Cependant, lorsque je tape :
http://monsite.com/titre-de-mon-webform&pop=true
ou même
http://monsite.com/&pop=true
...rien ne se passe, j'ai aussi remplacé le "&" par un "?"
Faut-il que je fasse appel à la fonction "_phptemplate_variables" dans une page particulière hors mis "template.php" ?
PS : je viens tout juste de tilter que la version Drupal dans cette discussion est là 5...je suis sous la version 6.x aarf
Merci en tous cas pour toutes ces piste, je vais voir s'il y a une équivalence pour la ver.6 de Drupal
@++