We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 20215
    • 144 Posts
    Salve

    Stavo cercando di usare l’extra modmobile di cui la documentazione http://rtfm.modx.com/display/ADDON/modMobile#modMobile-Requirements dice al punto 2

    "Add the following setting to your context(s):
    Key: mobile_template
    Value: id of your mobile template (example: 2)"

    Non capisco se intenda quel che trovo in System-->Context anche perchè non posso inserire Key con quel nome ne tantomeno un Value
      ----------------------------------
      canale irc Italiano #modx server: tophost.azzurra.org
      • 20215
      • 144 Posts
      Bha.. forse devo solo creare un template con quel nome
        ----------------------------------
        canale irc Italiano #modx server: tophost.azzurra.org
      • Io ho fatto così:

        - prima ho creato il template per la visualizzazione sui cellulari
        - poi click col tasto destro sul contesto (es. web)
        - modifica contesto
        - nella scheda "settaggi contesto" -> crea nuovo
        - "nome univoco" e "nome" ho messo "mobile_template" e nel campo valore ho assegnato l’id del template creato all’inizio



          TilliLab | MODX Ambassador
          website
          • 20215
          • 144 Posts
          Ciao Pardo

          Alla fine ho preso un’altra strada, ho creato uno snippet fondendo, questo http://snipplr.com/view/23161/modx-include-template/ e questo http://mobiforge.com/developing/story/lightweight-device-detection-php

          il risultato

          includeTemplate snippet
          <?php
          # Snippet to include template files from file system
          # USAGE: [[includeTemplate? &tpl=`my_template/index.html` &tpl_mob=`my_template/index_mob.html`]]
          
          if ( !isset($tpl) || $tpl== "" ) return "Missing Template file!";
          
          # parte dedicata al detect mobile tramite lettura user agent, non infallibile, da aggiornare elenco
          
          $mobile_browser = '0';
           
          if (preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
              $mobile_browser++;
          }
           
          if ((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml') > 0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))) {
              $mobile_browser++;
          }    
           
          $mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'], 0, 4));
          $mobile_agents = array(
              'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
              'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
              'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
              'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
              'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
              'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
              'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
              'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
              'wapr','webc','winw','winw','xda ','xda-');
           
          if (in_array($mobile_ua,$mobile_agents)) {
              $mobile_browser++;
          }
           
          if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini') > 0) {
              $mobile_browser++;
          }
           
          if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows') > 0) {
              $mobile_browser = 0;
          }
           
          if ($mobile_browser > 0) {
             # mobile device
             if( isset($tpl_mob) || $tpl_mob != "" ){
               $tpl = $base_path .'assets/templates/'.$tpl_mob;
             }else{
               $tpl = $base_path .'assets/templates/'.$tpl;
             }
          
          } else {
             # non mobile
             $tpl = $base_path .'assets/templates/'.$tpl;
          }   
          
          
          ob_start();
          include($tpl);
          return ob_get_clean();
          


          lo richiamo poi nel template [[includeTemplate? &tpl=`my_template/index.html` &tpl_mob=`my_template/index_mob.html`]]
          o anche senza il tpl_mob (quello per mobile device) [[includeTemplate? &tpl=`my_template/index.html`]]

          Fammi sapere che ne pensi undecided

          Ciao grazie
            ----------------------------------
            canale irc Italiano #modx server: tophost.azzurra.org
          • Come idea mi sembra un’ottima soluzione.
            Anche se onestamente non conoscevo questa classe php per la rilevazione del device, ma vedo che è la stessa usata dal plugin Modmobile (fammi sapere come funziona! smiley )
            e neanche il sistema di inclusione di un template esterno, interessante anche questa possibilità!

            Magari ti vincola a usare template esterni, ma a volte può essere comodo.
            Non saprei se modx ti perde un po’ come velocità di esecuzione.

            Se vedi che diventa più lento potresti creare un plugin con il codice essenzialmente uguale allo snippet che hai fatto, sostituendo:

            if ($mobile_browser > 0) {
               # mobile device
               if( isset($tpl_mob) || $tpl_mob != "" ){
                 $tpl = $base_path .'assets/templates/'.$tpl_mob;
            ...
            


            con

              
              if($mobile_browser>0) {
                    $modx->resource->set('template', ID_template_mobile);
            .......
            



            Ah, mi raccomando, in ogni caso chiama lo snippet senza cache, col punto esclamativo insomma..

            [[!includeTemplate? &tpl=`my_template/index.html` &tpl_mob=`my_template/index_mob.html`]]

            facci sapere...
              TilliLab | MODX Ambassador
              website
              • 20215
              • 144 Posts
              Non percepisco se perda di velocità, sempra di no.
              Ora sono preso con la realizzazione del template per mobile che ancora non ho, farò più attenzione non appena ho terminato.
              Nel caso ti faccio sapere

              Grazie ancora
                ----------------------------------
                canale irc Italiano #modx server: tophost.azzurra.org