/** * Detail d'une ecole * * @author Christophe Beyer <*****@*****.**> * @since 2008/09/03 * @param object $rEcole Recordset de l'ecole * @param object $rFiche Recordset de la fiche ecole */ public function _createContent(&$toReturn) { $tpl = new CopixTpl(); $rEcole = $this->getParam('rEcole'); $rFiche = $this->getParam('rFiche'); $arClasses = AnnuaireService::getClassesInEcole($rEcole->numero, array('forceCanViewEns' => true, 'withNiveaux' => true)); usort($arClasses, array("ZoneFiche", "_usortClasses")); //var_dump($arClasses); $canModify = FichesEcolesService::canMakeInFicheEcole($rEcole->numero, 'MODIFY'); $blog = getNodeBlog('BU_ECOLE', $rEcole->numero, array('is_public' => 1)); //var_dump($blog); $arClassesBlogs = false; if ($blog) { $rEcole->blog = $blog; } else { // Si pas de blog, on regarde s'il y a des blogs publics de classes $arClassesBlogs = AnnuaireService::getClassesInEcole($rEcole->numero, array('onlyWithBlog' => true, 'onlyWithBlogIsPublic' => 1, 'enseignant' => false)); } //Kernel::deb($arClassesBlogs); $rEcole->directeur = AnnuaireService::getDirecteurInEcole($rEcole->numero); //var_dump($rEcole); $matrix =& enic::get('matrixCache'); $nodeVocabularyCatalogDAO = _ioDAO('kernel|kernel_i18n_node_vocabularycatalog'); $vocabularyCatalog = $nodeVocabularyCatalogDAO->getCatalogForNode('BU_ECOLE', $rEcole->numero); $tpl->assign('rEcole', $rEcole); $tpl->assign('rFiche', $rFiche); $tpl->assign('arClasses', $arClasses); $tpl->assign('arClassesBlogs', $arClassesBlogs); $tpl->assign('canModify', $canModify); $_right = $matrix->ecole($rEcole->numero)->_right; $tpl->assign('canViewDir', $_right->USER_DIR->voir); $tpl->assign('canWriteDir', $_right->USER_DIR->communiquer); $tpl->assign('canViewEns', $_right->USER_ENS->voir); $tpl->assign('canWriteEns', $_right->USER_ENS->communiquer); $tpl->assign('id_vc', $vocabularyCatalog->id_vc); $toReturn = $tpl->fetch('fiche.tpl'); return true; }
/** * Affichage de la fiche d'une ecole * * @author Christophe Beyer <*****@*****.**> * @since 2008/09/03 * @param integer $id Id de l'ecole */ public function blogs() { $id = $this->getRequest('id', null); $pAnnee = $this->getRequest('annee', null); // $ecoleDAO = CopixDAOFactory::create('kernel|kernel_bu_ecole'); $ficheDAO = CopixDAOFactory::create("fiches_ecoles"); $criticErrors = array(); if (!($rEcole = $ecoleDAO->get($id))) { $criticErrors[] = CopixI18N::get('fichesecoles.error.param'); } elseif (!FichesEcolesService::canMakeInFicheEcole($id, 'VIEW')) { $criticErrors[] = CopixI18N::get('kernel|kernel.error.noRights'); } if ($criticErrors) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => implode('<br/>', $criticErrors), 'back' => CopixUrl::get('annuaire||'))); } $arClasses = AnnuaireService::getClassesInEcole($rEcole->numero, array('forceCanViewEns' => true, 'onlyWithBlog' => true, 'onlyWithBlogIsPublic' => 1, 'enseignant' => false, 'annee' => $pAnnee)); $rEcole->blog = getNodeBlog('BU_ECOLE', $rEcole->numero, array('is_public' => 1)); // Get vocabulary catalog to use $nodeVocabularyCatalogDAO = _ioDAO('kernel|kernel_i18n_node_vocabularycatalog'); $vocabularyCatalog = $nodeVocabularyCatalogDAO->getCatalogForNode('BU_ECOLE', $id); $tpl = new CopixTpl(); $tpl->assign('rEcole', $rEcole); $tpl->assign('arClasses', $arClasses); $tpl->assign('catalog', $vocabularyCatalog->id_vc); if ($anneeDebutBlogs = CopixConfig::get('fichesecoles|anneeDebutBlogs')) { $anneeFinBlogs = Kernel::getAnneeScolaireCourante()->id_as; //Kernel::deb("anneeDebutBlogs=$anneeDebutBlogs / anneeFinBlogs=$anneeFinBlogs"); if (!$pAnnee) { $pAnnee = $anneeFinBlogs; } if ($anneeFinBlogs > $anneeDebutBlogs) { $comboAnnees = CopixZone::process('kernel|combo_annees', array('name' => 'annee', 'selected' => $pAnnee, 'debut' => $anneeDebutBlogs, 'fin' => $anneeFinBlogs, 'extra2' => 'onChange="ficheViewBlogs(' . $id . ',this.options[this.selectedIndex].value);"')); $tpl->assign('comboAnnees', $comboAnnees); } } $result = $tpl->fetch('blogs.tpl'); header('Content-type: text/html; charset=utf-8'); //echo utf8_encode($result); echo $result; return new CopixActionReturn(COPIX_AR_NONE, 0); }
/** * Formulaire de modification des infos d'une ecole * * @author Christophe Beyer <*****@*****.**> * @since 2008/09/03 * @param integer $id Id de l'ecole */ public function form() { $id = $this->getRequest('id', null); $save = $this->getRequest('save', null); $nbZones = 4; $horaires = $this->getRequest('horaires', null); for ($i = 1; $i <= $nbZones; $i++) { $field = 'zone' . $i . '_titre'; ${$field} = $this->getRequest($field, null); $field = 'zone' . $i . '_texte'; ${$field} = $this->getRequest($field, null); } $photoMaxWidth = CopixConfig::get('fichesecoles|photoMaxWidth'); $criticErrors = $errors = array(); $ecoleDAO = CopixDAOFactory::create('kernel|kernel_bu_ecole'); $ficheDAO = CopixDAOFactory::create("fiches_ecoles"); if (!($rEcole = $ecoleDAO->get($id))) { $criticErrors[] = CopixI18N::get('fichesecoles.error.param'); } elseif (!FichesEcolesService::canMakeInFicheEcole($id, 'MODIFY')) { $criticErrors[] = CopixI18N::get('kernel|kernel.error.noRights'); } if ($criticErrors) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => implode('<br/>', $criticErrors), 'back' => CopixUrl::get('annuaire||'))); } //$tplForm->assign ('',$errors); //var_dump($rEcole); $canModifyVille = FichesEcolesService::canMakeInFicheEcole($id, 'MODIFY_VILLE'); $rFiche = $ficheDAO->get($id); $rForm = CopixDAOFactory::createRecord('fiches_ecoles'); if ($save == 1) { $rForm->id = $id; $rForm->photo = $rFiche ? $rFiche->photo : ''; $rForm->doc1_fichier = $rFiche ? $rFiche->doc1_fichier : ''; if (is_uploaded_file($_FILES['photoFile']['tmp_name'])) { if ($size = @getimagesize($_FILES['photoFile']['tmp_name'])) { $formats = array(IMAGETYPE_JPEG, IMAGETYPE_PNG, IMAGETYPE_GIF); if (!in_array($size[2], $formats)) { $errors[] = CopixI18N::get('fichesecoles.error.photo.badformat'); } else { if ($rFiche) { $file = COPIX_VAR_PATH . CopixConfig::get('fichesecoles|photoPath') . $rFiche->photo; if (file_exists($file)) { @unlink($file); } } $fileName = $rForm->id . "_" . $_FILES['photoFile']['name']; $file = COPIX_VAR_PATH . CopixConfig::get('fichesecoles|photoPath') . $fileName; if (@move_uploaded_file($_FILES['photoFile']['tmp_name'], $file)) { $this->_resizeImage($file, $photoMaxWidth); $rForm->photo = $fileName; } } } else { $errors[] = CopixI18N::get('fichesecoles.error.photo.badformat'); } } else { switch ($_FILES['photoFile']['error']) { case 0: //no error; possible file attack! $errors[] = CopixI18N::get('malle|malle.error.upload_default', $_FILES['photoFile']['type']); break; case 1: //uploaded file exceeds the upload_max_filesize directive in php.ini $errors[] = CopixI18N::get('malle|malle.error.upload_toobig', $_FILES['photoFile']['type']); break; case 2: //uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form $errors[] = CopixI18N::get('malle|malle.error.upload_toobig', $_FILES['photoFile']['type']); break; case 3: //uploaded file was only partially uploaded $errors[] = CopixI18N::get('malle|malle.error.upload_partial', $_FILES['photoFile']['type']); break; case 4: // Pas d'upload break; default: $errors[] = CopixI18N::get('malle|malle.error.upload_default', $_FILES['photoFile']['type']); break; } } $rForm->doc1_titre = _request('doc1_titre'); if (_request('doc1_suppr')) { if ($rForm->doc1_fichier) { $file = COPIX_VAR_PATH . CopixConfig::get('fichesecoles|docPath') . $rForm->doc1_fichier; if (file_exists($file)) { @unlink($file); } } $rForm->doc1_fichier = null; $rForm->doc1_titre = null; } elseif (is_uploaded_file($_FILES['doc1_fichier']['tmp_name'])) { if ($rFiche) { $file = COPIX_VAR_PATH . CopixConfig::get('fichesecoles|docPath') . $rFiche->doc1_fichier; if (file_exists($file)) { @unlink($file); } } $fileName = $rForm->id . "_" . $_FILES['doc1_fichier']['name']; $file = COPIX_VAR_PATH . CopixConfig::get('fichesecoles|docPath') . $fileName; if (@move_uploaded_file($_FILES['doc1_fichier']['tmp_name'], $file)) { $rForm->doc1_fichier = $fileName; } } else { switch ($_FILES['doc1_fichier']['error']) { case 0: //no error; possible file attack! $errors[] = CopixI18N::get('malle|malle.error.upload_default', $_FILES['doc1_fichier']['type']); break; case 1: //uploaded file exceeds the upload_max_filesize directive in php.ini $errors[] = CopixI18N::get('malle|malle.error.upload_toobig', $_FILES['doc1_fichier']['type']); break; case 2: //uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form $errors[] = CopixI18N::get('malle|malle.error.upload_toobig', $_FILES['doc1_fichier']['type']); break; case 3: //uploaded file was only partially uploaded $errors[] = CopixI18N::get('malle|malle.error.upload_partial', $_FILES['doc1_fichier']['type']); break; case 4: // Pas d'upload break; default: $errors[] = CopixI18N::get('malle|malle.error.upload_default', $_FILES['doc1_fichier']['type']); break; } } $rForm->horaires = $horaires; for ($i = 1; $i <= $nbZones; $i++) { $fieldTitre = 'zone' . $i . '_titre'; $rForm->{$fieldTitre} = ${$fieldTitre}; $fieldTexte = 'zone' . $i . '_texte'; $rForm->{$fieldTexte} = ${$fieldTexte}; if ($rForm->{$fieldTexte} && !$rForm->{$fieldTitre}) { $errors[] = CopixI18N::get('fichesecoles.error.zone', $i); } } if ($canModifyVille) { $rForm->zone_ville_titre = $this->getRequest('zone_ville_titre', null); $rForm->zone_ville_texte = $this->getRequest('zone_ville_texte', null); if ($rForm->zone_ville_texte && !$rForm->zone_ville_titre) { $errors[] = CopixI18N::get('fichesecoles.error.zoneVille'); } } else { if (!$rFiche) { // Pas encore de fiche $ville = FichesEcolesService::getZoneVille($rEcole); $rForm->zone_ville_titre = $ville['zone_ville_titre']; $rForm->zone_ville_texte = $ville['zone_ville_texte']; } else { $rForm->zone_ville_titre = $rFiche->zone_ville_titre; $rForm->zone_ville_texte = $rFiche->zone_ville_texte; } } if (!count($errors)) { if ($rFiche) { $ficheDAO->update($rForm); } else { $ficheDAO->insert($rForm); } if ($canModifyVille) { FichesEcolesService::propageZoneVille($rEcole, $rForm); } return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('default|fiche', array('id' => $id))); } } else { // Arrivee dans le formulaire if (!$rFiche) { $rFiche = _record('fiches_ecoles'); } $rForm = $rFiche; //var_dump($rEcole); if ($canModifyVille && !$rForm->zone_ville_titre && !$rForm->zone_ville_texte) { $ville = FichesEcolesService::getZoneVille($rEcole); $rForm->zone_ville_titre = $ville['zone_ville_titre']; $rForm->zone_ville_texte = $ville['zone_ville_texte']; } } $tplForm = new CopixTpl(); $tplForm->assign('rEcole', $rEcole); $tplForm->assign('rForm', $rForm); $formats = CopixConfig::get('blog|blog.formats_articles'); $tplForm->assign('form_horaires', CopixZone::process('kernel|edition', array('field' => 'horaires', 'format' => 'ckeditor', 'content' => $rForm->horaires, 'class' => 'zone_horaires', 'object' => array('type' => 'BU_ECOLE', 'id' => $id)))); $tplForm->assign('form_zone1_texte', CopixZone::process('kernel|edition', array('field' => 'zone1_texte', 'format' => 'ckeditor', 'content' => $rForm->zone1_texte, 'class' => 'zone_texte', 'object' => array('type' => 'BU_ECOLE', 'id' => $id)))); $tplForm->assign('form_zone2_texte', CopixZone::process('kernel|edition', array('field' => 'zone2_texte', 'format' => 'ckeditor', 'content' => $rForm->zone2_texte, 'class' => 'zone_texte', 'object' => array('type' => 'BU_ECOLE', 'id' => $id)))); $tplForm->assign('form_zone3_texte', CopixZone::process('kernel|edition', array('field' => 'zone3_texte', 'format' => 'ckeditor', 'content' => $rForm->zone3_texte, 'class' => 'zone_texte', 'object' => array('type' => 'BU_ECOLE', 'id' => $id)))); $tplForm->assign('form_zone4_texte', CopixZone::process('kernel|edition', array('field' => 'zone4_texte', 'format' => 'ckeditor', 'content' => $rForm->zone4_texte, 'class' => 'zone_texte', 'object' => array('type' => 'BU_ECOLE', 'id' => $id)))); if ($canModifyVille) { $tplForm->assign('form_zone_ville_texte', CopixZone::process('kernel|edition', array('field' => 'zone_ville_texte', 'format' => 'ckeditor', 'content' => $rForm->zone_ville_texte, 'height' => 80, 'width' => 780, 'object' => array('type' => 'BU_ECOLE', 'id' => $id)))); } $tplForm->assign('photoMaxWidth', $photoMaxWidth); $tplForm->assign('errors', $errors); $tplForm->assign('canModifyVille', $canModifyVille); $main = $tplForm->fetch('form.tpl'); $title = $rEcole->nom; if ($rEcole->type) { $title .= ' (' . $rEcole->type . ')'; } $tpl = new CopixTpl(); $tpl->assign('TITLE_PAGE', $title); if (strtolower($rEcole->type) == 'crèche') { $tpl->assign('TITLE_CONTEXT', CopixI18N::get('kernel|kernel.codes.mod_fichesecoles_creche')); } //$tpl->assign ('MENU', '<a href="'.CopixUrl::get ('|fiche', array('id'=>$id)).'">'.CopixI18N::get ('kernel|kernel.back').'</a>'); $tpl->assign("MAIN", $main); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); }