Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
scrutaridata:impl:mediawiki [2009/06/02 19:24] – créée vincentscrutaridata:impl:mediawiki [2016/07/06 18:38] (Version actuelle) – [class-MediawikiScrutariDataWriter.php] vincent
Ligne 3: Ligne 3:
 L'exportation des données de MediaWiki vers le format ScrutariData a été fait pour le [[http://fr.coredem.info/wiki|Wikicoredem]]. Dans l'état actuel, il est assez simpliste, la base générée ne comprend qu'un seul corpus. Cette exportation se fait à l'aide d'une classe php !!MediawikiScrutariDataWriter!! qui utilise une classe utilitaire !!UtilXmlWriter!!. Les points à savoir pour comprendre le code sont les suivants : L'exportation des données de MediaWiki vers le format ScrutariData a été fait pour le [[http://fr.coredem.info/wiki|Wikicoredem]]. Dans l'état actuel, il est assez simpliste, la base générée ne comprend qu'un seul corpus. Cette exportation se fait à l'aide d'une classe php !!MediawikiScrutariDataWriter!! qui utilise une classe utilitaire !!UtilXmlWriter!!. Les points à savoir pour comprendre le code sont les suivants :
  
-*La question de la connexion à la base de données n'est pas traitée, on considère qu'elle est établie préalablement (de là le simple appel //$resultat = mysql_query($requete);//+  *La question de la connexion à la base de données n'est pas traitée, on considère qu'elle est établie préalablement (de là le simple appel //$resultat = mysql_query($requete);//
-*Les premières méthodes de //MediawikiScrutariDataWriter// qui commencent par **set** sont des méthodes de définition des différents paramètres utilisés dans la méthode principale //writeScrutariData()// +  *Les premières méthodes de //MediawikiScrutariDataWriter// qui commencent par **set** sont des méthodes de définition des différents paramètres utilisés dans la méthode principale //writeScrutariData()// 
-*L'argument //$file// de la méthode //writeScrutariData()// correspond à un pointeur vers un fichier, s'il est omis, le XML sera écrit en sortie (fonction **echo**) +  *L'argument //$file// de la méthode //writeScrutariData()// correspond à un pointeur vers un fichier, s'il est omis, le XML sera écrit en sortie (fonction **echo**) 
-*Seules les pages de l'espace de nom principal sont extraites. Pour affiner la requête, il faut modifier la ligne //$requete = "SELECT page_id,page_title FROM page WHERE page_namespace=0 ORDER BY page_id";//.+  *Seules les pages de l'espace de nom principal sont extraites et les pages de redirection sont ignorées. Pour affiner la requête, il faut modifier la ligne //$requete = "SELECT page_id,page_title FROM page WHERE page_namespace=0 AND page_is_redirect != 1 ORDER BY page_id";//
 + 
 +Le résultat est accessible ici : http://scrutari.coredem.info/infos/php/coredem.scrutari-data.php?lang=fr.
  
 ===== class-MediawikiScrutariDataWriter.php ===== ===== class-MediawikiScrutariDataWriter.php =====
Ligne 15: Ligne 17:
  
 class MediawikiScrutariDataWriter { class MediawikiScrutariDataWriter {
-private $uuid;+private $authority;
 private $baseName; private $baseName;
 private $baseIcon; private $baseIcon;
Ligne 26: Ligne 28:
 private $hrefParent; private $hrefParent;
  
-public function setUuid($uuid) { +public function setAuthority($authority) { 
-$this->uuid = $uuid;+$this->authority = $authority;
 } }
  
Ligne 67: Ligne 69:
  
 public function writeScrutariData($file) { public function writeScrutariData($file) {
- $xmlWriter = new UtilXmlWriter($file); +    $xmlWriter = new UtilXmlWriter($file); 
- $xmlWriter->appendDeclaration(); +    $xmlWriter->appendDeclaration(); 
- $xmlWriter->openTag('base'); +    $xmlWriter->openTag("base"); 
- $xmlWriter->openTag('base-metadata'); +    $xmlWriter->openTag("base-metadata"); 
- $xmlWriter->addElement('authority-uuid',$this->uuid); +    $xmlWriter->addElement("authority",$this->authority); 
- $xmlWriter->addElement('base-name',$this->baseName); +    $xmlWriter->addElement("base-name",$this->baseName); 
- $xmlWriter->addElement('base-icon',$this->baseIcon); +    $xmlWriter->addElement("base-icon",$this->baseIcon); 
- $xmlWriter->openTag('intitule-short'); +    $xmlWriter->openTag("intitule-short"); 
- $xmlWriter->addLibElement($this->lang,$this->baseIntituleShort); +    $xmlWriter->addLibElement($this->lang,$this->baseIntituleShort); 
- $xmlWriter->closeTag('intitule-short'); +    $xmlWriter->closeTag("intitule-short"); 
- $xmlWriter->openTag('intitule-long'); +    $xmlWriter->openTag("intitule-long"); 
- $xmlWriter->addLibElement($this->lang,$this->baseIntituleLong); +    $xmlWriter->addLibElement($this->lang,$this->baseIntituleLong); 
- $xmlWriter->closeTag('intitule-long'); +    $xmlWriter->closeTag("intitule-long"); 
- $xmlWriter->openTag('langs-ui'); +    $xmlWriter->openTag("langs-ui"); 
- $xmlWriter->addElement('lang',$this->lang); +    $xmlWriter->addElement("lang",$this->lang); 
- $xmlWriter->closeTag('langs-ui'); +    $xmlWriter->closeTag("langs-ui"); 
- $xmlWriter->closeTag('base-metadata'); +    $xmlWriter->closeTag("base-metadata"); 
-  +     
- $xmlWriter->write('<corpus corpus-name="'); +    $xmlWriter->write("<corpus corpus-name=\""); 
- $xmlWriter->write($this->corpusName); +    $xmlWriter->write($this->corpusName); 
- $xmlWriter->write('">'); +    $xmlWriter->write("\">"); 
- $xmlWriter->openTag('corpus-metadata'); +    $xmlWriter->openTag("corpus-metadata"); 
- $xmlWriter->openTag('intitule-corpus'); +    $xmlWriter->openTag("intitule-corpus"); 
- $xmlWriter->addLibElement($this->lang,$this->corpusIntituleCorpus); +    $xmlWriter->addLibElement($this->lang,$this->corpusIntituleCorpus); 
- $xmlWriter->closeTag('intitule-corpus'); +    $xmlWriter->closeTag("intitule-corpus"); 
- $xmlWriter->openTag('intitule-fiche'); +    $xmlWriter->openTag("intitule-fiche"); 
- $xmlWriter->addLibElement($this->lang,$this->corpusIntituleFiche); +    $xmlWriter->addLibElement($this->lang,$this->corpusIntituleFiche); 
- $xmlWriter->closeTag('intitule-fiche'); +    $xmlWriter->closeTag("intitule-fiche"); 
- $xmlWriter->addElement('type','CNC'); +    $xmlWriter->addElement("type","CNC"); 
- $xmlWriter->addElement('href-parent',$this->hrefParent); +    $xmlWriter->addElement("href-parent",$this->hrefParent); 
- $xmlWriter->closeTag('corpus-metadata');+    $xmlWriter->closeTag("corpus-metadata");
  
- $requete = "SELECT page_id,page_title FROM page WHERE page_namespace=0 ORDER BY page_id"; +    $requete = "SELECT page_id,page_title FROM page WHERE page_namespace=0 AND page_is_redirect != 1 ORDER BY page_id"; 
-  +     
- $resultat = mysql_query($requete); +    $resultat = mysql_query($requete); 
-  +     
- while($row = mysql_fetch_row($resultat)) { +    while($row = mysql_fetch_row($resultat)) { 
- $page_id = $row[0]; +        $page_id = $row[0]; 
- $page_title = $row[1]; +        $page_title = $row[1]; 
- $xmlWriter->write('<fiche fiche-id="'); +        $xmlWriter->write("<fiche fiche-id=\""); 
- $xmlWriter->write($page_id); +        $xmlWriter->write($page_id); 
- $xmlWriter->write('">'); +        $xmlWriter->write("\">"); 
- $titre = str_replace("_"," ",$page_title); +        $titre = str_replace("_"," ",$page_title); 
- $xmlWriter->addElement("titre",$titre); +        $xmlWriter->addElement("titre",$titre); 
- $xmlWriter->addElement("lang",$this->lang); +        $xmlWriter->addElement("lang",$this->lang); 
- $href = rawurlencode($page_title); +        $href = rawurlencode($page_title); 
- $xmlWriter->addElement(href,$href); +        $xmlWriter->addElement(href,$href); 
- $xmlWriter->closeTag('fiche'); +        $xmlWriter->closeTag("fiche"); 
-+    
-  +     
- $xmlWriter->closeTag('corpus'); +    $xmlWriter->closeTag("corpus"); 
- $xmlWriter->closeTag('base');+    $xmlWriter->closeTag("base");
 } }
  
Ligne 142: Ligne 144:
   
  function openTag($tagName) {  function openTag($tagName) {
- $this->write('<');+ $this->write("<");
  $this->write($tagName);  $this->write($tagName);
- $this->write('>');+ $this->write(">");
  }  }
   
  function closeTag($tagName) {  function closeTag($tagName) {
- $this->write('</');+ $this->write("</");
  $this->write($tagName);  $this->write($tagName);
- $this->write('>');+ $this->write(">");
  $this->write("\n");  $this->write("\n");
  }  }
Ligne 161: Ligne 163:
   
  function addLibElement($lang,$value) {  function addLibElement($lang,$value) {
- $this->write('<lib xml:lang="');+ $this->write("<lib xml:lang=\"");
  $this->write($lang);  $this->write($lang);
- $this->write('">');+ $this->write("\">");
  $this->write($value);  $this->write($value);
- $this->write('</lib>');+ $this->write("</lib>");
  }  }
   
scrutaridata/impl/mediawiki.1243963493.txt.gz · Dernière modification : 2009/12/17 11:26 (modification externe)
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0