Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/08/2011, 21h05   #1
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Par défaut Changer contenu d'un div en fonction de l'url

Bonjours,

Je me posais la question suivante, est t'il possible d'inclure une page en fonction de l'url ?

Par exemple lorsque je vais sur http://monsite.com/login/, sa inclurai formulaire.phtml au lieu de news.phtml.

Si je pouvais faire sa se serai géniale.

Merci
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 21h11   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 119
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 119
Points : 8 468
Points : 8 468
c'est a toi de bien régler ton controller
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 21h27   #3
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Ce que je demande ressemblerai fortement a cette finction :
Code :
1
2
 
 <?php echo $this->layout()->content ?>
Mais je sais pas comment rajouter une nouvelle.
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 21h29   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 119
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 119
Points : 8 468
Points : 8 468
non c'est dans le controller qui faut réglé ca, si tu ne connais pas le ZF je te conseil de faire le quickstart
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 22h06   #5
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
En faite, si tu peux le faire de plusieurs manières.

- En définissant une règle de réécriture dans le .htaccess.
- En utilisant une aide de vue
- En utilisant un plugin qui doit être appelé en avant toute action.
- Sinon dans ton controleur et ton action login tu utilise setView() en définissant ta vue.
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 22h07   #6
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Je pense pas que la solution est dans quickstart puisque sa fait 2 ou 3 fois que je viens de le relire.
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 22h12   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 119
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 119
Points : 8 468
Points : 8 468
Citation:
Envoyé par thebarbarius Voir le message
Je pense pas que la solution est dans quickstart puisque sa fait 2 ou 3 fois que je viens de le relire.
au dela du quickstart y'a toutes la doc derriere, montre ton loginController ou ton indexController
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 22h46   #8
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Et bien je bloque.

En faite dans le layout je souhaite faire quelque chose comme sa :

Code :
1
2
3
 
IndexController.php
$this->view->controller = $this->getRequest()->getControllerName();
Et dans layout.phtml
Code :
1
2
3
4
5
6
7
8
9
 
if ($this->controller == "index") {
 echo $this->render('presentation.phtml');
}
 
 
if ($this->controller == "auth") {
 echo $this->render('login_form.phtml');
}
Mais je sais doute que se soit une bonne idée puisque il faudrai ajouter a tous les controller sa :
Code :
1
2
 
$this->view->controller = $this->getRequest()->getControllerName();
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 22h52   #9
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
Si c'est ce que je pense, ce que tu veux faire c'est afficher le formulaire de login si l'utilisateur n'est pas connecté ?

Si c'est bien ça c'est ce que je te disais tu as besoin de développé un plugin qui sera appelé avant une action.

Regarde ce tutoriel:
http://julien-pauli.developpez.com/t...age=modele-MVC
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 22h54   #10
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Non, en faite quand tu te rends sur la page de login sa t'inclus un fichier diffenrent qu si tu etais sur la page d'accueil
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 22h56   #11
Modérateur
 
Inscription : septembre 2010
Messages : 7 119
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 119
Points : 8 468
Points : 8 468
montre tes vrais fichiers
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 23h01   #12
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Mais voici mon layout.
layout.phtml
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php echo $this->doctype() ?>
<html>
<head>
    <?php echo $this->headMeta() ?>
	<?php echo $this->headTitle() ?>
	<!-- CSS -->
	<?php
	$this->headLink()->prependStylesheet($this->baseUrl().'/css/style.css')
		 ->prependStylesheet('/css/grid.css')
		 ->prependStylesheet('/css/menu_top.css')
		 ->prependStylesheet('/css/index.css');
	echo $this->headLink();
	?>
	<!-- JS -->
	<?php
	$this->headScript()->prependFile('/js/modalbox.js')
	->headScript()->appendFile('https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js')
	->headScript()->appendFile('https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/jquery-ui.min.js'); 
	echo $this->headScript();
	?>
</head>

<body>
<div id="usercp" class="container_6"> cette div doit changer selon le controller
	<?php echo $this->render('template/middle/usercp/register.phtml');?>
	<?php echo $this->render('template/middle/usercp/login.phtml');?>
</div>

    <?php echo $this->layout()->content ?> 
</body>
</html>
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 23h08   #13
Modérateur
 
Inscription : septembre 2010
Messages : 7 119
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 119
Points : 8 468
Points : 8 468
je vois mieux, t'as pas de d'ACL pour savoir si l'utilisateur est loguer ou pas ?
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 23h09   #14
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
Il te faut faut mettre et de faire les test:
Code :
$this->render('presentation.phtml');
dans l'action index de ton controller login
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 23h11   #15
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Mais j'ai pris l'histoire du login juste pour exemple, sa peut etre un autre nom.

a pas besoin des scripts parce que ce que je vaux faire est simple.

Quand on va sur http://monsite.com/index c'est description.phtml qui est inclus si on est sur http://monsite.com/login c'est login_form.phtml qui doit etre inclus.

Sans zend sa donnerai sa :
Code :
1
2
3
4
5
6
7
8
 
if (!isset($_GET['xx']) {
include 'description.php';
}
 
if ($_GET['xx'] == 'login') {
include 'login_form.php';
}
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 23h15   #16
Modérateur
 
Inscription : septembre 2010
Messages : 7 119
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 119
Points : 8 468
Points : 8 468
fait plutôt
Code :
1
2
3
4
5
6
7
8
9
 
if(Zend_Auth::getInstance()->hasIdentity())
{
    echo $this->render('template/middle/usercp/register.phtml');
}
else
{
    echo $this->render('template/middle/usercp/login.phtml');
}
mais je comprend pas pourquoi c'est pas dans index/index.phtml et login/index.phtml tout ça ...

de plus c'est pas tres claire tout ca en 3 post y'a :

Code :
1
2
3
4
5
6
formulaire.phtml
news.phtml
presentation.phtml
description.phtml
register.phtml
login_form.phtml
essaye d’être plus precis pour qu'on t'aides ...
login.phtml
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 23h17   #17
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Comme dit plus haut stealth sa a rien avoir avec les session, j'ai pris le nom du controller "login" pour exemple.

Ce que tu dis je l'ai deja appliqué pour afficher le bouton "deconnexion".

Relis plus haut ce que j'ai marqué, ta été plus rapide que mois desolé.
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 23h29   #18
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
En gros ce que tu veux c est que pour chaque action associer une vue différente de celle par defaut, ce qui parait bizarre mais bon.

Dans ce cas la a moins de créer un plugin en predispach il te faut faire des $this->render sur chacune de tes actions en precisant la vue
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 23h31   #19
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Non changer juste une include sa doit pas etre si sorcier que sa sachant que j'ai donné un debut de solution dans mon 2 ieme ou 3ieme post

Je modifier vais ma requete j'ai l'impression que j'ai tout mal expliqué.

Comment afficher dans le layout le nom du controller ou je me trouve ?
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 23h33   #20
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
Ce n est pas le role du layout mais si tu veux inclure un fichier dans le layout c est avec $this->partial() en precisant la vue et non pas render
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h57.


 
 
 
 
Partenaires

Hébergement Web