Changeset 49503 in spip-zone for _plugins_/site_archive


Ignore:
Timestamp:
Jul 8, 2011, 10:06:38 AM (9 years ago)
Author:
paladin@…
Message:

phpdoc + fonction pour vérifier la présence des execs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/site_archive/sia_fonctions.php

    r41551 r49503  
    1111 */
    1212
    13 if(!defined("_ECRIRE_INC_VERSION")) { return; }
     13if(!defined('_ECRIRE_INC_VERSION')) { return; }
    1414
    1515// _DIR_PLUGIN_SIA est défini par ecrire_plugin_actifs()
     
    1717
    1818// chemin du script de sauvegarde
    19 @define('SIA_BIN_FOLDER', _DIR_PLUGIN_SIA.'bin/');
    20 @define('SIA_SCRIPT_FILE', SIA_BIN_FOLDER.'site_archive.sh');
     19if (!defined('SIA_BIN_FOLDER')) {
     20        define('SIA_BIN_FOLDER', _DIR_PLUGIN_SIA.'bin/');
     21}
     22if (!defined('SIA_SCRIPT_FILE')) {
     23        define('SIA_SCRIPT_FILE', SIA_BIN_FOLDER.'site_archive.sh');
     24}
    2125
    2226// Délai (time) pour la commande batch
     
    4549/**
    4650 * Envoyer un message sur la console système
    47  * */
     51 * @return bool
     52 */
    4853function sia_syslog($priority, $message)
    4954{
     
    5661/**
    5762 * Envoyer un message sur le journal plugin SPIP
    58  * */
     63 * @return bool
     64 */
    5965function sia_log($message)
    6066{
     
    6975 * - sur le journal plugin SPIP
    7076 * - sur la console système
    71  * */
     77 * @return bool
     78 */
    7279function sia_error_log($message)
    7380{
     
    8794 * Lancer une commande et récupérer
    8895 * le résultat qui est envoyé en STDOUT
    89  * */
     96 * @return string
     97 */
    9098function sia_passthru($exec)
    9199{
     
    105113 * Rechercle le chemin d'un exécutable système
    106114 * en fouillant dans la variable d'environnement PATH
    107  * @return: complete filename path string ou false
    108  **/
     115 * @return bool complete filename path string ou false
     116 */
    109117function sia_cherche_chemin_exec($exec)
    110118{
     
    138146/**
    139147 * Recherche un exécutable système
    140  * @param: $exec string, le nom de l'exécutable
    141  * @return: string chemin du fichier string ou false
    142  **/
     148 * @param: string $exec le nom de l'exécutable
     149 * @return string chemin du fichier string ou false
     150 */
    143151function sia_chemin_exec($exec)
    144152{
     
    152160        $exec = trim($exec);
    153161       
    154         // recherche l'exec
    155         // signale en log spip si manquante (~/tmp/spip.log)
     162        /**
     163         * Recherche l'exec
     164         * signale en log spip si manquante (~/tmp/spip.log)
     165         */
    156166        if(!isset($paths[$exec]))
    157167        {
     
    161171}
    162172
    163 /** Titre de l'objet (rubrique ou article)
     173/**
     174 * Titre de l'objet (rubrique ou article)
    164175 * @return string
    165176 * */
     
    198209 *  qui ne fait pas de récursif. Ne traite que le premier
    199210 *  niveau. Voir date_modif_rubrique.html
    200  *
    201  *      * */
     211 * @return int
     212 */
    202213function sia_time_modif_objet($objet, $id_objet)
    203214{
     
    237248/**
    238249 * Renvoie valeur bool cfg pour une option de config
     250 * @return bool
    239251 * */
    240252function sia_cfg_option_on($option)
     
    255267 * eux-mêmes transmis en paramètres dans le corps de l'article
    256268 *
    257  * @return $url-path string de l'archive archive
     269 * @return string $url-path de l'archive archive
    258270 *      ex.: '/img/zip/titre-rubrique-u.zip'
    259  **/
     271 */
    260272function calculer_URL_ARCHIVE()
    261273{
     
    312324         * dans IMG/zip sur le serveur officiel.
    313325         *
    314          * */
     326         */
    315327        if(!$simulation_mode)
    316328        {
     
    332344        $url_zip = false;
    333345       
    334         // $objet peut être rubrique ou article
    335         // (ou autre, si vous écrivez le skel qui va)
     346        /**
     347         * $objet peut être rubrique ou article
     348         * (ou autre, si vous écrivez le skel qui va)
     349         */
    336350        $objet = false;
    337351       
    338         // le site cible
     352        /**
     353         * Note l'url du site cible
     354         */
    339355        $url_site = lire_meta('adresse_site');
    340356        $url_site = trim($url_site);
     
    345361        $url_site = trim($url_site,'/').'/';
    346362
    347         // par défaut, archive en une seule page
     363        /**
     364         * Par défaut, archive en une seule page
     365         */
    348366        $type = SIA_TYPE_UNIQUE;
    349367               
     
    399417        }
    400418
    401         // les commandes systèmes nécessaires
    402         $c = array_flip(array('batch', 'wget', 'zip'));
     419        /**
     420         * Recherche les commandes systèmes nécessaires
     421         * Envoie une erreur si non trouvée.
     422         * @todo A tester sous Win (avec ou sans gnu tools ?)
     423         */
     424        $c = array_flip(array('batch', 'wget2', 'zip'));
    403425        $commandes_ok = true;
    404426        foreach(array_keys($c) as $key)
     
    489511                                        $todo_file = _NOM_TEMPORAIRES_INACCESSIBLES . $name.'.todo';
    490512                                       
    491                                         // le lock est géré par le script shell.
    492                                         //
    493                                         // Il est créé ici pour éviter de re-écrire
    494                                         // le todo à chaque hit de page, inutilement.
    495                                         //
    496                                         // Le script shell scrute les *lock disponibles
    497                                         // et le todo qui lui est attaché.
    498                                         //
    499                                         // Puis il lit le todo,
    500                                         // vérifie si c'est un sia (première ligne)
    501                                         //
    502                                         // Enfin, il supprime le lock et le todo
    503                                         // lorsque la tâche est terminée.
    504                                        
    505                                         // Si lock existe, tâche en cours. Abandon.
    506                                         // sinon, faire le job.
     513                                        /**
     514                                         * le lock est géré par le script shell.
     515                                         *
     516                                         * Il est créé ici pour éviter de re-écrire
     517                                         * le todo à chaque hit de page, inutilement.
     518                                         *
     519                                         * Le script shell scrute les *lock disponibles
     520                                         * et le todo qui lui est attaché.
     521                                         *
     522                                         * Puis il lit le todo,
     523                                         * vérifie si c'est un sia (première ligne)
     524                                         *
     525                                         * Enfin, il supprime le lock et le todo
     526                                         * lorsque la tâche est terminée.
     527                                         *
     528                                         * Si lock existe, tâche en cours. Abandon.
     529                                         * sinon, faire le job.
     530                                         */
    507531                                        if(!file_exists($lock))
    508532                                        {
     
    692716        }
    693717       
    694         // complète l'url (sera placé option + tard)
     718        /**
     719         * Complète l'url (sera placé option + tard)
     720         */
    695721        if($url_zip)
    696722        {
     
    706732}
    707733
    708 /** La balise active l'archivage.
     734/**
     735 * La balise active l'archivage.
    709736 * Placer la balise #URL_ARCHIVE dans la page des liens d'archives
    710  * @return string l'url de l'archive zip
     737 * @return string url de l'archive zip
    711738 * */
    712739function balise_URL_ARCHIVE($p)
     
    721748        return($p);
    722749}
     750
     751
     752/**
     753 * Recherche les commandes systèmes nécessaires
     754 * Envoie une erreur si non trouvée.
     755 * @todo A tester sous Win (avec ou sans gnu tools ?)
     756 * @return bool|array false ou tableau des chemins
     757 */
     758function sia_command_available ()
     759{
     760        static $c = array('batch' => NULL,
     761                                          'wget' => NULL,
     762                                          'zip' => NULL
     763                                          );
     764        if (in_array(NULL, $c))
     765        {
     766                foreach(array_keys($c) as $key)
     767                {
     768                        // $batch, $wget et $zip
     769                       
     770                        $c[$key] = sia_chemin_exec($key);
     771       
     772                        if(!$c[$key])
     773                        {
     774                                sia_error_log('Error: command not found: '.$key);
     775                                $ok = false;
     776                        }
     777                }
     778        }
     779        return ($c);
     780}
Note: See TracChangeset for help on using the changeset viewer.