From bf4012291a878c3f22fa318595e2ca7881c2978a Mon Sep 17 00:00:00 2001 From: rub Date: Wed, 27 Feb 2008 20:25:18 +0000 Subject: [PATCH] Resolved issue 0000807: New slideshow features git-svn-id: http://piwigo.org/svn/trunk@2218 68402e56-0260-453c-a942-63ccdbb3a9ee --- include/category_default.inc.php | 18 +- include/config_default.inc.php | 20 +- include/functions.inc.php | 4 +- include/functions_picture.inc.php | 108 +++++++++- index.php | 23 ++- install/db/67-database.php | 51 +++++ language/en_UK/common.lang.php | 8 +- language/es_ES/common.lang.php | 9 +- language/fr_FR/common.lang.php | 8 +- language/nl_NL/common.lang.php | 9 +- picture.php | 186 +++++++++++++----- plugins/c13y_upgrade/initialize.inc.php | 53 ++++- .../language/en_UK/plugin.lang.php | 9 +- .../language/es_ES/plugin.lang.php | 8 +- .../language/fr_FR/plugin.lang.php | 8 +- template/yoga/icon/dec_period.png | Bin 0 -> 1087 bytes template/yoga/icon/dec_period_unactive.png | Bin 0 -> 1169 bytes template/yoga/icon/inc_period.png | Bin 0 -> 1209 bytes template/yoga/icon/inc_period_unactive.png | Bin 0 -> 1255 bytes template/yoga/icon/pause.png | Bin 0 -> 1597 bytes template/yoga/icon/play.png | Bin 0 -> 1568 bytes template/yoga/icon/slideshow.png | Bin 1229 -> 1264 bytes template/yoga/icon/start_repeat.png | Bin 0 -> 1691 bytes template/yoga/icon/stop_repeat.png | Bin 0 -> 1683 bytes template/yoga/icon/stop_slideshow.png | Bin 0 -> 1245 bytes template/yoga/index.tpl | 4 + template/yoga/picture.tpl | 104 +++------- template/yoga/picture_nav_buttons.tpl | 91 +++++++++ template/yoga/slideshow.tpl | 11 +- 29 files changed, 574 insertions(+), 158 deletions(-) create mode 100644 install/db/67-database.php create mode 100644 template/yoga/icon/dec_period.png create mode 100644 template/yoga/icon/dec_period_unactive.png create mode 100644 template/yoga/icon/inc_period.png create mode 100644 template/yoga/icon/inc_period_unactive.png create mode 100644 template/yoga/icon/pause.png create mode 100644 template/yoga/icon/play.png create mode 100644 template/yoga/icon/start_repeat.png create mode 100644 template/yoga/icon/stop_repeat.png create mode 100644 template/yoga/icon/stop_slideshow.png create mode 100644 template/yoga/picture_nav_buttons.tpl diff --git a/include/category_default.inc.php b/include/category_default.inc.php index ef029eee6..402df757b 100644 --- a/include/category_default.inc.php +++ b/include/category_default.inc.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -66,6 +66,22 @@ if (count($pictures) > 0) $template->assign_block_vars('thumbnails.line', array()); // current row displayed $row_number = 0; + + // define category slideshow url + $row = reset($pictures); + $page['cat_slideshow_url'] = + add_url_params( + duplicate_picture_url( + array( + 'image_id' => $row['id'], + 'image_file' => $row['file'] + ), + array('start') + ), + array('slideshow' => + (isset($_GET['slideshow']) ? $_GET['slideshow'] + : '' )) + ); } trigger_action('loc_begin_index_thumbnails', $pictures); diff --git a/include/config_default.inc.php b/include/config_default.inc.php index 6a294236c..67369119e 100644 --- a/include/config_default.inc.php +++ b/include/config_default.inc.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -66,10 +66,6 @@ // the date_available $conf['order_by'] = ' ORDER BY date_available DESC, file ASC, id ASC'; -// slideshow_period : waiting time in seconds before loading a new page -// during automated slideshow -$conf['slideshow_period'] = 4; - // file_ext : file extensions (case sensitive) authorized $conf['file_ext'] = array('jpg','JPG','jpeg','JPEG', 'png','PNG','gif','GIF','mpg','zip', @@ -692,8 +688,20 @@ $conf['filter_pages'] = array ); // +-----------------------------------------------------------------------+ -// | Light slideshow | +// | Slideshow | // +-----------------------------------------------------------------------+ +// slideshow_period : waiting time in seconds before loading a new page +// during automated slideshow +// slideshow_period_min, slideshow_period_max are bounds of slideshow_period +// slideshow_period_step is the step of navigation between min and max +$conf['slideshow_period_min'] = 1; +$conf['slideshow_period_max'] = 10; +$conf['slideshow_period_step'] = 1; +$conf['slideshow_period'] = 4; + +// slideshow_repeat : slideshow loops on pictures +$conf['slideshow_repeat'] = true; + // $conf['light_slideshow'] indicates to use slideshow.tpl in state of // picture.tpl for slideshow // Take care to have slideshow.tpl in all available templates diff --git a/include/functions.inc.php b/include/functions.inc.php index afc91c9c2..243f2481b 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -749,6 +749,8 @@ function redirect_http( $url ) { ob_clean(); } + // default url is on html format + $url = html_entity_decode($url); header('Request-URI: '.$url); header('Content-Location: '.$url); header('Location: '.$url); diff --git a/include/functions_picture.inc.php b/include/functions_picture.inc.php index d11574b57..13a09834d 100644 --- a/include/functions_picture.inc.php +++ b/include/functions_picture.inc.php @@ -1,7 +1,7 @@ $conf['slideshow_period'], + 'repeat' => $conf['slideshow_repeat'], + 'play' => true, + ); +} + +/* + * check and correct slideshow params from array + * + * @param array of params + * + * @return slideshow corrected values into array + */ +function correct_slideshow_params($params = array()) +{ + global $conf; + + if ($params['period'] < $conf['slideshow_period_min']) + { + $params['period'] = $conf['slideshow_period_min']; + } + else if ($params['period'] > $conf['slideshow_period_max']) + { + $params['period'] = $conf['slideshow_period_max']; + } + + return $params; +} + +/* + * Decode slideshow string params into array + * + * @param string params like "" + * + * @return slideshow values into array + */ +function decode_slideshow_params($encode_params = null) +{ + global $conf; + + $result = get_default_slideshow_params(); + + if (is_numeric($encode_params)) + { + $result['period'] = $encode_params; + } + else + { + $matches = array(); + if (preg_match_all('/([a-z]+)-(\d+)/', $encode_params, $matches)) + { + $matchcount = count($matches[1]); + for ($i = 0; $i < $matchcount; $i++) + { + $result[$matches[1][$i]] = $matches[2][$i]; + } + } + + if (preg_match_all('/([a-z]+)-(true|false)/', $encode_params, $matches)) + { + $matchcount = count($matches[1]); + for ($i = 0; $i < $matchcount; $i++) + { + $result[$matches[1][$i]] = get_boolean($matches[2][$i]); + } + } + } + + return correct_slideshow_params($result); +} + +/* + * Encode slideshow array params into array + * + * @param array params + * + * @return slideshow values into string + */ +function encode_slideshow_params($decode_params = array()) +{ + global $conf; + + $params = array_diff_assoc(correct_slideshow_params($decode_params), get_default_slideshow_params()); + $result = ''; + + foreach ($params as $name => $value) + { + // boolean_to_string return $value, if it's not a bool + $result .= '+'.$name.'-'.boolean_to_string($value); + } + + return $result; +} + ?> diff --git a/index.php b/index.php index 3a084147e..815b9376c 100644 --- a/index.php +++ b/index.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -67,7 +67,7 @@ if (isset($page['category'])) check_restrictions($page['category']['id']); } -if ( count($page['items']) > $user['nb_image_page']) +if (count($page['items']) > $user['nb_image_page']) { $page['navigation_bar'] = create_navigation_bar( duplicate_index_url(array(), array('start')), @@ -99,7 +99,7 @@ $page['body_id'] = 'theCategoryPage'; $template->set_filenames( array('index'=>'index.tpl') ); //-------------------------------------------------------------- category title $template_title = $page['title']; -if ( count($page['items']) > 0) +if (count($page['items']) > 0) { $template_title.= ' ['.count($page['items']).']'; } @@ -192,7 +192,7 @@ if (isset($page['category']) and is_admin()) ); } -if (is_admin() and !empty($page['items']) ) +if (is_admin() and !empty($page['items'])) { $template->assign_block_vars( 'caddie', @@ -262,6 +262,21 @@ if ( !empty($page['items']) ) } //------------------------------------------------------- category informations +// slideshow +// execute after init thumbs in order to have all picture informations +if (!empty($page['cat_slideshow_url'])) +{ + if (isset($_GET['slideshow'])) + { + redirect($page['cat_slideshow_url']); + } + else + { + $template->assign_block_vars( + 'slideshow', array('URL' => $page['cat_slideshow_url'])); + } +} + // navigation bar if ($page['navigation_bar'] != '') { diff --git a/install/db/67-database.php b/install/db/67-database.php new file mode 100644 index 000000000..8162f73d8 --- /dev/null +++ b/install/db/67-database.php @@ -0,0 +1,51 @@ + diff --git a/language/en_UK/common.lang.php b/language/en_UK/common.lang.php index dd23da6d5..23a7c8e1c 100644 --- a/language/en_UK/common.lang.php +++ b/language/en_UK/common.lang.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -382,5 +382,11 @@ $lang['reg_err_mail_address_dbl'] = 'a user use already this mail address'; $lang['Category results for'] = 'Category results for'; $lang['Tag results for'] = 'Tag results for'; $lang['from %s to %s'] = 'from %s to %s'; +$lang['start_play'] = 'Play of slideshow'; +$lang['stop_play'] = 'Pause of slideshow'; +$lang['start_repeat'] = 'Repeat the slideshow'; +$lang['stop_repeat'] = 'Not repeat the slideshow'; +$lang['inc_period'] = 'Increase waiting between pictures'; +$lang['dec_period'] = 'Decrease waiting between pictures'; ?> \ No newline at end of file diff --git a/language/es_ES/common.lang.php b/language/es_ES/common.lang.php index 1e03c9b98..e8e312ca7 100644 --- a/language/es_ES/common.lang.php +++ b/language/es_ES/common.lang.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $ $ // | last update : $2007-10-12 (ven., 12 oct. 2007)) $ @@ -381,4 +381,11 @@ $lang['reg_err_mail_address_dbl'] = 'Un utilizador ya utiliza esta dirección e- $lang['Category results for'] = 'Los resultados de las categorías para'; $lang['Tag results for'] = 'Los resultados de los tags para'; $lang['from %s to %s'] = 'de %s a %s'; +/* TODO */ $lang['start_play'] = 'Play of slideshow'; +/* TODO */ $lang['stop_play'] = 'Pause of slideshow'; +/* TODO */ $lang['start_repeat'] = 'Repeat the slideshow'; +/* TODO */ $lang['stop_repeat'] = 'Not repeat the slideshow'; +/* TODO */ $lang['inc_period'] = 'Increase waiting between pictures'; +/* TODO */ $lang['dec_period'] = 'Decrease waiting between pictures'; + ?> \ No newline at end of file diff --git a/language/fr_FR/common.lang.php b/language/fr_FR/common.lang.php index 46507322f..8efc46286 100644 --- a/language/fr_FR/common.lang.php +++ b/language/fr_FR/common.lang.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -381,5 +381,11 @@ $lang['reg_err_mail_address_dbl'] = 'un utilisateur utilise déjà cette adresse $lang['Category results for'] = 'Résultats des catégories pour'; $lang['Tag results for'] = 'Résultats des tags pour'; $lang['from %s to %s'] = 'de %s à %s'; +$lang['start_play'] = 'Lecture du diaporama'; +$lang['stop_play'] = 'Pause du diaporama'; +$lang['start_repeat'] = 'Répeter le diaporama'; +$lang['stop_repeat'] = 'Ne pas répeter le diaporama'; +$lang['inc_period'] = 'Augmenter l\'attente entre les images'; +$lang['dec_period'] = 'Diminuer l\'attente entre les images'; ?> \ No newline at end of file diff --git a/language/nl_NL/common.lang.php b/language/nl_NL/common.lang.php index efe9f27a5..188e26f6f 100644 --- a/language/nl_NL/common.lang.php +++ b/language/nl_NL/common.lang.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -382,4 +382,11 @@ $lang['reg_err_mail_address_dbl'] = 'Een andere gebruiker maakt al gebruik van d $lang['Category results for'] = 'Categorie resultaten voor'; $lang['Tag results for'] = 'Tag resultaten voor'; $lang['from %s to %s'] = 'van %s tot %s'; +/* TODO */ $lang['start_play'] = 'Play of slideshow'; +/* TODO */ $lang['stop_play'] = 'Pause of slideshow'; +/* TODO */ $lang['start_repeat'] = 'Repeat the slideshow'; +/* TODO */ $lang['stop_repeat'] = 'Not repeat the slideshow'; +/* TODO */ $lang['inc_period'] = 'Increase waiting between pictures'; +/* TODO */ $lang['dec_period'] = 'Decrease waiting between pictures'; + ?> \ No newline at end of file diff --git a/picture.php b/picture.php index ad8f67700..26e461daf 100644 --- a/picture.php +++ b/picture.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -78,7 +78,7 @@ function default_picture_content($content, $element_info) array('default_content'=>'picture_content.tpl') ); - if ( !isset($page['slideshow']) and isset($element_info['high_url']) ) + if ( !$page['slideshow'] and isset($element_info['high_url']) ) { $uuid = uniqid(rand()); $template->assign_block_vars( @@ -424,38 +424,65 @@ $url_admin = .'&image_id='.$page['image_id'] ; -$url_slide = add_url_params( - $picture['current']['url'], - array( 'slideshow'=>$conf['slideshow_period'] ) - ); +$slideshow_params = array(); +$slideshow_url_params = array(); - -$template->set_filename('picture', 'picture.tpl'); -if ( isset( $_GET['slideshow'] ) ) +if (isset($_GET['slideshow'])) { - $page['meta_robots']=array('noindex'=>1, 'nofollow'=>1); $page['slideshow'] = true; - if ( $conf['light_slideshow'] ) - { // Change template file - // Add local-slideshow.css file if exists - $template->set_filename('picture', 'slideshow.tpl'); - $css = get_root_url() . get_themeconf('template_dir') . '/theme/' - . get_themeconf('theme') . '/local-slideshow.css'; - if (file_exists($css)) + $page['meta_robots'] = array('noindex'=>1, 'nofollow'=>1); + + $slideshow_params = decode_slideshow_params($_GET['slideshow']); + $slideshow_url_params['slideshow'] = encode_slideshow_params($slideshow_params); + + if ($slideshow_params['play']) + { + $id_pict_redirect = ''; + if (isset($page['next_item'])) { - $template->assign_block_vars('slideshow', array()); + $id_pict_redirect = 'next'; + } + else + { + if ($slideshow_params['repeat'] and isset($page['first_item'])) + { + $id_pict_redirect = 'first'; + } + } + + if (!empty($id_pict_redirect)) + { + // $redirect_msg, $refresh, $url_link and $title are required for creating + // an automated refresh page in header.tpl + $refresh = $slideshow_params['period']; + $url_link = add_url_params( + $picture[$id_pict_redirect]['url'], + $slideshow_url_params + ); + $redirect_msg = nl2br(l10n('redirect_msg')); } } - if ( isset($page['next_item']) ) +} +else +{ + $page['slideshow'] = false; +} + +$template->set_filenames( + array( + 'picture' => + (($page['slideshow'] and $conf['light_slideshow']) ? 'slideshow.tpl' : 'picture.tpl'), + 'nav_buttons' => 'picture_nav_buttons.tpl')); + +if ($page['slideshow']) +{ + // Add local-slideshow.css file if exists + // Not only for ligth + $css = get_root_url() . get_themeconf('template_dir') . '/theme/' + . get_themeconf('theme') . '/local-slideshow.css'; + if (file_exists($css)) { - // $redirect_msg, $refresh, $url_link and $title are required for creating - // an automated refresh page in header.tpl - $refresh= $_GET['slideshow']; - $url_link = add_url_params( - $picture['next']['url'], - array('slideshow'=>$refresh) - ); - $redirect_msg = nl2br(l10n('redirect_msg')); + $template->assign_block_vars('slideshow', array()); } } @@ -514,7 +541,10 @@ foreach (array('first','previous','next','last') as $which_image) array( 'TITLE_IMG' => $picture[$which_image]['name'], 'IMG' => $picture[$which_image]['thumbnail'], - 'U_IMG' => $picture[$which_image]['url'], + // Params slideshow was transmit to navigation buttons + 'U_IMG' => + add_url_params( + $picture[$which_image]['url'], $slideshow_url_params) ) ); } @@ -527,6 +557,85 @@ foreach (array('first','previous','next','last') as $which_image) } } + +if ($page['slideshow']) +{ + //slideshow end + $template->assign_block_vars( + 'stop_slideshow', + array( + 'U_SLIDESHOW' => $picture['current']['url'], + ) + ); + + foreach (array('repeat', 'play') as $p) + { + $template->assign_block_vars( + ($slideshow_params[$p] ? 'stop' : 'start').'_'.$p, + array( + // Params slideshow was transmit to navigation buttons + 'U_IMG' => + add_url_params( + $picture['current']['url'], + array('slideshow' => + encode_slideshow_params( + array_merge($slideshow_params, + array($p => ! $slideshow_params[$p])) + ) + ) + ) + ) + ); + } + + foreach (array('dec', 'inc') as $op) + { + $new_period = $slideshow_params['period'] + ((($op == 'dec') ? -1 : 1) * $conf['slideshow_period_step']); + $new_slideshow_params = + correct_slideshow_params( + array_merge($slideshow_params, + array('period' => $new_period))); + $block_period = $op.'_period'; + + if ($new_slideshow_params['period'] === $new_period) + { + $template->assign_block_vars( + $block_period, + array( + // Params slideshow was transmit to navigation buttons + 'U_IMG' => + add_url_params( + $picture['current']['url'], + array('slideshow' => encode_slideshow_params($new_slideshow_params) + ) + ) + ) + ); + } + else + { + $template->assign_block_vars( + $block_period.'_unactive', + array() + ); + } + } +} +else +{ + $template->assign_block_vars( + 'start_slideshow', + array( + 'U_SLIDESHOW' => + add_url_params( + $picture['current']['url'], + array( 'slideshow'=>'')) + ) + ); + $template->assign_block_vars( + 'thumbnails',array('U_UP' => $url_up)); +} + $template->assign_vars( array( 'SECTION_TITLE' => $page['title'], @@ -537,10 +646,8 @@ $template->assign_vars( 'LEVEL_SEPARATOR' => $conf['level_separator'], 'U_HOME' => make_index_url(), - 'U_UP' => $url_up, 'U_METADATA' => $url_metadata, 'U_ADMIN' => $url_admin, - 'U_SLIDESHOW'=> $url_slide, 'U_ADD_COMMENT' => $url_self, ) ); @@ -642,7 +749,7 @@ if ( is_admin() ) } //--------------------------------------------------------- picture information -$header_infos = array(); //for html header use +$header_infos = array(); //for html header use // legend if (isset($picture['current']['comment']) and !empty($picture['current']['comment'])) @@ -789,21 +896,8 @@ foreach ($related_categories as $category) ); } -//slideshow end -if (isset($_GET['slideshow'])) -{ - if (!is_numeric($_GET['slideshow'])) - { - $_GET['slideshow'] = $conf['slideshow_period']; - } - - $template->assign_block_vars( - 'stop_slideshow', - array( - 'U_SLIDESHOW' => $picture['current']['url'], - ) - ); -} +// assign tpl picture_nav_buttons +$template->assign_var_from_handle('NAV_BUTTONS', 'nav_buttons'); // maybe someone wants a special display (call it before page_header so that // they can add stylesheets) diff --git a/plugins/c13y_upgrade/initialize.inc.php b/plugins/c13y_upgrade/initialize.inc.php index 7f0accc43..24de4d9cf 100644 --- a/plugins/c13y_upgrade/initialize.inc.php +++ b/plugins/c13y_upgrade/initialize.inc.php @@ -41,10 +41,14 @@ function c13y_upgrade() /* Check user with same e-mail */ $query = ' -select count(*) -from '.USERS_TABLE.' -where '.$conf['user_fields']['email'].' is not null -group by upper('.$conf['user_fields']['email'].') +select + count(*) +from + '.USERS_TABLE.' +where + '.$conf['user_fields']['email'].' is not null +group by + upper('.$conf['user_fields']['email'].') having count(*) > 1 limit 0,1 ;'; @@ -53,12 +57,49 @@ limit 0,1 { $can_be_deactivate = false; add_c13y( - l10n('c13y_exif_dbl_email_user'), + l10n('c13y_dbl_email_user'), null, null, - l10n('c13y_exif_correction_dbl_email_user')); + l10n('c13y_correction_dbl_email_user')); } + /* Check plugin included in Piwigo sources */ + $included_plugins = array('dew'); + $query = ' +select + id +from + '.PLUGINS_TABLE.' +where + id in ('. + implode( + ',', + array_map( + create_function('$s', 'return "\'".$s."\'";'), + $included_plugins + ) + ) + .') +;'; + + $result = pwg_query($query); + while ($row = mysql_fetch_assoc($result)) + { + $can_be_deactivate = false; + + $uninstall_msg_link = + ''. + sprintf(l10n('c13y_correction_obsolete_plugin'), $row['id']).''; + + add_c13y( + l10n('c13y_obsolete_plugin'), + null, + null, + $uninstall_msg_link); + } /* Check if this plugin must deactivate */ if ($can_be_deactivate) diff --git a/plugins/c13y_upgrade/language/en_UK/plugin.lang.php b/plugins/c13y_upgrade/language/en_UK/plugin.lang.php index d8db86284..90a712369 100644 --- a/plugins/c13y_upgrade/language/en_UK/plugin.lang.php +++ b/plugins/c13y_upgrade/language/en_UK/plugin.lang.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -27,6 +27,9 @@ // --------- Starting below: New or revised $lang ---- from Butterfly (1.8) $lang['c13y_upgrade_no_anomaly'] = 'No anomaly detected after application upgrade'; $lang['c13y_upgrade_deactivate'] = 'You can deactivate "Check upgrades" plugin'; -$lang['c13y_exif_dbl_email_user'] = 'Users with same email address'; -$lang['c13y_exif_correction_dbl_email_user'] = 'Delete duplicate users'; +$lang['c13y_dbl_email_user'] = 'Users with same email address'; +$lang['c13y_correction_dbl_email_user'] = 'Delete duplicate users'; +$lang['c13y_obsolete_plugin'] = 'Obsolete plugin'; +$lang['c13y_correction_obsolete_plugin'] = '"%s" plugin has been included in this application version and you must uninstall it.'; + ?> diff --git a/plugins/c13y_upgrade/language/es_ES/plugin.lang.php b/plugins/c13y_upgrade/language/es_ES/plugin.lang.php index ebe427afe..45e5d5c5e 100644 --- a/plugins/c13y_upgrade/language/es_ES/plugin.lang.php +++ b/plugins/c13y_upgrade/language/es_ES/plugin.lang.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -27,7 +27,9 @@ // --------- Starting below: New or revised $lang ---- from Butterfly (1.8) $lang['c13y_upgrade_no_anomaly'] = 'Ninguna anomalía detectada después de la puesta al día de la aplicación'; $lang['c13y_upgrade_deactivate'] = 'Usted puede desactivar el plugin Check upgrades'; -$lang['c13y_exif_dbl_email_user'] = 'Utilizadores con la misma dirección e-mail'; -$lang['c13y_exif_correction_dbl_email_user'] = 'Suprima a los utilizadores en duplicado'; +$lang['c13y_dbl_email_user'] = 'Utilizadores con la misma dirección e-mail'; +$lang['c13y_correction_dbl_email_user'] = 'Suprima a los utilizadores en duplicado'; +/* TODO */ $lang['c13y_obsolete_plugin'] = 'Obsolete plugin'; +/* TODO */ $lang['c13y_correction_obsolete_plugin'] = '"%s" plugin has been included in this application version and you must uninstall it.'; ?> diff --git a/plugins/c13y_upgrade/language/fr_FR/plugin.lang.php b/plugins/c13y_upgrade/language/fr_FR/plugin.lang.php index 512b8f5e6..bacf03e71 100644 --- a/plugins/c13y_upgrade/language/fr_FR/plugin.lang.php +++ b/plugins/c13y_upgrade/language/fr_FR/plugin.lang.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -27,7 +27,9 @@ // --------- Starting below: New or revised $lang ---- from Butterfly (1.8) $lang['c13y_upgrade_no_anomaly'] = 'Pas d\'anomalie détectée après la mise à jour de l\'application'; $lang['c13y_upgrade_deactivate'] = 'Vous pouvez désactiver le plugin "Check upgrades"'; -$lang['c13y_exif_dbl_email_user'] = 'Utilisateurs avec la même adresse email'; -$lang['c13y_exif_correction_dbl_email_user'] = 'Supprimez les utilisateurs en double'; +$lang['c13y_dbl_email_user'] = 'Utilisateurs avec la même adresse email'; +$lang['c13y_correction_dbl_email_user'] = 'Supprimez les utilisateurs en double'; +$lang['c13y_obsolete_plugin'] = 'Plugin obsolète'; +$lang['c13y_correction_obsolete_plugin'] = 'Le plugin "%s" a été inclus dans cette version de l\'application et vous devez le désinstaller.'; ?> diff --git a/template/yoga/icon/dec_period.png b/template/yoga/icon/dec_period.png new file mode 100644 index 0000000000000000000000000000000000000000..1e2425e78b665987fb70246316a70a6e58646738 GIT binary patch literal 1087 zcmV-F1i<@=P)fCbs_)&1I$T8 zK~#9!t(9GfRaF$ne{1h^?mgFgXYL(lbjlJfiOdHj(8wNi)WBrG{D4eKsUD_DBNAU? z40@=jr`~KTU&IC)N)Ush414h*9MjBf`WSFfsVu{fQs>S+XYbX+Ipf^)PEpQ+#XcO) zS!?b8`mg_j#%2Jlk%Gvzcfw?vsS7u`kpXMcbHmEH%xG^;lT22Yz@}&Sn%U@37f1U# zX{$t&lVmLT=2h+JKnElH7okTw_-f}oqMTslCg8djyt4oh#2?*;5!M02zy|`6{GXPD zb{zAr6(K-yWls@nSP$rim2-7Qd$R(ciHs+aEK?)@o9){kVGTUKGyn)L_7@2(>jB@r zX13FzuHU}(Ux!WwOBU}_C|fz7wQ%Ap>Xzsvb?8CHO`=S>hX$w|ApLm@Xmtn z*p??bH)L`K_2;2?@1NmltTD>8Io;L8S(Uy4>Y7zQ44h%pay!($z9n~ z)R8?!e|c|7pI8=nK&`=xpu)d9a2~i*vOe6t_O9Sf>)LLX@RQd5| zrBpz@N3sgF5n)szAHu0~-mQMM8pa6^1=hgv)2>66rk+Pa_uZMqCLXndcuncj-Xb`! zQWv-(Rmb{JDPgSOV~7Li!KwcZ;KV7Xt!35ke{w`21Xi#Hih0x+K~^|V6mMBI*6+7`%Db~OrSG~0c%oBjnD!d znp#G8ZwqSQ_U3iyoq|8TE7I4Wv~d*T0?VV;-YDf0>4#AT=TX4iJvCKjDC55@QynPtb$^LM z9%kMmY=0(CYgw3etI*S(XKG7|`r>;n%NAOeE=Yax0?X7&gGDYW1-WCoaR2-O=iuXm zF_%YfcDb9zi+-YoBz4bY|6lL*c0)*!@sGTlKy?0t{RIaqX55!rn`!_6002ovPDHLk FV1h4D1L6Px literal 0 HcmV?d00001 diff --git a/template/yoga/icon/dec_period_unactive.png b/template/yoga/icon/dec_period_unactive.png new file mode 100644 index 0000000000000000000000000000000000000000..1df2f1bc3287e2d44927b72b8612469d8e15a1b4 GIT binary patch literal 1169 zcmV;C1aA9@P)%zYfHCzw|UoWckbT1d!Og@V)xq8Z8`10;W?Za z=leY8e4p=8OG@W4glWJ60U(ynDL@#d>0$CVeZ~gmMqPX)003ss%psWN=T7V<0EGge zq-Z*o>o>BlYAt@B`~Lta6oOD(n8(Uzs`<04gDE)=u(t9AwAQx;;NDogXx21-YW&SD z>*-F_)YLu+Yyyq}D}eZDhpjU$5ro2msT@Dq#3TW+6v&a*)wzQ4`%t70tbLG z>Eh~^0hX070-zv&5{+jrxf@=qO>Nk)u>#m#QZ(IGuHR_ZRjp0>eeUDHeqbEnq+O5T z3P5dr>lKb1Z3J+utJb8pY};8O$nN68JX!tRdir9$Iv5;B(}h!s&0Dtnt+gwvtJZux z)NLKtA=-154?g?^D+670Wgu|M%NAZQUNmc(EL-^^Jw4r8E96@AFAjfw(6iPifeG(y z+wth2&v>I{TG$MjSQcI`cIwjh5}=;_s!Cf?WUSh1qDt5T^1SK2S*4+O**lVQ-XEb=@b zU6Bs6YtI*+6?wu12w!fQ3xwt`SZq4OEl$cLMQcZi2udk}q46N1T*s3^y2NmE2nNSy z+Lv?zM5Gg-t@RHX8yY7a?QM9ThvPVCt?@j+XvaaUWthJI^I5gV8e^1J8Y9XDh;&5` zE7Z694}SAl#nRH`G!!0Em}A? zIb~|Dr?n$K&r`=5>QYDQPG}LH5@gS4#ZCa7JwDhCEJ*aH8V(%#&TIbtTnbQ;t_~Xx zw<{~61&O3Dlv0cj1&Ak-Iz1-=#M%DtX1@QSp1xQ=uh!O>d+zed%o%xo z=gv3nHO9_sz8Ibq>Fzba^ZB_GKkAJ1_y>q53eX~gwW38t#S=-jW9R#}wW-l|TMssTffa1bDmalpVtsSg2v|ql&rp;Rk_EE5D8R~*0!`g=l|dF;heTqI2Gb1Uv?jMXJ%)= zZ)Pq3a|mE97;_z)jky}V!`ZB{-gRCZGSJ?Dt*Td}clbQ(WC9xNBUD#eIxj1i+Cik> zUZ20RV&V2%OrJ*)2m<)x`;f8{Vafa`Z-0=c{W2_jBFe7)X<9BRU+qkCTcssxpxeW$ zbzSUuFAczqsSf8X1R>0i@ql?x~LB>~J85VC1BxjB}Ifxt6B zIuRoTjyp@L^Jt2iD#Pd73z$>q0I0sT{}Bz~027bqf4|(k2++oR#cyafK}iw?zBWQ> zZcntNP_B7c27v=agc(NAraB3Ztc!#vcf@u3N}Cy$>T^^6#rrC!ZY6u($Q~uJ<00+2GF|8eBiV`9{8R^qTp4ukHpdDRERfQoD6T%QhREm-k zE?nPjMQE=cV-N59G60|w_)Buk85DwAlV#lEdgnX#C$(#Df$!W~p!!K+*gPu|<`^`u zxBynpF*x8?;4X#nIf_aik$F+3czCsWcFJyBRVW0g_lQeczv8t&c=KRJoMpieZ^ZXa zTHb9dif!m}CHAaW&d#fKyt6t^XSd=#SSzG6%FpMNWE^UqzdR-yk;rp%$Mu+@Lu1_+ zdx#H<`4wwVu=S%Zah3%?ZZ6m}ae1e+hM==s2ISTZ0t+}1Qoy0o;<$dd>yfnn(i|+C zdvgeQXPKXSI|ophfQq62N{2HLcvw^)W9OQ3!fp?$*tj4Kzl$-bDsfc~j2@nvasT8| z?Ed&Ctf49N>;c@dtrbDr#SB%W9irEudvCW|_)sZ&td5>fYte7&IK6u^fEWRRIPflT z+6a&KMqXBAIl5&cdSW_yxEB3(TAq54bMoY@vFM3sIrV-cV@4G8DLEg1vu7_G56CeX?&<+1MuIG$3a>K^uiVXY% XPsoo*umrM500000NkvXXu0mjfgl8Nc literal 0 HcmV?d00001 diff --git a/template/yoga/icon/inc_period_unactive.png b/template/yoga/icon/inc_period_unactive.png new file mode 100644 index 0000000000000000000000000000000000000000..ac1c7ca032ced9a4685ca9ab8e54d59ddf43d65d GIT binary patch literal 1255 zcmV1awJ6 zK~#9!y_S7wmQ@(Wf9E{U^FHss)ouE2&f(^klew9?bVieMGs7(hVSW?_iV~yH>4d;A z5Gh7%U}hlsM~WpZO)wElF;XgY&5z2FQdYLiIdyZJ`*@#^bNXZNtBuVZLEUiRz`42Z zo9nvn`*}oVMH&BP$dM)r#IW~=g*nnhjUM)H8U|Bx(~ySb*Q;%G-R&Q~K+p~_HYMSH zmqOtCia)Nm6SM<7QCz^8re+-1r({kcXPTPn?RVH%vyM=DCQ=$G<+E?kdo-T^34p8# zsh9$RMl(4lMAh2OwBKsQG))ZCqPM4;&2MZWXJRU=sy5ME_d4wzovf2R zKy`IBOP*VRQi_F(mT~dY+w}H@S-N}$A}VrRtj&h?>)HBdtsKP6fKD0^1B}S9@2ge7 zPQ#Ff@2hhHQCeSL*H!!07M@?Sm=nj2a_P!-QpUvJDOqE3z)QfM+^mq! z$(g9WIC<6xJ8mOT4zvTN9k86R;|>wo2T)24XAvXvUIy&R&mHg2DVZx06Gt0?fbD&D z{F_-}$2|fp0PchxH`>fSo2m#6Lykabz>C~dq!21CJ)~2T$4NkEO`2jpyYNXjXj`*@ z&wmDX^a@?LX16f_*2XX zud=7-t{aSr6Rzw0GcX9lFm$-DPo##@F-;q#JS~M3!Pt2J!w+^CKzCYt=9k|$|BR@t zD9Z+#BI=K9ErBS=%g{?-TqCqr8W6S}RQvYs5Gz-| zg5x+SCnhn+Nq{-9d`|oZQr_Wv%0G=sxp&MPuVR zCZvsGVop9s5A7XH(Qq*>Ka-Ygw`srAGxG1SVNmpF4yVsvet3cZ?XTkB#$RJ1zBghV R;#B|u002ovPDHLkV1g~1RILC2 literal 0 HcmV?d00001 diff --git a/template/yoga/icon/pause.png b/template/yoga/icon/pause.png new file mode 100644 index 0000000000000000000000000000000000000000..6a3928c51255026c36f00cba978b30cf7c84027d GIT binary patch literal 1597 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 SWt%Sm0000*}R4FTvfGln3f3n+l*_pZboa4jH zY`4%_ImyYnHu+#*XHehHcHu8yiG$(-`)c*cCy= zXm*o{`)7>tyBd}*e>>CKcK6b6zdwH&f^nmHTm<>2pIYPn7l3;EoloNTu3o#o`_Zm_ z0J?ll@HN2@!*Ogljs?q75COC%Xpg`G*p`AZ!rE~0^dCQ$zw0~v(UBvEdv9Z~?cLY> z;o*PIwY4@)JB|er0gJ#GLdDf^Jq^#((3&8k0Hr`A5MkIhe=IwWOe}6^;_=k)7hm|3=xPJh8UUxeT|vbS`$MX0#VRq!~#H& zbkgpk0G>}?+*lz%kYN5u0l1;yJVaoLSzIE|H*VA=#1eE1F(|CGmK_mS&T&NT@7Oam(Hhf5*SHgB=9bCs0)eS{s+5iiu$i z*T@wDFoSE72T^b>e^viBJm3JZYZ#ykuzlxenS6et$=3#kDU^v}IFg8GE04;nb`f9< zX`}rFfLQ2G=(Ym@xv@XvZ7WxetwSk+AZ#0b_1!iU@=lPzqk9 zVgRH8e-Ho@Is?$PbnxlEADvV>-cnzmy3cc`HWUiu8wIj@W&5hGWICBtHeiULtl%{! zM$EEtX5{z&H(q_=l`wGxaudLeQw#9&i`@pmWdK(!%f66Eq()m-v^Dqk?s@Opc&Rj9 zE=`eWZf)=ANT!oXZ8Q)QkRb+87bYhFWdKD0e`GJvy7eNGVK&a@&CfsPIO){xT_5a! z@PQ30ckOt8@9rJFhfWO)47oFIK4vA##bO~b^6OyE^W12nuL76>AZnp|LMdhS^z6N> zv$J#mo;^EH^z|L;-?ZtuN3z)`vOPUpzbF(YiU34emX%J|HM*7Z6cH5xTne4$4B9Ow zezs;{|u#qgFbuRj!v#m@m466TTe%+w$eT>>x(pb#a$ zYqe-K}|sb0I$e51&ZmBAryZEO-V#SRCwB@m1~GqRTRg6YwvUJ zz4LIo6FN#M>5!FL5(I&mPUV=4m4;EiCb2+!2nxLjCP7jtf(nY#9u#6tnuU)H!!)fx zYt%@M>5HKmiOyu^%=O+o_uRc#AMUv_jt*L_FXyoLTI;|5|FhOQ@b66eI}?GxUS2@i z>Vbc2fnw|z0egYmMSMpBOMr2)|1-e1fawo#81PpZps5g7nItj>1>TPDO|RfdfFD{X zI=3k-3`&av>*G5cTm(RY5dyUvTT)TF8q?9`{Mucfb>F!gjREgbz>45i8C`$1k*#l3 z=C2zQn1;FCbnbID_PdZmYzlDAAY+Hrim`vz+nP!Md@oJCDgb+qcY3BjnN4;abH?_O zzCQo~=!u{wQk)l@zrf!EMqppQz~VnTyd(ngTqXeJ&M*Q}BGf-s*ee2IfQa-yz68MK zSX^r070zUoV)1+i!GFryi$GlJ$xN2w(5c-fJ~-q{V#)tyP>!EgRYCATV^|ziD*%60 zj> z`_@ebfc^3Lxj_>^MW_^*hEf-E>AOk-5oU?-rz+clWDIsTn^%sV@N{PZ$d=p4^h%ym z<Rj(>v>@T>M)n0Nv&@?`f_m@^k=NVO1-1vtxK_u^5$jYdl7cEY54nPp&7*$>=Vj;5QE_>zx49mE1dcDBpOkM7I2}7P!}ax6rcMX} z8jOwix>r84hFPmN{3?r9{6bJ|y)U((8iAry{ywW(l|uF(c2Ub}7o5(}7FZ?$C${a3 zxOYO}-)*TNVIcnSiEY~jEcNZO9!1~u(3yhziQKv}Wqu(DW0vz>yrYQgjEHeSWa7yTOOLeh*WlDFv82T?? zNE8OAQQ!w7qyb|}t-EN{2%}%Gs>&VNJfQIC{fPpgMwouF2|W*_`Hn!_S5_21c`gwR zsYQV{Bh<#eiTL?M?Ert#=?y{Qs)6F-nR>O)>bVfa8fI8Sml4zm8d|o)x#Yc9%$2|g zz&79=O8@A7lb6kg7B;n{hAw|7Y+lxE@0vHsmVwU;EHAIIBMk@FR?~QE0ANg9!atiz zzhrwoqfr0=02y>eSaefwW^{L9a%BKPWN%_+AW3auXJt}lVPp|`ami&o00000NkvXX Hu0mjfnwd8f diff --git a/template/yoga/icon/start_repeat.png b/template/yoga/icon/start_repeat.png new file mode 100644 index 0000000000000000000000000000000000000000..74272979e4a6f0650dec35c0e16c09addd432bfb GIT binary patch literal 1691 zcmV;M24wk(P)+S)=O zKp()g)xva`wsfY`$8G1%z4x56&)&-qb4Mp?T*=PfYwxW8T5IpU)?fH1WxyEL z3k)iBH})q~IqH@Dz-YrRXq+kkM@$18flYy7Kaezx{G54qT{VVhf!qGmer~jL!9CDz zghv(bQN_2HL~dUh_|^SJJ6e%6gEJSs9)8Em(bL|f8HgY#zg5@@)Ec-t*TF3K3S-#o zJ^dXmVz+-WlCN!ug3jwi6j8}kGKVIa=UP=6KI7Q&V&?w%vd1f-2ydve37DL9B6GYg z3=A(hPv6G|jD2!@Q@CJBllWSwV!fz~Nv)%vDv4DR>rqt2Aba0%y8Ur$%hTjUcukcJ zKy~(EW>OG#dF7_{s{;GtP)k&7?&R83w>asLOq;RJ5K<)Shl?4yb+_e&Wx_Q-783w? zWh1c67~vBD8`lQDy(CyCVy7pmcHPJP{?+)j20>xwB7K7T6z8Eme;MpmY;}UJHQ%As zGf1tP$dUyCi@R|^iwL(HU@gGveuH(OKBb&AF|Tg}l2z~$!0F$h^>H*PV$&EOw&2Eg zQa-gC2}>9g(XssVq$%Vhp|4A3i)^h?r3av+gv3@PO%v+DVu~%DIOmYs80Pr*;K(;{ zmtG;Yj?@Xx!^Pt}u~~-tl;+MA5Q6uPd8L1qac?+VY?+5NQ!?wxq9y`SR27|mkIZ`9 z`2*Oq`$;t-v5rg)wdpIQagC@cz=Q=nIWp%&|J{uw6yXvI6J=GKd5x`zrk8QHhKAsC z-PE!I&SzxaU~NX~L(;?(7Z#B#6i{EsCex&8N*IM&o^HS^lLiX1d1QPFZ?o<@-%T=Bef}MeTuVJ3v{p9LPQJ_aCPDYX#&;6aAr~)_zWAb>;pJ- z+{r}Qle$1{5;Jw`_b3Hie37P=+b}D?Puce|8Fw)uA7SCgAEkfUAZb#;XECF1K7$F- zk@KE&mk5AZm4l%w`;2h%+$9E{d)@i_?hvUYd6H8*DfNDo_NDh=>lf)-^8hW&HP8@oKqx*kFsTAsK|M0Twkorb<-Uj@Awq55$ctw>P z*IqB#&^LoH9~rI3UIH8)OE=Q}!Ou`^TY?F4Wa%{Ji4&YYvWs&gZ_&~c>d3g4p(nkq z)QNy+fzJXWbGTr&5e|8!bydG)Ke*R~i@S|hV~Fck6bSN7AbFCwO1+k10<=(!V9Cw^0yxP*>^X;`cRwvZOF*u+d|V^m_z!ZnQ0T- zzZCJ)`}0&|F^DI=@hM;ExwZJhb5C#h>%KqTIec@CpD-e1vEki+W-In8FWQhbW?9;ba!EL lWdK2BZ(?O2No`?gWm08fWO;GPWjp`?002ovPDHLkV1f!dG64Vp literal 0 HcmV?d00001 diff --git a/template/yoga/icon/stop_repeat.png b/template/yoga/icon/stop_repeat.png new file mode 100644 index 0000000000000000000000000000000000000000..f1cc1b564c5590f4176604170d63506213c1fe31 GIT binary patch literal 1683 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 Hu0mjf)wMrz literal 0 HcmV?d00001 diff --git a/template/yoga/index.tpl b/template/yoga/index.tpl index 534031493..a388d904b 100644 --- a/template/yoga/index.tpl +++ b/template/yoga/index.tpl @@ -27,6 +27,10 @@
  • (?)
  • + +
  • {lang:slideshow}
  • + +
  • {lang:mode_normal_hint}
  • diff --git a/template/yoga/picture.tpl b/template/yoga/picture.tpl index 7c5f34231..e5e62333e 100644 --- a/template/yoga/picture.tpl +++ b/template/yoga/picture.tpl @@ -30,55 +30,33 @@
    - -
    - {lang:slideshow} - {lang:picture_show_metadata} - - {lang:download} - - {PLUGIN_PICTURE_ACTIONS} - - {favorite.FAVORITE_ALT} - - - {lang:representative} - - - {lang:link_info_image} - - - {lang:caddie} - -
    - - +
    + + {lang:slideshow} + + + {lang:slideshow_stop} + + {lang:picture_show_metadata} + + {lang:download} + + {PLUGIN_PICTURE_ACTIONS} + + {favorite.FAVORITE_ALT} + + + {lang:representative} + + + {lang:link_info_image} + + + {lang:caddie} + +
    + {NAV_BUTTONS} +
    @@ -228,31 +206,3 @@ - \ No newline at end of file diff --git a/template/yoga/picture_nav_buttons.tpl b/template/yoga/picture_nav_buttons.tpl new file mode 100644 index 000000000..a25e2639f --- /dev/null +++ b/template/yoga/picture_nav_buttons.tpl @@ -0,0 +1,91 @@ + + + + diff --git a/template/yoga/slideshow.tpl b/template/yoga/slideshow.tpl index aef05a228..1be2c5a81 100644 --- a/template/yoga/slideshow.tpl +++ b/template/yoga/slideshow.tpl @@ -10,9 +10,14 @@

    {TITLE}

    + +
    + {NAV_BUTTONS} +
    +
    {ELEMENT_CONTENT} - -

    {legend.COMMENT_IMG}

    - + +

    {legend.COMMENT_IMG}

    +