/**
  * Affiche le contenu d'un album
  *
  * V�rifie l'existance et les droits d'un album, et affiche les vignettes.
  * V�rifie �galement la pr�sence de toutes les vignettes, et lance la g�n�ration au cas ou.
  *
  * @author Fr�d�ric Mossmann <*****@*****.**>
  */
 public function getAlbum()
 {
     CopixHTMLHeader::addCSSLink(_resource("styles/module_album.css"));
     CopixHTMLHeader::addJSLink(_resource("js/iconito/module_malle.js"));
     $tpl = new CopixTpl();
     $kernel_service =& CopixClassesFactory::Create('kernel|kernel');
     if (!_request("album_id") || trim(_request("album_id")) == "" || !preg_match("/^[0-9]+\$/", _request("album_id"))) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('album.error.noalbumnumber'), 'back' => CopixUrl::get('||')));
     }
     $album_id = _request("album_id");
     if (_request("dossier_id") && preg_match("/^[0-9]+\$/", _request("dossier_id"))) {
         $dossier_id = _request("dossier_id");
     } else {
         $dossier_id = 0;
     }
     if (Kernel::getLevel("MOD_ALBUM", $album_id) < PROFILE_CCV_READ) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.noRights'), 'back' => CopixUrl::get('||')));
     }
     $tplAlbum = new CopixTpl();
     $album_dao = CopixDAOFactory::create("album");
     $album = $album_dao->get($album_id);
     if (!$album) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('album.error.noalbum'), 'back' => CopixUrl::get('||')));
     }
     $dossier_dao = CopixDAOFactory::create("dossier");
     if ($dossier_id > 0) {
         $dossier = $dossier_dao->get($dossier_id);
     } else {
         $dossier->dossier_id = 0;
         $dossier->dossier_album = $album_id;
         $dossier->dossier_parent = -1;
         $dossier->dossier_nom = "Racine";
         $dossier->dossier_comment = "";
         $dossier->album_id = $album_id;
     }
     // V�rification des vignettes
     $key = $album->album_id . '_' . $album->album_cle;
     CopixSession::delete('modules|album|vignettes|' . $key);
     CopixSession::delete('modules|album|vignettes|nb-' . $key);
     $errors = Album::checkThumbnails($album_id, $key);
     if ($errors > 0) {
         //die (".".$errors);
         return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('album|default|vignettes', array('album' => $album_id, 'dossier' => $dossier_id, 'key' => $key)));
     }
     $parent = $kernel_service->getModParentInfo("MOD_ALBUM", $album_id);
     $album->parent = $parent;
     $tplAlbum->assign("album", $album);
     $tplAlbum->assign("dossier", $dossier);
     $dossiermenu = array();
     if (Kernel::getLevel("MOD_ALBUM", $album_id) >= PROFILE_CCV_PUBLISH) {
         $dossiermenu[] = array('txt' => CopixI18N::get('album.folder.action.newfolder.menu'), 'url' => '#', 'onclick' => 'openbox(\'folder_new\');', 'type' => 'add');
         if ($dossier_id > 0) {
             $dossiermenu[] = array('txt' => CopixI18N::get('album.folder.action.rename.menu'), 'url' => '#', 'onclick' => 'openbox(\'folder_rename\');', 'type' => 'update');
             $dossiermenu[] = array('txt' => CopixI18N::get('album.folder.action.move.menu'), 'url' => '#', 'onclick' => 'openbox(\'folder_move\');', 'type' => 'next');
             $dossiermenu[] = array('txt' => CopixI18N::get('album.folder.action.delete.menu'), 'url' => '#', 'onclick' => 'openbox(\'folder_delete\');', 'type' => 'delete');
         }
         $dossiermenu[] = array('txt' => CopixI18N::get('album.folder.action.movephotos.menu'), 'url' => CopixUrl::get('album|default|editphotos', array('album_id' => $album_id, 'dossier_id' => $dossier_id)), 'type' => 'next');
     }
     $dossiers_list = Album::getFoldersTree($album_id);
     $tplAlbum->assign("dossiers", CopixZone::process('album|dossierstree', array('tree' => $dossiers_list, 'mode' => 'combo', 'album_id' => $album_id, 'dossier_id' => $dossier_id, 'dossier' => $dossier, 'dossiermenu' => $dossiermenu)));
     $photo_dao = CopixDAOFactory::create("photo");
     $photolist = $photo_dao->findAllByAlbumAndFolder($album_id, $dossier_id);
     $tplAlbum->assign("photolist", $photolist);
     $dossiers_childs = Album::getFoldersTree($album_id, $dossier_id);
     $tplAlbum->assign("dossierlist", $dossiers_childs);
     foreach ($photolist as $photothumb) {
         Album::createThumbnails($photothumb->album_id . '_' . $photothumb->album_cle, $photothumb->photo_id . '_' . $photothumb->photo_cle, $photothumb->photo_ext);
     }
     $tplAlbum->assign('album_thumbsize', "_s128");
     $tplAlbum->assign('album_thumbsize_height', "128");
     $tplAlbum->assign('album_thumbsize_width', "128");
     // Debut petit poucet
     $petit_poucet_array = array();
     $dossier_walk = clone $dossier;
     if ($dossier->dossier_id > 0) {
         array_unshift($petit_poucet_array, clone $dossier_walk);
     }
     // _dump($dossier_walk);
     while ($dossier_walk->dossier_parent > 0) {
         $dossier_walk = $dossier_dao->get($dossier_walk->dossier_parent);
         array_unshift($petit_poucet_array, clone $dossier_walk);
     }
     $dossier_walk->dossier_id = 0;
     $dossier_walk->dossier_parent = -1;
     $dossier_walk->dossier_nom = 'Racine';
     array_unshift($petit_poucet_array, clone $dossier_walk);
     $tplAlbum->assign('petit_poucet', $petit_poucet_array);
     // Fin petit poucet
     $result = $tplAlbum->fetch("album.tpl");
     $tpl->assign('MAIN', $result);
     $album_nom = isset($album->parent["nom"]) ? $album->parent["nom"] : CopixI18N::get('album.moduleDescription');
     if ($dossier_id > 0) {
         $album_nom .= " / " . $dossier->dossier_nom;
     }
     $tpl->assign('TITLE_PAGE', CopixI18N::get('album.title.album', array($album_nom)));
     $menu = array();
     $simpleviewer_path = realpath("simpleviewer");
     if (file_exists($simpleviewer_path . '/viewer.swf') && file_exists($simpleviewer_path . '/flashobject.js')) {
         $path2data = realpath("static");
         $path2album = $path2data . "/album/" . $album_id . "_" . $album->album_cle;
         $addtopath = '';
         if ($dossier_id > 0) {
             $addtopath = '/' . $dossier->dossier_id . "_" . $dossier->dossier_cle;
         }
         $path2album .= $addtopath;
         if (file_exists($path2album . '/imageData.xml')) {
             $menu[] = array('txt' => CopixI18N::get('album|album.menu.viewfolder'), 'url' => CopixUrl::get() . 'static/album/' . $album_id . "_" . $album->album_cle . $addtopath, 'target' => '_blank', 'size' => 110, 'type' => 'read');
             if (Kernel::getLevel("MOD_ALBUM", $album_id) >= PROFILE_CCV_PUBLISH) {
                 $menu[] = array('txt' => CopixI18N::get('album|album.menu.deletefolder'), 'url' => CopixUrl::get('album||depublier', array("album_id" => $album->album_id, "dossier_id" => $dossier->dossier_id)), 'size' => 140, 'type' => 'delete');
             }
         }
         if (Kernel::getLevel("MOD_ALBUM", $album_id) >= PROFILE_CCV_PUBLISH) {
             $menu[] = array('txt' => CopixI18N::get('album|album.menu.publishfolder'), 'url' => CopixUrl::get('album||publier', array("album_id" => $album->album_id, "dossier_id" => $dossier_id)), 'size' => 100);
         }
     }
     // endif( simpleviewer )
     if (Kernel::getLevel("MOD_ALBUM", $album_id) >= PROFILE_CCV_PUBLISH) {
         $menu[] = array('txt' => CopixI18N::get('album|album.menu.addzip'), 'url' => CopixUrl::get('album||addzip', array("album_id" => $album->album_id, "dossier_id" => $dossier_id)), 'behavior' => 'fancybox', 'size' => 140, 'type' => 'addfile');
         $menu[] = array('txt' => CopixI18N::get('album|album.menu.addphoto'), 'url' => CopixUrl::get('album||addphoto', array("album_id" => $album->album_id, "dossier_id" => $dossier_id)), 'behavior' => 'fancybox', 'size' => 100, 'type' => 'addfile');
     }
     $tpl->assign('MENU', $menu);
     return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl);
 }