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".

git-svn-id: http://piwigo.org/svn/trunk@5153 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
plegall 2010-03-17 00:48:38 +00:00
parent 54148c8d60
commit f82430dd3b
21 changed files with 929 additions and 66 deletions

View file

@ -268,20 +268,14 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id=\'' . $plugin_id . '\'';
/**
* Retrieve PEM server datas to $server_plugins
*/
function get_server_plugins($new=false, $ext_type='plugin')
function get_server_plugins($new=false)
{
global $user;
$pem_category_id = 12;
if ('theme' == $ext_type)
{
$pem_category_id = 10;
}
// Retrieve PEM versions
$version = PHPWG_VERSION;
$versions_to_check = array();
$url = PEM_URL . '/api/get_version_list.php?category_id='.$pem_category_id.'&format=php';
$url = PEM_URL . '/api/get_version_list.php?category_id=12&format=php';
if (fetchRemote($url, $result) and $pem_versions = @unserialize($result))
{
if (!preg_match('/^\d+\.\d+\.\d+/', $version))
@ -313,7 +307,7 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id=\'' . $plugin_id . '\'';
}
// Retrieve PEM plugins infos
$url = PEM_URL . '/api/get_revision_list.php?category_id='.$pem_category_id.'&format=php&last_revision_only=true';
$url = PEM_URL . '/api/get_revision_list.php?category_id=12&format=php&last_revision_only=true';
$url .= '&version=' . implode(',', $versions_to_check);
$url .= '&lang=' . substr($user['language'], 0, 2);
$url .= '&get_nb_downloads=true';
@ -370,24 +364,9 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id=\'' . $plugin_id . '\'';
* @param string - archive URL
* @param string - plugin id or extension id
*/
function extract_plugin_files($action, $revision, $dest, $ext_type = 'plugin')
function extract_plugin_files($action, $revision, $dest)
{
if ('plugin' == $ext_type)
{
$install_basedir = PHPWG_PLUGINS_PATH;
$main_filename = 'main.inc.php';
}
elseif ('theme' == $ext_type)
{
$install_basedir = PHPWG_ROOT_PATH.'themes/';
$main_filename = 'themeconf.inc.php';
}
else
{
fatal_error('unknown extension type "'.$ext_type.'"');
}
if ($archive = tempnam( $install_basedir, 'zip'))
if ($archive = tempnam( PHPWG_PLUGINS_PATH, 'zip'))
{
$url = PEM_URL . '/download.php?rid=' . $revision;
$url .= '&origin=piwigo_' . $action;
@ -402,7 +381,7 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id=\'' . $plugin_id . '\'';
foreach ($list as $file)
{
// we search main.inc.php in archive
if (basename($file['filename']) == $main_filename
if (basename($file['filename']) == 'main.inc.php'
and (!isset($main_filepath)
or strlen($file['filename']) < strlen($main_filepath)))
{
@ -414,11 +393,11 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id=\'' . $plugin_id . '\'';
$root = dirname($main_filepath); // main.inc.php path in archive
if ($action == 'upgrade')
{
$extract_path = $install_basedir . $dest;
$extract_path = PHPWG_PLUGINS_PATH . $dest;
}
else
{
$extract_path = $install_basedir
$extract_path = PHPWG_PLUGINS_PATH
. ($root == '.' ? 'extension_' . $dest : basename($root));
}
if($result = $zip->extract(PCLZIP_OPT_PATH, $extract_path,