Changeset 93466 in spip-zone


Ignore:
Timestamp:
Dec 8, 2015, 10:56:50 PM (5 years ago)
Author:
marcimat@…
Message:

On permet à la fonction image_recadre d'avoir d'autres solutions de positionnement
que celles par défaut (center, top, left, right, bottom, ou des mélanges "top left" ou des valeurs "top=30")
en indiquant un nom spécifique, tel que focus, ce qui cherchera alors une fonction
inc_image_positionner_par_focus_dist() (en utilisant charger_fonction()). Si une telle fonction
existe, elle est appelée en transmettant l'image reçue, ainsi que la largeur et hauteur de destination désirée.
Elle doit alors retourner le positionnement souhaité pour le recadrage, tel que "top=230 left=300".

Cette extension 'focus' (et 'focus-center') va être définie dans le plugin Centre Image.
C'est le même procédé (et même nommage) que ce qui est dans le plugin Image Responsive à travers
la fonction |image_proportions de ce plugin. Sauf qu'ici, on utilise la fonction habituelle
de SPIP |image_recadre (et donc il ne sera pas nécessaire d'avoir le plugin Image Responsive actif,
mais c'est tout à fait possible évidemment !).

Cela permet donc ce type d'écriture (ce qui recadrera l'image sur le point d'intérêt si le plugin Centre Image est présent) :

[(#LOGO_ARTICLE|image_recadre{200:100, -, focus}|image_reduire{200, 100})]

Location:
_core_/plugins/filtres_images
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/filtres_images/filtres/images_transforme.php

    r93465 r93466  
    320320        $offset_height = $y_i-$height;
    321321        $position=strtolower($position);
     322
     323        // chercher une fonction spéciale de calcul des coordonnées de positionnement.
     324        // exemple 'focus' ou 'focus-center' avec le plugin 'Centre Image'
     325        if (!in_array($position, array('center', 'top', 'right', 'bottom', 'left'))) {
     326                if (count(explode(" ", $position)) == 1) {
     327                        $positionner = charger_fonction("image_positionner_par_" . str_replace("-", "_", $position), "inc", true);
     328                        if ($positionner) {
     329                                $position = $positionner($im, $width, $height);
     330                        }
     331                }
     332        }
    322333
    323334        if (strpos($position,'left')!==FALSE) {
  • _core_/plugins/filtres_images/paquet.xml

    r93069 r93466  
    22        prefix="images"
    33        categorie="multimedia"
    4         version="1.1.11"
     4        version="1.2.0"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.