Changeset 93478 in spip-zone


Ignore:
Timestamp:
Dec 9, 2015, 12:20:36 PM (5 years ago)
Author:
marcimat@…
Message:

Pour que ça fonctionne mieux avec |image_recadre{x,y,focus} il faut
qu'à chaque fois que l'on modifie manuellement le centre d'intérêt,
que ça modifie le timestamp du fichier source, de sorte que SPIP
comprenne que l'image à changé et donc nécessite d'actualiser
les vignettes de cette image.

Location:
_plugins_/centre_image/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/centre_image/trunk/action/centre_image_forcer.php

    r90039 r93478  
    55
    66function action_centre_image_forcer() {
    7                 $md5 = md5($_GET["url"]);
    8                 $forcer = sous_repertoire(_DIR_IMG, "cache-centre-image");
     7        $fichier = $_GET["url"];
     8        // image uniquement présente dans _DIR_IMG
     9        if (strpos(_DIR_RACINE . $fichier, _DIR_IMG) === 0) {
     10                if (file_exists(_DIR_RACINE . $fichier)) {
     11                        $md5 = md5($fichier);
     12                        $forcer = sous_repertoire(_DIR_IMG, "cache-centre-image");
    913
    10                 $fichier_json = "$forcer$md5.json";
    11                 $res = array("x" => $_GET["x"], "y" => $_GET["y"]);
     14                        $fichier_json = "$forcer$md5.json";
     15                        $res = array("x" => $_GET["x"], "y" => $_GET["y"]);
    1216
    13                 file_put_contents($fichier_json, json_encode($res,TRUE));
     17                        @touch(_DIR_RACINE . $fichier);
     18                        file_put_contents($fichier_json, json_encode($res, TRUE));
     19                }
     20        }
     21
     22
    1423}
  • _plugins_/centre_image/trunk/centre_image_fonctions.php

    r93467 r93478  
    7878                $fichier_forcer = "$forcer$md5.json";
    7979
    80                 if (file_exists($fichier_forcer) and filemtime($fichier_forcer) > filemtime($fichier)) {
    81                         $res = json_decode(file_get_contents($fichier_forcer),TRUE);
    82                 } elseif (file_exists($fichier_json) and filemtime($fichier_json) > filemtime($fichier)) {
    83                         $res = json_decode(file_get_contents($fichier_json),TRUE);
     80                // éviter plusieurs accès successifs
     81                $mtime_source = filemtime($fichier);
     82
     83                if (file_exists($fichier_forcer) and filemtime($fichier_forcer) >= $mtime_source) {
     84                        $res = json_decode(file_get_contents($fichier_forcer), TRUE);
     85                } elseif (file_exists($fichier_json) and filemtime($fichier_forcer) > $mtime_source) {
     86                        $res = json_decode(file_get_contents($fichier_json), TRUE);
    8487                } else {
    8588                        if (function_exists("imagefilter")) {
     
    100103                        }
    101104
    102                         file_put_contents($fichier_json, json_encode($res,TRUE));
     105                        file_put_contents($fichier_json, json_encode($res, TRUE));
    103106                }
    104107        } else {
     
    107110
    108111        $spip_centre_image["$fichier"] = $res;
    109         return $res;   
     112        return $res;
    110113}
    111114
     
    184187                $fichier_forcer = "$forcer$md5.json";
    185188
    186 
    187                 if (file_exists($fichier_forcer) and filemtime($fichier_forcer) > filemtime($fichier)) {
    188                         $res = json_decode(file_get_contents($fichier_forcer),TRUE);
    189                 }
    190                 else if (file_exists($fichier_json) and filemtime($fichier_json) > filemtime($fichier)) {
    191                         $res = json_decode(file_get_contents($fichier_json),TRUE);
     189                // éviter plusieurs accès successifs
     190                $mtime_source = filemtime($fichier);
     191
     192                if (file_exists($fichier_forcer) and filemtime($fichier_forcer) >= $mtime_source) {
     193                        $res = json_decode(file_get_contents($fichier_forcer), TRUE);
     194                } elseif (file_exists($fichier_json) and filemtime($fichier_forcer) > $mtime_source) {
     195                        $res = json_decode(file_get_contents($fichier_json), TRUE);
    192196                } else {
    193 
    194197                        include_spip ("inc/FaceDetector");
    195198                        $detector = new svay\FaceDetector('detection.dat');
     
    211214                        file_put_contents($fichier_json, json_encode($res, TRUE));
    212215                }
    213 
    214                 $spip_centre_image_visage["$fichier"] = $res;
    215 
    216                 return $res;   
    217         }
     216        } else {
     217                $res = array("x" => 0.5, "y" => 0.5);
     218        }
     219
     220        $spip_centre_image_visage["$fichier"] = $res;
     221        return $res;
    218222}
    219223
  • _plugins_/centre_image/trunk/inc/image_positionner_par_focus_center.php

    r93467 r93478  
    1919 * @uses centre_image_y()
    2020 *
    21  * @note
    22  *     Code repris de image_proportions du plugin Image Responsive
    23  *
    2421 * @param string $img
    2522 *     Chemin de l'image ou balise html `<img src=... />`.
Note: See TracChangeset for help on using the changeset viewer.