Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
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 05/12/2010, 19h32   #1
Responsable Qt & Web sémantique

 
Avatar de dourouc05
 
Homme Thibaut Cuvelier
Étudiant
Inscription : août 2008
Messages : 16 260
Détails du profil
Informations personnelles :
Nom : Homme Thibaut Cuvelier
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : août 2008
Messages : 16 260
Points : 49 821
Points : 49 821
Envoyer un message via MSN à dourouc05 Envoyer un message via Yahoo à dourouc05
Par défaut [Admin Generator] N'afficher une action personnalisée que sous certaines conditions



Après avoir recherché un certain temps, je me tourne vers le forum, au cas où quelqu'un aurait une réponse à cet épineux problème...

J'utilise l'Admin Generator avec Doctrine. J'ajoute par-dessus quelques actions personnalisées ; jusque là, pas de problème. Maintenant, j'aimerais n'afficher les boutons pour ces actions que si certaines conditions sont remplies (une string de l'enregistrement non remplie d'un côté ; de l'autre, une string remplie et une vide). Je peux empêcher l'action de se produire quand on la lance ; le problème est que le bouton apparaît encore et toujours, alors que j'aimerais ne le voir que quand l'action est possible...

Plus dans le code, j'ai actuellement ce genre de trucs dans mes actions personnalisées pour empêcher l'action de se produire sous certaines conditions :
Code :
1
2
3
4
5
6
7
8
9
10
		$q = Doctrine_Query::create()
				->from('table t')
				->where('t.id = ?', $request->getParameter('id'))
				->fetchOne();
 
		if($q->getUrl())
		{
			$this->getUser()->setFlash('notice', 'The item has its URL. ');
			$this->redirect('@home');
		}
J'aimerais que, si l'enregistrement respecte cette condition, l'action personnalisée ne soit pas affichée (ou, de manière identique, si elle n'est pas réalisée, qu'il soit affiché).

Une idée ?

__________________
Le troisième défi Qt !

Vous souhaitez participer aux rubriques Qt ou PyQt/PySide (tutoriels, FAQ, traductions, sources) ? Contactez-moi par MP.

Qt : La FAQ : 200 QR
symfony : sfDoctrineGuard

Pas de question d'ordre technique par MP !
dourouc05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 11h33   #2
Membre confirmé
 
Inscription : février 2009
Messages : 317
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 317
Points : 209
Points : 209
Modifier le fichier : _list_batch_actions.php ?
En ajoutant les conditions voulue lors de la formation du <select>
Apres c'est surement pas la meilleure méthode, mais ca devrait fonctionner.
insane1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 13h47   #3
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Tu le veux sur :
  • l'action sur une partie de la liste ?
  • l'action sur certain enregistrement unitaires dans la liste ?
  • l'action sur l'édition d'un enregistrement, dans certains cas ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 20h13   #4
Responsable Qt & Web sémantique

 
Avatar de dourouc05
 
Homme Thibaut Cuvelier
Étudiant
Inscription : août 2008
Messages : 16 260
Détails du profil
Informations personnelles :
Nom : Homme Thibaut Cuvelier
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : août 2008
Messages : 16 260
Points : 49 821
Points : 49 821
Envoyer un message via MSN à dourouc05 Envoyer un message via Yahoo à dourouc05
Citation:
Envoyé par Michel Rotta Voir le message
Tu le veux sur :
  • l'action sur une partie de la liste ?
  • l'action sur certain enregistrement unitaires dans la liste ?
  • l'action sur l'édition d'un enregistrement, dans certains cas ?
Juste sur un enregistrement à la fois.

Citation:
Envoyé par insane1 Voir le message
Modifier le fichier : _list_batch_actions.php ?
En ajoutant les conditions voulue lors de la formation du <select>
Apres c'est surement pas la meilleure méthode, mais ca devrait fonctionner.
Ça, ce serait pour modifier les actions sur des lots ; or, mon opération est déjà extrêmement lourde pour un seul item (15 secondes en moyenne, il s'agit de générer un fichier torrent pour un fichier proposé en téléchargement, les fichiers en question faisant au moins 150 Mo, surtout que ça ne devra être fait qu'une fois par téléchargement au plus et comme on ne les ajoute jamais par dizaines...). J'aimerais modifier ça dans les actions mises dans la colonne Actions, à côté de Edit et de Delete, soit le fichier _list_td_actions.php.

En utilisant cette technique, ça marche ! (Je n'y avais même pas pensé ...).

Dans templates/_list_td_actions.php, au lieu de
Code :
1
2
3
    <li class="sf_admin_action_torrent">
      <?php echo link_to(__('Torrent', array(), 'messages'), 'telechargement/ListTorrent?id='.$telechargement->getId(), array()) ?>
    </li>
mettre
Code :
1
2
3
4
5
	<?php if(! $telechargement->getTorrent()): ?>
    <li class="sf_admin_action_torrent">
      <?php echo link_to(__('Torrent', array(), 'messages'), 'telechargement/ListTorrent?id='.$telechargement->getId(), array()) ?>
    </li>
	<?php endif; ?>
__________________
Le troisième défi Qt !

Vous souhaitez participer aux rubriques Qt ou PyQt/PySide (tutoriels, FAQ, traductions, sources) ? Contactez-moi par MP.

Qt : La FAQ : 200 QR
symfony : sfDoctrineGuard

Pas de question d'ordre technique par MP !
dourouc05 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 13h56.


 
 
 
 
Partenaires

Hébergement Web