yannick.81 Posted March 8, 2019 Share Posted March 8, 2019 Bonjour à tous Ma question est simple : comment savoir dans smarty si on est sur mobile ou pas ? J'aimerai bien sur la page catégorie que la description soit au dessus des produits sur ordi et en dessous sur mobile, donc rajouter un test qui fasse cela. Merci Link to comment Share on other sites More sharing options...
yannick.81 Posted March 8, 2019 Author Share Posted March 8, 2019 dans le fichier global.tpl j'ai trouvé cette ligne {addJsDef isMobile=$mobile_device} {addJsDef isMobile=$mobile_device} mais comment utiliser cette information dans le fichier tpl, pas réussi Link to comment Share on other sites More sharing options...
Mediacom87 Posted March 9, 2019 Share Posted March 9, 2019 Bonjour, vous pouvez tester la variable pour savoir si vous êtes sur mobile dans le fichier categroy.tpl {if $mobile_device} vous êtes sur mobile {else} vous n'êtes pas sur mobile {/if} Link to comment Share on other sites More sharing options...
yannick.81 Posted March 9, 2019 Author Share Posted March 9, 2019 5 hours ago, Mediacom87 said: Bonjour, vous pouvez tester la variable pour savoir si vous êtes sur mobile dans le fichier categroy.tpl {if $mobile_device} vous êtes sur mobile {else} vous n'êtes pas sur mobile {/if} justement j'avais testé cette variable, variable vide, donc je pars tout le temps dans le else après j'ai oublié de préciser que je suis sous presta 1.6 Link to comment Share on other sites More sharing options...
Mediacom87 Posted March 9, 2019 Share Posted March 9, 2019 Moi j’ai testé et soit c’est vide soit elle vaut 1 sur mobile, donc où est le soucis ? Link to comment Share on other sites More sharing options...
yannick.81 Posted March 9, 2019 Author Share Posted March 9, 2019 bonne question... testé sur mon téléphone, sur chrome, et je passe dans le else 😕 je viens encore de le faire, voir l'exemple ci dessous sur mobile Link to comment Share on other sites More sharing options...
Mediacom87 Posted March 9, 2019 Share Posted March 9, 2019 Sinon, faites le en css avec les media query. Link to comment Share on other sites More sharing options...
yannick.81 Posted March 9, 2019 Author Share Posted March 9, 2019 2 minutes ago, Mediacom87 said: Sinon, faites le en css avec les media query. J'y avais pensé, sauf que cela voudrait dire que je mettrai 2 fois le bloc description avec sa balise h2 dans le code, une fois au dessus, une fois en dessous de la liste des produits. Et en fonction de la taille de l'écran, soit afficher la description au dessus si écran large, soit en dessous si écran moins large. Or pour le référencement c'est moyen 😕 Link to comment Share on other sites More sharing options...
Mediacom87 Posted March 9, 2019 Share Posted March 9, 2019 Peut être passer en flex https://stackoverflow.com/questions/39644585/using-flex-order-property-to-re-arrange-items-for-desktop-and-mobile-views Link to comment Share on other sites More sharing options...
yannick.81 Posted March 9, 2019 Author Share Posted March 9, 2019 1 minute ago, Mediacom87 said: Peut être passer en flex https://stackoverflow.com/questions/39644585/using-flex-order-property-to-re-arrange-items-for-desktop-and-mobile-views je vais regarder cela, merci Link to comment Share on other sites More sharing options...
yannick.81 Posted March 12, 2019 Author Share Posted March 12, 2019 1 hour ago, okom3pom said: La version de mobiledetect est du 20 Oct 2014 Perso je l'ai mise à jour. pour ne pas faire de bêtises, je télécharge la dernière version ici : http://mobiledetect.net/ puis j'écrase le code dans tools/mobile_Detect ? Link to comment Share on other sites More sharing options...
yannick.81 Posted March 12, 2019 Author Share Posted March 12, 2019 2 hours ago, okom3pom said: Moi je ne change que ça : https://github.com/serbanghita/Mobile-Detect/blob/master/Mobile_Detect.php#L214 merci je l'ai fait, testé sur mobile, je passe toujours dans le else, je ne comprends plus Link to comment Share on other sites More sharing options...
yannick.81 Posted March 12, 2019 Author Share Posted March 12, 2019 14 minutes ago, okom3pom said: Sans adresse, sans version, sans connaitre les overrides si ils existent ce n'est pas facile si tu parles de l'adresse du site : https://www.gdegdesign.com/ Version : 1.6.1.5 Il existe un override de la classe et du controller des catégories après il ne faut pas activer qqchose pour que le mobile detect fonctionne ? peut être que qqun l'a désactivé... (j'ai pris le site une fois qu'il avait été créé par qqun d'autre) Link to comment Share on other sites More sharing options...
yannick.81 Posted March 12, 2019 Author Share Posted March 12, 2019 Just now, okom3pom said: Il ressemble à quoi /classe/controllers/FrontControllers.php Tu as pas une version qui n'est pas en ligne genre un sous domaine pour faire des tests ? Juste une surcharge que j'avais fait moi même il y a quelques temps, pour surcharger la fonction addColorsToProductList() class FrontController extends FrontControllerCore { /** * Renders and adds color list HTML for each product in a list * * @param array $products */ public function addColorsToProductList(&$products) { le code } } Non justement pas de version de test, d'habitude j'ai toujours le code en local, mais là vu que j'ai repris le site, je fais les modifications directement en ligne, moins pratique forcément, pour ça que j'hésite pour le passage en flex comme me l'a préconisé Mediacom87 Link to comment Share on other sites More sharing options...
yannick.81 Posted March 12, 2019 Author Share Posted March 12, 2019 dans la fonction init de classes/controller/FrontController ? car je vois le début du code $this->context->smarty->assign(array( // Usefull for layout.tpl 'mobile_device' => $this->context->getMobileDevice(), Link to comment Share on other sites More sharing options...
yannick.81 Posted March 12, 2019 Author Share Posted March 12, 2019 j'ai réussi à faire planter le site avec ça... en fait avec ce code, j'ai une erreur comme quoi la parenthèse est inattendue après if( $detect->isMobile() ) comme s'il n'avait pas réussi à instancier $detect... j'ai vite enlevé le code car le client s'inquiétait Link to comment Share on other sites More sharing options...
yannick.81 Posted March 12, 2019 Author Share Posted March 12, 2019 j'avais mis exactement ça $compared_products = array(); if (Configuration::get('PS_COMPARATOR_MAX_ITEM') && isset($this->context->cookie->id_compare)) $compared_products = CompareProduct::getCompareProducts($this->context->cookie->id_compare); // Yannick require_once(_PS_TOOL_DIR_.'mobile_Detect/Mobile_Detect.php'); $detect = new Mobile_Detect(); $small_device = false; if( $detect->isMobile() ) $small_device = true; // End Yannick $this->context->smarty->assign(array( // Usefull for layout.tpl 'mobile_device' => $this->context->getMobileDevice(), 'small_device' => $small_device, Link to comment Share on other sites More sharing options...
yannick.81 Posted March 12, 2019 Author Share Posted March 12, 2019 ah tu le fais directement dans le fichier classes/controller/ FrontController ? oui il m'a mis aussi cette erreur, mais j'avais mis en commentaire le code entre 'Yannick', donc il me faisait ensuite cette erreur dont tu parles après je peux le refaire si tu veux pour te donner la vraie erreur (tant que le client ne le voit pas ^^) Link to comment Share on other sites More sharing options...
yannick.81 Posted March 12, 2019 Author Share Posted March 12, 2019 yes yes yes !!! j'ai mis dans global.tpl {addJsDef isMobile=$small_device} et enfin sur mobile il le détecte, trop fort, merci bcp pour ta patience Link to comment Share on other sites More sharing options...
yannick.81 Posted March 12, 2019 Author Share Posted March 12, 2019 3 minutes ago, okom3pom said: N'utilises pas isMobile car elle est peut être utilisée ailleurs cette variable. oui je teste sur $small_device, et j'ai donc pu mettre la description des produits au dessus sur ordi et en dessous sur mobile, ce qui est bien meilleur pour le référencement, et surtout en respectant les règles, donc merci Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now