GithubHelp home page GithubHelp logo

shortcode mp_gallery about multipublisher HOT 28 OPEN

lohic avatar lohic commented on August 16, 2024
shortcode mp_gallery

from multipublisher.

Comments (28)

lohic avatar lohic commented on August 16, 2024

attention je viens de changer la manière de charger le json des structures de la galerie,

pas encore comité mais permet d'éviter la requête ajax ligne 205 dans mp_gallery_plugin.js, et notamment le chargement ajax synchrone qui fige la page (je pense qu'on aura un problème si il y a beaucoup de galeries)

from multipublisher.

lohic avatar lohic commented on August 16, 2024

ça y est j'ai fait le commit de la mise à jour du système de chargement de la structure de la galerie.
La partie logique se situe à partir de la ligne 550 de mp.class.php

wp_register_script( 'gallerie_handle', plugins_url( '/tinymce_js/mp_gallery_plugin.js', __FILE__ ));

// Localize the script with new data
$gallerie_json = array(
    'default' => MultiPublisher::get_gallery_json()
);
wp_localize_script( 'gallerie_handle', 'gallerie_data', $gallerie_json );

// Enqueued script with localized data.
wp_enqueue_script( 'gallerie_handle' );

ça permet de récupérer le code de la galerie dans la variable JS galerie_data.default

from multipublisher.

armansansd avatar armansansd commented on August 16, 2024

le système est en place, le php récupère les légendes mais cela interfère avec le get_spot sur la data "txt" (correspondant à 'a', 'b' ...) je l'ai donc commenter pour le moment afin de trouver une solution.

from multipublisher.

lohic avatar lohic commented on August 16, 2024

Salut Arman,

merci pour le retour, j'essaye de jeter un oeil, pour voir si je trouve une solution

Loïc


www.loichorellou.net
[email protected]
+33 6 84 70 19 67

Le 28 févr. 2016 à 01:52, Arman Mohtadji [email protected] a écrit :

le système est en place, le php récupère les légendes mais cela interfère avec le get_spot sur la data "txt" (correspondant à 'a', 'b' ...) je l'ai donc commenter pour le moment afin de trouver une solution.


Reply to this email directly or view it on GitHub #1 (comment).

from multipublisher.

armansansd avatar armansansd commented on August 16, 2024

ok la gallery fonctionne pour les images, je suis en train de régler le souci sur la légende (qui est récupérée dans le shortcode txt). Faut-il aussi s'attarder sur la taille des images ? seront-elles redimensionnables dans l'éditeur ?

from multipublisher.

lohic avatar lohic commented on August 16, 2024

C'est super, je regarde ça. Les images ne seront pas éditables dans le champ texte, par contre elles ont des dimensions en fonction de la boite dans laquelle elles se trouvent. Du coup il y a 4 variantes de dimensions (ce sont des dimensions maximales, donc pas de recadrage mais un redimentionnement au maximum de la dimension la plus grande) :

  • 1x1 : 64 x 64 mm (756 x 756 px à 300dpi)
  • 1x2 : 64 x 155 mm (756 x 1831 px)
  • 2x1 : 132 x 64 mm (1559 x 756 px)
  • 2x2 : 132 x 155 mm (1559 x 1831 px)

from multipublisher.

armansansd avatar armansansd commented on August 16, 2024

la galerie fonctionne avec l'ensemble des boutons !
Il ne reste plus qu'à gérer le positionnement des icônes, et de trouver une astuce pour les tailles des images.

from multipublisher.

lohic avatar lohic commented on August 16, 2024

https://developer.wordpress.org/reference/functions/add_image_size/

from multipublisher.

lohic avatar lohic commented on August 16, 2024

cf MultiPublisher::get_gallery_json pour récupérer le json des galeries

from multipublisher.

lohic avatar lohic commented on August 16, 2024

Bon pour le shortcode côté front-office, on devrait y arriver avec quelque chose du genre :

$gallery = new Dom\Html();

$gallery
->body()
->html("<table><tr><td class=\"a\">a</td><td class=\"b\">b</td></tr><tr><td class=\"c\">c</td><td class=\"d\">d</td></tr></table>");

$gallery->find('.a')->html('<img id="a" />');
$gallery->find('.b')->html('<img id="b" />');
$gallery->find('.c')->html('<img id="c" />');
$gallery->find('.d')->html('<img id="d" />');

echo $gallery->find('body')->children();

from multipublisher.

lohic avatar lohic commented on August 16, 2024

Avec la librairie suivante :
https://github.com/volux/dom

use volux\Dom;
require_once('vendor/autoload.php');

à installer avec composer :

~ composer require volux/dom

from multipublisher.

armansansd avatar armansansd commented on August 16, 2024

Ok, merci !
J'ai mis en place la boucle pour add_image_size, mais je n'arrive pas à récupérer et appliquer les dimensions.
Sur certain forum add_image_size est suivie de
add_filter('image_size_names_choose', 'my_image_sizes');
ici

mais je crois bien (si mes notes sont correctes) qu'on ne passe pas par l'uploader pour les tailles d'images mais par leurs places dans les tables galeries ?
Si 'est bien ça, je pensais utiliser une fonction wordpress :
wp_get_attachment_image($attachment_id, 'my_custom_thumbnail_name');
Mais pour produire les images dans le backOffice j'utilise :
wp_prepare_attachment_for_js(id)['url']

aurais-tu une idée pour me débloquer ?


Pour la partie front office dans quel fichier travailles tu ?

from multipublisher.

armansansd avatar armansansd commented on August 16, 2024

Galerie en place avec les tailles et url icone fixé. J'ai néanmoins un souci avec le css qui ne redimensionne pas la galerie à la fenêtre tinymce editor. Si tu as une idée :)

Je souhaiterais passer à la partie front, dans quel fichier travailles tu ?

from multipublisher.

armansansd avatar armansansd commented on August 16, 2024

J'ai installé la librairie volux/Dom
Lorsque que j'utilise

$gallery = new Dom\Html();

J'obtient une erreur alors qu'avec la manière suivante cela marche :

$doc = new DOMDocument();   
$doc->loadHTML("<html><body>Test<br></body></html>");   
echo $doc->saveHTML();

http://phpcodex.com/manual/domdocument.loadhtml.html

Peux-tu tester de ton coté ? j'ai peut être encore un problème de config.

from multipublisher.

armansansd avatar armansansd commented on August 16, 2024

voici l'erreur :

Warning: Declaration of volux\Dom\Document::loadHTML($source, &$result = false) should be compatible with DOMDocument::loadHTML($source, $options = NULL) in /multi-publisher/vendor/volux/dom/src/volux/Dom/Document.php on line 662

from multipublisher.

armansansd avatar armansansd commented on August 16, 2024

il existe une autre gallery de parser :
http://simplehtmldom.sourceforge.net/

from multipublisher.

lohic avatar lohic commented on August 16, 2024

oui je l'avais essayé, je n'avais pas réussi à faire ce que je voulais de manière aussi simple ;-)

from multipublisher.

armansansd avatar armansansd commented on August 16, 2024

ok, parce que j'essaie d'utiliser :

$xpath    = new DOMXPath($doc);

et je commence à me dire qu'il serait plus simple d'utiliser volux/dom

from multipublisher.

lohic avatar lohic commented on August 16, 2024

hahaha, bon je vais essayer de voir ce qui cloche…

from multipublisher.

lohic avatar lohic commented on August 16, 2024

yeepecaye

ça fonctionne avec : https://github.com/tburry/pquery
peut être se référer au wiki https://code.google.com/archive/p/ganon/ pour certains détails

testé dans mp_class :

$gallery = "<table><tr><td class=\"a\">a</td><td class=\"b\">b</td></tr><tr><td class=\"c\">c</td><td class=\"d\">d</td></tr></table>";

$dom = pQuery::parseStr($gallery);

$dom->query('.a')->html('<img id="a" />');
$dom->query('.b')->html('<img id="b" />');
$dom->query('.c')->html('<img id="c" />');
$dom->query('.d')->html('<img id="d" />');

return $dom->html();

from multipublisher.

armansansd avatar armansansd commented on August 16, 2024

job done.
🎱
Je dois juste régler les légendes.
Est ce que j'adapte la taille des images (en css) dans l’aperçu de la publication ?

from multipublisher.

lohic avatar lohic commented on August 16, 2024

oui pour l'adaptation :-) 👍

from multipublisher.

lohic avatar lohic commented on August 16, 2024

J'ai un bug
Notice: Undefined index: pict2x1 in /Users/loic/Sites/Site_CDF/wp-content/plugins/multi-publisher/inc/mp.class.php on line 385

from multipublisher.

armansansd avatar armansansd commented on August 16, 2024

J'ai testé avec diffrentes images, à mon avis c'est que ton image n'existe pas dans cette taille là. J'ai le même souci avec des image plus petite qui ont été uploadée seulement en 1x1. je peut mettre une condition pour éviter ce genre d'erreur et simplement mettre l'image full_size à la place. Qu'en penses tu ?

from multipublisher.

lohic avatar lohic commented on August 16, 2024

ah oui bien vu, j'avais oublié ce problème. Je vais voir si on peut forcer le calcul d'une image de dimension supérieure même si on n'a pas la résolution. Je teste avec des images de bonne taille et te tiens au courant.

from multipublisher.

lohic avatar lohic commented on August 16, 2024

J'ai posé la question sur le forum wordpress https://wordpress.org/support/topic/force-large-images-sizes?replies=1

from multipublisher.

armansansd avatar armansansd commented on August 16, 2024

Je n'arrive pas à faire réapparaître le bug sur l'éditeur de galerie, je vais néanmoins m'occuper de l'édition du contenu d'une galerie existante

from multipublisher.

armansansd avatar armansansd commented on August 16, 2024

il ne reste que :

  • la galerie qui ne charge pas automatiquement dans tinymce (va et viens "texte"<->"éditeur")
  • le possible bug dans le module de création de galerie (qui apparaît avec une manip particulière)
  • css de la légende des galeries

from multipublisher.

Related Issues (2)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.