diff --git a/include/category_default.inc.php b/include/category_default.inc.php index 444ffd826..18ad85fb3 100644 --- a/include/category_default.inc.php +++ b/include/category_default.inc.php @@ -35,6 +35,8 @@ $selection = array_slice( $page['nb_image_page'] ); +$selection = trigger_event('loc_index_thumbnails_selection', $selection); + if (count($selection) > 0) { $rank_of = array_flip($selection); diff --git a/include/common.inc.php b/include/common.inc.php index 158dbf1ef..378b9b4e0 100644 --- a/include/common.inc.php +++ b/include/common.inc.php @@ -192,28 +192,7 @@ if (defined('IN_ADMIN') and IN_ADMIN ) } else { // Classic template - $theme = $user['theme']; - - if (!isset($_SESSION['is_mobile'])) - { - include_once(PHPWG_ROOT_PATH.'include/mdetect.php'); - $uagent_obj = new uagent_info(); - if ($_SESSION['is_mobile'] = $uagent_obj->DetectMobileLong()) - { - $_SESSION['use_mobile_theme'] = !empty($conf['mobile_theme']); - } - } - if ($_SESSION['is_mobile']) - { - if (isset($_REQUEST['mobile'])) - { - $_SESSION['use_mobile_theme'] = get_boolean($_REQUEST['mobile']); - } - if ($_SESSION['use_mobile_theme']) - { - $theme = $conf['mobile_theme']; - } - } + $theme = mobile_theme() ? $conf['mobile_theme'] : $user['theme']; $template = new Template(PHPWG_ROOT_PATH.'themes', $theme ); } diff --git a/include/functions.inc.php b/include/functions.inc.php index 4a4677b8a..b977a6ef4 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -1678,4 +1678,65 @@ function get_branch_from_version($version) { return implode('.', array_slice(explode('.', $version), 0, 2)); } + +/** + * return the device type: mobile, tablet or desktop + */ +function get_device() +{ + $device = pwg_get_session_var('device'); + + if (is_null($device)) + { + include_once(PHPWG_ROOT_PATH.'include/mdetect.php'); + $uagent_obj = new uagent_info(); + if ($uagent_obj->DetectTierIphone()) + { + $device = 'mobile'; + } + elseif ($uagent_obj->DetectTierTablet()) + { + $device = 'tablet'; + } + else + { + $device = 'desktop'; + } + pwg_set_session_var('device', $device); + } + + return $device; +} + +/** + * return true if mobile theme should be loaded + */ +function mobile_theme() +{ + global $conf; + + if (empty($conf['mobile_theme'])) + { + return false; + } + + if (isset($_GET['mobile'])) + { + $is_mobile_theme = get_boolean($_GET['mobile']); + pwg_set_session_var('mobile_theme', $is_mobile_theme); + unset($_GET['mobile']); + } + else + { + $is_mobile_theme = pwg_get_session_var('mobile_theme'); + } + + if (is_null($is_mobile_theme)) + { + $is_mobile_theme = (get_device() == 'mobile'); + pwg_set_session_var('mobile_theme', $is_mobile_theme); + } + + return $is_mobile_theme; +} ?> \ No newline at end of file diff --git a/include/page_tail.php b/include/page_tail.php index 5a8f8a724..14c6391fb 100644 --- a/include/page_tail.php +++ b/include/page_tail.php @@ -65,6 +65,17 @@ if ($conf['show_gt']) $template->assign('debug', $debug_vars ); +//------------------------------------------------------------- mobile version +if (get_device() != 'desktop') +{ + $template->assign('TOGGLE_MOBILE_THEME_URL', + add_url_params( + make_index_url(), + array('mobile' => mobile_theme() ? 'false' : 'true') + ) + ); +} + trigger_action('loc_end_page_tail'); // // Generate the page diff --git a/language/en_UK/admin.lang.php b/language/en_UK/admin.lang.php index f1cf6685d..2fada1f0e 100644 --- a/language/en_UK/admin.lang.php +++ b/language/en_UK/admin.lang.php @@ -846,5 +846,4 @@ $lang['Not cropped correctly?'] = 'Not cropped correctly?'; $lang['Center of interest'] = 'Center of interest'; $lang['Move to album'] = 'Move to album'; $lang['You can activate only one mobile theme.'] = 'You can activate only one mobile theme.'; -$lang['mobile'] = 'mobile'; ?> \ No newline at end of file diff --git a/language/en_UK/common.lang.php b/language/en_UK/common.lang.php index 520268f8d..6695038d9 100644 --- a/language/en_UK/common.lang.php +++ b/language/en_UK/common.lang.php @@ -383,4 +383,7 @@ $lang['Password: %s'] = 'Password: %s'; $lang['Username: %s'] = 'Username: %s'; $lang['If you think you\'ve received this email in error, please contact us at %s'] = 'If you think you\'ve received this email in error, please contact us at %s'; $lang['Photo sizes'] = 'Photo sizes'; +$lang['View in'] = 'View in'; +$lang['Mobile'] = 'Mobile'; +$lang['Desktop'] = 'Desktop'; ?> \ No newline at end of file diff --git a/language/fr_FR/admin.lang.php b/language/fr_FR/admin.lang.php index 5a8e2fb7d..4aa787dda 100644 --- a/language/fr_FR/admin.lang.php +++ b/language/fr_FR/admin.lang.php @@ -844,7 +844,6 @@ $lang['This album contains no photo.'] = 'Cet album ne contient pas de photo.'; $lang['%s has been successfully updated.'] = '%s a été mis à jour avec succès.'; $lang['Move to album'] = 'Déplacer vers l\'album'; $lang['You can activate only one mobile theme.'] = 'Vous ne pouvez activer qu\'un seul thème mobile.'; -$lang['mobile'] = 'mobile'; $lang['Center of interest'] = 'Centre d\'interêt'; $lang['Not cropped correctly?'] = 'La photo n\'est pas recadrée corectement ?'; $lang['Photo name'] = 'Nom de la photo'; diff --git a/language/fr_FR/common.lang.php b/language/fr_FR/common.lang.php index 0501e4c8e..1cc1f1ec8 100644 --- a/language/fr_FR/common.lang.php +++ b/language/fr_FR/common.lang.php @@ -383,4 +383,7 @@ $lang['xlarge'] = "XLarge"; $lang['xxlarge'] = "XXLarge"; $lang['Show latest comments first'] = 'Montrer les commentaires les plus récents en premier'; $lang['Show oldest comments first'] = 'Montrer les commentaires les plus anciens en premier'; +$lang['View in'] = 'Affichage'; +$lang['Mobile'] = 'Mobile'; +$lang['Desktop'] = 'Classique'; ?> \ No newline at end of file diff --git a/themes/default/template/footer.tpl b/themes/default/template/footer.tpl index cf2f41a36..926a49dc0 100644 --- a/themes/default/template/footer.tpl +++ b/themes/default/template/footer.tpl @@ -13,6 +13,9 @@ - {'Contact'|@translate} {'Webmaster'|@translate} {/if} + {if isset($TOGGLE_MOBILE_THEME_URL)} + - {'Display'|@translate} : {'Mobile'|@translate} | {'Classic'|@translate} + {/if} {get_combined_scripts load='footer'} diff --git a/themes/smartpocket/template/footer.tpl b/themes/smartpocket/template/footer.tpl index 3de169077..5dec6da88 100644 --- a/themes/smartpocket/template/footer.tpl +++ b/themes/smartpocket/template/footer.tpl @@ -1,4 +1,19 @@ - +{if !empty($navbar)} +{include file='navigation_bar.tpl'|@get_extent:'navbar'} +{else} +
+{/if} {get_combined_scripts load='footer'} diff --git a/themes/smartpocket/template/header.tpl b/themes/smartpocket/template/header.tpl index 06248f78c..d15821a19 100644 --- a/themes/smartpocket/template/header.tpl +++ b/themes/smartpocket/template/header.tpl @@ -46,9 +46,9 @@ -