Changeset 98373 in spip-zone for _plugins_/medias_dereferencer/branches


Ignore:
Timestamp:
Jun 12, 2016, 6:28:51 PM (5 years ago)
Author:
teddy.spip@…
Message:

Importation des correctifs du trunk dans la branches/v1


Helper :

  • cd medias_dereferencer/branches/v1/
  • svn log -l1 ./
  • svn merge \/_plugins_/medias_dereferencer/trunk -r96759:HEAD
  • enfin : svn ci -m 'blabla'
Location:
_plugins_/medias_dereferencer/branches/v1
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/medias_dereferencer/branches/v1

  • _plugins_/medias_dereferencer/branches/v1/genie/medias_dereferencer.php

    r96283 r98373  
    3333        $message_log[] = "-----\n";
    3434        // Et maintenant on stocke les messages dans un fichier de log.
     35        include_spip('inc/utils');
    3536        spip_log(implode("\n", $message_log), 'medias_dereferencer');
    3637
  • _plugins_/medias_dereferencer/branches/v1/genie/medias_dereferencer_htaccess.php

    r96759 r98373  
    3737        $message_log[] = "-----\n";
    3838        // Et maintenant on stocke les messages dans un fichier de log.
     39        include_spip('inc/utils');
    3940        spip_log(implode("\n", $message_log), 'medias_dereferencer');
    4041
  • _plugins_/medias_dereferencer/branches/v1/genie/medias_dereferencer_vu.php

    r96283 r98373  
    3333        $message_log[] = "-----\n";
    3434        // Et maintenant on stocke les messages dans un fichier de log.
     35        include_spip('inc/utils');
    3536        spip_log(implode("\n", $message_log), 'medias_dereferencer');
    3637
  • _plugins_/medias_dereferencer/branches/v1/medias_dereferencer_administrations.php

    r96283 r98373  
    3939 **/
    4040function medias_dereferencer_vider_tables($nom_meta_base_version) {
     41        include_spip('inc/meta');
    4142        effacer_meta('medias_dereferencer');
    4243        effacer_meta($nom_meta_base_version);
  • _plugins_/medias_dereferencer/branches/v1/medias_dereferencer_autorisations.php

    r96283 r98373  
    1414}
    1515
    16 
    1716/**
    1817 * Fonction d'appel pour le pipeline
  • _plugins_/medias_dereferencer/branches/v1/medias_dereferencer_fonctions.php

    r96759 r98373  
    1515
    1616/**
    17  * Lister les champs de type text (TINYTEXT, TEXT, MEDIUMTEXT, et LONGTEXT) des différentes principales de SPIP.
     17 * Lister les champs de type text (TINYTEXT, TEXT, MEDIUMTEXT, et LONGTEXT) des différentes tables principales de SPIP.
    1818 *
    1919 * @return array
     
    2323        include_spip('base/objets');
    2424        $lister_tables_objets_sql = lister_tables_objets_sql();
    25         $lister_tables_principales = array_keys(lister_tables_principales());
     25        $lister_tables_principales = lister_tables_principales();
     26        $lister_tables_principales = array_keys($lister_tables_principales); /* Pas de fonction en paramètre d'une fonction, cela évite des warnings. */
    2627        $champs_texte = array();
    2728        foreach ($lister_tables_objets_sql as $table => $valeur) {
    28                 // On ne prend que les objets qui font partis des tables principales de SPIP.
    29                 // Donc, on ne prend pas les tables telles que spip_visites, spip_referers, etc.
    30                 // C'est une sécurité.
    31                 $id_primary_double = preg_match('/,/', $valeur['key']['PRIMARY KEY']); // l'id_primary doit faire référence à un seul champ
     29                /**
     30                 * On ne prend que les objets qui font partis des tables principales de SPIP.
     31                 * Donc, on ne prend pas les tables telles que spip_visites, spip_referers, etc.
     32                 * C'est une sécurité.
     33                 */
     34                $id_primary_double = preg_match('/,/', $valeur['key']['PRIMARY KEY']); /* l'id_primary doit faire référence à un seul champ */
    3235                if (in_array($table, $lister_tables_principales) and $id_primary_double == 0) {
     36                        $champs_texte[$table] = array(); /* Instanciation de la variable */
    3337                        $champs_texte[$table]['id_primary'] = $valeur['key']['PRIMARY KEY'];
    3438                        $champs_texte[$table]['objet'] = objet_type($champs_texte[$table]['id_primary']);
    3539                        $champs_texte[$table]['statut'] = (isset($valeur['field']['statut']) ? true : false);
    36                         $champs_texte[$table]['publie'] = ($champs_texte[$table]['statut'] ? $valeur['statut'][0]['publie'] : false);
     40                        $champs_texte[$table]['publie'] = (isset($champs_texte[$table]['statut']) and isset($valeur['statut'][0]['publie']) ? $valeur['statut'][0]['publie'] : false);
    3741
    3842                        foreach ($valeur['field'] as $champs => $descriptif) {
     
    5559/**
    5660 * On regarde les raccourcis typo <docXXX> <embXXX> <imgXXX> utilisés
    57  * dans les rubriques de la région.
     61 * dans les champs de type texte d'un objet éditorial.
     62 * Si cet objet a un statut, on prend ce statut comme référence pour le document.
    5863 *
    5964 * @return array
     
    6469        $tables_texte = medias_lister_champs_texte();
    6570        $documents = array();
     71        $statut = 'publie';
    6672        foreach ($tables_texte as $table => $champs) {
    6773                $statut_requete = '';
     
    7278                foreach ($resultats as $resultat => $value) {
    7379                        // On recherche les raccourcis typographiques
    74                         if (preg_match_all('/(doc|img|emb)([0-9]+)/', $value['texte_tmp'], $docs)) {
     80                        if (preg_match_all('/(doc|img|emb|video)([0-9]+)/', $value['texte_tmp'], $docs)) {
    7581                                // On a au moins un résultat, alors on commence le traitement.
    7682                                if (isset($value['statut']) and $value['statut'] == $champs['publie']) {
    77                                         // l'objet a un statut et est publié ou actif,
    78                                         // alors le document doit-être publié aussi.
     83                                        /**
     84                                         * l'objet a un statut et est publié ou actif,
     85                                         * alors le document doit-être publié aussi.
     86                                         */
    7987                                        $statut = 'publie';
    8088                                } elseif (isset($value['statut']) and $value['statut'] != $champs['publie']) {
     
    8391                                        $statut = 'prepa';
    8492                                } elseif (!isset($value['statut'])) {
    85                                         // L'objet n'a pas de statut
    86                                         // et donc son affichage n'est pas conditionné par le statut,
    87                                         // alors le document sera publié.
     93                                        /**
     94                                         * L'objet n'a pas de statut
     95                                         * et donc son affichage n'est pas conditionné par le statut,
     96                                         * alors le document sera publié.
     97                                         */
    8898                                        $statut = 'publie';
    8999                                }
    90100                                // On stocke maintenant toutes ces infos pour chaque document trouvé.
    91101                                foreach ($docs[2] as $id_doc) {
    92                                         // structure du tableau :
    93                                         // 0 : id_document
    94                                         // 1 : id_objet
    95                                         // 2 : objet
    96                                         // 3 : vu (oui ou non)
    97                                         // 4 : statut du document
     102                                        /** structure du tableau :
     103                                         * 0 : id_document
     104                                         * 1 : id_objet
     105                                         * 2 : objet
     106                                         * 3 : vu (oui ou non)
     107                                         * 4 : statut du document
     108                                         */
    98109                                        $documents[] = array(
    99110                                                'id_document' => $id_doc,
     
    122133        include_spip('base/abstract_sql');
    123134        include_spip('base/objets');
     135        include_spip('inc/session');
    124136        $message_log = array();
    125137        $message_log[] = "\n-----";
     
    137149        $objets_lies = sql_fetsel('DISTINCT objet', 'spip_documents_liens');
    138150        foreach ($objets_lies as $objet_lie) {
    139                 // exemple de requête demandée :
    140                 // SELECT * FROM spip_documents
    141                 // WHERE id_document IN (SELECT DISTINCT id_document FROM spip_documents_liens WHERE objet='article' AND id_objet IN (SELECT id_article FROM spip_articles WHERE statut NOT IN ('publie')))
    142                 // AND statut IN ('publie')
    143                 // ***
    144                 // Sélectionner tous les documents publiés liés à des objets non publiés
    145                 // ***
     151                /**
     152                 * exemple de requête demandée :
     153                 * SELECT * FROM spip_documents
     154                 * WHERE id_document IN (SELECT DISTINCT id_document FROM spip_documents_liens WHERE objet='article' AND id_objet IN (SELECT id_article FROM spip_articles WHERE statut NOT IN ('publie')))
     155                 * AND statut IN ('publie')
     156                 *****
     157                 * Sélectionner tous les documents publiés liés à des objets non publiés
     158                 *****
     159                 */
    146160                $documents = sql_allfetsel('id_document,statut', 'spip_documents', "statut IN ('publie') AND id_document IN (SELECT DISTINCT id_document FROM spip_documents_liens WHERE objet='" . $objet_lie . "' AND id_objet IN (SELECT " . id_table_objet($objet_lie) . ' FROM ' . table_objet_sql($objet_lie) . " WHERE statut NOT IN ('publie')))");
    147161                if (is_array($documents) and count($documents) > 0) {
     
    161175        $message_log[] = "-----\n";
    162176        // Et maintenant on stocke les messages dans un fichier de log.
     177        include_spip('inc/utils');
    163178        spip_log(implode("\n", $message_log), 'medias_dereferencer');
    164179
     
    176191        include_spip('base/abstract_sql');
    177192        include_spip('base/objets');
     193        include_spip('inc/session');
    178194        $documents_raccourcis = medias_lister_medias_used_in_text();
    179195        $message_log = array();
     
    243259        $message_log[] = "-----\n";
    244260        // Et maintenant on stocke les messages dans un fichier de log.
     261        include_spip('inc/utils');
    245262        spip_log(implode("\n", $message_log), 'medias_dereferencer');
    246263
     
    255272 */
    256273function md_creation_htaccess_img() {
     274        include_spip('base/abstract_sql');
    257275        include_spip('inc/config');
     276        include_spip('inc/session');
    258277        $config_md = lire_config('medias_dereferencer');
    259278        $message_log = array();
     
    300319        $message_log[] = "-----\n";
    301320        // Et maintenant on stocke les messages dans un fichier de log.
     321        include_spip('inc/utils');
    302322        spip_log(implode("\n", $message_log), 'medias_dereferencer');
    303323
     
    309329}
    310330
     331/**
     332 * Cette fonction supprime tous les fichiers htaccess qui se trouveraient dans les différents répertoires d'extensions dans IMG/
     333 *
     334 * @return bool
     335 */
    311336function md_suppression_htaccess_img() {
    312         include_spip('inc/config');
    313337        include_spip('inc/flock');
    314         $config_md = lire_config('medias_dereferencer');
     338        include_spip('inc/session');
     339        include_spip('inc/utils');
    315340        $message_log = array();
    316341        $message_log[] = "\n-----";
     
    355380}
    356381
     382/**
     383 * Lister les adresses IP au format Apache/htaccess qui ont été renseignées dans le formulaire de configuration.
     384 *
     385 * @return bool|string
     386 *         false : il n'y a pas d'adresses IP renseignées dans le formulaire de configuration
     387 *         string : liste des adresses IP autorisées formatées selon la version d'Apache.
     388 */
    357389function md_adresses_allow() {
    358390        include_spip('inc/config');
    359391        $config_md = lire_config('medias_dereferencer');
    360         $directive = 'Allow from';
     392        $directive = 'Allow from'; /* Apache <2.4 */
    361393        if (isset($config_md['adresse_ip']) and empty($config_md['adresse_ip'])) {
    362394                return false;
     
    366398        }
    367399        if (isset($config_md['apache']) and $config_md['apache'] === 'oui') {
    368                 $directive = 'Require not ip';
     400                $directive = 'Require not ip'; /* Apache 2.4 minimum */
    369401        }
    370402        $config_md['adresse_ip'] = array_filter($config_md['adresse_ip']);
  • _plugins_/medias_dereferencer/branches/v1/paquet.xml

    r96759 r98373  
    22        prefix="medias_dereferencer"
    33        categorie="statistique"
    4         version="1.2.4"
     4        version="1.2.5"
    55        etat="test"
    66        compatibilite="[3.0.9;3.1.*]"
  • _plugins_/medias_dereferencer/branches/v1/prive/squelettes/contenu/configurer_medias_dereferencer_fonctions.php

    r95637 r98373  
    66$config_md = lire_config('medias_dereferencer');
    77
    8 if ($config_md['htaccess'] === 'oui') {
    9         md_creation_htaccess_img();
    10 } elseif ($config_md['htaccess'] === 'non') {
    11         md_suppression_htaccess_img();
     8if (isset($config_md['htaccess'])) {
     9        if ($config_md['htaccess'] === 'oui') {
     10                md_creation_htaccess_img();
     11        } elseif ($config_md['htaccess'] === 'non') {
     12                md_suppression_htaccess_img();
     13        }
    1214}
Note: See TracChangeset for help on using the changeset viewer.