Subversion Repositories eFlore/Applications.cel

Rev

Rev 2414 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
// declare(encoding='UTF-8');
/**
 * Génère des miniatures.
 *
 * Utilisation :
 * - Pour ? : <code>/opt/lamp/bin/php cli.php generation_images -a genererMinaturesEnAttente</code>
 * - Pour ? : <code>/opt/lamp/bin/php cli.php generation_images -a genererMinaturesEnAttente</code>
 *
 * @category   CEL
 * @package    Scripts
 * @subpackage Génération Images
 * @author     Mathias CHOUET <mathias@tela-botanica.org>
 * @author     Jean-Pascal MILCENT <jpm@tela-botanica.org>
 * @author     Aurelien PERONNET <aurelien@tela-botanica.org>
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
 * @copyright  1999-2014 Tela Botanica <accueil@tela-botanica.org>
 */
class GenerationImages extends Script {

        protected $bdd;
        protected $parametres_autorises = array(
                        '-id' => array(false, '1', 'Identifiants des images à traiter (séparés par des virgules')
                );

        public function __construct($script_nom, $parametres_cli) {
                parent::__construct($script_nom, $parametres_cli);
                $this->bdd = new Bdd();
        }

        public function executer() {
                $cmd = $this->getParametre('a');
                switch($cmd) {
                        case 'genererMinaturesEnAttente';
                                $this->genererMiniaturesEnAttente();
                                break;
                        case 'genererMinaturesPourId';
                                $this->genererMinaturesPourId();
                                break;
                        default :
                                $msg = "Erreur : la commande '$cmd' n'existe pas!\n";
                                throw new Exception($msg);
                }
        }

        private function genererMinaturesPourId() {
                $id = $this->getParametre('id');
                $ids = explode(',',$id);
                if ($id == null) {
                        echo "le paramètre id doit être un ensemble de nombres séparés par des virgules";
                } else {
                        include_once dirname(__FILE__).'/bibliotheque/ImageRecreation.php';
                        $createur_images = new ImageRecreation();
                        foreach ($ids as $id_image) {
                                $createur_images->regenererMiniaturesPourId(array($id_image));
                        }
                }
        }

        private function genererMiniaturesEnAttente() {
                $requete = 'SELECT id_image '.
                        'FROM cel_images '.
                        'WHERE date_creation >= DATE_SUB(NOW(), INTERVAL 15 MINUTE)';
                $images_attente = $this->bdd->recupererTous($requete);

                if (!empty($images_attente)) {
                        // iterer sur config pour formats
                        include_once dirname(__FILE__).'/bibliotheque/ImageRecreation.php';
                        $createur_images = new ImageRecreation();
                        foreach ($images_attente as $image) {
                                $createur_images->regenererMiniaturesPourId(array($image['id_image']));
                        }
                }
        }
}