Détail du message 87735.3

Message numéro 3 dans le sujet Version Mobile.

  • 87735.3 en réponse à 87735.2 écrit par jaxx

    11/08/2015 15:53


    Georges Njock-Bôt
    Rang : Membre
    Bonjour jaxx.

    jaxx a dit :
    J'ai vu que RBSChange est capable de détecter le User-agent et offre la possibilité d'appeler des feuilles de styles en fonctions de ce user agent. Il y-a-t-il un système similaire pour les vues (templates) ?

    Oui tout à fait.
    En ce qui concerne la nomenclature de template, vous y étiez presque.
    Le nommage suit globalement la règle suivante

    {templateName}.{userAgentType}.{userAgentVersion}.{contentTypeId}

    • templateName : nom complet du template

    • userAgentType : gecko, trident, khtml, etc

    • userAgentVersion : 1,2,3, etc. "all" pour toutes les versions (valeur par défaut)

    • contentTypeId : html, xul, php, txt, etc.



    Concernant les blocks de page, le nom du template ({templateName}) possède la structure suivante par défaut :

    {moduleName}-Block-{blockName}-{viewName}
    • moduleName : nom du module (Website, Users, Media, etc)

    • blockName : ConfigurableMenu, Editprofil, ImageList, etc)

    • viewName : Success, Input, Backoffice, etc.


    N.B.: Les valeurs de variables sont en camel case.

    Ceci dit, quelques remarques à présent:

    jaxx a dit :
    Alors le [template monTemplate.mobile.all.html] .mobile sera appelé pour les mobiles.

    Pas exactement. Il sera appelé pour tout userAgent dont le type est détecté comme "mobile".

    jaxx a dit :
    je ne sais pas encore comment rbschange passe en mode mobile.

    Comme vu précédemment, il n'y a pas véritablement de notion de "mobile" mais plutôt une notion de User-Agent. RBSChange utilise pour cela une classe de détection qui s'appelle Browscap (cf. fichier framework/object/Browscap.class.php). Par la suite, pour chaque requête, le framework détermine les templates/styles à utiliser selon le User-Agent (type + version) détecté. Cela est fait par la classe RequestContext (cf. méthode RequestContext::getBrowser() du fichier framework/object/RequestContext.class.php).

    jaxx a dit :
    A priori pour passer en mode mobile rbschange ne se base pas sur la résolution de l'image mais sur le user-agent, celà reste à confirmer.

    Je confirme modulo le fait que ce n'est pas "pour passer en mobile" pour les raisons citées plus haut.

    jaxx a dit :
    Et au sujet de la détection du user-agent, se fait-elle en JavaScript ou en PHP ?

    Elle se fait en PHP (côté serveur donc). Autrement un certain nombre de choses deviendraient impossibles de fait. Comme dit plus haut elle utilise la classe Browscap. Plus précisément, cette classe Browscap utilise un mapping entre autres à base d'expressions régulières pour déterminer les {userAgentType} et {userAgentVersion} vus plus haut. Les éléments de ce mapping sont mis en cache dans un fichier php accessible dans cache/{profileName}/cache_browscap.ini.php

    jaxx a dit :
    Si celà n'est pas géré, auriez-vous des idées à me soumettre ?

    Au vu des remarques précédentes, je dirais que dans votre cas le plus simple serait d'avoir une approche responsive se basant plutôt sur des seuils de viewport/taille d'écran plutôt que la détection de User-Agent.
    Maintenant si vous estimez que vous avec tout de même besoin d'un spécifique "mobile", avec les éléments vus plus haut vous devriez être en mesure d'altérer le fonctionnel standard pour arriver à vos fins. Je rajoute cependant le bémol que cela n'est pas sans risque de régression fonctionnelle pour peu que vous ne maîtrisiez pas totalement les impacts des modifications effectuées.


    Cordialement.

    "La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information"

    Albert Einstein
 
1429 membres
Aucun membre connecté