Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
scrutaridata:exportapi:php [2016/07/07 13:10]
vincent
scrutaridata:exportapi:php [2016/09/21 18:19] (Version actuelle)
vincent
Ligne 1: Ligne 1:
 ====== Implémentation de l'API en PHP ====== ====== Implémentation de l'API en PHP ======
  
-L'​implémentation de l'API se présente sous la forme d'une série de fichiers correspondant chacun à une classe PHP. Toutes ​les classes ​et les constantes commencent par le préfixe **SDE_** afin de minimiser le risque de conflits ​de noms avec d'autres ​classes ​PHPCes classes sont toutes présentes dans un même répertoire appelé ​//ScrutariDataExportLib//. Cette implémentation fonctionne avec PHP 5Elle est sous licence MIT.+L'​implémentation de l'API se présente sous la forme d'un fichier unique qui comprend ​les différentes ​classes de l'API ainsi que des classes ​utilitairesLa dernière version stable de ce fichier est disponible à cette adresse : http://dataexport.scrutari.net/impl/php/​scrutaridataexport.txt (remplacez ​.txt par .php pour l'​exécution)
  
-Le répertoire //​ScrutariDataExportLib//​ complet peut être téléchargé à cette adresse : [[http://​dataexport.scrutari.net/​impl/​php/​ScrutariDataExportLib.zip]] ou via le dépôt Subversion+Toutes les classes et constantes de ce fichier commence par le suffixe **SDE_** afin de minimiser le risque de conflits de noms avec d'​autres classes PHPCette implémentation fonctionne avec PHP 5Elle est sous licence MIT.
  
-  svn co http://depot.exemole.fr/​svn/​web/libs/ScrutariDataExportLib+Ces scripts sont accessibles avec Git via https://framagit.org/Scrutari/export-php
  
-===== Utilisation de l'​implémentation =====+Un autre accès avec Subversion :
  
-Pour utiliser cette implémentation,​ il suffit de décompresser l'​archive et de faire appel au fichier ​//class-ScrutariDataExport.php// dans son code PHP, ce fichier se charge d'​inclure tous les autres fichiers PHP de l'​implémentation.+  svn co http://depot.exemole.fr/svn/web/​apps/​scrutari.net/php
  
-Tous les fichiers reprennent les noms de classe de l'API à l'​exception du fichier ''​class-XmlWriter.php''​ qui définit la classe ''​SDE_XmlWriter''​. C'est une instance de cette classe qu'il faut créer tout d'​abord pour indiquer la destination du code XML qui va être produit. La classe ''​SDE_XmlWriter''​ possède un constructeur qui prend comme unique argument un pointeur vers un fichier (construit avec la fonction PHP //​file()//​). Si la valeur nulle est transmise au constructeur,​ le code XML sera renvoyé vers la sortie standard (fonction //echo//). 
  
-L'​instance de ''​SDE_XmlWriter''​ est alors passé en argument au constructeur de la classe ''​SDE_ScrutariDataExport''​ (fichier //​class-ScrutariDataExport.php//). Ensuite, le comportement est celui indiqué dans l'API.+===== Exemple du site www.comedie.org =====
  
-===== Exemple ​d'Utilisation ​=====+L'​exemple suivant est celui du site www.comedie.org. Celui-ci est en Wordpress. La structure des données de Wordpress étant assez simple, il a été choisi ​d'écrire un script interrogeant directement les données de la base MySQl plutôt que de passer par une procédure plus lourde d'​extension Wordpress. 
 + 
 +Outre le fichier scrutaridataexport.php,​ cette extraction est basé sur deux fichiers : comedie.scrutari-data.php qui comprend la configuration de l'​accès (voir http://​dataexport.scrutari.net/​impl/​php/​comedie.scrutari-data.txt et ci-dessous) et comedie.php qui comprend l'​extraction proprement dite (voir http://​dataexport.scrutari.net/​impl/​php/​comedie.txt). 
 + 
 +=== Fichier comedie.scrutari-data.php ​=== 
 + 
 +Ce fichier contient les informations de la configuration (accès à la base de données).
  
 <code php> <code php>
 <?php <?php
-/* Chargement de la bibliothèque ​ScrutariDataExportLib+//Indication que les données transmises sont du XML 
 +header("​content-type:​ text/​xml;​charset=UTF-8"​);​ 
 + 
 +// Nom de la base de données de WordPress. 
 +define('​DB_NAME',​ '*'); 
 + 
 +// Utilisateur de la base de données MySQL. 
 +define('​DB_USER',​ '​*'​);​ 
 + 
 +// Mot de passe de la base de données MySQL. 
 +define('​DB_PASSWORD',​ '​*'​);​ 
 + 
 +// Adresse de l'​hébergement MySQL. 
 +define('​DB_HOST',​ '​localhost'​);​ 
 + 
 +// Jeu de caractères à utiliser par la base de données 
 +define('​DB_CHARSET',​ '​utf8'​);​ 
 + 
 +// Chaine vide pour SCRUTARIDATA_PATH,​ les données XML sont affichées directement en sortie 
 +define('​SCRUTARIDATA_PATH',​ ''​);​ 
 + 
 +// Appel de comedie.php 
 +require("​comedie.php"​);​ 
 +</​code>​ 
 + 
 +Si on avait voulu que l'​extraction soit enregistrée dans un fichier, on aurait cette définition pour //​SCRUTARIDATA_PATH//​ : 
 + 
 +<code php> 
 +define('​SCRUTARIDATA_PATH',​ '/​path/​to/​directory/​comedie.scrutari-data.xml'​);​ 
 +</​code>​ 
 + 
 +=== Fichier comedie.php === 
 + 
 +Ce fichier (http://​dataexport.scrutari.net/​impl/​php/​comedie.txt) comprend plusieurs parties. 
 + 
 +Le fichier commence par l'​appel à scrutaridataexport.php 
 + 
 +<code php> 
 +//Chargement de la bibliothèque ​ScrutariDataExport,​ supposée être dans le même répertoire que ce script 
 +require_once("​scrutaridataexport.php"​);​ 
 +</​code>​ 
 + 
 +Vient ensuite la déclaration d'une classe utilitaire : 
 + 
 +<code php> 
 +/** 
 +* Recensement des posts Wordpress retenus pour l'​extraction,​ avec indication du nom du corpus correspondant
 */ */
-require_once("​ScrutariDataExportLib/​class-ScrutariDataExport.php"​);​+class PostCensus {
  
- /* Ouverture d'un fichier en écriture +    private ​$map;
- */ +
-$file = fopen("​test.scrutari-data.xml",​ "​w"​);+
  
- /* Construction d'une instance SDE_XmlWriter +    function __construct() { 
- Pour que le code XML s'​affiche dans la sortie standard, on écrirait ​$xmlWriter ​new SDE_XmlWriter(NULL); +        $this->​map ​array(); 
- */ +    } 
-$xmlWriter ​new SDE_XmlWriter($file);+     
 +    function put($id, $corpus) { 
 +        $this->​map["​id_"​.$id] ​$corpus; 
 +    } 
 +     
 +    function get($id
 +        return $this->​map["​id_"​.$id]; 
 +    }
  
-/* On inclus préalablement ​la déclaration XML : <?xml version="​1.0" encoding="​UTF-8"?​+
-(méthode hors API)+</code> 
 + 
 +Puis la définit des fonctions. 
 + 
 +<code php
 +/** 
 +* Ajoute les posts appartenant à la catégorie indiquée par $termTaxonomyId,​ 
 +* ces posts étant destiné à être inclus dans le corpus de nom $corpusName
 */ */
-$xmlWriter->appendDeclaration();+function addPosts($pdo, $scrutariDataExport,​ $termTaxonomyId,​ $postCensus,​ $corpusName) { 
 +    $statement = $pdo->query('​SELECT object_id FROM `wp_term_relationships` WHERE `term_taxonomy_id` = '​.$termTaxonomyId);​ 
 +    $array = array(); 
 +    while ($row = $statement->​fetch(PDO::​FETCH_NUM)) { 
 +        $array[] = $row[0]; 
 +    } 
 +    foreach($array as $postId) { 
 +        $postStatement =  $pdo->​query('​SELECT * FROM `wp_posts` WHERE `ID` = '​.$postId."​ AND post_status='​publish'"​);​ 
 +        $postRow = $postStatement->​fetch(PDO::​FETCH_ASSOC);​ 
 +        if ($postRow) { 
 +            $postCensus->​put($postId,​ $corpusName);​ 
 +              $titre = $postRow['​post_title'​];​ 
 +            $soustitre = "";​ 
 +            $date = "";​ 
 +            $auteurs = "";​ 
 +            $publication_annee = "";​ 
 +            $publication_auteur = "";​ 
 +            $publication_editeur = "";​ 
 +            $metaStatement =  $pdo->​query('​SELECT * FROM `wp_postmeta` WHERE `post_id` = '​.$postId);​ //​Interrogation de postmeta pour récupérer les données associées au post 
 +            $dateDone = false; 
 +            while($metaRow = $metaStatement->​fetch(PDO::​FETCH_ASSOC)) { 
 +                $metaKey = $metaRow['​meta_key'​];​ 
 +                $value = $metaRow['​meta_value'​];​ 
 +                 if ($metaKey == '​sous-titre'​) { 
 +                    $soustitre = $value; 
 +                } else if ($metaKey == '​annee_debut'​) { 
 +                    if ((!$dateDone) && (strlen($value) > 0)) { 
 +                        $date = $value; 
 +                    } 
 +                } else if ($metaKey == '​annee_creation'​) { 
 +                    if (strlen($value) > 0) { 
 +                        $date = $value; 
 +                        $dateDone = true; 
 +                    } 
 +                } else if ($metaKey == '​auteurs_plus'​) { 
 +                    $auteurs = $value; 
 +                } else if ($metaKey == '​publication_annee_publication'​) { 
 +                    $publication_annee = $value; 
 +                } else if ($metaKey == '​publication_auteur'​) { 
 +                    $publication_auteur = $value; 
 +                } else if ($metaKey == '​publication_editeur'​) { 
 +                    $publication_editeur = $value; 
 +                } 
 +            } 
 +            if ($corpusName == '​lecture'​) { //​Traitement particulier au corpus des notes de lecture 
 +                $titre = "Note de lecture : "​.$titre;​ //le titre étant celui de l'​ouvrage,​ Note de lecture est ajouté avant 
 +                if (strlen($soustitre) > 0) { 
 +                    if (substr($titre,​ strlen($titre) -1,1) != "​."​) { 
 +                        $titre .= "​.";​ 
 +                    } 
 +                    $titre .= " "​.$soustitre;​ //le sous-titre étant celui de l'​ouvrage,​ il est placé à la suite du titre 
 +                    $soustitre = "";​ 
 +                } 
 +                $soustitre = appendInfo($soustitre,​ $publication_auteur);​ 
 +                $soustitre = appendInfo($soustitre,​ $publication_editeur);​ 
 +                $soustitre = appendInfo($soustitre,​ $publication_annee);​ 
 +            } 
 +            $ficheExport = $scrutariDataExport->​newFiche($postId);​ 
 +            $ficheExport->​setTitre($titre);​ 
 +            $ficheExport->​setSoustitre($soustitre);​ 
 +            $ficheExport->​setHref("​http://​www.comedie.org/?​p="​.$postId);​ 
 +            $ficheExport->​setLang('​fr'​);​ 
 +            if (strlen($date) > 0) { 
 +                $ficheExport->​setDate($date);​ 
 +            } 
 +            if (strlen($auteurs) > 0) { 
 +                parseAuteurs($auteurs,​ $pdo, $ficheExport); 
 +            } 
 +        } 
 +    } 
 +}
  
-/* Construction d'une instance de SDE_ScrutariDataExport qui suit l'API de ScrutariDataExport+/*
 +* Ajoute $value à la fin de $text en rajoutant ​une virgule si nécessaire
 */ */
-$scrutariDataExport ​new SDE_ScrutariDataExport($xmlWriter);+function appendInfo($text, $value) { 
 +    $value ​trim($value); 
 +    $value = str_replace("​ ;", ",",​ $value); 
 +    if (substr($value,​ strlen($value) -1,1) == "​."​) { 
 +        $value = substr($value,​ 0, strlen($value) -1); 
 +    } 
 +    if (strlen($value) == 0) { 
 +        return $text; 
 +    } 
 +    if (strlen($text) > 0) { 
 +        $text .= ", "; 
 +    } 
 +    $text .= $value; 
 +    return $text; 
 +}
  
-/* Début de l'export$baseMetadataExport ​est une instance ​de SDE_BaseMetadataExport+/*
 +* Récupère le nom des auteurs d'un post. Sur le site comedie.orgles véritables auteurs d'un post sont indiqués 
 +* par meta_key=auteurs_plus dans la table wp_postmeta et sous la forme a:​1:​{i:​0;​s:​2:"​67";​}. 67 est ici 
 +* l'​identifiant du post correspondant à l'​auteur (le nom complet ​de l'​auteur est le titre du post)
 */ */
-$baseMetadataExport ​= $scrutariDataExport->startExport();+function parseAuteurs($auteurs, $pdo, $ficheExport) { 
 +    $idx1 strpos($auteurs, "​\""​);​ 
 +    if ($idx1 < 1) { 
 +        return; 
 +    } 
 +    $idx2 = strpos($auteurs,​ "​\"",​ $idx1 + 1); 
 +    if ($idx2 < 1) { 
 +        return; 
 +    } 
 +    $auteurId = substr($auteurs,​ $idx1 + 1, $idx2 - ($idx1 + 1)); 
 +    if ($auteurId == 572) { //​l'​auteur générique Comédie est ignoré 
 +        return; 
 +    } 
 +    $authorStatement = $pdo->query('​SELECT post_title FROM `wp_posts` WHERE `ID` = '​.$auteurId);​ 
 +    $auteur = $authorStatement->​fetchColumn();​ 
 +    if ($auteur) { 
 +        $ficheExport->​addAttributeValue("​sct",​ "​authors",​ $auteur); 
 +    } 
 +}
  
-/* Définition des métadonnées ​de la base +/*
-SDE_INTITULE_SHORT correspond à la constante INTITULE_SHORT ​de l'API+* Ajoute les termes ​de la taxonomie $taxonomy sous la forme de mots-clés du thésaurus de nom $thesaurusName,​ 
 +* la fonction récupère également les posts liés au terme et crée une indexation si le post a bien été recensé 
 +* préalablement dans $postCensus
 */ */
-$baseMetadataExport->setAuthority("e17a05b0-c45e-11d8-9669-0800200c9a66"); +function addTerms($pdo, $scrutariDataExport,​ $taxonomy, $postCensus,​ $thesaurusName) { 
-$baseMetadataExport->setBaseName("test"); +    $statement = $pdo->query("SELECT wp_term_taxonomy.term_taxonomy_id,​ wp_terms.name ​ FROM wp_terms,​wp_term_taxonomy WHERE wp_term_taxonomy.term_id = wp_terms.term_id AND wp_term_taxonomy.taxonomy = '"​.$taxonomy."'"​);​ 
-$baseMetadataExport->setBaseIcon("http://monsite.net/icon-16x16pixels.png"); +    $array = array(); 
-$baseMetadataExport->​setIntitule(SDE_INTITULE_SHORT, ​"fr", "Test"); +    while ($row = $statement->​fetch(PDO::​FETCH_NUM)) { 
-$baseMetadataExport->​setIntitule(SDE_INTITULE_SHORT, ​"en", "Test"); +        $id = $row[0]; 
-$baseMetadataExport->​setIntitule(SDE_INTITULE_LONG, "​fr",​ "Test du format scrutariData"); +        $name = $row[1]; 
-$baseMetadataExport->​setIntitule(SDE_INTITULE_LONG,​ "en", "ScrutariData Format Test");+        if ((strlen($name) > 0) && (strpos($name,​ "​MOT"​) !== 0)) { 
 +            $array[] = $id; 
 +            $motcleExport = $scrutariDataExport->​newMotcle($id);​ 
 +            $motcleExport->​setLibelle("fr", $name); 
 +        } 
 +    } 
 +    foreach($array as $termId) { 
 +        $postStatement = $pdo->query("SELECT object_id FROM wp_term_relationships WHERE term_taxonomy_id=".$termId); 
 +        while ($postId = $postStatement->fetchColumn(0)) { 
 +            $corpusName = $postCensus->​get($postId);​ 
 +            if (strlen($corpusName) > 0) { 
 +                $scrutariDataExport->​addIndexation($corpusName,​ $postId, $thesaurusName,​ $termId,​1);​ 
 +            } 
 +        } 
 +    } 
 +
 +</​code>​ 
 + 
 +C'est alors que commmence l'​initialisation avec l'​utilisation des constantes définies dans comedie.scrutari-data.php pour l'​accès aux données : 
 + 
 +<code php> 
 +//Test si l'​extraction est écrite dans un fichier ou directement vers la sortie 
 +$file = false; 
 +if (strlen(SCRUTARIDATA_PATH) > 0) { 
 +    $file = fopen(SCRUTARIDATA_PATH, ​"w"); 
 +
 + 
 +//Accès à la base de données 
 +$pdo = new PDO('​mysql:host='​.DB_HOST.';​dbname='​.DB_NAME.';​charset='​.DB_CHARSET,​ DB_USER, DB_PASSWORD);​ 
 + 
 +// Instance de PostCensus recensant les posts inclus dans l'​extraction 
 +$postCensus = new  PostCensus();​ 
 + 
 +// Instance de SDE_XmlWriter recensant les posts inclus dans l'​extraction 
 +$xmlWriter = new SDE_XmlWriter($file,​ true, true); 
 +$scrutariDataExport = new SDE_ScrutariDataExport($xmlWriter);​ 
 +</​code>​ 
 + 
 +Vient ensuite l'​extraction proprement dite avec la définition des méta-données,​ des corpus et thésaurus et les appels aux fonctions pour la récupération des données et la fin de l'​extraction. 
 + 
 +<code php> 
 +//Démarrage de l'​export avec la définition des méta-données 
 +$baseMetadataExport = $scrutariDataExport->​startExport();​ 
 +$baseMetadataExport->​setAuthority("​comedie.org"); 
 +$baseMetadataExport->​setBaseName("site"); 
 +$baseMetadataExport->​setBaseIcon("http://​scrutari.coredem.info/​comedie.png"); 
 +$baseMetadataExport->​setIntitule(SDE_INTITULE_SHORT, "​fr",​ "Comédie"); 
 +$baseMetadataExport->​setIntitule(SDE_INTITULE_LONG,​ "fr", "Comédie - Concertation,​ participation et médiation appliquées à l’environnement et au territoire");
 $baseMetadataExport->​addLangUI("​fr"​);​ $baseMetadataExport->​addLangUI("​fr"​);​
-$baseMetadataExport->​addLangUI("​en"​);​ 
  
-/* Insertion d'​un ​corpus ​avec de nom « fiches ​» +//Création du corpus ​experience correspondant aux fiches de http://​www.comedie.org/​ressources/​fiches-experiences
-$corpusMetadataExport est une instance ​de SDE_CorpusMetadataExport +$corpusMetadataExport = $scrutariDataExport->​newCorpus("​experience"​);​ 
-*+$corpusMetadataExport->​setIntitule(SDE_INTITULE_CORPUS,​ "​fr","​Expériences"​);​ 
-$corpusMetadataExport = $scrutariDataExport->​newCorpus("​fiches");+$corpusMetadataExport->​setIntitule(SDE_INTITULE_FICHE,​ "​fr",​ "​Expérience n°");
  
-/* Définition ​des métadonnées ​du corpus +//Ajout des posts des expériences (12 est l'​identifiant ​du terme correspondant à la catégorie des expériences) 
-*/ +addPosts($pdo$scrutariDataExport,​ 12, $postCensus, "experience");
-$corpusMetadataExport->​setIntitule(SDE_INTITULE_CORPUS"​fr"​,"​Fiches d'​expérience"​);​ +
-$corpusMetadataExport->​setIntitule(SDE_INTITULE_FICHE, "fr", "Fiche d'​expérience n° ");+
  
-/* Définition ​de deux champs complémentaires +//Création du corpus monographie correspondant aux fiches ​de http://​www.comedie.org/​ressources/​monographies
-*+$corpusMetadataExport ​= $scrutariDataExport->newCorpus("monographie"); 
-$numero ​= $corpusMetadataExport->addComplement(); +$corpusMetadataExport->​setIntitule(SDE_INTITULE_CORPUS, "fr","​Monographies"); 
-$corpusMetadataExport->​setComplementIntitule($numero,"​fr",​"Auteurs"); +$corpusMetadataExport->​setIntitule(SDE_INTITULE_FICHE, "​fr",​ "Monographie n°");
-$corpusMetadataExport->​setComplementIntitule($numero,"en","​Authors"); +
-$numero = $corpusMetadataExport->​addComplement(); +
-$corpusMetadataExport->​setComplementIntitule($numero,"​fr","​Organismes");+
  
-/* Premier exemple d'une fiche +//Ajout des posts des monographies 
-$ficheExport est une instance de SDE_FicheExport +addPosts($pdo, $scrutariDataExport, 15, $postCensus, "monographie");
-*+
-$ficheExport = $scrutariDataExport->​newFiche("​1"​);​ +
-$ficheExport->​setTitre("​Première fiche"​);​ +
-$ficheExport->​setDate("​2006-03"​);​ +
-$ficheExport->​setFicheIcon("​http://​monsite.net/​icon2-16x16pixels.png"​);​ +
-$ficheExport->​addComplement(2,"Collectif");+
  
-/*Second exemple ​de fiche +//Création du corpus video correspondant aux fiches ​de http://​www.comedie.org/​ressources/​videos
-*+$corpusMetadataExport ​= $scrutariDataExport->​newCorpus("video"); 
-$ficheExport ​= $scrutariDataExport->​newFiche("2"); +$corpusMetadataExport->setIntitule(SDE_INTITULE_CORPUS, ​"​fr"​,"Vidéos"); 
-$ficheExport->setTitre("​Seconde fiche"​);​ +$corpusMetadataExport->setIntitule(SDE_INTITULE_FICHE, "fr", "Vidéo n°");
-$ficheExport->​setSoustitre("​le sous titre"​);​ +
-$ficheExport->​setDate("​2006-03"​);​ +
-$ficheExport->​setLang("​fr"​); +
-$ficheExport->​setHref("http://​monsite.net/​ma-fiche-1.html"); +
-$ficheExport->addComplement(2,"L'ASSO"); +
-$ficheExport->​addComplement(1,"Martin Dupont");+
  
-/* Exemple d'​indexation : celle-ci peut de se faire à n'​importe quel moment +//Ajout des posts des vidéos 
-même s'il ne s'agit du mot-clé ou de la fiche en cours ou que le thésaurus ou le corpus +addPosts($pdo, ​$scrutariDataExport, ​18$postCensus, "video");
-n'ont pas encore été définis. +
-*+
-$scrutariDataExport->​addIndexation("​fiches"​"​1"​"​motscles"​, "A01",1);+
  
-/* Insertion d'un thésaurus ​de nom « motscles » +//Création du corpus lecture correspondant aux fiches ​de http://​www.comedie.org/​ressources/​notes-de-lecture
-$thesaurusMetadataExport est une instance ​de SDE_ThesaurusMetadataExport +$corpusMetadataExport ​= $scrutariDataExport->​newCorpus("lecture"​);​ 
-*+$corpusMetadataExport->​setIntitule(SDE_INTITULE_CORPUS,​ "​fr","​Notes de lecture"​);​ 
-$thesaurusMetadataExport ​= $scrutariDataExport->​newThesaurus("motscles");+$corpusMetadataExport->​setIntitule(SDE_INTITULE_FICHE,​ "​fr",​ "Note de lecture n°");
  
-/* Définition ​des métadonnées ​du thésaurus +//​Ajout ​des posts des notes de lecture 
-*/+addPosts($pdo,​ $scrutariDataExport,​ 14, $postCensus,​ "​lecture"​);​ 
 + 
 +//​Création ​du thésaurus ​motcle 
 +$thesaurusMetadataExport = $scrutariDataExport->​newThesaurus("​motcle"​);​
 $thesaurusMetadataExport->​setIntitule(SDE_INTITULE_THESAURUS,"​fr","​Mots-clés"​);​ $thesaurusMetadataExport->​setIntitule(SDE_INTITULE_THESAURUS,"​fr","​Mots-clés"​);​
-$thesaurusMetadataExport->​setIntitule(SDE_INTITULE_THESAURUS,"​en","​Keywords"​);​ 
  
-/* Exemple d'​insertion d'un mot-clé au sein du thésaurus en cours +//Ajout des termes, les mots-clés sont distingués des autres termes par la taxonomie mots-clefs 
-*/ +addTerms($pdo, $scrutariDataExport, "mots-clefs"$postCensus, "motcle");
-$motcleExport = $scrutariDataExport->​newMotcle("1"); +
-$motcleExport->​setLibelle("​fr"​,"Eau");+
  
-/* Autre exemple d'​insertion d'​indexation n'​importe où*+//Fin de l'​export 
-$scrutariDataExport->​addIndexation("​fiches",​ "​fiche2",​ "​motscles",​ "​A01",​4);+$scrutariDataExport->​endExport(); 
 +</​code>​ 
 + 
 +Ce script peut facilement être adapté à un autre site sous Wordpress. Les grandes différences d'un site à l'​autre sont la façon avec laquelle les posts que l'on veut extraire sont distingués des autres. Ici, la sélection se fait grâce à des termes (table wp_term et wp_term_taxonomy) spécifique. ​
  
-/* L'​indexation précédente n'a pas changé l'​état de l'​export,​ on travaille 
-toujours sur le premier mot-clé */ 
-$motcleExport->​setLibelle("​en","​Water"​);​ 
  
-/* Fin de l'​export 
-*/ 
-$scrutariDataExport->​endExport();​ 
  
-/* Fermeture du fichier */ 
-fclose($file);​ 
-</​code>​ 
  
scrutaridata/exportapi/php.1467889842.txt.gz · Dernière modification: 2016/07/07 13:10 par vincent
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0