IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Petits problèmes avec Symfony


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Par défaut Petits problèmes avec Symfony
    Bonsoir,

    Voilà j'ai quelques questions sur certains points précis de Symfony et sur lesquels je bloque depuis un moment. Jusqu'à maintenant j'ai fais l’impasse dessus mais le projet avançant je ne peux plus me contenter d'ignorer ces problèmes

    1) Les helpers use_javascript() et use_stylesheet()

    J'utilise pas mal de plugins jQuery et cela devient l'anarchie dans mes dossiers /js et /css du dossier /web. Je voudrais créer un répertoire pour chaque plugin à la racine de /web. Mais pour que cela marche je suis obligé de faire (par exemple avec nivoslider) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php use_stylesheet('../nivoslider/nivo-slider.css') ?>
    Ce qui me donne un lien tout moche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="stylesheet" href="/css/../nivoslider/nivo-slider.css" />
    Il n'y a pas un moyen de faire ça plus proprement avec un fichier de configuration peut être ?

    2) Autre problème plus important. J'utilise le plugin sfDoctrineGuardPlugin et je voudrais faire en sorte que lorsque le super administrateur poste une news celle-ci soit automatiquement activée. Pour ce faire, j'ai un champ boolean: is_activated avec default: 0. J'ai placé le code suivant dans l'action executeNew :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($this->getUser()->isSuperAdmin())
    {
       $release->setIsActivated(true);
    }
    Avant l'insertion le champ is_activated vaut bien 1 mais après l'insertion il repasse à 0. J'imagine que c'est normal en l'état mais je ne vois pas ou placer ce code. Peut être en surchargeant la méthode save() ?

    3) Est-ce qu'il est correct dans le modèle MVC de récupérer un paramètre $_GET dans une classe du modèle et, si oui, comment faire car $request->getParameter() ne marche pas ? (C'est pour une fonction de recherche/filtre qui utilise les données $_GET d'un formulaire en Ajax)


    Voilà, j'ai bien conscience que cela fait beaucoup de questions d'un coup, mais j'aimerais si possible résoudre ces problèmes rapidement pour pouvoir continuer à avancer sereinement.

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 18
    Par défaut
    Bonjour,

    Pour le 1)

    Il me semble que tu peux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php use_stylesheet('/mon-lien-vers-mon-css') ?>
    ce qui donnera

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="stylesheet" href="/mon-lien-vers-mon-css" />
    Pour le 3)

    Il faut utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sfContext::getInstance()->getRequest()
    mais je ne pense pas que se soit correct, essaye de passer par une méthode de ton model pour passer la variable.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Par défaut
    Merci pour ton aide.

    Effectivement ça marche pour les helpers, il me semblait pourtant déjà avoir essayé comme ça mais sans succès... c'est peut être le cache qui m'a joué un mauvais tour !

    Merci pour la piste du sfContext::getInstance()->getRequest(), pour l'instant j'utilise $_GET['mar_var'] donc c'est pas terrible non plus...

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Par défaut
    Je pense avoir trouvé la solution concernant la question 2, peut être pas idéale mais ça marche. J'ai placé le code dans la méthode processForm en rajoutant 2 conditions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    protected function processForm(sfWebRequest $request, sfForm $form)
      {
        $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
        if ($form->isValid())
        { 
          $news = $form->getObject();
     
          /* Si c'est une nouvelle news */
          if ($news->isNew())
          {
            // Alors on récupère l'id du membre en session et le met dans le champ user_id
            $news->setUserId($this->getUser()->getUserIdFromSessData());
     
            // Si le membre qui a posté est Super Admin on met le champ is_activated a true
            if ($this->getUser()->isSuperAdmin())
            {
              $news->setIsActivated(true);
            }
          }
     
          $news = $form->save();
          $this->redirect($this->generateUrl('news_show', $news));
        }
      }
    La méthode getUserIdFromSessData() est un raccourci de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->getAttribute('user_id', null, 'sfGuardSecurityUser')

    Voilà. L'avantage de cette technique c'est que je n'ai plus à mettre l'id du membre en champ caché dans mon formulaire. Est-ce que c'est bien de faire comme ça où il y a encore mieux ?

Discussions similaires

  1. Petits problèmes avec une CListCtrl
    Par vanitom dans le forum MFC
    Réponses: 2
    Dernier message: 17/11/2005, 11h45
  2. Un petit problème avec pop
    Par Paulinho dans le forum C++
    Réponses: 4
    Dernier message: 13/11/2005, 20h57
  3. Petit problème avec Line Input
    Par GrosQuicK dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/09/2005, 12h47
  4. (Petit ?) problème avec une page contenant du Flash
    Par ologram dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/09/2005, 18h45
  5. Petit problème avec SDL
    Par Nyarlathotep dans le forum C
    Réponses: 10
    Dernier message: 01/07/2005, 09h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo