Changeset 5153


Ignore:
Timestamp:
03/17/10 01:48:38 (10 years ago)
Author:
plg
Message:

feature 1514: new screen to manage installed themes; activate, deactivate,
delete, set as default.

plugins.class.php was merged back to a state it doesn't manage themes at all.
themes.class.php was created instead, from a duplication of plugins.class.php
and strongly modified then.

feature 1507: the display of available themes is now much more "graphic".

Location:
trunk
Files:
9 added
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin.php

    r5143 r5153  
    124124    'U_CONFIG_EXTENTS'=> $link_start.'extend_for_templates', 
    125125    'U_CONFIG_MENUBAR'=> $link_start.'menubar', 
    126     'U_CONFIG_THEMES'=> $link_start.'themes_new', 
     126    'U_CONFIG_THEMES'=> $link_start.'themes_installed', 
    127127    'U_CATEGORIES'=> $link_start.'cat_list', 
    128128    'U_MOVE'=> $link_start.'cat_move', 
  • trunk/admin/include/plugins.class.php

    r5143 r5153  
    269269   * Retrieve PEM server datas to $server_plugins 
    270270   */ 
    271   function get_server_plugins($new=false, $ext_type='plugin') 
     271  function get_server_plugins($new=false) 
    272272  { 
    273273    global $user; 
    274  
    275     $pem_category_id = 12; 
    276     if ('theme' == $ext_type) 
    277     { 
    278       $pem_category_id = 10; 
    279     } 
    280274 
    281275    // Retrieve PEM versions 
    282276    $version = PHPWG_VERSION; 
    283277    $versions_to_check = array(); 
    284     $url = PEM_URL . '/api/get_version_list.php?category_id='.$pem_category_id.'&format=php'; 
     278    $url = PEM_URL . '/api/get_version_list.php?category_id=12&format=php'; 
    285279    if (fetchRemote($url, $result) and $pem_versions = @unserialize($result)) 
    286280    { 
     
    314308 
    315309    // Retrieve PEM plugins infos 
    316     $url = PEM_URL . '/api/get_revision_list.php?category_id='.$pem_category_id.'&format=php&last_revision_only=true'; 
     310    $url = PEM_URL . '/api/get_revision_list.php?category_id=12&format=php&last_revision_only=true'; 
    317311    $url .= '&version=' . implode(',', $versions_to_check); 
    318312    $url .= '&lang=' . substr($user['language'], 0, 2); 
     
    371365    * @param string - plugin id or extension id 
    372366   */ 
    373   function extract_plugin_files($action, $revision, $dest, $ext_type = 'plugin') 
    374   { 
    375     if ('plugin' == $ext_type) 
    376     { 
    377       $install_basedir = PHPWG_PLUGINS_PATH; 
    378       $main_filename = 'main.inc.php'; 
    379     } 
    380     elseif ('theme' == $ext_type) 
    381     { 
    382       $install_basedir = PHPWG_ROOT_PATH.'themes/'; 
    383       $main_filename = 'themeconf.inc.php'; 
    384     } 
    385     else 
    386     { 
    387       fatal_error('unknown extension type "'.$ext_type.'"'); 
    388     } 
    389      
    390     if ($archive = tempnam( $install_basedir, 'zip')) 
     367  function extract_plugin_files($action, $revision, $dest) 
     368  { 
     369    if ($archive = tempnam( PHPWG_PLUGINS_PATH, 'zip')) 
    391370    { 
    392371      $url = PEM_URL . '/download.php?rid=' . $revision; 
     
    403382          { 
    404383            // we search main.inc.php in archive 
    405             if (basename($file['filename']) == $main_filename 
     384            if (basename($file['filename']) == 'main.inc.php' 
    406385              and (!isset($main_filepath) 
    407386              or strlen($file['filename']) < strlen($main_filepath))) 
     
    415394            if ($action == 'upgrade') 
    416395            { 
    417               $extract_path = $install_basedir . $dest; 
     396              $extract_path = PHPWG_PLUGINS_PATH . $dest; 
    418397            } 
    419398            else 
    420399            { 
    421               $extract_path = $install_basedir 
     400              $extract_path = PHPWG_PLUGINS_PATH 
    422401                  . ($root == '.' ? 'extension_' . $dest : basename($root)); 
    423402            } 
  • trunk/admin/themes/default/default-layout.css

    r5145 r5153  
    738738} 
    739739 
    740 .themeBox {float:left; text-align:center; height:170px; background-color:#eee; margin:5px; -moz-border-radius:5px;} 
     740.themeBox {float:left; text-align:center; height:180px; background-color:#eee; margin:5px; -moz-border-radius:5px;} 
    741741.themeBox IMG {border:1px solid white; margin:0 15px;} 
    742742.themeName {font-size:1.1em; margin:5px 0;} 
    743 .themeActions {margin:5px 0;} 
    744 .themeActions A {display:block;} 
     743.themeActions {margin:5px 0; font-size:12px;} 
     744.themeActions A {} 
     745 
     746#themesContent .themeBox IMG {width:150px; height:120px;} 
     747#themesContent H3 {font-size:16px; text-align:left; border-bottom:1px solid #444; letter-spacing:1px; margin:5px;} 
     748 
     749.themeBoxes {min-height:300px;} 
  • trunk/admin/themes/default/template/footer.tpl

    r5123 r5153  
    4646<script type='text/javascript'> 
    4747  $(function() { 
    48     $('#pwgHead A, #footer A').tipTip({ 
     48    $('#pwgHead A, #footer A, .themeActions A').tipTip({ 
    4949        'delay' : 0, 
    5050        'fadeIn' : 200, 
  • trunk/admin/themes/default/template/themes_new.tpl

    r5145 r5153  
    11<div class="titrePage"> 
    2   <h2>{'Install New Theme'|@translate}</h2> 
     2  <h2>{'Add New Theme'|@translate}</h2> 
    33</div> 
    44 
    55{if isset($themes)} 
    6 <div id="themesBox"> 
     6<div id="themeBoxes"> 
    77{foreach from=$new_themes item=theme name=themes_loop} 
    88  <div class="themeBox"> 
    99    <div class="themeName">{$theme.name}</div> 
    10     <div class="themeShot"><img src="{$theme.src}"></div> 
    11     <div class="themeActions"><a href="{$theme.install_url}">Install</a></div> 
     10    <div class="themeShot"><img src="{$theme.screenshot}"></div> 
     11    <div class="themeActions"><a href="{$theme.install_url}">{'Install'|@translate}</a></div> 
    1212  </div> 
    1313{/foreach} 
    14 </div> <!-- themesBox --> 
     14</div> <!-- themeBoxes --> 
    1515{/if} 
  • trunk/admin/themes/roma/theme.css

    r5145 r5153  
    223223.themeName {color:white;} 
    224224.themeActions A {border-bottom:none;} 
     225 
     226.themeDefault {background-color:#555;} 
  • trunk/admin/themes_new.php

    r5143 r5153  
    33// | Piwigo - a PHP based picture gallery                                  | 
    44// +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2009 Piwigo Team                  http://piwigo.org | 
     5// | Copyright(C) 2008-2010 Piwigo Team                  http://piwigo.org | 
    66// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    77// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
     
    2727} 
    2828 
    29 include_once(PHPWG_ROOT_PATH.'admin/include/plugins.class.php'); 
     29include_once(PHPWG_ROOT_PATH.'admin/include/themes.class.php'); 
    3030 
    3131$base_url = get_root_url().'admin.php?page='.$page['page']; 
    3232 
    33 $themes = new plugins(); 
     33$themes = new themes(); 
     34$themes->set_tabsheet('themes_new'); 
    3435 
    3536// +-----------------------------------------------------------------------+ 
     
    5556if (isset($_GET['revision']) and isset($_GET['extension']) and !is_adviser()) 
    5657{ 
    57   $install_status = $themes->extract_plugin_files( 
     58  $install_status = $themes->extract_theme_files( 
    5859    'install', 
    5960    $_GET['revision'], 
    60     $_GET['extension'], 
    61     'theme' 
     61    $_GET['extension'] 
    6262    ); 
    6363   
     
    106106$template->set_filenames(array('themes' => 'themes_new.tpl')); 
    107107 
    108 if ($themes->get_server_plugins(true, 'theme')) 
     108if ($themes->get_server_themes(true)) // only new themes 
    109109{ 
    110   foreach($themes->server_plugins as $theme) 
     110  foreach($themes->server_themes as $theme) 
    111111  { 
    112112    $url_auto_install = htmlentities($base_url) 
     
    119119      array( 
    120120        'name' => $theme['extension_name'], 
    121         'src' => PEM_URL.'/upload/extension-'.$theme['extension_id'].'/thumbnail.jpg', 
     121        'screenshot' => PEM_URL.'/upload/extension-'.$theme['extension_id'].'/thumbnail.jpg', 
    122122        'install_url' => $url_auto_install, 
    123123        ) 
  • trunk/include/config_default.inc.php

    r5138 r5153  
    769769// where should the user be guided when there is no photo in his gallery yet? 
    770770$conf['no_photo_yet_url'] = 'admin.php?page=photos_add'; 
     771 
     772// directory with themes inside 
     773$conf['themes_dir'] = PHPWG_ROOT_PATH.'themes'; 
    771774?> 
  • trunk/include/constants.php

    r5014 r5153  
    2525define('PHPWG_VERSION', 'Colibri'); 
    2626define('PHPWG_DEFAULT_LANGUAGE', 'en_UK'); 
    27 define('PHPWG_DEFAULT_TEMPLATE', 'yoga/Sylvia'); 
     27define('PHPWG_DEFAULT_TEMPLATE', 'Sylvia'); 
     28 
     29define('PHPWG_THEMES_PATH', $conf['themes_dir'].'/'); 
    2830 
    2931// Required versions 
     
    98100if (!defined('OLD_PERMALINKS_TABLE')) 
    99101  define('OLD_PERMALINKS_TABLE', $prefixeTable.'old_permalinks'); 
     102if (!defined('THEMES_TABLE')) 
     103  define('THEMES_TABLE', $prefixeTable.'themes'); 
    100104 
    101105?> 
  • trunk/include/functions.inc.php

    r5138 r5153  
    714714function get_pwg_themes() 
    715715{ 
    716   global $conf; 
    717716  $themes = array(); 
    718717 
    719   $template_dir = PHPWG_ROOT_PATH.'themes'; 
    720  
    721   foreach (get_dirs($template_dir) as $theme) 
    722   { 
    723     if ( $theme != 'default' ) 
    724           { 
    725       array_push($themes, $theme); 
    726           } 
     718  $query = ' 
     719SELECT 
     720    id, 
     721    name 
     722  FROM '.THEMES_TABLE.' 
     723  ORDER BY name ASC 
     724;'; 
     725  $result = pwg_query($query); 
     726  while ($row = pwg_db_fetch_assoc($result)) 
     727  { 
     728    $themes[ $row['id'] ] = $row['name']; 
    727729  } 
    728730 
    729731  // plugins want remove some themes based on user status maybe? 
    730732  $themes = trigger_event('get_pwg_themes', $themes); 
     733   
    731734  return $themes; 
    732735} 
  • trunk/install/piwigo_structure-mysql.sql

    r5123 r5153  
    294294 
    295295-- 
     296-- Table structure for table `piwigo_themes` 
     297-- 
     298 
     299DROP TABLE IF EXISTS `piwigo_themes`; 
     300CREATE TABLE `piwigo_themes` ( 
     301  `id` varchar(64) NOT NULL default '', 
     302  `version` varchar(64) NOT NULL default '0', 
     303  `name` varchar(64) default NULL, 
     304  PRIMARY KEY  (`id`) 
     305) TYPE=MyISAM; 
     306 
     307-- 
    296308-- Table structure for table `piwigo_upgrade` 
    297309-- 
  • trunk/profile.php

    r5123 r5153  
    258258      )); 
    259259 
    260   foreach (get_pwg_themes() as $pwg_theme) 
    261   { 
    262     if (isset($_POST['submit']) or $userdata['theme'] == $pwg_theme) 
    263     { 
    264       $template->assign('template_selection', $pwg_theme); 
    265     } 
    266     $template_options[$pwg_theme] = $pwg_theme; 
    267   } 
    268   $template->assign('template_options', $template_options); 
     260  $template->assign('template_selection', $userdata['theme']); 
     261  $template->assign('template_options', get_pwg_themes()); 
    269262 
    270263  foreach (get_languages() as $language_code => $language_name) 
Note: See TracChangeset for help on using the changeset viewer.