Subversion Repositories Applications.wikini

Rev

Rev 58 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 58 Rev 76
Line 233... Line 233...
233
       
233
       
Line 234... Line 234...
234
        private function creerPageAPartirTemplate($tag_page_a_creer, $tag_template) {
234
        private function creerPageAPartirTemplate($tag_page_a_creer, $tag_template) {
Line 235... Line 235...
235
                $page_template = $this->consulterPage($tag_template);
235
                $page_template = $this->consulterPage($tag_template);
Line 236... Line 236...
236
                $corps_nouvelle_page = ($page_template != null) ? $page_template['body'] : '';
236
                $corps_nouvelle_page = ($page_template != null) ? $page_template['body'] : '';
Line 237... Line 237...
237
                // si le template n'existe pas, la page créée sera vide
237
                // si le template n'existe pas, la page créée sera vide
Line -... Line 238...
-
 
238
                $corps_nouvelle_page = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $corps_nouvelle_page);
Line 238... Line 239...
238
                $ecriture = $this->ecrirePage($tag_page_a_creer, $corps_nouvelle_page);
239
                $ecriture = $this->ecrirePage($tag_page_a_creer, $corps_nouvelle_page);
Line 239... Line 240...
239
               
240
               
Line 240... Line 241...
240
                return $ecriture;
241
                return $ecriture;
Line 241... Line 242...
241
        }
242
        }
Line 242... Line 243...
242
       
243
       
Line 261... Line 262...
261
                        $corps = $texte;
262
                        $corps = $texte;
Line 262... Line 263...
262
                }      
263
                }      
Line 263... Line 264...
263
               
264
               
Line 264... Line 265...
264
                $ecriture = $this->ecrirePage($this->pageNom, $corps);
265
                $ecriture = $this->ecrirePage($this->pageNom, $corps);
Line 265... Line 266...
265
               
266
               
Line 266... Line -...
266
                if ($ecriture) {
-
 
Line -... Line 267...
-
 
267
                if (0 == $ecriture) {
Line 267... Line 268...
267
                        $this->envoyerCreationEffectuee();
268
                        $this->envoyerCreationEffectuee();
Line 268... Line 269...
268
                } else {
269
                } else {
Line 269... Line 270...
269
                        $message = 'Impossible de créer ou modifier la page';
270
                        $message = 'Impossible de créer ou modifier la page';
Line 270... Line 271...
270
                        $code = RestServeur::HTTP_CODE_ERREUR;
271
                        $code = RestServeur::HTTP_CODE_ERREUR;
Line 271... Line 272...
271
                        throw new Exception($message, $code);
272
                        throw new Exception($message, $code);
Line 281... Line 282...
281
         * @param string $titre de la section
282
         * @param string $titre de la section
Line 282... Line 283...
282
         * @param string $page contenu de la page wiki
283
         * @param string $page contenu de la page wiki
Line 283... Line 284...
283
         * @return tableau associatif tel que décrit ici
284
         * @return tableau associatif tel que décrit ici
Line 284... Line 285...
284
         */
285
         */
Line 285... Line 286...
285
        private function getInformationsPositionSection($titre, $page) {
286
        private function getInformationsPositionSection($titre, $page) {
Line 286... Line -...
286
               
-
 
Line -... Line 287...
-
 
287
#               $titre = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $titre);
Line -... Line 288...
-
 
288
#               $page = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $page);
Line -... Line 289...
-
 
289
#die(var_dump($titre, $page));
Line -... Line 290...
-
 
290
#die(var_dump('/(=[=]+[ ]*'.preg_quote(trim($titre), '/').'[ ]*=[=]+[.]*)/i'));
Line 287... Line 291...
287
                preg_match_all('/(=[=]+[ ]*'.preg_quote(trim($titre), '/').'[ ]*=[=]+[.]*)/i', $page, $sections, PREG_OFFSET_CAPTURE);
291
                preg_match_all('/(=[=]+[ ]*'.preg_quote(trim($titre), '/').'[ ]*=[=]+[.]*)/i', $page, $sections, PREG_OFFSET_CAPTURE);
Line 288... Line 292...
288
                $longueur_titre = 0;
292
                $longueur_titre = 0;
Line 289... Line 293...
289
                $debut_section_apres_titre = 0;
293
                $debut_section_apres_titre = 0;
Line 290... Line -...
290
               
-
 
Line -... Line 294...
-
 
294
#die(var_dump($sections));             
Line 291... Line 295...
291
                if (count($sections) > 0 && is_array($sections[0]) && count($sections[0][0]) >= 2) {
295
                if (count($sections) > 0 && is_array($sections[0]) && count($sections[0][0]) >= 2) {
Line 292... Line -...
292
                        $longueur_titre = mb_strlen($sections[0][0][0]);
-
 
Line -... Line 296...
-
 
296
#die(var_dump($titre,$sections[0][0][0], strlen($sections[0][0][0]))); 
Line -... Line 297...
-
 
297
                        $longueur_titre = strlen($sections[0][0][0]);
Line 293... Line 298...
293
                        $debut_section_apres_titre = $sections[0][0][1] + $longueur_titre;
298
                        $debut_section_apres_titre = $sections[0][0][1] + $longueur_titre;
Line 294... Line 299...
294
                }
299
                }
Line 295... Line 300...
295
               
300
               
Line 296... Line 301...
296
                // ATTENTION : début contient le numéro du caractere de début de la section, après le titre
301
                // ATTENTION : début contient le numéro du caractere de début de la section, après le titre
Line 297... Line 302...
297
                $infos = array('debut' => $debut_section_apres_titre,
302
                $infos = array('debut' => $debut_section_apres_titre,
Line 300... Line 305...
300
               
305
               
Line 301... Line 306...
301
                return $infos;
306
                return $infos;
Line 302... Line 307...
302
        }
307
        }
Line 303... Line 308...
303
       
308
       
Line 304... Line 309...
304
        private function remplacerSection($titre_section, $section_remplacement, $corps) {
309
        private function remplacerSection($titre_section, $section_remplacement, $corps) {
Line 305... Line -...
305
                               
-
 
Line -... Line 310...
-
 
310
                $titre_section = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $titre_section);
Line -... Line 311...
-
 
311
                $section_remplacement = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $section_remplacement);
Line -... Line 312...
-
 
312
                $corps = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $corps);
Line -... Line 313...
-
 
313
                        #die(var_dump($titre_section, $section_remplacement, $corps));
Line 306... Line 314...
306
                // insertion d'un saut de ligne pour empêcher de casser le titre, lorsque le titre
314
                // insertion d'un saut de ligne pour empêcher de casser le titre, lorsque le titre
Line 307... Line 315...
307
                // suivant vient directement après la section, sans saut de ligne ni espace
315
                // suivant vient directement après la section, sans saut de ligne ni espace
Line 308... Line 316...
308
                $section_remplacement = "\n".$section_remplacement."\n";
316
                $section_remplacement = "\n".$section_remplacement."\n";
Line 309... Line 317...
309
                $section_page_originale = $this->getSectionParTitre($corps, $titre_section, true);
317
                $section_page_originale = $this->getSectionParTitre($corps, $titre_section, true);
Line 310... Line 318...
310
                $infos_section = $this->getInformationsPositionSection($titre_section, $corps);
318
                $infos_section = $this->getInformationsPositionSection($titre_section, $corps);
Line 311... Line -...
311
                $nb_caracteres_a_remplacer = mb_strlen($section_page_originale) - $infos_section['longueur_titre'];
-
 
Line 312... Line -...
312
               
-
 
Line -... Line 319...
-
 
319
                $nb_caracteres_a_remplacer = strlen($section_page_originale) - $infos_section['longueur_titre'];
Line -... Line 320...
-
 
320
        #die(var_dump($corps, $section_remplacement, $infos_section['debut'], $nb_caracteres_a_remplacer));
Line 313... Line 321...
313
                $nouveau_contenu = substr_replace($corps, $section_remplacement, $infos_section['debut'], $nb_caracteres_a_remplacer);
321
                $nouveau_contenu = substr_replace($corps, $section_remplacement, $infos_section['debut'], $nb_caracteres_a_remplacer);
Line 314... Line -...
314
                       
-
 
Line -... Line 322...
-
 
322
#       die(var_dump($nouveau_contenu));               
Line 315... Line 323...
315
                return $nouveau_contenu;
323
                return $nouveau_contenu;
Line 316... Line 324...
316
        }
324
        }
Line 317... Line 325...
317
       
325
       
Line 318... Line 326...
318
        private function ecrirePage($nom_page, $contenu) {
326
        private function ecrirePage($nom_page, $contenu) {
Line 319... Line 327...
319
               
327
               
Line 320... Line 328...
320
                $texte_encode = $this->convertirTexteAppliVersEncodageWiki($contenu);
328
                $texte_encode = $this->convertirTexteAppliVersEncodageWiki($contenu);
Line 321... Line 329...
321
                $ecriture = $this->wiki->SavePage($nom_page, $texte_encode, "", true);
329
                $ecriture = $this->wiki->SavePage($nom_page, $texte_encode, "", true);
Line 322... Line -...
322
               
-
 
Line -... Line 330...
-
 
330
        // SavePage renvoi 0 en cas de succès  
Line 323... Line 331...
323
                return $ecriture;
331
                return $ecriture;
Line 324... Line 332...
324
        }
332
        }
Line 325... Line 333...
325
       
333
       
Line 326... Line 334...
326
        private function analyserParametresEcriture($parametres) {
334
        private function analyserParametresEcriture($parametres) {
Line 327... Line 335...
327
                $this->pageNom = $parametres['pageTag'];
335
                $this->pageNom = $parametres['pageTag'];
Line 360... Line 368...
360
                }
368
                }
Line 361... Line 369...
361
                return $texte;
369
                return $texte;
Line 362... Line 370...
362
        }
370
        }
Line 363... Line 371...
363
       
371
       
Line 364... Line 372...
364
        private function convertirTexteAppliVersEncodageWiki($texte) {
372
        private function convertirTexteAppliVersEncodageWiki($texte) {
Line 365... Line -...
365
                if (Config::get('encodage_appli') != Config::get('encodage_wiki')) {
-
 
Line -... Line 373...
-
 
373
                if (false && Config::get('encodage_appli') != Config::get('encodage_wiki')) {
Line 366... Line 374...
366
                        $texte = mb_convert_encoding($texte,Config::get('encodage_wiki'),Config::get('encodage_appli'));
374
                        $texte = mb_convert_encoding($texte,Config::get('encodage_wiki'),Config::get('encodage_appli'));
Line 367... Line 375...
367
                }
375
                }
Line 368... Line 376...
368
                return $texte;
376
                return $texte;
Line 369... Line 377...
369
        }
377
        }
Line 370... Line 378...
370
}      
378
}      
Line 371... Line 379...
371
?>
379
?>