- Add fetchRemote function which allow to retrieve datas over HTTP protocol using cURL method, file_get_contents function or fsockopen method. This allow to retrieve datas or files even if allow_url_fopen is deactivated.
- Use fetchRemote function in plugins manager and in latest version checking. - Add german translations for upgrade.lang.php. - Remove empty line at the end of pclzip.lib.php. - Change display of deactivated plugins after upgrade. git-svn-id: http://piwigo.org/svn/trunk@2880 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
parent
78edf1906c
commit
59af44a8c2
14 changed files with 144 additions and 46 deletions
|
|
@ -1922,4 +1922,112 @@ function cat_admin_access($category_id)
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve data from external URL
|
||||
*
|
||||
* @param string $src: URL
|
||||
* @param global $dest: can be a file ressource or string
|
||||
* @return bool
|
||||
*/
|
||||
function fetchRemote($src, &$dest, $user_agent='Piwigo', $step=0)
|
||||
{
|
||||
is_resource($dest) or $dest = '';
|
||||
|
||||
// Try curl to read remote file
|
||||
if (function_exists('curl_init'))
|
||||
{
|
||||
$ch = @curl_init();
|
||||
@curl_setopt($ch, CURLOPT_URL, $src);
|
||||
@curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||
@curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
|
||||
is_resource($dest) ?
|
||||
@curl_setopt($ch, CURLOPT_FILE, $dest):
|
||||
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
$content = @curl_exec($ch);
|
||||
@curl_close($ch);
|
||||
if ($content !== false)
|
||||
{
|
||||
is_resource($dest) or $dest = $content;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Try file_get_contents to read remote file
|
||||
if (ini_get('allow_url_fopen'))
|
||||
{
|
||||
$content = @file_get_contents($src);
|
||||
if ($content !== false)
|
||||
{
|
||||
is_resource($dest) ? @fwrite($dest, $content) : $dest = $content;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Try fsockopen to read remote file
|
||||
if ($step > 3)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$src = parse_url($src);
|
||||
$host = $src['host'];
|
||||
$path = isset($src['path']) ? $src['path'] : '/';
|
||||
$path .= isset($src['query']) ? '?'.$src['query'] : '';
|
||||
|
||||
if (($s = @fsockopen($host,80,$errno,$errstr,5)) === false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
fwrite($s,
|
||||
"GET ".$path." HTTP/1.0\r\n"
|
||||
."Host: ".$host."\r\n"
|
||||
."User-Agent: ".$user_agent."\r\n"
|
||||
."Accept: */*\r\n"
|
||||
."\r\n"
|
||||
);
|
||||
|
||||
$i = 0;
|
||||
$in_content = false;
|
||||
while (!feof($s))
|
||||
{
|
||||
$line = fgets($s);
|
||||
|
||||
if (rtrim($line,"\r\n") == '' && !$in_content)
|
||||
{
|
||||
$in_content = true;
|
||||
$i++;
|
||||
continue;
|
||||
}
|
||||
if ($i == 0)
|
||||
{
|
||||
if (!preg_match('/HTTP\/(\\d\\.\\d)\\s*(\\d+)\\s*(.*)/',rtrim($line,"\r\n"), $m))
|
||||
{
|
||||
fclose($s);
|
||||
return false;
|
||||
}
|
||||
$status = (integer) $m[2];
|
||||
if ($status < 200 || $status >= 400)
|
||||
{
|
||||
fclose($s);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (!$in_content)
|
||||
{
|
||||
if (preg_match('/Location:\s+?(.+)$/',rtrim($line,"\r\n"),$m))
|
||||
{
|
||||
fclose($s);
|
||||
return fetchRemote(trim($m[1]),$dest,$user_agent,$step+1);
|
||||
}
|
||||
$i++;
|
||||
continue;
|
||||
}
|
||||
is_resource($dest) ? @fwrite($dest, $line) : $dest .= $line;
|
||||
$i++;
|
||||
}
|
||||
fclose($s);
|
||||
return true;
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
@ -127,7 +127,7 @@ WHERE id IN ("' . implode('","', $plugins) . '")
|
|||
mysql_query($query);
|
||||
|
||||
array_push($page['infos'],
|
||||
l10n('deactivated plugins') . '<pre>' . implode(', ', $plugins) . '</pre>');
|
||||
l10n('deactivated plugins').'<br /><br /><i>'.implode(', ', $plugins).'</i><br />');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -268,8 +268,7 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id="' . $plugin_id . '"';
|
|||
$version = PHPWG_VERSION;
|
||||
$versions_to_check = array();
|
||||
$url = PEM_URL . '/api/get_version_list.php?category_id=12&format=php';
|
||||
if ($source = @file_get_contents($url)
|
||||
and $pem_versions = @unserialize($source))
|
||||
if (fetchRemote($url, $result) and $pem_versions = @unserialize($result))
|
||||
{
|
||||
if (!preg_match('/^\d+\.\d+\.\d+/', $version))
|
||||
{
|
||||
|
|
@ -308,9 +307,9 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id="' . $plugin_id . '"';
|
|||
$url .= $new ? '&extension_exclude=' : '&extension_include=';
|
||||
$url .= implode(',', $plugins_to_check);
|
||||
}
|
||||
if ($source = @file_get_contents($url))
|
||||
if (fetchRemote($url, $result))
|
||||
{
|
||||
$pem_plugins = @unserialize($source);
|
||||
$pem_plugins = @unserialize($result);
|
||||
if (!is_array($pem_plugins))
|
||||
{
|
||||
return false;
|
||||
|
|
@ -321,6 +320,7 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id="' . $plugin_id . '"';
|
|||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -357,8 +357,10 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id="' . $plugin_id . '"';
|
|||
{
|
||||
$url = PEM_URL . '/download.php?rid=' . $revision;
|
||||
$url .= '&origin=piwigo_' . $action;
|
||||
if (@copy($url, $archive))
|
||||
|
||||
if ($handle = @fopen($archive, 'wb') and fetchRemote($url, $handle))
|
||||
{
|
||||
fclose($handle);
|
||||
include(PHPWG_ROOT_PATH.'admin/include/pclzip.lib.php');
|
||||
$zip = new PclZip($archive);
|
||||
if ($list = $zip->listContent())
|
||||
|
|
|
|||
|
|
@ -42,17 +42,14 @@ check_status(ACCESS_ADMINISTRATOR);
|
|||
// Check for upgrade : code inspired from punbb
|
||||
if (isset($_GET['action']) and 'check_upgrade' == $_GET['action'])
|
||||
{
|
||||
if (!ini_get('allow_url_fopen'))
|
||||
if (!fetchRemote(PHPWG_URL.'/latest_version', $result))
|
||||
{
|
||||
array_push(
|
||||
$page['errors'],
|
||||
l10n('Unable to check for upgrade since allow_url_fopen is disabled.')
|
||||
);
|
||||
array_push($page['errors'], l10n('Unable to check for upgrade.'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$versions = array('current' => PHPWG_VERSION);
|
||||
$lines = @file(PHPWG_URL.'/latest_version');
|
||||
$lines = @explode("\r\n", $result);
|
||||
|
||||
// if the current version is a BSF (development branch) build, we check
|
||||
// the first line, for stable versions, we check the second line
|
||||
|
|
|
|||
|
|
@ -89,11 +89,7 @@ $template->assign('order_selected', $link.$order);
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | start template output |
|
||||
// +-----------------------------------------------------------------------+
|
||||
if (!ini_get('allow_url_fopen'))
|
||||
{
|
||||
array_push($page['errors'], l10n('Unable to retrieve server informations since allow_url_fopen is disabled.'));
|
||||
}
|
||||
elseif ($plugins->get_server_plugins(true))
|
||||
if ($plugins->get_server_plugins(true))
|
||||
{
|
||||
$plugins->sort_server_plugins($order);
|
||||
|
||||
|
|
|
|||
|
|
@ -97,11 +97,7 @@ set_plugins_tabsheet($page['page']);
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | start template output |
|
||||
// +-----------------------------------------------------------------------+
|
||||
if (!ini_get('allow_url_fopen'))
|
||||
{
|
||||
array_push($page['errors'], l10n('Unable to connect to PEM server since allow_url_fopen is disabled.'));
|
||||
}
|
||||
elseif ($plugins->get_server_plugins())
|
||||
if ($plugins->get_server_plugins())
|
||||
{
|
||||
foreach($plugins->fs_plugins as $plugin_id => $fs_plugin)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -177,7 +177,7 @@ $lang['Tag selection'] = 'Auswahl von Tags';
|
|||
$lang['Take selected elements out of caddie'] = 'Verlassen die ausgewählten Elemente im Warenkorb';
|
||||
$lang['The %d following tag were deleted'] = 'Der folgende Tag wurde gelöscht';
|
||||
$lang['The %d following tags were deleted'] = 'Die folgenden %d Tags wurden gestrichen';
|
||||
$lang['Unable to check for upgrade since allow_url_fopen is disabled.'] = 'Unmöglich die neueste Version, die Funktion allow_url_fopen deaktiviert ist.';
|
||||
$lang['Unable to check for upgrade.'] = 'Unmöglich die neueste Version.';
|
||||
$lang['Uninstall'] = 'Deinstallieren';
|
||||
$lang['Use default sort order']='Verwenden Sie die Sortierung der Bilder Standard (definiert in der Konfigurationsdatei)';
|
||||
$lang['User comments validation'] = 'Validierung der Kommentare von Benutzern';
|
||||
|
|
|
|||
|
|
@ -21,25 +21,24 @@
|
|||
// | USA. |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
/* TODO */
|
||||
$lang['Upgrade'] = 'Upgrade';
|
||||
$lang['introduction message'] = 'This page proposes to upgrade your database corresponding to your old version of Piwigo to the current version.
|
||||
The upgrade assistant thinks you are currently running a <strong>release %s</strong> (or equivalent).';
|
||||
$lang['Upgrade from %s to %s'] = 'Upgrade from version %s to %s';
|
||||
$lang['Statistics'] = 'Statistics';
|
||||
$lang['total upgrade time'] = 'total upgrade time';
|
||||
$lang['total SQL time'] = 'total SQL time';
|
||||
$lang['SQL queries'] = 'SQL queries';
|
||||
$lang['Upgrade informations'] = 'Upgrade informations';
|
||||
$lang['perform a maintenance check'] = 'Perform a maintenance check in [Administration>Specials>Maintenance] if you encounter any problem.';
|
||||
$lang['deactivated plugins'] = 'As a precaution, following plugins have been deactivated. You must check for plugins upgrade before reactiving them:';
|
||||
$lang['upgrade login message'] = 'Only administrator can run upgrade: please sign in below.';
|
||||
$lang['You do not have access rights to run upgrade'] = 'You do not have access rights to run upgrade';
|
||||
$lang['in include/mysql.inc.php, before ?>, insert:'] = 'In <i>include/mysql.inc.php</i>, before <b>?></b>, insert:';
|
||||
$lang['introduction message'] = 'Diese Seite schlägt vor aktualisieren Ihre Datenbank von Ihre alte Version von Piwigo auf die aktuelle Version.
|
||||
Der Upgrade-Assistent denkt Sie derzeit ein <strong>Freigabe %s</strong> (oder gleichwertig).';
|
||||
$lang['Upgrade from %s to %s'] = 'Upgrade von Version %s bis %s';
|
||||
$lang['Statistics'] = 'Statistik';
|
||||
$lang['total upgrade time'] = 'insgesamt Upgrade-Zeit';
|
||||
$lang['total SQL time'] = 'insgesamt SQL-Zeit';
|
||||
$lang['SQL queries'] = 'SQL-Abfragen';
|
||||
$lang['Upgrade informations'] = 'Upgrade-Informationen';
|
||||
$lang['perform a maintenance check'] = 'Führen Sie einen Wartungs-Check am [Administration> Specials> Wartung], wenn Sie auf ein Problem stoßen';
|
||||
$lang['deactivated plugins'] = 'Als Vorsichtsmaßnahme folgenden Plugins wurden deaktiviert. Sie müssen prüfen, ob Plugins aktualisieren, bevor sie reactiving:';
|
||||
$lang['upgrade login message'] = 'Nur Administrator können Upgrade ausführen : Bitte melden Sie sich an unter.';
|
||||
$lang['You do not have access rights to run upgrade'] = 'Sie haben nicht das Recht auf Zugang zum Upgrade ausführen';
|
||||
$lang['in include/mysql.inc.php, before ?>, insert:'] = 'In <i>include/mysql.inc.php</i>, vor <b>?></b>, wird Folgendes eingefügt:';
|
||||
|
||||
// Upgrade informations from upgrade_1.3.1.php
|
||||
$lang['all sub-categories of private categories become private'] = 'All sub-categories of private categories become private';
|
||||
$lang['user permissions and group permissions have been erased'] = 'User permissions and group permissions have been erased';
|
||||
$lang['only thumbnails prefix and webmaster mail saved'] = 'Only thumbnails prefix and webmaster mail address have been saved from previous configuration';
|
||||
$lang['all sub-categories of private categories become private'] = 'Alle Unter-Kategorien von privaten Gruppen wirden privaten';
|
||||
$lang['user permissions and group permissions have been erased'] = 'Benutzer und Gruppen Berechtigungen wurden gelöscht';
|
||||
$lang['only thumbnails prefix and webmaster mail saved'] = 'Nur Miniaturansichten Präfix und Webmaster Mail-Adresse gespeichert wurden aus früheren Konfiguration';
|
||||
|
||||
?>
|
||||
|
|
@ -177,7 +177,7 @@ $lang['Tag selection'] = 'Tag selection';
|
|||
$lang['Take selected elements out of caddie'] = 'Take selected elements out of caddie';
|
||||
$lang['The %d following tag were deleted'] = 'The following tag were deleted';
|
||||
$lang['The %d following tags were deleted'] = 'The %d following tags were deleted';
|
||||
$lang['Unable to check for upgrade since allow_url_fopen is disabled.'] = 'Unable to check for upgrade since allow_url_fopen is disabled.';
|
||||
$lang['Unable to check for upgrade.'] = 'Unable to check for upgrade.';
|
||||
$lang['Uninstall'] = 'Uninstall';
|
||||
$lang['Use default sort order']='Use the default image sort order (defined in the configuration file)';
|
||||
$lang['User comments validation'] = 'User comments validation';
|
||||
|
|
|
|||
|
|
@ -177,7 +177,7 @@ $lang['Tag selection'] = 'Selección de tags';
|
|||
$lang['Take selected elements out of caddie'] = 'Sacar los elementos seleccionados de la cesta';
|
||||
$lang['The %d following tag were deleted'] = 'El tag siguiente ha sido suprimido';
|
||||
$lang['The %d following tags were deleted'] = 'Los %d tags siguientes han sido suprimidos';
|
||||
$lang['Unable to check for upgrade since allow_url_fopen is disabled.'] = 'Imposible conocer la última versión cat la función allow_url_fopen es desactivada.';
|
||||
$lang['Unable to check for upgrade.'] = 'Imposible conocer la última versión.';
|
||||
$lang['Uninstall'] = 'Desinstalar';
|
||||
$lang['Use default sort order']='Utilizar la orden de selección de las imágenes por defecto (definido en el fichero de configuración)';
|
||||
$lang['User comments validation'] = 'Validación de los comentarios de utilizadores';
|
||||
|
|
|
|||
|
|
@ -177,7 +177,7 @@ $lang['Tag selection'] = 'Sélection de tags';
|
|||
$lang['Take selected elements out of caddie'] = 'Sortir les éléments sélectionnés du panier';
|
||||
$lang['The %d following tag were deleted'] = 'Le tag suivant a été supprimé';
|
||||
$lang['The %d following tags were deleted'] = 'Les %d tags suivants ont été supprimés';
|
||||
$lang['Unable to check for upgrade since allow_url_fopen is disabled.'] = 'Impossible de connaître la dernière version car la fonction allow_url_fopen est désactivée.';
|
||||
$lang['Unable to check for upgrade.'] = 'Impossible de connaître la dernière version.';
|
||||
$lang['Uninstall'] = 'Désinstaller';
|
||||
$lang['Use default sort order']='Utiliser l\'ordre de tri des images par défaut (défini dans le fichier de configuration)';
|
||||
$lang['User comments validation'] = 'Validation des commentaires d\'utilisateurs';
|
||||
|
|
|
|||
|
|
@ -177,7 +177,7 @@ $lang['Tag selection'] = 'Selezione dei tags';
|
|||
$lang['Take selected elements out of caddie'] = 'Estrarre gli elementi selezionati dal cestino';
|
||||
$lang['The %d following tag were deleted'] = 'Il tag seguente è stato cancellato';
|
||||
$lang['The %d following tags were deleted'] = 'I %d tags seguenti sono stati cancellati';
|
||||
$lang['Unable to check for upgrade since allow_url_fopen is disabled.'] = 'Non è stato possibile identificare l\'ultima versione a causa della funzione allow_url_fopen tuttora disattiva.';
|
||||
$lang['Unable to check for upgrade.'] = 'Non è stato possibile identificare l\'ultima versione.';
|
||||
$lang['Uninstall'] = 'Disinstallare';
|
||||
$lang['Use default sort order']='Usare l\'ordinamento delle immagini di defaut (cosi come definito nel file di configurazione)';
|
||||
$lang['User comments validation'] = 'Approvare i commenti degli utenti';
|
||||
|
|
|
|||
|
|
@ -177,7 +177,7 @@ $lang['Tag selection'] = 'Tag selectie';
|
|||
$lang['Take selected elements out of caddie'] = 'Neem geselecteerde elementen uit de caddie';
|
||||
$lang['The %d following tag were deleted'] = 'De volgende tag is verwijderd';
|
||||
$lang['The %d following tags were deleted'] = 'De %d volgende tags zijn verwijderd';
|
||||
$lang['Unable to check for upgrade since allow_url_fopen is disabled.'] = 'Onnmoglijk om een controlle te doen voor een upgrade omdat allow_url_fopen is uitgeschakeld.';
|
||||
$lang['Unable to check for upgrade.'] = 'Onnmoglijk om een controlle te doen voor een upgrade.';
|
||||
$lang['Uninstall'] = 'Deinstalleren';
|
||||
$lang['Use default sort order']='Gebruik de standaard sortering (defineerd in de configuratie file)';
|
||||
$lang['User comments validation'] = 'Gebruikers commentaar valideren';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue