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 4.2] Export CSV


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut [eZ Publish 4.2] Export CSV
    Bonjour,

    Je viens de récupérer un site sous ezpublish 4.2 (oui je sais ^^) et voulais savoir comment faire pour exporter des données au format csv. Je suis grandement surpris de voir qu'une telle fonctionnalité n'est pas native dans un outil aussi puissant qu'ez publish à moins que je sois bigleux comme une taupe. Dans tous les cas, pouvez-vous svp m'aider à réaliser cette opération ? Par avance merci à ceux qui se pencheront sur ces quelques lignes.

    hpl76

  2. #2
    Membre éprouvé
    Homme Profil pro
    VP Community
    Inscrit en
    Septembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : VP Community
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 63
    Par défaut bin/php/ezcsvexport.php
    Bonjour,

    As tu jeté un oeil à l'outil présent dans <ez publish racine>/bin/php/ezcsvexport.php ?

    Tu peux voir ce qu'il te propose en lançant un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    php bin/php/ezcsvexport.php -h
    Depuis la racine d'eZ Publish.

    J'espère que cela t'aide.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Bonjour,

    Et comment que ça m'aide !!!

    J'essayais des manips depuis le backoffice. J'ai juste réussi à créer un fichier ezpkg mais je ne sais pas comment l'exploiter.

    Avec ta solution, j'ai fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [apache@monserveur]$ php bin/php/ezcsvexport.php 2053 storage-dir=/applis/apache2/htdocs/monsite/mon_premier_export/
    J'obtiens :
    Going to export subtree from node 2053 to directory

    et rien ne s'exporte

  4. #4
    Membre éprouvé
    Homme Profil pro
    VP Community
    Inscrit en
    Septembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : VP Community
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 63
    Par défaut
    Je pense à deux choses:
    • Vérifie que l'utilisateur système utilisé pour l'exécution du script (celui avec lequel tu es loggé j'imagine) a bien les droits d'écriture sur le répertoire de destination de l'export.
    • ajouter les options -v -dall à la commande pour avoir un peu plus d'info:
      [apache@monserveur]$ php bin/php/ezcsvexport.php -v -dall 2053 storage-dir=/applis/apache2/htdocs/monsite/mon_premier_export/


    Alternativement à "-dall" tu peux utiliser --debug=all.

    Let us know,

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Bonjour et merci jeanvoye. Je teste ça et vous dis.

    Sais-tu si sur la version récente d'ezP. que tu sembles maintriser il y a possibilité d'exporter simplement les données depuis le backoffice ?

    Cdlt,

    hpl76

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Re,

    Alors voilà le résultat j'ai obtenu plusieurs messages d'erreur intermédiaires que j'ai corrigé notamment un :
    - Could not open input file: bin/php/ezcsvexport.php
    - Extension 'bidule' was reported to have modules but has not yet been activated.
    - PHP Fatal error: eZINI: Undefined group: 'FileSettings' in site.ini
    - ...
    (Me questionner si besoin)

    Maintenant j'ai un :
    #################################### DEBUG ####################################
    No timing points defined
    Peak memory usage: 6,188.5039 KB
    Group ini_load:
    Load cache: 0.0039 sec (3.3053%), 0.0010 avg sec (4)
    FindInputFiles: 0.0013 sec (1.1516%), 0.0003 avg sec (4)
    Group Mysql Total:
    Mysqli_queries: 0.0201 sec (17.1107%), 0.0033 avg sec (6)
    Looping result: 0.0002 sec (0.1391%), 0.0000 avg sec (5)
    Group General:
    dbfile: 0.0003 sec (0.2571%), 0.0001 avg sec (5)
    
    Total script time: 0.1172 sec
    quand je lance cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [apache@mon serveur mon site]$ php bin/php/ezcsvexport.php -q -dall id du noeud storage-dir=/applis/apache2/htdocs/mon_site/mon_premier_export/
    No timing points defined
    Avez-vous une idée ?

    hpl76

  7. #7
    Membre éprouvé
    Homme Profil pro
    VP Community
    Inscrit en
    Septembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : VP Community
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 63
    Par défaut
    Bonjour,

    Tu peux tenter avec --debug=all en lieu et place de -dall.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Salut,

    Ca sent le retour de vacances respectifs ^^

    Merci de ton aide, j'me sens moins seul.

    J'ai essayé le --debug=all en replaçant certains fichiers et là il me dit que le fichier incriminé est le fichier ezscript.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    PHP Warning:  in_array() expects parameter 2 to be array, boolean given in /applis/apache2/htdocs/site/kernel/classes/ezscript.php on line 1061
    PHP Warning:  in_array() expects parameter 2 to be array, boolean given in /applis/apache2/htdocs/site/kernel/classes/ezscript.php on line 1061
    PHP Warning:  in_array() expects parameter 2 to be array, boolean given in /applis/apache2/htdocs/site/kernel/classes/ezscript.php on line 1061
    PHP Warning:  in_array() expects parameter 2 to be array, boolean given in /applis/apache2/htdocs/site/kernel/classes/ezscript.php on line 1061
    PHP Warning:  in_array() expects parameter 2 to be array, boolean given in /applis/apache2/htdocs/site/kernel/classes/ezscript.php on line 1061
    PHP Fatal error:  eZINI: Undefined group: 'FileSettings' in site.ini in /applis/apache2/htdocs/site/lib/ezutils/classes/ezdebug.php on line 581
    quand je lance ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php ezcsvexport.php --debug=all 334 storage-dir=/applis/apache2/htdocs/site/mon_premier_export
    Que faut-il changer dans le site.ini ? Tu sais ?

    Bien à toi,

    hpl76

  9. #9
    Membre éprouvé
    Homme Profil pro
    VP Community
    Inscrit en
    Septembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : VP Community
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 63
    Par défaut
    Salut!

    A vue de nez, je te conseillerais d'ajouter dans ton override global de site.ini (settings/override/site.ini.append.php) les lignes suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [FileSettings]
    LogFilePermissions=0666
    Ref: https://github.com/ezsystems/ezpubli.../site.ini#L775

    Cela devrait en premier lieu solutionner la Fatal Error qui de toutes façons est problématique.

    Tiens nous au courant,

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Bonjour et merci,

    L'install a semble t-il été très chaotique car je me retrouve avec plusieurs dossiers de settings et autant de site.ini.append.php. Comment savoir lequel est appelé de base car dans certains fichiers j'ai bien ton instruction à savoir :

    [FileSettings]
    VarDir=var/site
    TemporaryPermissions=0777
    StorageDirPermissions=0777
    StorageFilePermissions=0666
    LogFilePermissions=0666
    DirDepth=3
    CacheDir=cache
    LogDir=log
    On va bien finir par y arriver...

    hpl76

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Re,

    Sur un autre forum j'ai lu que sur la version 4.2 on pouvait avoir besoin de spécifier le login et le mot de passe j'ai donc fait ceci pour exporter au format csv la liste des utilisateurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php ezcsvexport.php 12 --debug=all -l logadmin -p passadmin --storage-dir=mescsv
    et là dans le répertoire mescsv j'ai un fichier csv vide users.csv

    avec dans ma console putty l'erreur suivante :

    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
    Going to export subtree from node 12 to directory mescsv
     
    PHP Fatal error:  Call to a member function attribute() on a non-object in /applis/apache2/htdocs/site/kernel/classes/datatypes/ezuser/ezusertype.php on line 377
     
    Fatal error: eZ Publish did not finish its request
    The execution of eZ Publish was abruptly ended, the debug output is present below.
    No timing points defined
    Peak memory usage: 7,415.9609 KB
    Group ini_load:
    Load cache: 0.0035 sec (2.5054%), 0.0005 avg sec (7)
    Group Mysql Total:
    Mysqli_queries: 0.0268 sec (19.3119%), 0.0021 avg sec (13)
    Looping result: 0.0003 sec (0.1808%), 0.0000 avg sec (11)
    Group General:
    dbfile: 0.0003 sec (0.1918%), 0.0001 avg sec (5)
     
    Total script time: 0.1388 sec
    pourquoi tant de haine

  12. #12
    Membre éprouvé
    Homme Profil pro
    VP Community
    Inscrit en
    Septembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : VP Community
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 63
    Par défaut
    Salut,

    Tu fais référence à cette discussion ?

    Tu as une Fatal Error, qui interrompt le process d'export prématurément, expliquant certainement le CSV vide.

    A la ligne 377 du fichier ezusertype.php de la 4.2, je ne trouve pas ce qui pourrait expliquer cette erreur. Pourrais tu coller dans ce chat le bloc de code que tu as autour de cette ligne, dans ta version ? Cela nous aidera à avancer.

    Merci,

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Salut,

    Oui c'est bien moi.

    Voici le code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        function toString( $contentObjectAttribute )
        {
            $userID = $contentObjectAttribute->attribute( "contentobject_id" );
            if ( empty( $GLOBALS['eZUserObject_' . $userID] ) )
            {
                $GLOBALS['eZUserObject_' . $userID] = eZUser::fetch( $userID );
            }
            $user = $GLOBALS['eZUserObject_' . $userID];
     
            return implode( '|', array( $user->attribute( 'login' ),
                                        $user->attribute( 'email' ),
                                        $user->attribute( 'password_hash' ),
                                        eZUser::passwordHashTypeName( $user->attribute( 'password_hash_type' ) )  ) );
        }
    et plus exactement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return implode( '|', array( $user->attribute( 'login' )
    Je suis surpris que la fonctionnalité de base ne marche pas nativement. J'ai fait une instance en locale de cette version d'ezp pour repartir d'un site "propre" et même résultat...Bizarre, non ?

    Merci de ton aide.

    hpl76

  14. #14
    Membre éprouvé
    Homme Profil pro
    VP Community
    Inscrit en
    Septembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : VP Community
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 63
    Par défaut
    Curieux effectivement, cela me fait penser à un bug ou un problème de configuration de PHP.

    Quelle version exacte d'eZ Publish utilises-tu? 4.2.0 ?

    Tu pourrais aussi tenter d'insérer de debug à la ligne 376 (juste après la fermeture du if), pour inspecter le contenu de $GLOBALS['eZUserObject_' . $userID]. L'idée est de voir si la variable est vide ou pas.

    Bon courage,

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Bonjour

    problème ENFIN résolu en grande partie grâce à ton aide.

    MERCI !!!

    pour une raison que j'ignore le script ne récupérait pas l'id du eZUserObject.

    J'ai placé la valeur en dur dans le script et j'ai maintenant mon export.

    Encore merci à toi !

    hpl76

  16. #16
    Membre éprouvé
    Homme Profil pro
    VP Community
    Inscrit en
    Septembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : VP Community
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 63
    Par défaut
    Super.

    Il est curieux que cette variable soit vide, mais l'important est que tu sois parvenu à tes fins.

    A bientôt,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ACCESS 2003]Export .csv
    Par guiguikawa dans le forum Access
    Réponses: 6
    Dernier message: 23/06/2006, 10h56
  2. Export CSV
    Par LeCaméléon dans le forum XMLRAD
    Réponses: 3
    Dernier message: 18/04/2006, 14h32
  3. [EXPORT] CSV
    Par sleepy2002 dans le forum Oracle
    Réponses: 2
    Dernier message: 03/04/2006, 10h14
  4. Export CSV
    Par lapartdombre dans le forum Documents
    Réponses: 12
    Dernier message: 17/10/2005, 14h46
  5. Export CSV de champs qui contiennent des ";"
    Par boteha dans le forum Outils
    Réponses: 4
    Dernier message: 19/09/2005, 19h05

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