BeAPI/acf-svg-icon

Impossible de charger mon sprite

LudovicFauchet opened this issue · 24 comments

Bonjour la team,

Je viens de découvrir votre superbe plugin, je l'ai mis en place sur le site de mon client et je tente de charger mon sprite nommé icons.svg mais il ne trouve pas les icons. Pourtant il me semble formaté normalement.
Avez-vous une idée d'où cela pourrait provenir.

Pour info mon sprite est localisé dans "montheme/assets/icons/icons.svg".

(Ici vous pouvez consulter mon svg pour voir si l'erreur vient de là -> https://www.dropbox.com/s/hmwso5whcvuhsyu/icons.svg?dl=0)

Merci d'avance

Bonjour @NicolasKulka et merci pour la réponse rapide,

Oui j'ai bien cela dans mon functions.php

//acf icon svg field
add_filter( 'acf_svg_icon_filepath', 'bea_svg_icon_filepath' );
function bea_svg_icon_filepath( $filepath ) {
	if ( is_file( get_stylesheet_directory() . '/assets/icons/icons.svg' ) ) {
		$filepath = get_stylesheet_directory() . '/assets/icons/icons.svg';
	}
	return $filepath;
}
Rahe commented

Est-ce que le is_file( get_stylesheet_directory() . '/assets/icons/icons.svg' ) retourne true ?
Sinon il faut utliser get_theme_file_path('assets/icons/icons.svg') si vous êtes sur un thème enfant.

Hello @Rahe ,
Oui ça renvoit bien true...

Et je viens d'essayer aussi avec l'autre méthode mais rien n'y fait...

Bonne journée et merci de votre support

Salut @MaximeCulea

Pourquoi avoir fermé mon issue ?

Bonne journée

@LudovicFauchet
J'ai vu :

Bonne journée et merci de votre support

J'en ai conclu que ça reste donc un problème "isolé", désolé.

Rahe commented

Je viens de tester avec un environnement de dev et ton fichier et ça fonctionne :
capture d ecran 2017-07-12 a 17 46 17

Est-ce que tu peux donner le retour is_readable( get_stylesheet_directory() . '/assets/icons/icons.svg' ) , peut être que PHP n'a juste pas les droits de lecture du fichier ;)

Hello la team et merci pour votre support,

Le fichier est bien lisible par PHP. Je viens de trouver le problème votre plugin est incompatible avec Woocommerce...
Je viens de désactiver toutes les extensions et en les réactivant toutes une par une je me suis rendu compte que c'était Woocommerce le fautif, savez-vous d'où ça peut venir ?

Bonne journée et encore merci

Hello la team,

Avez-vous pu faire des tests avec Woocommerce ?

Excellente journée

Bonjour @LudovicFauchet,
Nous n'utilisons pas beaucoup WooCommerce, il est possible qu'il y ait un bug. Quelle est ta version de WP, WC, PHP ?
Merci

@MaximeCulea c'est surtout que nous n'utilisons pas ce plugin avec nos projets WooCommerce ;)

En fait je n'utilise pas le plugin sur les pages produits mais sur des pages basique, donc c'est le plugin en général (Woocommerce) qui rentre en conflit avec le votre.

Pour répondre à vos questions.

WP -> 4.8
WC -> 3.1.1
PHP -> 5.6 mais en local version 7 c'est pareil.

Merci à toute la team

Hello la team,

Avez-vous un début de piste ?

Merci encore pour le support les gars

Bon c'est pas au niveau du PHP que ça bug j'ia fait différent test, il semblerait que ça soit un conflit entre la librairie select2 de woocommerce 3.+ et la votre...

Rahe commented

Hello,

On utilise la librairie inclue dans ACF pour faire notre select2. Est-ce qu'il y a un autre champs en mode select2 qui fonctionne ?

@Rahe ,

Oui j'ai testé avec un champs select2 acf pour trouver une url et ça fonctionne bien, votre champs passe bien en select2 mais on dirait qu'il ne va pas piocher les infos dans les data et d'ailleurs il n'a pas l'apparence que vous lui avez donné -> https://www.dropbox.com/s/je5zlk2ck1ik949/Capture%20d%27%C3%A9cran%202017-07-18%2014.18.36.png?dl=0

Rahe commented

Ah ouais c'est bien cassé, on va check c'est pas un comportement normal. Peut être que l'on utilise des méthodes de select2 de ACF alors que c'est celui de Woo qui est utilisé.
Pas les mêmes versions alors ? :/

@LudovicFauchet.

Les éléments <select> du plugin n'ont pas la même apparence car le plugin n'utilise pas la méthode d'ACF pour les restituer : acf.select2.init mais $elem.select2.

En privilégiant acf.select2.init, on s'assure du bon fonctionnement avec les versions 3 et 4 de select2 car ACF propose de choisir la version de cette lib par l'option select2_version.

Même si WooCommerce (re)déclare une ressource avec le même nom (en l’occurrence ici select2), on limite les risques de dysfonctionnements.

@7studio ,

Mais du coup comment faire pour que ça soit compatible ? ACF Pro fonctionne bien avec Woocommerce activé alors pourquoi pas ce plugin ?

Hello la team,

J'ai réussi à rendre compatible votre plugin avec woocommerce https://www.dropbox.com/s/nybkl7bpkcdlr68/Capture%20d%27%C3%A9cran%202017-07-20%2009.38.52.png?dl=0 en fait il m'a suffit de passer votre input comme un select pour être compatible avec select2 version 4 et changer les options d'initialisation des champs select2.

Je peux essayer de vous faire un pull request si ça vous interesse.

Bonne journée

@LudovicFauchet Super !
Merci :)

@MaximeCulea

C'est la première fois que je fais un pull request sur github mais ça me dit que j'ai pas les autorisations nécessaires... je m'y prend mal ?

Authentication failed. You may not have permission to access the repository. Open preferences and verify that you're signed in with an account that has permission to access this repository.

@LudovicFauchet il faut fork le projet puis créer une branche sur ton projet pour réaliser les commits. A partir de là tu reviens sur notre projet et tu fait un merge proposal de ta branche.

@MaximeCulea désolé je suis un noob là dessus, je viens de faire mon pull request du coup je ferme mon issue :)

Merci en tous cas à toute l'équipe !!!