Jump to content

Problème module perso, fonctionnel sur thème classic, et pas sur thème lifestyle.


Recommended Posts

Bonjour tout le monde, voilà j'ai fini de développé depuis quelques jour un module qui utilise l'API Google Maps pour autocompléter les adresse, il est 100% fonctionnel en local et sur un site de test également, sous le thème de base "classic"

Je l'ai donc installer directement via le BO avec le dossier de mon module en .zip et je l'ai configuré.
Et à ma grande surprise, il ne fonctionne pas. Et je remarque que sur l'enregistrement de mes script, seul l'appel à l'API fonctionne, pas pas l'appel à mon fichier JS de mon module, je vous partage l'extrait ci-dessous :

 

public function hookActionFrontControllerSetMedia()
{
    // Vérifier si nous sommes sur la page de commande ou de l'adresse
    $currentUrl = $_SERVER['REQUEST_URI'];
    if (strpos($currentUrl, '/commande') !== false || strpos($currentUrl, '/adresse') !== false) {
        $this->context->controller->registerJavascript(
            'module-googleadressautocomplete',
            'modules/' . $this->name . '/views/js/googleadressautocomplete.js',
            array('position' => 'bottom', 'priority' => 10)
        );
        $countries = Configuration::get('GOOGLEADRESSAUTOCOMPLETE_COUNTRIES');
        Media::addJsDef(array('autocompleteCountries' => explode(',', $countries)));
        $apiKey = Configuration::get('GOOGLEADRESSAUTOCOMPLETE_APIKEY');
        $this->context->controller->registerJavascript(
            'google_maps_api',
            'https://maps.googleapis.com/maps/api/js?key=' . $apiKey . '&callback=initAutocomplete&libraries=places',
            array('server' => 'remote', 'position' => 'bottom', 'priority' => 20)
        );
    }
}

 

la seconde partie est bien prises en compte et fonctionne, le script du lien de l'API est bien charger sur ma page, mais le premier bout de code qui veut injecter mon fichier javascript de mon module n'est pas récupérer sur le site.
Comment est-ce possible ? Je m'arrache les cheveux depuis hier après-midi.

Si quelqu'un à déjà eu le cas, ce serais cool, merci à vous et bonne journée !

Link to comment
Share on other sites

Il y a 2 heures, dydy59 a dit :
if (strpos($currentUrl, '/commande') !== false || strpos($currentUrl, '/adresse') !== false) {

Bonjour,

je n'ai pas regardé plus, mais ce genre de test est foireux dans le sens où, qu'arrive-t-il si vous ajoutez une langue à la boutique ?

Il est préférable de tester l'instance de l'objet chargé ou le pagename ou le phpself, enfin, quelque chose d'unique et stable.

Link to comment
Share on other sites

6 minutes ago, Mediacom87 said:

Bonjour,

je n'ai pas regardé plus, mais ce genre de test est foireux dans le sens où, qu'arrive-t-il si vous ajoutez une langue à la boutique ?

Il est préférable de tester l'instance de l'objet chargé ou le pagename ou le phpself, enfin, quelque chose d'unique et stable.


J'ai testé en local et je penses que ça pourrait foirée, mais j'ai tester sans cette condition et même problème...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...