function fetch($annee = NULL) { if (!$this->activite) { return array('activites' => $this->unite->findActivites($annee)); } else { $this->controller->assert(null, $this->activite, 'envoyer-photo', "Vous n'avez pas le droit d'envoyer de photo de " . $this->activite->getIntituleComplet() . "."); } $m = new Wtk_Form_Model('envoyer'); $i = $m->addString('titre', 'Titre'); $m->addConstraintRequired($i); $m->addFile('photo', "Photo"); $m->addString('commentaire', 'Votre commentaire'); $m->addBool('envoyer', "J'ai d'autres photos à envoyer", true); $m->addNewSubmission('envoyer', "Envoyer"); $t = new Photos(); if ($m->validate()) { $p = new Photo(); $p->titre = $m->titre; $p->slug = $t->createSlug(wtk_strtoid($m->titre)); $p->activite = $this->activite->id; $action = $m->envoyer ? 'envoyer' : 'consulter'; $c = new Commentaire(); $c->auteur = Zend_Registry::get('individu')->id; $c->message = $m->commentaire; $db = $t->getAdapter(); $db->beginTransaction(); try { $c->save(); $p->commentaires = $c->id; $p->save(); $i = $m->getInstance('photo'); if ($i->isUploaded()) { $tmp = $i->getTempFilename(); $p->storeFile($tmp); } $url = $this->controller->_helper->Url('voir', 'photos', null, array('photo' => $p->slug), true); $this->controller->logger->info("Photo envoyée", $url); foreach ($this->activite->findUnitesParticipantesExplicites() as $u) { $ident = new Identification(); $ident->photo = $p->id; $ident->unite = $u->id; $ident->save(); $this->controller->logger->info("Unité identifiée sur une photo", $url); } $db->commit(); } catch (Exception $e) { $db->rollBack(); throw $e; } $this->controller->_helper->Flash->info("Photo envoyée"); $this->controller->redirectSimple($action, null, null, array('album' => $this->activite->slug)); } $photos = $this->activite->findPhotos($t->select()->order('date')); return array('unite' => $this->unite, 'annee' => $annee, 'model' => $m, 'activite' => $this->activite, 'photos' => $photos); }
function testPhotoPng() { $a = new Activite(); $a->slug = 'imagick-png'; $a->debut = new Zend_Db_Expr('CURRENT_TIMESTAMP'); $a->fin = new Zend_Db_Expr('CURRENT_TIMESTAMP'); $a->save(); $c = new Commentaire(); $c->message = ''; $c->save(); $o = new Photo(); $o->activite = $a->id; $o->commentaires = $c->id; $o->slug = 'photo-png'; $o->storeFile(dirname(__FILE__) . '/images/transparente.png'); }
function envoyerAction() { if ($this->_getParam('article')) { $a = $this->_helper->Article(); $j = $a->findParentJournaux(); $c = $a->findParentCommentaires(); try { $d = $a->findDocument(); } catch (Strass_Db_Table_NotFound $e) { $this->redirectSimple('ecrire'); } $message = "Article édité"; } else { $a = null; $j = $this->_helper->Journal(); $message = "Article envoyé"; } $this->metas(array('DC.Title' => "Envoyer")); $this->branche->append(); if ($a) { $this->assert(null, $a, null, "Vous n'avez pas le droit d'éditer " . $a); } else { $this->assert(null, $j, null, "Vous n'avez pas le droit d'envoyer un PDF dans " . $j); } $this->view->unite = $u = $j->findParentUnites(); $publier = $this->assert(null, $j, 'publier'); $this->view->model = $m = new Wtk_Form_Model('envoyer'); $me = Zend_Registry::get('individu'); if ($publier) { $i = $m->addEnum('auteur', "Auteur"); /* on inclus les membres de sous-unité : le scout peuvent écrire dans la gazette de troupe */ foreach ($u->findInscrits(null, 1) as $individu) { $i->addItem($individu->id, $individu->getFullname(false)); } if (!count($i)) { throw new Strass_Controller_Action_Exception_Notice("L'auteur de l'article doit être un membre, mais cette unité n'a aucun membre !"); } if ($a) { $i->set($a->findAuteur()->id); } else { $i->set($me->id); } } else { $i = $m->addInteger('auteur', "Auteur", $me->id, true); } $i = $m->addInstance('File', 'fichier', "Fichier"); if (!$a) { $m->addConstraintRequired($i); } $i = $m->addString('titre', "Titre", $a ? $a->titre : null); $m->addConstraintRequired($i); $m->addDate('date', 'Date', $a ? $c->date : null); if ($publier) { $m->addEnum('public', 'Publication', $a ? $a->public : null, array(0 => 'Brouillon', 1 => 'Publier')); } $m->addNewSubmission('envoyer', "Envoyer"); if ($m->validate()) { $td = new Documents(); $db = $td->getAdapter(); $db->beginTransaction(); try { $da = (bool) $a; if (!$a) { $a = new Article(); $c = new Commentaire(); $d = new Document(); } $d->slug = $td->createSlug($j->slug . '-' . $m->titre, $d->slug); $d->titre = $m->titre; $d->date = $m->date; $i = $m->getInstance('fichier'); if ($i->isUploaded()) { $d->suffixe = strtolower(end(explode('.', $m->fichier['name']))); $d->storeFile($i->getTempFilename()); } $d->save(); $c->auteur = $m->auteur; $c->date = $m->date; $c->save(); $a->slug = $a->getTable()->createSlug($m->titre, $a->slug); $a->journal = $j->id; $a->titre = $m->titre; $a->article = '!document'; try { $a->public = (int) $m->public; } catch (Exception $e) { } $a->commentaires = $c->id; $a->save(); if (!$da) { $da = new DocArticle(); $da->article = $a->id; $da->document = $d->id; $da->save(); } $this->logger->info($message, $this->_helper->url('consulter', 'journaux', null, array('article' => $a->slug), true)); if (!$this->assert(null, $j, 'publier')) { $mail = new Strass_Mail_Article($a); $mail->send(); } $this->_helper->Flash->info($message); $db->commit(); } catch (Exception $e) { $db->rollBack(); throw $e; } $this->redirectSimple('consulter', 'journaux', null, array('article' => $a->slug), true); } }
<?php if (isset($_GET['idArticle']) && isset($_GET['UserMail']) && isset($_POST['com'])) { require_once '../../module/Connexion.php'; require_once '../../module/model/commentaire.php'; require_once '../../module/model/user.php'; $user = new User(); $userId = $user->getUserIdByEmail($_GET['UserMail']); $comment = new Commentaire($_POST['com'], $userId, $_GET['idArticle']); $result = $comment->save(); if ($result) { header("location:../../../article?id=" . $_GET['idArticle']); } else { header("location:../../../article?c=failed&&id=" . $_GET['idArticle']); } } else { header("location:../../layout/Intrusion/url.inc"); } ?>