public function vignetteUnite($unite, $annee = null, $label = null, $urlOptions = array()) { if (!$unite) { return; } $this->view->document->addStyleComponents('vignette'); $label = $label ? $label : $unite->getName(); if ($src = $unite->getCheminImage()) { $image = new Wtk_Image($src, "Photo d'unité", $label); } else { $photo = $unite->findPhotoAleatoire($annee); if ($photo) { $image = new Wtk_Image($photo->getCheminVignette(), $photo->titre, $unite->getFullname()); } else { $image = new Wtk_Paragraph("Pas d'image !"); $image->addFlags('empty', 'image'); } } $urlOptions = array_merge(array('controller' => 'unites', 'action' => 'index', 'unite' => $unite->slug), $urlOptions); $type = $unite->findParentTypesUnite(); $w = new Wtk_Section(); $w->addFlags('wrapper')->addChild($image); $plabel = new Wtk_Paragraph($label); $plabel->addFlags('label'); $link = new Wtk_Link($this->view->url($urlOptions), $label, new Wtk_Container($w, $plabel)); $link->addFlags('vignette', $type->slug); $link->addFlags('unite'); if (!$src) { $link->addFlags('photo'); } return $link; }
public function vignetteDocument($document, $urlOptions = null) { $this->view->document->addStyleComponents('vignette'); $label = $document->titre; $wrapper = new Wtk_Section(); $wrapper->addFlags('wrapper'); if (in_array($document->suffixe, array('ogg', 'mp3', 'm4a'))) { $url = $document->getFichier(); $wrapper->addAudio(array('url' => $url, 'type' => 'audio/' . $document->suffixe)); } else { if ($url = $document->getCheminVignette()) { $wrapper->addImage($document->getCheminVignette(), $document->titre, $document->titre); } else { $wrapper->addParagraph("Pas d'aperçu")->addFlags('image', 'empty'); } } if ($urlOptions) { $url = $this->view->url($urlOptions, true, true); } else { $url = $document->getUri(); } $item = new Wtk_Link($url, $label, $wrapper); $item->addFlags('vignette', 'document', $document->suffixe)->addParagraph($label)->addFlags('label'); return $item; }
function calendrier($activites, $annee) { if (!$activites->count()) { $p = new Wtk_Paragraph(); $p->addFlags('empty')->addInline("Aucune activité prévue en " . $annee); return $p; } $s = new Wtk_Section('calendrier'); $tam = new Wtk_Table_Model('id', 'slug', 'type', 'lieu', 'date', 'intitule'); foreach ($activites as $a) { if ($a->isFuture() && !$this->view->assert(null, $a, 'consulter')) { continue; } $tam->append($a->id, $a->slug, $a->getIntitule(), $a->lieu, $a->getDate(), $a->getIntituleComplet()); } $t = $s->addTable($tam); $t->addNewColumn("Date", new Wtk_Table_CellRenderer_Text('text', 'date')); $c = new Wtk_Table_CellRenderer_Link('href', 'slug', 'label', 'type', 'tooltip', 'intitule'); $t->addNewColumn("Activité", $c); // TODO: déterminer par activité si c'est future. Un // CellRendererLink spécialisé ferait l'affaire $url = $this->view->url(array('controller' => 'activites', 'action' => 'consulter', 'activite' => '%s')); $c->setUrlFormat(urldecode($url)); return $s; }
public function citation($citation) { $s = new Wtk_Section(); $s->addFlags('citation'); $p = $s->addParagraph($citation->auteur)->addFlags('auteur'); $p->tooltip = strftime('le %d-%m-%Y à %H:%M', strtotime($citation->date)); $s->addParagraph("« " . $citation->texte . " »")->addFlags('citation'); return $s; }
public function commentaire($commentaire) { $s = new Wtk_Section(); $s->addFlags('commentaire'); $p = $s->addParagraph($this->view->lienIndividu($commentaire->findParentIndividus()))->addFlags('auteur'); $p->tooltip = strftime('le %d-%m-%Y à %H:%M', strtotime($commentaire->date)); $s->addText($commentaire->message); return $s; }
public function document($document) { $s = new Wtk_Section(null, $document->titre); $s->addFlags('document', $document->suffixe); $s->addChild($this->view->vignetteDocument($document)->addFlags('nolabel')); $l = $s->addList()->addFlags('infos'); $l->addItem()->addFlags('telechargement')->addLink($document->getUri(), "Télécharger"); if ($document->auteur) { $l->addItem("Par " . $document->auteur)->addFlags('auteur'); } $l->addItem("Publié le " . strftime("%x", strtotime($document->date)))->addFlags('date'); $l->addItem("Format " . strtoupper($document->suffixe))->addFlags('format'); $l->addItem(wtk_format_size($document->getTaille()))->addFlags('taille'); if ($document->description) { $s->addSection('description')->addText($document->description); } return $s; }
function getStyleComponents() { return array_unique(array_merge($this->custom_style_components, parent::getStyleComponents())); }