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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Comment ajouter une condition presave pour un type de contenu?


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 207
    Points : 60
    Points
    60
    Par défaut Comment ajouter une condition presave pour un type de contenu?
    Bonjour tout le monde, j’ai créé un type de contenu sur drupal, et j’aimerais ajouter une condition sur ce dernier.
    Je débute en drupal. J’ai regardé sur internet. J’ai vu que presave pouvait correspondre au moment ou je veux réaliser mon action spécifique.

    Ou est ce que je dois réaliser cette modification ?

    En fait j’aimerais vérifier le nombre de contenu avant de l’insérer dans la base de données afin d’établir une limite.

    Merci d’avance
    Mickael

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 207
    Points : 60
    Points
    60
    Par défaut
    Je veux ajouter un code de ce genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if($op == 'presave' && $node->type == 'IPad') {
    		$sql = "SELECT COUNT(*) FROM content_type_ipad";
     
    		$total = db_result(db_query($sql));
     
    		if($total == 15){
    			//Vous ne pouvez pas ajouter cet Ipad, car vous avez dépasser la limite.	
    		}	
    		else{
     
    		}
    }

  3. #3
    Membre régulier Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Points : 122
    Points
    122
    Par défaut
    Bonjour,

    j'ai fait comme ceci pour faire ça ( et qui marchait )

    tu crée une module presave.module et presave.info (exemple)

    tu installe/active ton module perso

    dans ton module tu implemente ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function presave_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
      if($op == 'presave' && $node->type == 'IPad') {
    		$sql = "SELECT COUNT(*) FROM content_type_ipad";
     
    		$total = db_result(db_query($sql));
     
    		if($total == 15){
    			//Vous ne pouvez pas ajouter cet Ipad, car vous avez dépasser la limite.	
    		}	
    		else{
     
    		}
    }
    Je pense aussi quil y a un autre moyen c'est d'ecrire le code dans template.php de ton theme mais j'ai pas tester ça (tu peut tester et me tenir au courant :-))

    merci
    }

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 103
    Points : 120
    Points
    120
    Par défaut
    Salut,

    J'arrive un peu après la guerre, mais pour ce qui est du presave, je pense que la fonction hook_node_presave répond à ton besoin pour une intégration de template.php.

    Dans ton cas la première ligne de ta fonction serait de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($node->type ==='ipad'){ .... }
    .

    Sinon il existe un module rules qui permet d'appliquer des contraintes mais je ne sais pas si ça peut répondre à ton besoin.

    Où en es-tu ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 26
    Points : 21
    Points
    21
    Par défaut
    node_presave n'est dispo que sur D7 en passant *
    Sinon tu as le module rules (intégré au core sous D7 je crois) qui gère très bien ces petits comportements. Il permet de réaliser des traitements à l'aide de trigger.

Discussions similaires

  1. [AC-2003] Comment Ajouter Une condition a un code de fermeture automatique ?
    Par taz devil dans le forum IHM
    Réponses: 2
    Dernier message: 23/09/2015, 11h51
  2. [XSLT 2.0] comment ajouter une condition ?
    Par khoukhain dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 14/04/2015, 13h48
  3. comment ajouter une condition if dans code VBA
    Par misig dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 13/12/2007, 00h03
  4. Réponses: 16
    Dernier message: 06/04/2007, 13h36
  5. Réponses: 5
    Dernier message: 21/07/2006, 14h52

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