webmaster@11: infos = (object)$infos; webmaster@11: webmaster@11: // Récupération du template webmaster@11: $this->tpl = new Template('post.xml'); webmaster@11: webmaster@11: // Création du document fragment contenant le message webmaster@11: $Mess = str_replace( webmaster@11: array('

', '

'), webmaster@11: array('

', '

'), webmaster@11: $infos['Message']); webmaster@11: $Mess = Factory::getDB()->utf8_ensure($Mess); webmaster@11: $this->mess = $this->tpl->getDocumentFragment(); webmaster@11: $this->mess->appendXML($Mess); webmaster@11: webmaster@11: // Formatage de la date webmaster@11: $time = strtotime($infos['DatePost']); webmaster@11: $this->dateFormatee = strftime("%A %d %B %Y, %Hh%M", $time); webmaster@11: webmaster@11: // On détermine l'url de ce post webmaster@11: $strippedTitle = TextUtils::StripTitle($infos['Titre']); webmaster@11: $this->url = '/blog/posts/' . $infos['num_mess'] . '-' . $strippedTitle; webmaster@11: webmaster@11: // On détermine le label du lien vers les commentaires webmaster@11: $this->commentLabel = "Un p'tit commentaire ?"; webmaster@11: if($infos['NbCommentaires'] > 0) webmaster@11: $this->commentLabel .= " (" . $infos['NbCommentaires'] . ")"; webmaster@11: webmaster@11: // On s'occupe de l'indicateur d'humeur webmaster@11: if(!empty($infos['Emot'])) { webmaster@11: $mood = array('src' => "/blog/mood/{$infos['Emot']}.png", webmaster@11: 'alt' => 'Mood: ' . $infos['Emot']); webmaster@11: $this->mood = (object)$mood; webmaster@11: } webmaster@11: webmaster@11: // On détermine les tags du post webmaster@11: $db = Factory::getDB(); webmaster@11: $nbTags = $db->Query(" webmaster@11: SELECT T.Tag webmaster@11: FROM Tags T, Lien_Tags_Posts L webmaster@11: WHERE L.idMess={$infos['num_mess']} AND L.idTag = T.idTag webmaster@11: ORDER BY T.Tag webmaster@11: ", 2); webmaster@11: $tags = ''; webmaster@11: if($nbTags > 0) webmaster@11: { webmaster@11: while(0 !== ($tag = $db->GetRow(2))) webmaster@11: $tags .= " {$tag['Tag']} |"; webmaster@11: $tags = substr($tags, 0, -1); webmaster@11: $this->tags = $this->tpl->getDocumentFragment(); webmaster@11: $this->tags->appendXML($tags); webmaster@11: } webmaster@11: else { webmaster@11: $this->tags = 'aucun'; webmaster@11: } webmaster@11: } webmaster@11: webmaster@11: public function format() { webmaster@30: $this->tpl->setParams($this->getTplParams()); webmaster@30: return $this->tpl; webmaster@30: } webmaster@30: webmaster@30: public function getTplParams() { webmaster@11: $params = array( webmaster@11: '#post@class' => 'PostContent ' . $this->infos->Emot, webmaster@11: 'postTitle' => $this->infos->Titre, webmaster@11: 'postDate' => $this->dateFormatee, webmaster@11: 'postContent' => $this->mess, webmaster@11: 'postNumber' => $this->infos->num_mess, webmaster@11: 'postComments' => $this->commentLabel, webmaster@11: '#linkPostNumber@href' => $this->url, webmaster@11: '#linkPostComments@href' => $this->url, webmaster@11: 'postTags' => $this->tags webmaster@11: ); webmaster@11: if(!empty($this->mood->src)) { webmaster@11: $params['#mood@src'] = $this->mood->src; webmaster@11: $params['#mood@alt'] = $this->mood->alt; webmaster@11: $params['#mood@class'] = 'mood'; webmaster@11: } webmaster@30: return $params; webmaster@30: } webmaster@30: webmaster@30: public function getURL() { webmaster@30: return $this->url; webmaster@11: } webmaster@11: } webmaster@11: ?>