From 4cd5b05d406a9820a0523ac26f254f4ce4fd5147 Mon Sep 17 00:00:00 2001 From: rvelices Date: Tue, 28 Feb 2006 01:13:16 +0000 Subject: remake of Remote sites and synchronize: final integration and old code cleanup fix: xml getAttribute always decodes html entities and added encodeAttribute function git-svn-id: http://piwigo.org/svn/trunk@1058 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/site_manager.php | 516 ++++++++++++++++++++++++------------------------- 1 file changed, 257 insertions(+), 259 deletions(-) (limited to 'admin/site_manager.php') diff --git a/admin/site_manager.php b/admin/site_manager.php index 0f8ca7d41..b6f3b8f24 100644 --- a/admin/site_manager.php +++ b/admin/site_manager.php @@ -1,260 +1,258 @@ -assign_block_vars('remote_output', array()); - // cleaning lines from HTML tags - foreach ($lines as $line) - { - $line = trim(strip_tags($line)); - if (preg_match('/^PWG-([A-Z]+)-/', $line, $matches)) - { - $template->assign_block_vars( - 'remote_output.remote_line', - array( - 'CLASS' => 'remote'.ucfirst(strtolower($matches[1])), - 'CONTENT' => $line - ) - ); - } - } - } - else - { - array_push($page['errors'], l10n('remote_site_file_not_found')); - } -} - - -// +-----------------------------------------------------------------------+ -// | template init | -// +-----------------------------------------------------------------------+ -$template->set_filenames(array('site_manager'=>'admin/site_manager.tpl')); - -// +-----------------------------------------------------------------------+ -// | new site creation form | -// +-----------------------------------------------------------------------+ -if (isset($_POST['submit'])) -{ - $is_remote = url_is_remote( $_POST['galleries_url'] ); - $url = preg_replace('/[\/]*$/', '', $_POST['galleries_url']); - $url.= '/'; - if (! $is_remote) - { - if ( ! (strpos($url, '.') === 0 ) ) - { - $url = './' . $url; - } - } - - // site must not exists - $query = ' -SELECT COUNT(id) AS count - FROM '.SITES_TABLE.' - WHERE galleries_url = \''.$url.'\' -;'; - $row = mysql_fetch_array(pwg_query($query)); - if ($row['count'] > 0) - { - array_push($page['errors'], - l10n('remote_site_already_exists').' ['.$url.']'); - } - if (count($page['errors']) == 0) - { - if ($is_remote) - { - $clf_url = $url.'create_listing_file.php'; - $clf_url.= '?action=test'; - $clf_url.= '&version='.PHPWG_VERSION; - if ($lines = @file($clf_url)) - { - $first_line = strip_tags($lines[0]); - if (!preg_match('/^PWG-INFO-2:/', $first_line)) - { - array_push($page['errors'], - l10n('remote_site_error').' : '.$first_line); - } - } - else - { - array_push($page['errors'], l10n('remote_site_file_not_found') ); - } - } - else - { // local directory - if ( ! file_exists($url) ) - { - array_push($page['errors'], - l10n('Directory does not exist').' ['.$url.']'); - } - } - } - - if (count($page['errors']) == 0) - { - $query = ' -INSERT INTO '.SITES_TABLE.' - (galleries_url) - VALUES - (\''.$url.'\') -;'; - pwg_query($query); - array_push($page['infos'], - $url.' '.l10n('remote_site_created')); - } -} - -// +-----------------------------------------------------------------------+ -// | actions on site | -// +-----------------------------------------------------------------------+ -if (isset($_GET['site']) and is_numeric($_GET['site'])) -{ - $page['site'] = $_GET['site']; -} -if (isset($_GET['action']) and isset($page['site']) ) -{ - $query = ' -SELECT galleries_url - FROM '.SITES_TABLE.' - WHERE id = '.$page['site'].' -;'; - list($galleries_url) = mysql_fetch_array(pwg_query($query)); - switch($_GET['action']) - { - case 'generate' : - { - $title = $galleries_url.' : '.l10n('remote_site_generate'); - $template->assign_vars(array('REMOTE_SITE_TITLE'=>$title)); - remote_output($galleries_url.'create_listing_file.php?action=generate'); - break; - } - case 'test' : - { - $title = $galleries_url.' : '.l10n('remote_site_test'); - $template->assign_vars(array('REMOTE_SITE_TITLE'=>$title)); - remote_output($galleries_url.'create_listing_file.php?action=test&version='.PHPWG_VERSION); - break; - } - case 'clean' : - { - $title = $galleries_url.' : '.l10n('remote_site_clean'); - $template->assign_vars(array('REMOTE_SITE_TITLE'=>$title)); - remote_output($galleries_url.'create_listing_file.php?action=clean'); - break; - } - case 'delete' : - { - delete_site($page['site']); - array_push($page['infos'], - $galleries_url.' '.l10n('remote_site_deleted')); - break; - } - } -} - -$template->assign_vars( array( - 'F_ACTION' => PHPWG_ROOT_PATH.'admin.php' - .get_query_string_diff( array('action','site') ) - ) ); - -// +-----------------------------------------------------------------------+ -// | remote sites list | -// +-----------------------------------------------------------------------+ - -$query = ' -SELECT s.*, COUNT(c.id) AS nb_categories, SUM(c.nb_images) AS nb_images -FROM '.SITES_TABLE.' AS s LEFT JOIN '.CATEGORIES_TABLE.' AS c -ON s.id=c.site_id -GROUP BY s.id'. -';'; -$result = pwg_query($query); - -if (mysql_num_rows($result) > 0) -{ - $template->assign_block_vars('sites', array()); -} -while ($row = mysql_fetch_array($result)) -{ - $is_remote = url_is_remote($row['galleries_url']); - $base_url = PHPWG_ROOT_PATH.'admin.php'; - $base_url.= '?page=site_manager'; - $base_url.= '&site='.$row['id']; - $base_url.= '&action='; - - $update_url = PHPWG_ROOT_PATH.'admin.php'; - $update_url.= '?page=site_update'; - $update_url.= '&site='.$row['id']; - - $template->assign_block_vars( - 'sites.site', - array( - 'NAME' => $row['galleries_url'], - 'TYPE' => l10n( $is_remote ? 'Remote' : 'Local' ), - 'CATEGORIES' => $row['nb_categories'], - 'IMAGES' => isset($row['nb_images']) ? $row['nb_images'] : 0, - 'U_UPDATE' => $update_url - ) - ); - - if ($is_remote) - { - $template->assign_block_vars('sites.site.remote', - array( - 'U_TEST' => $base_url.'test', - 'U_GENERATE' => $base_url.'generate', - 'U_CLEAN' => $base_url.'clean' - ) - ); - } - - if ($row['id'] != 1) - { - $template->assign_block_vars( 'sites.site.delete', - array('U_DELETE' => $base_url.'delete') ); - } -} - -$template->assign_var_from_handle('ADMIN_CONTENT', 'site_manager'); +assign_block_vars('remote_output', array()); + // cleaning lines from HTML tags + foreach ($lines as $line) + { + $line = trim(strip_tags($line)); + if (preg_match('/^PWG-([A-Z]+)-/', $line, $matches)) + { + $template->assign_block_vars( + 'remote_output.remote_line', + array( + 'CLASS' => 'remote'.ucfirst(strtolower($matches[1])), + 'CONTENT' => $line + ) + ); + } + } + } + else + { + array_push($page['errors'], l10n('site_err_remote_file_not_found')); + } +} + + +// +-----------------------------------------------------------------------+ +// | template init | +// +-----------------------------------------------------------------------+ +$template->set_filenames(array('site_manager'=>'admin/site_manager.tpl')); + +// +-----------------------------------------------------------------------+ +// | new site creation form | +// +-----------------------------------------------------------------------+ +if (isset($_POST['submit'])) +{ + $is_remote = url_is_remote( $_POST['galleries_url'] ); + $url = preg_replace('/[\/]*$/', '', $_POST['galleries_url']); + $url.= '/'; + if (! $is_remote) + { + if ( ! (strpos($url, '.') === 0 ) ) + { + $url = './' . $url; + } + } + + // site must not exists + $query = ' +SELECT COUNT(id) AS count + FROM '.SITES_TABLE.' + WHERE galleries_url = \''.$url.'\' +;'; + $row = mysql_fetch_array(pwg_query($query)); + if ($row['count'] > 0) + { + array_push($page['errors'], + l10n('site_already_exists').' ['.$url.']'); + } + if (count($page['errors']) == 0) + { + if ($is_remote) + { + $clf_url = $url.'create_listing_file.php'; + $clf_url.= '?action=test'; + $clf_url.= '&version='.PHPWG_VERSION; + if ($lines = @file($clf_url)) + { + $first_line = strip_tags($lines[0]); + if (!preg_match('/^PWG-INFO-2:/', $first_line)) + { + array_push($page['errors'], + l10n('site_err').' : '.$first_line); + } + } + else + { + array_push($page['errors'], l10n('site_err_remote_file_not_found') ); + } + } + else + { // local directory + if ( ! file_exists($url) ) + { + array_push($page['errors'], + l10n('Directory does not exist').' ['.$url.']'); + } + } + } + + if (count($page['errors']) == 0) + { + $query = ' +INSERT INTO '.SITES_TABLE.' + (galleries_url) + VALUES + (\''.$url.'\') +;'; + pwg_query($query); + array_push($page['infos'], + $url.' '.l10n('site_created')); + } +} + +// +-----------------------------------------------------------------------+ +// | actions on site | +// +-----------------------------------------------------------------------+ +if (isset($_GET['site']) and is_numeric($_GET['site'])) +{ + $page['site'] = $_GET['site']; +} +if (isset($_GET['action']) and isset($page['site']) ) +{ + $query = ' +SELECT galleries_url + FROM '.SITES_TABLE.' + WHERE id = '.$page['site'].' +;'; + list($galleries_url) = mysql_fetch_array(pwg_query($query)); + switch($_GET['action']) + { + case 'generate' : + { + $title = $galleries_url.' : '.l10n('remote_site_generate'); + $template->assign_vars(array('REMOTE_SITE_TITLE'=>$title)); + remote_output($galleries_url.'create_listing_file.php?action=generate'); + break; + } + case 'test' : + { + $title = $galleries_url.' : '.l10n('remote_site_test'); + $template->assign_vars(array('REMOTE_SITE_TITLE'=>$title)); + remote_output($galleries_url.'create_listing_file.php?action=test&version='.PHPWG_VERSION); + break; + } + case 'clean' : + { + $title = $galleries_url.' : '.l10n('remote_site_clean'); + $template->assign_vars(array('REMOTE_SITE_TITLE'=>$title)); + remote_output($galleries_url.'create_listing_file.php?action=clean'); + break; + } + case 'delete' : + { + delete_site($page['site']); + array_push($page['infos'], + $galleries_url.' '.l10n('site_deleted')); + break; + } + } +} + +$template->assign_vars( array( + 'F_ACTION' => PHPWG_ROOT_PATH.'admin.php' + .get_query_string_diff( array('action','site') ) + ) ); + +// +-----------------------------------------------------------------------+ +// | remote sites list | +// +-----------------------------------------------------------------------+ + +$query = ' +SELECT s.*, COUNT(c.id) AS nb_categories, SUM(c.nb_images) AS nb_images +FROM '.SITES_TABLE.' AS s LEFT JOIN '.CATEGORIES_TABLE.' AS c +ON s.id=c.site_id +GROUP BY s.id'. +';'; +$result = pwg_query($query); + +if (mysql_num_rows($result) > 0) +{ + $template->assign_block_vars('sites', array()); +} +while ($row = mysql_fetch_array($result)) +{ + $is_remote = url_is_remote($row['galleries_url']); + $base_url = PHPWG_ROOT_PATH.'admin.php'; + $base_url.= '?page=site_manager'; + $base_url.= '&site='.$row['id']; + $base_url.= '&action='; + + $update_url = PHPWG_ROOT_PATH.'admin.php'; + $update_url.= '?page=site_update'; + $update_url.= '&site='.$row['id']; + $template->assign_block_vars( + 'sites.site', + array( + 'NAME' => $row['galleries_url'], + 'TYPE' => l10n( $is_remote ? 'site_remote' : 'site_local' ), + 'CATEGORIES' => $row['nb_categories'], + 'IMAGES' => isset($row['nb_images']) ? $row['nb_images'] : 0, + 'U_SYNCHRONIZE' => $update_url + ) + ); + if ($is_remote) + { + $template->assign_block_vars('sites.site.remote', + array( + 'U_TEST' => $base_url.'test', + 'U_GENERATE' => $base_url.'generate', + 'U_CLEAN' => $base_url.'clean' + ) + ); + } + + if ($row['id'] != 1) + { + $template->assign_block_vars( 'sites.site.delete', + array('U_DELETE' => $base_url.'delete') ); + } +} + +$template->assign_var_from_handle('ADMIN_CONTENT', 'site_manager'); ?> \ No newline at end of file -- cgit v1.2.3