webmaster@11: infos = (object)$infos; webmaster@11: webmaster@32: $this->tpl = new Template(Skeleton::getTemplateFile('post')); 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@53: $Mess = TextUtils::EnsureUTF8($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@33: $this->dateFormatee['human'] = strftime("%A %d %B %Y, %Hh%M", $time); webmaster@33: $this->dateFormatee['iso'] = date("c", $time); webmaster@11: webmaster@11: // On détermine l'url de ce post webmaster@11: $strippedTitle = TextUtils::StripTitle($infos['Titre']); webmaster@61: $this->url = '/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@61: $mood = array('src' => BLOG_URL . "/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@76: SELECT T.Tag webmaster@76: FROM Tags T, Lien_Tags_Posts L webmaster@76: WHERE L.idMess={$infos['num_mess']} AND L.idTag = T.idTag webmaster@76: ORDER BY T.Tag webmaster@76: ", 'Tags'); webmaster@76: $tags = array(); webmaster@11: if($nbTags > 0) webmaster@11: { webmaster@76: while(0 !== ($tag = $db->GetRow('Tags'))) webmaster@76: { webmaster@76: $tags[] = sprintf("%s", webmaster@76: BLOG_URL . '/tags/' . urlencode($tag['Tag']), webmaster@76: $tag['Tag']); webmaster@76: } webmaster@76: $tags = implode(' | ', $tags); 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@33: 'postDate' => $this->dateFormatee['human'], webmaster@33: 'postDateISO' => $this->dateFormatee['iso'], webmaster@11: 'postContent' => $this->mess, webmaster@11: 'postNumber' => $this->infos->num_mess, webmaster@11: 'postComments' => $this->commentLabel, webmaster@61: '#linkPostNumber@href' => $this->getURL(true), webmaster@61: '#linkPostComments@href' => $this->getURL(true), 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@61: return BLOG_URL . $this->url; webmaster@11: } webmaster@11: } webmaster@11: ?>