webmaster@0: createElementNS('http://defr.org/2005/blog-post', 'post'); webmaster@0: $doc->appendChild($root); webmaster@0: webmaster@0: $mode = $Req->get('mode', 'GET', 'get'); webmaster@0: $type = $Req->get('type', 'GET', 'post'); webmaster@0: $id = $Req->get('id'); webmaster@0: webmaster@0: $root->appendChild($doc->createElement('id', $id)); webmaster@0: $root->appendChild(DOMUtils::createCDATAWrapper($doc, 'debug', var_export($Req, true))); webmaster@0: switch($mode . '-' . $type) webmaster@0: { webmaster@0: case 'edit-post': webmaster@0: $nvTitre = $Req->get('title'); webmaster@0: $nvContenu = $Req->get('content'); webmaster@0: $nvMood = $Req->get('mood'); webmaster@0: $Data->Query webmaster@0: (" webmaster@0: UPDATE Mess webmaster@0: SET Titre='{$nvTitre}', Message='{$nvContenu}', Emot='{$nvMood}' webmaster@0: WHERE num_mess={$id} webmaster@0: "); webmaster@0: // Récuperation des nouveaux tags à appliquer webmaster@0: $arTags = TextUtils::splitTags($Req->get('tags')); webmaster@0: // Récuperation des anciens tags webmaster@0: $Data->Query webmaster@0: (" webmaster@0: SELECT T.idTag, T.Tag webmaster@0: FROM Lien_Tags_Posts L webmaster@0: LEFT JOIN Tags T ON L.idTag = T.idTag webmaster@0: WHERE L.idMess = {$id} webmaster@0: "); webmaster@0: webmaster@0: $oldTags = array(); webmaster@0: while(0 !== ($row = $Data->GetRow())) webmaster@0: { webmaster@0: $oldTags[] = $row['Tag']; webmaster@0: $mapOld[$row['Tag']] = $row['idTag']; webmaster@0: } webmaster@0: // Calcul des différences webmaster@0: $tagsSupprimes = array_diff($oldTags, $arTags); webmaster@0: $tagsAjoutes = array_diff($arTags, $oldTags); webmaster@0: // Suppression des tags non affectés webmaster@0: if(is_array($tagsSupprimes)) webmaster@0: { webmaster@0: foreach($tagsSupprimes as $tagSuppr) webmaster@0: { webmaster@0: $supprIDs .= $mapOld[$tagSuppr] . ','; webmaster@0: } webmaster@0: $Data->Query webmaster@0: (" webmaster@0: DELETE FROM Lien_Tags_Posts webmaster@0: WHERE idMess={$id} AND idTag IN ({$supprIDs}0) webmaster@0: "); webmaster@0: } webmaster@0: // Ajout des tags ajoutés webmaster@0: if(is_array($tagsAjoutes)) webmaster@0: { webmaster@0: foreach($tagsAjoutes as $tagAj) webmaster@0: { webmaster@0: $n = $Data->Query("SELECT idTag FROM Tags WHERE Tag='{$tagAj}'"); webmaster@0: if($n == 0) webmaster@0: { webmaster@0: // Si le tag n'existe pas, on le crée webmaster@0: $Data->Query("INSERT INTO Tags SET Tag='{$tagAj}'"); webmaster@0: $Data->Query("SELECT idTag FROM Tags WHERE Tag='{$tagAj}'"); webmaster@0: } webmaster@0: $row = $Data->GetRow(); webmaster@0: $Data->Query webmaster@0: (" webmaster@0: INSERT INTO Lien_Tags_Posts webmaster@0: SET idMess={$id}, idTag={$row['idTag']} webmaster@0: "); webmaster@0: } webmaster@0: } webmaster@0: case 'get-post': webmaster@0: $Data->Query webmaster@0: (" webmaster@0: SELECT Titre, Message, Emot webmaster@0: FROM Mess webmaster@0: WHERE num_mess={$id} webmaster@0: "); webmaster@0: $row = $Data->GetRow(); webmaster@0: $titre_CDATA = $doc->createCDATASection($row['Titre']); webmaster@0: $root->appendChild(DOMUtils::createCDATAWrapper($doc, 'titre', $row['Titre'])); webmaster@0: $root->appendChild(DOMUtils::createCDATAWrapper($doc, 'contenu', $row['Message'])); webmaster@0: $root->appendChild($doc->createElement('mood', $row['Emot'])); webmaster@0: // Obtention des tags webmaster@0: $Data->Query webmaster@0: (" webmaster@0: SELECT T.idTag, T.Tag webmaster@0: FROM Lien_Tags_Posts L webmaster@0: LEFT JOIN Tags T ON L.idTag = T.idTag webmaster@0: WHERE L.idMess = {$id} webmaster@0: "); webmaster@0: while(0 !== ($row = $Data->GetRow())) webmaster@0: $root->appendChild($doc->createElement('tag', $row['Tag'])); webmaster@0: break; webmaster@0: case 'edit-brouillon': webmaster@0: $nvTitre = $Req->get('title'); webmaster@0: $nvContenu = $Req->get('content'); webmaster@0: $Data->Query webmaster@0: (" webmaster@0: UPDATE Brouillons webmaster@0: SET Titre='{$nvTitre}', Contenu='{$nvContenu}' webmaster@0: WHERE id_brouillon={$id} webmaster@0: "); webmaster@0: case 'get-brouillon': webmaster@0: $Data->Query webmaster@0: (" webmaster@0: SELECT Titre, Contenu webmaster@0: FROM Brouillons webmaster@0: WHERE id_brouillon={$id} webmaster@0: "); webmaster@0: $row = $Data->GetRow(); webmaster@0: $root->appendChild(DOMUtils::createCDATAWrapper($doc, 'titre', $row['Titre'])); webmaster@0: $root->appendChild(DOMUtils::createCDATAWrapper($doc, 'contenu', $row['Contenu'])); webmaster@0: break; webmaster@0: } webmaster@0: echo $doc->saveXML(); webmaster@0: ?>