Automaticaly set better derivative params for mobile theme according to screen size.

git-svn-id: http://piwigo.org/svn/trunk@13545 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
patdenice 2012-03-14 08:19:25 +00:00
parent f0d5c6c010
commit 1c50bb4d03
4 changed files with 30 additions and 9 deletions

View file

@ -14,6 +14,9 @@
</h6>
</div>
{/if}
{footer_script require='jquery'}
document.cookie = 'screen_size='+jQuery(document).width()+'x'+jQuery(document).height()+';path={$COOKIE_PATH}';
{/footer_script}
{get_combined_scripts load='footer'}
</div><!-- /page -->

View file

@ -1,10 +1,8 @@
{define_derivative name='derivative_params_square' type='square'}
<ul data-role="listview" data-inset="true">
{foreach from=$category_thumbnails item=cat}
<li>
<a href="{$cat.URL}">
<img src="{$pwg->derivative_url($derivative_params_square, $cat.representative.src_image)}">
<img src="{$pwg->derivative_url($thumbnail_derivative_params, $cat.representative.src_image)}">
<h3>{$cat.NAME}</h3>
<p class="Nb_images">{$cat.CAPTION_NB_IMAGES}</p>
</a>

View file

@ -5,21 +5,18 @@
{combine_script id='jquery.ajaxmanager' path='themes/default/js/plugins/jquery.ajaxmanager.js' load='footer'}
{combine_script id='thumbnails.loader' path='themes/default/js/thumbnails.loader.js' require='jquery.ajaxmanager' load='footer'}
{define_derivative name='derivative_params_square' type='square'}
{define_derivative name='derivative_params_large' type='large'}
<ul class="thumbnails">
{foreach from=$thumbnails item=thumbnail}{strip}
{assign var=derivative value=$pwg->derivative($derivative_params_square, $thumbnail.src_image)}
{assign var=derivative value=$pwg->derivative($thumbnail_derivative_params, $thumbnail.src_image)}
{if isset($page_selection[$thumbnail.id])}
<li>
<a href="{$pwg->derivative_url($derivative_params_large, $thumbnail.src_image)}" rel="external">
<a href="{$pwg->derivative_url($picture_derivative_params, $thumbnail.src_image)}" rel="external">
<img {if !$derivative->is_cached()}data-{/if}src="{$derivative->get_url()}" alt="{$thumbnail.TN_ALT}">
</a>
</li>
{else}
<li style="display:none;">
<a href="{$pwg->derivative_url($derivative_params_large, $thumbnail.src_image)}" rel="external"></a>
<a href="{$pwg->derivative_url($picture_derivative_params, $thumbnail.src_image)}" rel="external"></a>
</li>
{/if}
{/strip}{/foreach}

View file

@ -12,6 +12,10 @@ $themeconf = array(
'mobile' => true,
);
// Redirect if page is not compatible with mobile theme
if (!in_array(script_basename(), array('index', 'register', 'profile', 'identification')))
redirect(duplicate_index_url());
//Retrive all pictures on thumbnails page
add_event_handler('loc_index_thumbnails_selection', 'sp_select_all_thumbnails');
@ -24,4 +28,23 @@ function sp_select_all_thumbnails($selection)
return $page['items'];
}
// Get better derive parameters for screen size
if (!empty($_COOKIE['screen_size']))
{
$screen_size = explode('x', $_COOKIE['screen_size']);
$derivative_params = new ImageStdParams;
$derivative_params->load_from_db();
$type = IMG_LARGE;
foreach ($derivative_params->get_all_type_map() as $type => $map)
{
if (max($map->sizing->ideal_size) >= max($screen_size) and min($map->sizing->ideal_size) >= min($screen_size))
break;
}
pwg_set_session_var('sp_picture_deriv', $type);
}
$this->assign('picture_derivative_params', ImageStdParams::get_by_type(pwg_get_session_var('sp_picture_deriv', IMG_LARGE)));
$this->assign('thumbnail_derivative_params', ImageStdParams::get_by_type(IMG_SQUARE));
?>