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 :

[eZ Publish] Utilisation de eZContentFunctions::updateAndPublishObject


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Par défaut [eZ Publish] Utilisation de eZContentFunctions::updateAndPublishObject
    Bonjour à tous,

    Je m'arrache les cheveux pour trouver comment modifier un objet avec un script php.

    J'arrive à en créer avec eZContentFunctions::createAndPublishObject mais pas à les modifier, je tente bien d'utiliser updateAndPublishObject mais ne trouve aucune aide.

    Si quelqu'un sait comment faire...

    Merci d'avance

  2. #2
    Membre émérite Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Par défaut
    Salut,
    Voici une fonction que j'ai créée pour modifier l'attribut "auteur" d'un objet :
    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
    function modify($contentObjectID, $auteurId) {
     
    	$contentObject = eZContentObject::fetch( $contentObjectID );
     
    	if( $contentObject instanceof eZContentObject ) {
    		/*$xmlDeclaration = '<?xml version="1.0" encoding="utf-8"?> <section xmlns:image="http://ez.no/namespaces/ezpublish3/image/" xmlns:xhtml="http://ez.no/namespaces/ezpublish3/xhtml/" xmlns:custom="http://ez.no/namespaces/ezpublish3/custom/">';
    		$now = date( 'Y/m/d H:i:s', time() );*/
     
    		$attributeList = array( 'auteur' => $auteurId);
     
    		$params = array();
    		$params['attributes'] = $attributeList; 
    		// $params['remote_id'] = $now; 
    		// $params['section_id'] = 3;
    		// $params['language'] = 'fre-FR';
     
    		$result = eZContentFunctions::updateAndPublishObject( $contentObject, $params );
    		if( $result ) return 1; else return 0; 
    	}
    }
    Dans le tableau $params, on insère seulement les attributs qui changent.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Par défaut Un plus
    Salut grozaloumek et merci pour ta réponse

    En gros j'ai crée une classe 'game' avec des attributs comme 'title' et 'price' (entre autres) et depuis un xml, je créer des objets de cette classe sur un noeud avec createandpublish et j'aimerai les mettre à jour de la même manière en modifiant le dataMap de l'objet.

    J'ai l'impression qu'avec cette fonction on ne peut modifier que les attributs par défaut de l'objet comme auteur, publish date, language etc.

    Je suis assez novice donc je cherche pas mal sur le Net mais ça ne fourmille pas d'exemples...

    $node = eZContentObjectTreeNode::fetch( 468 );
    $object =& $node->object();

    $data = $object->dataMap();
    print_r($data);

    Comment modifier et publier les attributs $data ??

    Je continue les recherches, merci pour toute aide.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Par défaut [Résolu]
    Hello,

    J'ai trouvé ceci :
    http://share.ez.no/forums/developer/...bject-with-php

    Un bon coup de pouce !

    Je devrais m'en sortir avec ça...

    A+

  5. #5
    Membre émérite Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Par défaut
    Salut,

    La fonction eZContentFunctions::updateAndPublishObject() remplace tout le code qui est au début de l'article que tu viens de partager. Il est donc préférable d'utiliser cette fonction.

    Dans le code que je t'ai donné, l'attribut "auteur" a été créé par moi, j'aurais très bien pu l'appeler "toto"...

    Il suffit de créer un tableau avec seulement les attributs à modifier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $contentObject = eZContentObject::fetch( $id_objet_a_modifier );
     
    if( $contentObject instanceof eZContentObject ) {
     
    	$attributeList = array( 'attribut1' => $nouvel_attribut1,
    				'attribut2' => $nouvel_attribut2,
    				'attribut3' => $nouvel_attribut3);
     
    	$params = array();
    	$params['attributes'] = $attributeList; 
     
    	$result = eZContentFunctions::updateAndPublishObject( $contentObject, $params );
    }

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Par défaut
    Salut grozaloumek, merci à nouveau pour ta réponse

    Effectivement j'ai bien tenté de passer les params comme tu le montre mais je me suis ramassé une erreur ligne 287 dans la classe eZContentFunctions (attribute on non-object je crois) sur cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    287            $languageCode = $language->attribute( 'locale' );
    Je ne comprends pas pourquoi j'ai eus cette erreur car en réessayant : CA MARCHE !

    Si tu n'avais pas répondu, je serais resté sur la fonction "maison" trouvée plus haut...

    Un grand merci à toi !!!!!

Discussions similaires

  1. [Dojo] utiliser dojo.subscribe, dojo.publish!
    Par arasm dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 25/12/2009, 11h41
  2. [BI Publisher] Utiliser plusieurs modèle de données
    Par madevilts dans le forum Autres outils décisionnels
    Réponses: 1
    Dernier message: 04/09/2009, 14h51
  3. Comment utiliser un publish/suscriber dans ma couche métier
    Par adrienfehr dans le forum Framework .NET
    Réponses: 5
    Dernier message: 14/05/2009, 11h57
  4. [eZ Publish] Utilisation mootools template
    Par marakud dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 18
    Dernier message: 03/04/2009, 14h54
  5. Problèmre utilisation DataBase Publishing Wizard
    Par Nixar dans le forum Outils
    Réponses: 3
    Dernier message: 14/08/2008, 17h04

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