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 fetch($annee = NULL) { $ta = new Activites(); $as = $ta->findByAnnee($annee); $activite = null; if ($as->count() == 1) { $activite = $as->current(); $this->controller->_helper->Album->setBranche($activite); } $m = new Wtk_Form_Model('editer'); $i = $m->addString('titre', 'Titre', $this->photo->titre); $m->addConstraintRequired($i); $enum = array(); foreach ($as as $a) { if ($this->controller->assert(null, $a, 'editer-photo')) { $enum[$a->id] = $a->getIntituleComplet(); } } if ($enum) { $m->addEnum('activite', "Activité", $this->photo->activite, $enum); } $m->addFile('photo', "Photo"); $m->addBool('promouvoir', "Promouvoir en page d'accueil", $this->photo->promotion); $m->addNewSubmission('enregistrer', "Enregistrer"); if ($m->validate()) { $t = $this->photo->getTable(); $db = $t->getAdapter(); $db->beginTransaction(); try { $i = $m->getInstance('photo'); if ($i->isUploaded()) { $tmp = $i->getTempFilename(); $this->photo->storeFile($tmp); } try { $this->photo->activite = $m->activite; } catch (Exception $e) { } $this->photo->titre = $m->titre; $this->photo->slug = $t->createSlug($m->titre, $this->photo->slug); $this->photo->promotion = (int) $m->promouvoir; $this->photo->save(); $this->controller->_helper->Flash->info("Photo éditée"); $this->controller->logger->info("Photo éditée", $this->controller->_helper->Url('voir', null, null, array('photo' => $this->photo->slug))); $db->commit(); } catch (Exception $e) { $db->rollBack(); throw $e; } $this->controller->redirectSimple('voir', null, null, array('photo' => $this->photo->slug)); } return array('unite' => $this->unite, 'annee' => $annee, 'form_model' => $m, 'activite' => $activite, 'photo' => $this->photo); }
function editerAction() { $this->view->unite = $u = $this->_helper->Unite(); $this->assert(null, $u, null, "Vous n'avez pas le droit de modifier cette unité"); $this->metas(array('DC.Title' => 'Éditer ' . $u->getFullname())); $this->view->model = $m = new Wtk_Form_Model('editer'); $enum = array(null => 'Orpheline'); foreach ($u->findParenteCandidates() as $c) { $enum[$c->id] = $c->getFullname(); } $m->addEnum('parente', "Unité parente", $u->parent, $enum); $m->addString('nom', "Nom", $u->nom); $m->addString('extra', $u->findParentTypesUnite()->extra, $u->extra); $m->addFile('image', "Nouvelle"); $m->addBool('supprimer_image', "Supprimer l'image"); $m->addNewSubmission('enregistrer', "Enregistrer"); if ($m->validate()) { $t = $u->getTable(); $db = $t->getAdapter(); $db->beginTransaction(); try { $u->parent = $m->parente ? $m->parente : null; $u->nom = $m->nom; $u->slug = $t->createSlug(wtk_strtoid($u->getFullname()), $u->slug); $u->extra = $m->extra; $u->save(); $i = $m->getInstance('image'); if ($i->isUploaded()) { $u->storeImage($i->getTempFilename()); } elseif ($m->supprimer_image) { $u->supprimerImage(); } $this->logger->info("Édition de " . $u->getFullname(), array('controller' => 'unites', 'action' => 'index', 'unite' => $u->slug)); $db->commit(); } catch (Exception $e) { $db->rollBack(); throw $e; } $this->redirectSimple('index', 'unites', null, array('unite' => $u->slug)); } }
function editerAction() { $this->view->individu = $individu = $this->_helper->Individu(); $this->assert(null, $individu, 'editer', "Vous n'avez pas le droit d'éditer la fiche de cet individu."); $this->metas(array('DC.Title' => 'Éditer ' . $individu->getFullname())); $this->view->model = $m = new Wtk_Form_Model('editer'); if ($this->assert(null, $individu, 'editer-id')) { $m->addConstraintRequired($m->addString('prenom', 'Prénom', $individu->prenom)); $m->addConstraintRequired($m->addString('nom', 'Nom', $individu->nom)); $m->addDate('naissance', 'Date de naissance', $individu->naissance); $m->addEnum('sexe', 'Sexe', $individu->sexe, array('h' => 'Masculin', 'f' => 'Féminin')); } $m->addFile('image', 'Photo'); $sachem = $this->assert(null, $individu, 'totem'); if ($sachem) { $m->addString('totem', 'Totem', $individu->totem); } $m->addString('notes', "Notes", $individu->notes); $p = $individu->findParentEtapes(); $i = $m->addEnum('etape', "Progression", $p ? $p->id : null, array(null => 'Aucune')); foreach ($individu->findEtapesCanditates() as $e) { $i->addItem($e->id, $e->titre); } // contacts; if (!$individu->isMember()) { $m->addString('adelec', "Adélec", $individu->adelec); } $m->addString('portable', "Téléphone portable", $individu->portable); $m->addString('fixe', "Téléphone fixe", $individu->fixe); $m->addString('adresse', "Adresse", $individu->adresse); $m->addNewSubmission('valider', 'Valider'); if ($m->validate()) { $t = $individu->getTable(); $db = $t->getAdapter(); $db->beginTransaction(); try { // contacts $champs = array('nom', 'prenom', 'naissance', 'portable', 'sexe', 'fixe', 'adresse', 'notes', 'etape'); try { $m->getInstance('adelec'); array_push($champs, 'adelec'); } catch (Exception $e) { } if ($sachem) { $champs[] = 'totem'; } if ($this->assert(null, $individu, 'progression')) { $champs[] = 'numero'; } foreach ($champs as $champ) { try { $m->getInstance($champ); $individu->{$champ} = trim($m->{$champ}); } catch (Exception $e) { } } $individu->fixe = $this->_helper->Telephone($individu->fixe); $individu->portable = $this->_helper->Telephone($individu->portable); $individu->slug = $t->createSlug($individu->getFullname(false, false), $individu->slug); $individu->save(); $image = $m->getInstance('image'); if ($image->isUploaded()) { $tmp = $image->getTempFilename(); try { $individu->storeImage($tmp); } catch (ImagickException $e) { throw new Wtk_Form_Model_Exception($e->getMessage(), $image); } } $this->logger->info("Fiche individu mis-à-jour", $this->_helper->Url('fiche', 'individus', null, array('individu' => $individu->slug))); $db->commit(); $this->redirectSimple('fiche', 'individus', null, array('individu' => $individu->slug)); } catch (Wtk_Form_Model_Exception $e) { $db->rollBack(); $m->errors[] = $e; return; } catch (Exception $e) { $db->rollBack(); throw $e; } } $this->actions->append("Inscription", array('controller' => 'individus', 'action' => 'inscrire'), array(null, $individu, 'inscrire')); $this->actions->append("Paramètres utilisateur", array('controller' => 'membres', 'action' => 'parametres'), array(null, $individu, 'admin')); }