Changeset 42915 in spip-zone for _squelettes_/mobi.spip


Ignore:
Timestamp:
Dec 14, 2010, 10:24:52 PM (9 years ago)
Author:
cedric@…
Message:

switch site mobile/normal selon cookie mobispip=='mobile'
?var_mobile=oui/non ou 1/0 permet de forcer le passage vers mobile ou retour vers site normal
En l'absence du cookie (au premier hit), on utilise le script de detection selon le user agent,
et si c'est bien un mobile mais pas un iPad, on passe en vue mobile.
Dans tous les cas on pose un cookie pour ne pas refaire de detection les hits suivants

Location:
_squelettes_/mobi.spip
Files:
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • _squelettes_/mobi.spip/detect/mobile.php

    r42912 r42915  
    99 *
    1010 * @license    http://www.opensource.org/licenses/mit-license.php The MIT License
     11 *
     12 * Complete User_Agent string :
     13 * http://www.zytrax.com/tech/web/mobile_ids.html
    1114 *
    1215 * example:
     
    3942
    4043  /**
    41    * @var boolean
     44   * @var array
    4245   */
     46  protected $is           = array();
     47
     48        /**
     49         * @var boolean
     50         */
    4351  protected $isMobile     = false;
    4452
    45   /**
    46    * @var boolean
    47    */
    48   protected $isAndroid    = null;
    49 
    50   /**
    51    * @var boolean
    52    */
    53   protected $isIphone     = null;
    54 
    55   /**
    56    * @var boolean
    57    */
    58   protected $isBlackberry = null;
    59 
    60   /**
    61    * @var boolean
    62    */
    63   protected $isOpera      = null;
    64 
    65   /**
    66    * @var boolean
    67    */
    68   protected $isPalm       = null;
    69 
    70   /**
    71    * @var boolean
    72    */
    73   protected $isWindows    = null;
    74 
    75   /**
    76    * @var boolean
    77    */
    78   protected $isGeneric    = null;
    7953
    8054  /**
     
    8761      "blackberry" => "blackberry",
    8862      "iphone"     => "(iphone|ipod)",
    89       "opera"      => "opera mini",
     63            "ipad"       => "ipad",
     64      "opera"      => "opera (mini|mobi)",
    9065      "palm"       => "(avantgo|blazer|elaine|hiptop|palm|plucker|xiino)",
    9166      "windows"    => "windows ce; (iemobile|ppc|smartphone)",
     
    12499    $var = "is".ucfirst($device);
    125100    $device = strtolower($device);
    126     $return = is_null($this->$var) ? (bool) preg_match("/".$this->devices[$device]."/i", $this->userAgent) : $this->$var;
     101    $return = (isset($this->is[$device]) ? $this->is[$device] : (bool) preg_match("/".$this->devices[$device]."/i", $this->userAgent));
    127102    if ($device != 'generic' && $return == true) {
    128       $this->isGeneric = false;
     103      $this->is['generic'] = false;
    129104    }
    130105    return $return;
     
    150125
    151126  /**
    152    * Overloads isAndroid() | isBlackberry() | isOpera() | isPalm() | isWindows() | isGeneric() through isDevice()
     127   * Overloads isAndroid() | isBlackberry() | isOpera() | isPalm() | isWindows() | isGeneric()
     128   * or every isXxxx() where xxxx is a known device in $devices
     129   * through isDevice()
    153130   *
    154131   * @param string $name
  • _squelettes_/mobi.spip/mobile/content/sommaire.html

    r42889 r42915  
    4343
    4444<div class="ui-grid-a">
    45         <div class="ui-block-a"><a href="[(#URL_SITE_SPIP|parametre_url{var_mobi,no})]" data-role="button" data-icon="gear"><:mobispip:versionclassique:></a></div>
     45        <div class="ui-block-a"><a href="[(#URL_SITE_SPIP|parametre_url{var_mobile,non})]" rel="external" data-role="button" data-icon="gear"><:mobispip:versionclassique:></a></div>
    4646        <div class="ui-block-b"><a href="http://www.spip-contrib.net" data-role="button" data-icon="mobispip"><:mobispip:mobiSPIP:></a></div>
    4747</div>
  • _squelettes_/mobi.spip/mobispip_options.php

    r42889 r42915  
    99 */
    1010
    11 define('_VERSION_MOBILE',!test_espace_prive());
    12 define('_NO_CACHE',1);
     11# Selecteur de version mobile
     12# si &var_mobile=1 dans l'url, switcher sur la version mobile
     13# si &var_mobile=0 dans l'url, switcher sur la version normale
     14if (!is_null($mobile=_request('var_mobile'))){
     15        include_spip('inc/cookie');
     16        spip_setcookie('mobispip',$_COOKIE['mobispip'] = (($mobile=='oui' OR intval($mobile))?'mobile':'normal'));
     17}
     18// si pas de cookie, on tente une autodetection
     19if (!isset($_COOKIE['mobispip'])){
     20        include_spip("detect/mobile");
     21        $mobile = (MobileDetect::getInstance()->isMobile() && !MobileDetect::getInstance()->isIpad());
     22        include_spip('inc/cookie');
     23        spip_setcookie('mobispip',$_COOKIE['mobispip'] = ($mobile?'mobile':'normal'));
     24}
    1325
    14 if (defined('_VERSION_MOBILE') AND _VERSION_MOBILE) {
     26if (!defined('_MOBISPIP'))
     27        define('_MOBISPIP',$_COOKIE['mobispip']=='mobile' AND !test_espace_prive());
     28
     29if (_MOBISPIP) {
    1530        _chemin(_DIR_PLUGIN_MOBISPIP.'mobile');
    1631  $GLOBALS['marqueur'].="mobispip:";
    1732        $GLOBALS['z_blocs'] = array('content','header','footer','head','head_js');
    1833}
     34
     35# debug
     36define('_NO_CACHE',1);
Note: See TracChangeset for help on using the changeset viewer.