Changeset 10056 in spip-zone


Ignore:
Timestamp:
Mar 2, 2007, 10:30:03 AM (13 years ago)
Author:
fil@…
Message:

corrections dans l'import, ca marche presque

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _contribs_/_wiki_/spikini/importer.php

    r10034 r10056  
    44//
    55include 'ecrire/inc_version.php';
     6
     7function convertir_charset($x) {
     8        return importer_charset($x, 'iso-8859-1');
     9}
    610
    711#securite
     
    2125        <input type='hidden' name='importer' value='oui' />
    2226        <br/>id_rubrique: <input type='text' size='4' name='id_rubrique' value='$id_rubrique' />
    23         <br/>statut: <input type='text' size='8' name='statut' value='prop' />
     27        <br/>statut: <input type='text' size='8' name='statut' value='publie' />
    2428        <br/><input type='submit' value='ok'/>
    2529        </form>");
     
    4549include_spip('inc/charsets');
    4650include_spip('inc/texte');
    47 
     51include_once 'spikini/formatters/wakka.php';
    4852
    4953$titre = typo($t['titre']);
     
    5155echo "<h3>F&#233;licitations. Le contenu de ce wiki a &#233;t&#233; import&#233; dans <a href='../ecrire/?exec=naviguer&amp;id_rubrique=".import_id_rubrique."'>la rubrique ".import_id_rubrique." ($titre)</a></h3>\n";
    5256
    53 echo "<p>Vous pouvez maintenant utiliser cette rubrique en mode wiki ; du moins d&#232;s que le squelette existera :-)</p>\n";
     57echo "<p>Vous pouvez maintenant utiliser cette rubrique en mode wiki</p>\n";
    5458echo "<p>Pour desactiver ce wiki supprimez le fichier <b>$configfile</b></p>\n";
    5559
     60
     61#$where="WHERE tag='PagePrincipale'"; #accelerer, pour tests
    5662
    5763# insertion initiale des articles (pour avoir les liens)
    5864# & nettoyage de la table des versions
    5965$tags = array();
    60 $s = spip_query("select * from ".wikini."pages ORDER BY time ASC");
     66$s = spip_query("select * from ".wikini."pages $where ORDER BY time ASC");
    6167while ($t = spip_fetch_array($s)) {
    6268        if (!in_array($t['tag'], $tags)) {
     
    6874
    6975$tags = array();
    70 $s = spip_query("select * from ".wikini."pages order by time ASC");
     76$s = spip_query("select * from ".wikini."pages $where  order by time ASC");
    7177while ($t = spip_fetch_array($s)) {
    7278        if (in_array($t['tag'], $tags)) {
    73                 inserer_version_spikini($t);
     79                // eviter de multiplier les latest (bug wikini)
     80                if ($t['user'] <> 'WikiNiInstaller')
     81                        inserer_version_spikini($t);
    7482        } else {
    75                 $tags[] = $t['tag'];
     83                $tags[] = $t['tag']; // la premiere version est deja la
    7684        }
    7785}
     
    93101
    94102        // entrer la nouvelle revision
     103        $body = convertir_charset(
     104                ($spik['latest'] == 'Y')
     105                ? analyser_raccourcis($spik['body'])
     106                : $spik['body']
     107                )
     108                ;
     109
    95110        $r = modifier_contenu('article', $id_article,
    96111                array('champs' => array('titre', 'texte', 'date')),
    97112                array(
    98                         'titre' => importer_charset($spik['tag'], 'iso-8859-1'),
    99                         'texte' => importer_charset(analyser_raccourcis($spik['body']), 'iso-8859-1'),
     113                        'titre' => convertir_charset($spik['tag']),
     114                        'texte' => $body,
    100115                        'date' => $spik['time']
    101116                )
     
    109124                // regler la date de la revision a la date de son entree dans spikini
    110125                // et son auteur a celui du modificateur de l'epoque
    111                 $auteur = substr(couper(importer_charset($spik['user'],'iso-8859-1'),23), 0, 23);
     126                $auteur = substr(convertir_charset($spik['user']),0, 23);
    112127                spip_query("UPDATE spip_versions SET date="._q($spik['time']).", id_auteur="._q($auteur)." WHERE id_article=$id_article ORDER BY id_version DESC LIMIT 1");
    113128        }
     
    120135
    121136// Traiter les LiensWiki
     137function lien_wiki($lien) {
     138        static $articles;
     139
     140        if (!isset($articles[$lien])) {
     141                $s = spip_query("SELECT id_article FROM spip_articles WHERE id_rubrique=".import_id_rubrique." AND titre="._q($lien));
     142                if ($t = spip_fetch_array($s)) {
     143                        $articles[$lien] = $t['id_article'];
     144                        echo "<br />remplace $lien par $id_article;\n";
     145                } else
     146                        $articles[$lien] = $lien;
     147        }
     148
     149        return $articles[$lien];
     150}
     151
    122152function analyser_raccourcis($text) {
     153
     154
     155        $text = str_replace('[*[', '[[', $text);
     156        $text = str_replace(']*]', ']]', $text);
     157
     158        list($text, $les_echap) = echappe_tags($text);
     159
     160
     161        if (preg_match_all("/\[\[(\S*)(\s+(.+))?\]\]/",
     162        $text, $r, PREG_SET_ORDER)) {
     163                foreach ($r as $regs) {
     164                        $lien = lien_wiki($regs[1]);
     165                        $text = preg_replace(',\b'.preg_quote($lien,',').'\b,',
     166                                '[' . $r[3] .'->'.$lien.']', $text);
     167
     168                }
     169        }
     170
    123171
    124172        if (preg_match_all("/\b[A-Z][a-z]+[A-Z,0-9][A-Z,a-z,0-9]*\b/s",
    125173        $text, $r, PREG_SET_ORDER)) {
    126174                foreach ($r as $regs) {
    127                         $l = $regs[0];
    128                         $s = spip_query("SELECT id_article FROM spip_articles WHERE id_rubrique=".import_id_rubrique." AND titre="._q($l));
    129                         if ($t = spip_fetch_array($s)) {
    130                                 $id_article = $t['id_article'];
    131                                 $text = preg_replace(',\b'.preg_quote($l,',').'\b,', '[->'.$id_article.']', $text);
    132 
    133                                 echo "<br />remplace $l par $id_article;\n";
    134                         }
     175                        $lien = lien_wiki($regs[0]);
     176                        $text = preg_replace(',\b'.preg_quote($lien,',').'\b,',
     177                                '[->'.$lien.']', $text);
    135178                }
    136179        }
    137        
     180
     181        $text = echappe_tags_retour($text, $les_echap);
     182
    138183        return $text;
    139184}
Note: See TracChangeset for help on using the changeset viewer.