Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

shortcode mp_gallery #1

Open
lohic opened this issue Feb 16, 2016 · 28 comments
Open

shortcode mp_gallery #1

lohic opened this issue Feb 16, 2016 · 28 comments
Assignees
Labels
Milestone

Comments

@lohic
Copy link
Owner

lohic commented Feb 16, 2016

finaliser le shortcode

  • conversion HTML du shortcode dans tinymce -> mp_gallery_plugin.js
  • gérer le chargement des images en fonction des ids et du type de galerie
  • ouverture de la fenêtre permettant de sélectionner le type de galerie
  • conversion HTML du shortcode dans le template -> mp.class.php (function mp_gallery_shortcode_function)
@lohic
Copy link
Owner Author

lohic commented Feb 16, 2016

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)

@lohic lohic added this to the version beta milestone Feb 16, 2016
@lohic
Copy link
Owner Author

lohic commented Feb 17, 2016

ç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

@armansansd
Copy link
Collaborator

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.

@lohic
Copy link
Owner Author

lohic commented Feb 28, 2016

Salut Arman,

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

Loïc


www.loichorellou.net
hello@loichorellou.net
+33 6 84 70 19 67

Le 28 févr. 2016 à 01:52, Arman Mohtadji notifications@github.com 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).

@armansansd
Copy link
Collaborator

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 ?

@lohic
Copy link
Owner Author

lohic commented Mar 15, 2016

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)

@armansansd
Copy link
Collaborator

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.

@lohic
Copy link
Owner Author

lohic commented Mar 28, 2016

@lohic
Copy link
Owner Author

lohic commented Mar 28, 2016

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

@lohic
Copy link
Owner Author

lohic commented Apr 5, 2016

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();

@lohic
Copy link
Owner Author

lohic commented Apr 5, 2016

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

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

à installer avec composer :

~ composer require volux/dom

@armansansd
Copy link
Collaborator

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 ?

@armansansd
Copy link
Collaborator

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 ?

@armansansd
Copy link
Collaborator

armansansd commented May 10, 2016

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.

@armansansd
Copy link
Collaborator

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

@armansansd
Copy link
Collaborator

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

@lohic
Copy link
Owner Author

lohic commented May 10, 2016

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

@armansansd
Copy link
Collaborator

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

@lohic
Copy link
Owner Author

lohic commented May 10, 2016

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

@lohic
Copy link
Owner Author

lohic commented May 17, 2016

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();

@armansansd
Copy link
Collaborator

armansansd commented May 18, 2016

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 ?

@lohic
Copy link
Owner Author

lohic commented May 18, 2016

oui pour l'adaptation :-) 👍

@lohic
Copy link
Owner Author

lohic commented May 18, 2016

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

@armansansd
Copy link
Collaborator

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 ?

@lohic
Copy link
Owner Author

lohic commented May 19, 2016

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.

@lohic
Copy link
Owner Author

lohic commented May 19, 2016

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

@armansansd
Copy link
Collaborator

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

@armansansd
Copy link
Collaborator

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants