[SPIP Zone] r3765 - in /_dev_/spip_loader: spip_loader.php.txt tradloader_ca.php.txt tradloader_es.php.txt

Author: fil@rezo.net
Date: Sat Jul 1 12:54:26 2006
New Revision: 3765

Log:
améliorations spip_loader et multilinguisme

Added:
    _dev_/spip_loader/tradloader_ca.php.txt
    _dev_/spip_loader/tradloader_es.php.txt
Modified:
    _dev_/spip_loader/spip_loader.php.txt

Modified: _dev_/spip_loader/spip_loader.php.txt

--- _dev_/spip_loader/spip_loader.php.txt (original)
+++ _dev_/spip_loader/spip_loader.php.txt Sat Jul 1 12:54:26 2006
@@ -6,20 +6,23 @@

   # decommenter la ligne ci-dessous pour charger la version
   # de developpement (nightly build SVN)
- # define(’_URL_BASE_DL’,« http://trac.rezo.net/files/spip/ »);
+ # define(’_URL_PAQUET_ZIP’,‹ http://trac.rezo.net/files/spip/spip.zip ›);

- # nom du paquet a telecharger
- define(’_PAQUET_ZIP’,‹ spip.zip ›);
+ # URL du paquet a telecharger
+ define(’_URL_PAQUET_ZIP’,‹ http://www.spip.net/spip-dev/DISTRIB/spip.zip ›);

- # URL du repertoire ou il se trouve
- define('_URL_BASE_DL',"http://www.spip.net/spip-dev/DISTRIB/");
-
- # Adresse des librairies necessaires (zip et fichiers de langue)
+ # Adresse des librairies necessaires a spip_loader
+ # (pclzip et fichiers de langue)
   define('_URL_LOADER_DL',"http://www.spip.net/spip-dev/INSTALL/");

+ # langues disponibles
+ $langues = array (
+ 'ca' => 'catalá',
+ 'es' => 'español',
+ 'fr' => 'français'
+ );

- error_reporting(E_ALL ^ E_NOTICE);

   //
   // Gestion des droits d'acces
@@ -228,7 +231,6 @@
   }

   function telecharger_langue($lang, $droits) {
- global $base;
     global $dir_base;
     $fichier = 'tradloader_'.$lang.'.php';
     if(!file_exists($dir_base.$fichier)) {
@@ -250,18 +252,13 @@
   }

   function selectionner_langue($droits) {
- $accept_langs = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
- if (is_array($accept_langs)) {
- while(list(, $s) = each($accept_langs)) {
- if (eregi('^([a-z]{2,3})(-[a-z]{2,3})?(;q=[0-9.]+)?$', trim($s), $r)) {
- $lang = strtolower($r[1]);
- if (telecharger_langue($lang,$droits)) return $lang;
- }
- }
- }
- //si on a trouve aucune langue, on tente le francais (langue par defaut) une derniere fois
- if (telecharger_langue('fr',$droits)) return 'fr';
- return false;
+ global $langues; # langues dispo
+
+ if (isset($_GET['lang'])) $lang = $_GET['lang'];
+ if (!isset($langues[$lang])) $lang ='fr';
+
+ # code de retour = capacite a telecharger le fichier de langue
+ return telecharger_langue($lang,$droits) ? $lang : false;
   }

   function debut_html() {
@@ -274,7 +271,7 @@
     <META HTTP-EQUIV="Expires" CONTENT="0">
     <META HTTP-EQUIV="cache-control" CONTENT="no-cache,no-store">
     <META HTTP-EQUIV="pragma" CONTENT="no-cache">
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">

     <style>
@@ -363,36 +360,6 @@
     return false;
   }

- function unpacker_fichier($f) {
- global $dir_base;
- global $_fread;
- global $chmod;
-
- $chaine = $_fread($f, 4);
- if ($chaine != 'spip') {
- return false;
- }
- $chmod_dir = $chmod;
- $chmod_file = $chmod & ~0111;
- while (($fichier = lire_chaine($f)) != '') {
- $n = lire_long($f);
- $chemin = "$dir_base$fichier";
- if (!$n) {
- @mkdir($chemin, $chmod_dir);
- @chmod($chemin, $chmod_dir);
- }
- else {
- $bin = $_fread($f, $n);
- if (!(test_fichier_config($fichier) AND file_exists($chemin))) {
- $dest = fopen($chemin, "wb");
- fwrite($dest, $bin, $n);
- fclose($dest);
- @chmod($chemin, $chmod_file);
- }
- }
- }
- return true;
- }
   
   function nettoyer_racine($fichier) {
     global $dir_base;
@@ -406,10 +373,13 @@
     return true;
   }

-//
+
+///////////////////////////////////////////////
// debut du process
//

+ error_reporting(E_ALL ^ E_NOTICE);
+
   feed_globals('_GET');
   feed_globals('_POST');
   feed_globals('_COOKIE');
@@ -417,8 +387,6 @@
   $http_proxy = '';
   $dir_base = './'; //repertoire d'installation

- $base = _URL_BASE_DL;
-
   $droits = tester_repertoire();

   if($lang = selectionner_langue($droits)) {
@@ -448,34 +416,23 @@
           if ($contenu) {
             ecrire_fichier($dir_base."pclzip.php", $contenu);
             include($dir_base."pclzip.php");
- $gz = 'zip';
           }
         } else {
           include($dir_base."pclzip.php");
- $gz = 'zip';
         }
       }
- else {
- $_fwrite = 'fwrite';
- $_fread = 'fread';
- $_fopen = 'fopen';
- $_fclose = 'fclose';
- }
+ else
+ die ('fonctions zip non disponibles');
+
       //
       // deploiement de l'archive
       //
       if(isset($fichier) AND strlen($fichier) AND file_exists($dir_base.$fichier)) {
- if($gz == 'zip') {
           $nom_tmp = substr($fichier, 0, -4);
           $zip = new PclZip($dir_base.$fichier);
           $ok = $zip->extract(
             PCLZIP_OPT_PATH, $dir_base,
             PCLZIP_OPT_REMOVE_PATH, "spip/");
- } else {
- $f = $_fopen($dir_base.$fichier, "rb");
- $ok = unpacker_fichier($f);
- $_fclose($f);
- }
         nettoyer_racine($fichier);
         if (!$ok) {
           debut_html();
@@ -500,21 +457,19 @@
         fin_html();
         exit;
       }
- if($gz == 'zip') {
- $fichier = _PAQUET_ZIP;
- } else {
- $fichier = '.spip.bin';
- if ($gz) $fichier .= ".gz";
- }
- $contenu = recuperer_page($base.$fichier);
- if($contenu) {
- ecrire_fichier($dir_base.$fichier, $contenu);
- } else {
+
+ $contenu = recuperer_page(_URL_PAQUET_ZIP);
+
+ if(!$contenu) {
         debut_html();
         echo _T('echec_chargement');
         fin_html();
         exit;
       }
+
+ $fichier = basename(_URL_PAQUET_ZIP);
+ ecrire_fichier($dir_base.$fichier, $contenu);
+
       // Passer a l'etape suivante (desarchivage)
       header("Location: spip_loader.php?fichier=$fichier$hash$id_auteur$chmod");
       exit;

Added: _dev_/spip_loader/tradloader_ca.php.txt

--- _dev_/spip_loader/tradloader_ca.php.txt (added)
+++ _dev_/spip_loader/tradloader_ca.php.txt Sat Jul 1 12:54:26 2006
@@ -0,0 +1,29 @@
+<?php
+
+ $GLOBALS['i18n_tradloader_ca'] = Array (
+ 'titre' => 'Desc&agrave;rrega d\'SPIP',
+ 'texte_intro' => '<P><B>Benvingut a la instal&middot;laci&oacute; d\'SPIP.</B>
+ <P>El sistema va a verificar els drets d\'acc&eacute;s del directori actual, despr&eacute;s comen&ccedil;ar&agrave; la desc&agrave;rrega de dades SPIP dins d\'aquest directori.
+ <P>Fa&ccedil;a clic al seg&uuml;ent bot&oacute; per continuar.',
+ 'bouton_suivant' => 'Comen&ccedil;ar la instal&middot;laci&oacute; >>',
+ 'donnees_incorrectes' => '<h4>Dades incorrectes. Si vol pot provar novament o emprar la instal&middot;laci&oacute; manual.</h4>',
+ 'texte_preliminaire' => '<BR><FONT FACE=\"Verdana,Arial,Helvetica,sans-serif\" SIZE=3>Preliminar:
+ <B>Reajustar els drets d\'acc&eacute;s</B></FONT>
+ <P><B>El directori actual no t&eacute; drets d\'escriptura.</B>
+ <P>Per solucionar-ho, utilitzi un client FTP per tal de reajustar els drets d\'acc&eacute;s
+ a aquest directori (carpeta d\'instal&middot;laci&oacute; d\'SPIP).
+ El procediment est&agrave; explicat detalladament a la guia d\'instal&middot;laci&oacute;. Trie:<BR>
+ <UL>
+ <LI><B>Si t&eacute; un client FTP gr&agrave;fic</B>, reajuste les propietats del directori actual
+ per tal que tots hi puguen escriure.<P>
+ <LI><B>Si el vostre client FTP &eacute;s en mode text</B>, canvie els permisos a 777.<P>
+ <LI><B>Si disposa d\'acc&eacute;s Telnet</B>, fa&ccedil;a un <I>chmod&nbsp;777&nbsp;directori actual</I>.<P>
+ </UL>
+ <P>Un cop feta aquesta manipulaci&oacute; podreu <B><A HREF=\'spip_loader.php3?charger=oui@hash@@id_auteur@\'> recarregar aquesta p&agrave;gina</A></B>
+ per tal d\'escomen&ccedil;ar la desc&agrave;rrega posterior a la instal&middot;laci&oacute;.
+ <P>Si l\'error persisteix, haureu de fer la instal&middot;laci&oacute; cl&agrave;ssica
+ (desc&agrave;rrega de tots els fitxers per FTP).',
+ 'echec_chargement' => '<h4>La desc&agrave;rrega ha fallat. Haureu d\'intentar-ho novament, o emprar la instal&middot;laci&oacute; manual.</h4>'
+ );
+
+?>

Added: _dev_/spip_loader/tradloader_es.php.txt

--- _dev_/spip_loader/tradloader_es.php.txt (added)
+++ _dev_/spip_loader/tradloader_es.php.txt Sat Jul 1 12:54:26 2006
@@ -0,0 +1,28 @@
+<?php
+
+ $GLOBALS['i18n_tradloader_es'] = Array (
+ 'titre' => 'Descarga de SPIP',
+ 'texte_intro' => '<P><B>Bienvenido al procedimiento de instalaci&oacute;n autom&aacute;tico de SPIP.</B>
+ <P>Primero, el sistema comprobar&aacute; los derechos de acceso a la carpeta actual, luego lanzar&aacute; la descarga de los datos en dicha carpeta.
+ <P>Pulse sobre el el bot&oacute;n siguiente para continuar.',
+ 'bouton_suivant' => 'Comenzar la instalaci&oacute;n >>',
+ 'donnees_incorrectes' => '<h4>Datos incorrectos. Por favor reintente la operaci&oacute;n o use el procedimiento de instalaci&oacute;n manual.</h4>',
+ 'texte_preliminaire' => '<BR><FONT FACE=\"Verdana,Arial,Helvetica,sans-serif\" SIZE=3>Preliminar:
+ <B>Ajustar los derechos de acceso</B></FONT>
+ <P><B>La carpeta actual no est&aacute; accesible en modo de escritura.</B>
+ <P>Para resolverlo, use un cliente FTP y ajuste los permisos o derechos de accceso a dicha carpeta (directorio de instalaci&oacute;n de SPIP).
+ El procedimiento est&aacute; explicado con detalle en la gu&iacute;a de instalaci&oacute;n. Opciones:<BR>
+ <UL>
+ <LI><B>Si tiene cliente FTP gr&aacute;fico</B>, ajuste las propiedades del directorio actual
+ para que sea accesible en modo escritura para todos.<P>
+ <LI><B>Si usa un cliente FTP en modo texto</B>, cambie los permisos de la carpeta al valor 777.<P>
+ <LI><B>Si dispone de un acceso Telnet</B>, haga un <I>chmod&nbsp;777&nbsp;carpeta_actual</I>.<P>
+ </UL>

[... 10 lines stripped ...]