17,6 → 17,8 |
private $wiki = null; |
private $pageNom = null; |
private $section = null; |
private $creerPage = false; |
private $templateDefaut = null; |
|
private $retour = 'txt'; |
private $formats_retour = array('text/plain','text/html'); |
38,7 → 40,11 |
// on devrait normalement renvoyer une erreur 404 mais |
// l'api de consultation d'url du framework prend mal en compte |
// le 404 et ne permet pas de le traiter quand on le recoit |
$page['existe'] = ($page != null); |
if($page == null && $this->creerPage) { |
$this->creerPageAPartirTemplate($this->pageNom, $this->templateDefaut); |
$page = $this->consulterPage($this->pageNom, $this->section); |
} |
|
$retour = $this->formaterRetour($page); |
|
$this->envoyerContenuJson($retour); |
73,6 → 79,16 |
$erreurs[] = $message; |
} |
|
if (isset($parametres['txt_section_titre']) && trim($parametres['txt_section_titre']) == '') { |
$message = "La valeur du paramètre 'txt.section.titre' ne peut pas être vide si celui-ci est présent"; |
$erreurs[] = $message; |
} |
|
if (isset($parametres['txt_template']) && trim($parametres['txt_template']) == '') { |
$message = "La valeur du paramètre 'txt_template' ne peut pas être vide si celui-ci est présent"; |
$erreurs[] = $message; |
} |
|
if (count($erreurs) > 0) { |
$message = implode('<br />', $erreurs); |
$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE; |
91,7 → 107,11 |
if (isset($parametres['txt_format'])) { |
$this->retour = $parametres['txt_format']; |
} |
if (isset($parametres['txt_template'])) { |
$this->creerPage = true; |
$this->templateDefaut = $parametres['txt_template']; |
} |
} |
|
private function consulterPage($page, $section = null) { |
|
191,12 → 211,20 |
'titre' => $this->pageNom, |
'mime' => $mime, |
'texte' => $texte, |
'href' => $url, |
'existe' => $page['existe']); |
'href' => $url); |
|
return $retour; |
} |
|
private function creerPageAPartirTemplate($tag_page_a_creer, $tag_template) { |
$page_template = $this->consulterPage($tag_template); |
$corps_nouvelle_page = ($page_template != null) ? $page_template['body'] : ''; |
// si le template n'existe pas, la page créée sera vide |
$ecriture = $this->ecrirePage($tag_page_a_creer, $corps_nouvelle_page); |
|
return $ecriture; |
} |
|
public function ajouter($ressources, $requeteDonnees) { |
return $this->modifier($ressources, $requeteDonnees); |
} |
260,6 → 288,8 |
|
private function remplacerSection($titre_section, $section_remplacement, $corps) { |
|
// insertion d'un saut de ligne pour empêcher de casser le titre, lorsque le titre |
// suivant vient directement après la section, sans saut de ligne ni espace |
$section_remplacement = "\n".$section_remplacement."\n"; |
$section_page_originale = $this->getSectionParTitre($corps, $titre_section, true); |
$infos_section = $this->getInformationsPositionSection($titre_section, $corps); |