/** * Publication d'un album public */ public function processPublierAlbum() { set_time_limit(0); $classeurDAO = _ioDAO('classeur|classeur'); $dossierDAO = _ioDAO('classeur|classeurdossier'); if (is_null($classeur = $classeurDAO->get(_request('classeurId', null))) || is_null($dossierId = _request('dossierId', null))) { return CopixActionGroup::process('generictools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.errorOccurred'), 'back' => CopixUrl::get(''))); } elseif (Kernel::getLevel('MOD_CLASSEUR', $classeur->id) < PROFILE_CCV_MODERATE) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.noRights'), 'back' => CopixUrl::get('classeur||voirContenu', array('classeurId' => $classeur->id)))); } $path2classeur = realpath('./static/classeur') . '/' . $classeur->id . '-' . $classeur->cle; if ($dossierId != 0) { $album = $dossierDAO->get($dossierId); $albumType = 'dossier'; $path2album = $path2classeur . '/' . $album->id . '-' . $album->cle; $path2public = CopixUrl::get() . 'static/classeur/' . $classeur->id . '-' . $classeur->cle . '/' . $album->id . '-' . $album->cle; } else { $album = $classeur; $albumType = 'classeur'; $path2album = $path2classeur; $path2public = CopixUrl::get() . 'static/classeur/' . $album->id . '-' . $album->cle; } // Récupération des images à inclure dans l'album _classInclude('classeur|classeurservice'); $fichiers = classeurService::getFilesInFolder($classeur->id, $dossierId); foreach ($fichiers as $fichier) { if ($fichier->estUneImage()) { $image = new CopixPPO(); $extension = strtolower(strrchr($fichier->fichier, '.')); $image = $fichier->id . '-' . $fichier->cle . $extension; $images[] = $image; } } // Création des dossiers de l'album si nécessaire et copie des images à publier if (is_dir($path2album . '/images/')) { if ($handle = opendir($path2album . '/images/')) { while (($file = readdir($handle)) !== false) { if ($file != '.' && $file != '..') { unlink($path2album . '/images/' . $file); } } closedir($handle); rmdir($path2album . '/images/'); unlink($path2album . '/index.html'); } } if (!is_dir($path2album)) { mkdir($path2album, 0775); } if (!is_dir($path2album . '/images/')) { mkdir($path2album . '/images/', 0775); } chmod($path2album, 0775); chmod($path2album . '/images/', 0775); foreach ($images as $image) { $this->copyResized($path2classeur . '/' . $image, $path2album . '/images/' . $image, 800); } // Création du fichier index.html nécessaire à l'affichage de l'album $file_html = fopen($path2album . '/index.html', 'w'); $tplHtml = new CopixTpl(); $tplHtml->assign('path2public', $path2public); $tplHtml->assign('images', $images); $tplHtml->assign('album_id', $album->id); $tplHtml->assign('album_key', $album->cle); $tplHtml->assign('album_titre', $classeur->titre); $tplHtml->assign('dossier_id', $dossierId); if ($dossierId != 0) { $tplHtml->assign('dossier_nom', $album); } $result = $tplHtml->fetch('album_html.tpl'); fwrite($file_html, $result); fclose($file_html); // Edition de l'album : date de publication et publication à 1 $album->date_publication = date('Y-m-d H:i:s'); $album->public = 1; if ($albumType == 'dossier') { $dossierDAO->update($album); } else { $classeurDAO->update($album); } $confirmMessage = CopixI18N::get('classeur|classeur.message.confirmPublished'); return _arRedirect(CopixUrl::get('classeur||editerAlbumPublic', array('classeurId' => $classeur->id, 'dossierId' => $dossierId, 'confirmMessage' => $confirmMessage))); }