Jump to content

Savoir qu'on est sur mobile dans un fichier smarty tpl


Recommended Posts

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

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

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

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

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

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

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

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

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

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...