Changeset 10056 in spip-zone
- Timestamp:
- Mar 2, 2007, 10:30:03 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
_contribs_/_wiki_/spikini/importer.php
r10034 r10056 4 4 // 5 5 include 'ecrire/inc_version.php'; 6 7 function convertir_charset($x) { 8 return importer_charset($x, 'iso-8859-1'); 9 } 6 10 7 11 #securite … … 21 25 <input type='hidden' name='importer' value='oui' /> 22 26 <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='p rop' />27 <br/>statut: <input type='text' size='8' name='statut' value='publie' /> 24 28 <br/><input type='submit' value='ok'/> 25 29 </form>"); … … 45 49 include_spip('inc/charsets'); 46 50 include_spip('inc/texte'); 47 51 include_once 'spikini/formatters/wakka.php'; 48 52 49 53 $titre = typo($t['titre']); … … 51 55 echo "<h3>Félicitations. Le contenu de ce wiki a été importé dans <a href='../ecrire/?exec=naviguer&id_rubrique=".import_id_rubrique."'>la rubrique ".import_id_rubrique." ($titre)</a></h3>\n"; 52 56 53 echo "<p>Vous pouvez maintenant utiliser cette rubrique en mode wiki ; du moins dès que le squelette existera :-)</p>\n";57 echo "<p>Vous pouvez maintenant utiliser cette rubrique en mode wiki</p>\n"; 54 58 echo "<p>Pour desactiver ce wiki supprimez le fichier <b>$configfile</b></p>\n"; 55 59 60 61 #$where="WHERE tag='PagePrincipale'"; #accelerer, pour tests 56 62 57 63 # insertion initiale des articles (pour avoir les liens) 58 64 # & nettoyage de la table des versions 59 65 $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"); 61 67 while ($t = spip_fetch_array($s)) { 62 68 if (!in_array($t['tag'], $tags)) { … … 68 74 69 75 $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"); 71 77 while ($t = spip_fetch_array($s)) { 72 78 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); 74 82 } else { 75 $tags[] = $t['tag']; 83 $tags[] = $t['tag']; // la premiere version est deja la 76 84 } 77 85 } … … 93 101 94 102 // entrer la nouvelle revision 103 $body = convertir_charset( 104 ($spik['latest'] == 'Y') 105 ? analyser_raccourcis($spik['body']) 106 : $spik['body'] 107 ) 108 ; 109 95 110 $r = modifier_contenu('article', $id_article, 96 111 array('champs' => array('titre', 'texte', 'date')), 97 112 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, 100 115 'date' => $spik['time'] 101 116 ) … … 109 124 // regler la date de la revision a la date de son entree dans spikini 110 125 // et son auteur a celui du modificateur de l'epoque 111 $auteur = substr(co uper(importer_charset($spik['user'],'iso-8859-1'),23),0, 23);126 $auteur = substr(convertir_charset($spik['user']),0, 23); 112 127 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"); 113 128 } … … 120 135 121 136 // Traiter les LiensWiki 137 function 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 122 152 function 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 123 171 124 172 if (preg_match_all("/\b[A-Z][a-z]+[A-Z,0-9][A-Z,a-z,0-9]*\b/s", 125 173 $text, $r, PREG_SET_ORDER)) { 126 174 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); 135 178 } 136 179 } 137 180 181 $text = echappe_tags_retour($text, $les_echap); 182 138 183 return $text; 139 184 }
Note: See TracChangeset
for help on using the changeset viewer.