32,7 → 32,7 |
// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | |
// | THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: instal_fichier.inc.php,v 1.34 2007-04-20 14:55:24 alexandre_tb Exp $ |
// CVS : $Id: instal_fichier.inc.php,v 1.35 2007-06-26 12:08:18 jp_milcent Exp $ |
/** |
* Page de creation des fichiers necessaire a l'installation de Papyrus. |
* |
46,7 → 46,7 |
*@author Patrick PAUL |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.34 $ $Date: 2007-04-20 14:55:24 $ |
*@version $Revision: 1.35 $ $Date: 2007-06-26 12:08:18 $ |
// +------------------------------------------------------------------------------------------------------+ |
**/ |
|
75,7 → 75,7 |
} |
} |
|
// Récupération des paramètres de configuration du formulaire précédent |
// Récupération des paramêtres de configuration du formulaire précédent |
if (isset($_POST['pref_serial'])) { |
$pref = unserialize(stripslashes($_POST['pref_serial'])); |
} |
89,7 → 89,7 |
// | CORPS du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// Affichage d'informations... |
$sortie .= '<br /><h1>Etape n°'.$num_etape.' sur '.INSTAL_NBRE_ETAPE.'.</h1>'."\n"; |
$sortie .= '<br /><h1>Étape n°'.$num_etape.' sur '.INSTAL_NBRE_ETAPE.'.</h1>'."\n"; |
|
// Correction éventuelle des informations saisies par l'utilisateur |
if (ereg('^[\/\\]', $fichier['PAP_FTP_RACINE']) == false) { |
128,32 → 128,31 |
} |
} |
$configCode .= implode("\n", $entries)."\n\n?>"; |
if ($erreur==0) { |
// Tentative d'ecriture du fichier de config |
if ($erreur == 0) { |
// +-----------------------------------------------------------------------------------------------------------+ |
// Tentative d'écriture du fichier de config |
$sortie_verif .= ' <h2>Ecriture des fichiers sur le serveur par FTP</h2>'."\n"; |
$chemin_fpt_absolu = $fichier['PAP_FTP_RACINE'].INSTAL_CHEMIN_CONFIG; |
$url_ftp = 'ftp://'.$fichier['PAP_FTP_UTILISATEUR'].':'.$fichier['PAP_FTP_MOT_DE_PASSE']. |
'@'.$fichier['PAP_FTP_SERVEUR'].$chemin_fpt_absolu; |
|
// Dans le cas, ou nous mettons a jour Papyrus, il faut supprimer l'ancien fichier de config |
// Dans le cas, ou nous mettons à jour Papyrus, il faut supprimer l'ancien fichier de config |
if (INSTAL_VERSION_ANCIENNE != '') { |
$txt_suppression = 'Suppression de <tt>'.$chemin_fpt_absolu.'</tt>...'; |
$txt_suppression_erreur = '<p>Le fichier <tt>'.$chemin_fpt_absolu.'</tt> ne peut être supprimer automatiquement. '. |
'Veuillez utiliser un logiciel de transfert de fichier par FTP pour le supprimer.</p>'; |
$erreur = testerConfig($sortie_verif, $txt_suppression, unlink($url_ftp), $txt_suppression_erreur, 1, $erreur); |
$txt_suppression = 'Suppression de <tt>'.$chemin_fpt_absolu.'</tt>...'; |
$txt_suppression_erreur = '<p>Le fichier <tt>'.$chemin_fpt_absolu.'</tt> ne peut être supprimer automatiquement. '. |
'Veuillez utiliser un logiciel de transfert de fichier par FTP pour le supprimer.</p>'; |
$erreur = testerConfig($sortie_verif, $txt_suppression, unlink($url_ftp), $txt_suppression_erreur, 1, $erreur); |
} |
|
$tempfn = tempnam("",""); |
$temp = fopen($tempfn, "w"); |
$tempfn = tempnam('',''); |
$temp = fopen($tempfn, 'w'); |
|
fwrite($temp, $configCode); |
fclose($temp); |
$fichier_config_source = $tempfn; |
$fichier_config_cible = substr($fichier['PAP_FTP_RACINE']."/papyrus/configuration/pap_config.inc.php", 1) ; |
|
|
// Nous ecrivons le fichier de config sur le disque |
|
$fichier_config_cible = $fichier['PAP_FTP_RACINE'].'papyrus/configuration/pap_config.inc.php'; |
|
// Nous écrivons le fichier de config sur le disque |
$txt_ecriture_conf = 'Écriture sur le serveur de <tt>'.$fichier_config_cible.'</tt>...'; |
$txt_ecriture_conf_erreur = '<span class="failed">AVERTISSEMENT:</span> Le fichier de configuration <tt>'.$fichier_config_cible. |
'</tt> n\'a pu être créé. Veuillez vous assurez que votre serveur a les droits '. |
165,18 → 164,30 |
'correctement.'; |
$txt_ecriture_conf_erreur .= '<div class="code"><code><pre>'.htmlentities($configCode).'</pre></code></div>'."\n"; |
$erreur = testerConfig($sortie_verif, $txt_ecriture_conf, |
ftp_put($ftp, $fichier_config_cible,$fichier_config_source, FTP_ASCII), |
$txt_ecriture_conf_erreur, 1, $erreur); |
|
// tentative d ecriture du fichier .htaccess |
ftp_put($ftp, $fichier_config_cible, $fichier_config_source, FTP_ASCII), |
$txt_ecriture_conf_erreur, 1, $erreur); |
|
// +-----------------------------------------------------------------------------------------------------------+ |
// Tentative d'écriture du fichier .htaccess |
$fichier_htaccess_chemin = $fichier['PAP_FTP_RACINE'].'.htaccess'; |
$url_ftp_htaccess = 'ftp://'.$fichier['PAP_FTP_UTILISATEUR'].':'.$fichier['PAP_FTP_MOT_DE_PASSE']. |
'@'.$fichier['PAP_FTP_SERVEUR'].$fichier['PAP_FTP_RACINE'].'/.htaccess'; |
|
if (isset($pref['PAP_HTACCESS_REGENERATION']) && $pref['PAP_HTACCESS_REGENERATION'] == 1) { |
$txt_suppression_htaccess = 'Suppression de <tt>'.$fichier_htaccess_chemin.'</tt>...'; |
$txt_suppression_htaccess_erreur = '<p>Le fichier <tt>'.$fichier_htaccess_chemin.'</tt> ne peut être supprimer automatiquement. '. |
'Veuillez utiliser un logiciel de transfert de fichier par FTP pour le supprimer.</p>'; |
$erreur = testerConfig($sortie_verif, $txt_suppression_htaccess, unlink($url_ftp_htaccess), $txt_suppression_htaccess_erreur, 1, $erreur); |
} |
$url_parse = parse_url('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); |
$prefixe = dirname($url_parse['path']); |
|
// Gestion des urls du style : http://www.tela-botanica.org/~mon_home/ |
$prefixe_tilde = ''; |
if (preg_match('/^\/~/', $prefixe)) { |
$prefixe_tilde = $prefixe.'/'; |
} |
|
$url = 'http://'.$_SERVER['HTTP_HOST'].$prefixe; |
if (isset($pref['PAP_URL_REECRITURE']) && $pref['PAP_URL_RRECRITURE'] == 1) { |
if (isset($pref['PAP_URL_REECRITURE']) && $pref['PAP_URL_REECRITURE'] == 1) { |
$on_off = 'on'; |
} else { |
$on_off = 'off'; |
187,36 → 198,36 |
'RewriteCond %{REQUEST_FILENAME} !-d'."\n". |
'RewriteCond %{REQUEST_FILENAME} !-f'."\n\n". |
'# ATTENTION : remplace localhost par votre nom de domaine !'."\n". |
'# Réecriture d\'url pour les applications de Papyrus n\'utilisant pas correctement Pap_URL'."\n". |
'# Réecriture d\'url pour les applications de Papyrus n\'utilisant pas correctement Pap_URL'."\n". |
'# ATTENTION : ne marche pas pour les formulaires en mode POST !'."\n". |
'RewriteRule ^([^\/]+)&(.*)$ '.$url.'/$1?$2 [QSA,L,R=301]'."\n". |
'# Réecriture d\'url pour les vieux permaliens'."\n". |
'# Réecriture d\'url pour les vieux permaliens'."\n". |
'RewriteCond %{REQUEST_FILENAME}/ !-d'."\n". |
'RewriteRule ^([^\/\?:.]+)$ '.$url.'/page:$1 [QSA,L,R=301]'."\n". |
'# Redirection d\'url pour le sélecteur de site'."\n". |
'# Le point d\'interrogation sans rien après, vide la QUERY_STRING sinon elle est concaténée à l\'url et cela plante...'."_n". |
'# Le point d\'interrogation sans rien aprés, vide la QUERY_STRING sinon elle est concacténée à l\'url et cela plante...'."_n". |
'# Le "/" initial dans la RewriteCond est obligatoire!'."\n". |
'RewriteCond %{REQUEST_URI}?%{QUERY_STRING} ^/papyrus\.php\?site=([^&]+)$'."\n". |
'RewriteCond %{REQUEST_URI}?%{QUERY_STRING} ^'.$prefixe.'/papyrus\.php\?site=([^&]+)$'."\n". |
'RewriteRule ^papyrus.php$ '.$url.'/site:%1? [L,R=301]'."\n\n". |
'# Réecriture d\'url pour les sites de Papyrus : à modifier si les valeurs par défaut ont été changées'."\n". |
'RewriteRule ^site:.+$ papyrus.php [QSA,L]'."\n". |
'# Réecriture d\'url pour les menus de Papyrus : à modifier si les valeurs par défaut ont été changées'."\n". |
'RewriteRule ^page:.+$ papyrus.php [QSA,L]'."\n\n". |
'# Réecriture d\'url pour les sites de Papyrus : à modifier si les valeurs par défaut ont été changées'."\n". |
'RewriteRule ^site:.+$ '.$prefixe_tilde.'papyrus.php [QSA,L]'."\n". |
'# Réecriture d\'url pour les menus de Papyrus : à modifier si les valeurs par défaut ont été changées'."\n". |
'RewriteRule ^page:.+$ '.$prefixe_tilde.'papyrus.php [QSA,L]'."\n\n". |
'# Gestion des erreurs 404'."\n". |
'ErrorDocument 404 '.$prefixe.'/erreur_http.php?erreur=404'; |
|
if (file_exists($fichier['PAP_FTP_RACINE'].'/.htaccess')) { |
|
if (file_exists($fichier_htaccess_chemin)) { |
$sortie_verif .='<p>Attention: Un fichier .htaccess est déjà présent sur le serveur.'. |
'<br />'.$fichier['PAP_FTP_RACINE'].'/.htaccess'. |
'<br />'.$fichier_htaccess_chemin. |
'<br />Veillez à le configurer correctement<br /><br />'. |
'Contenu par défaut: <br /><br /> ErrorDocument 404 /erreur_404.php'; |
} else { |
$tempfn = tempnam("",""); |
$temp = fopen($tempfn, "w"); |
$tempfn = tempnam('', ''); |
$temp = fopen($tempfn, 'w'); |
fwrite($temp, $contenu_htaccess); |
fclose($temp); |
$fichier_config_source = $tempfn; |
$fichier_config_cible = substr($fichier['PAP_FTP_RACINE']."/.htaccess", 1) ; |
$fichier_config_cible = $fichier_htaccess_chemin; |
$txt_ecriture_conf_erreur = 'AVERTISSEMENT: Le fichier .htaccess <tt>'.$fichier_config_cible. |
'</tt> n\'a pu être créé. Veuillez vous assurez que votre serveur a les droits '. |
'd\'accès en écriture pour ce fichier. Si pour une raison quelconque vous ne pouvez pas '. |
229,7 → 240,6 |
$erreur = testerConfig($sortie_verif, $txt_ecriture_conf, ftp_put($ftp, $fichier_config_cible,$fichier_config_source, FTP_ASCII), $txt_ecriture_conf_erreur, 1, 0); |
|
} |
|
// maj_fichier_config_appli($ftp,$fichier,'api/fckeditor/editor/filemanager/browser/default/connectors/php/config.php',array("Caldeira"=>"DDDDD")); |
} |
} |
236,36 → 246,28 |
|
|
// Mise à jour des fichiers de configuration de chaque application : |
|
function maj_fichier_config_appli($ftp,$fichier, $fichierconfig, $elements) { |
|
|
$tempfn = tempnam("",""); |
|
ftp_get($ftp,$tempfn,$fichier['PAP_FTP_RACINE'].GEN_SEP.$fichierconfig,FTP_ASCII); |
|
$fp = fopen($tempfn, 'r'); |
if ($fp) { |
while (!feof($fp)) { |
$cont .= fread($fp, 500); |
} |
fclose($fp); |
function maj_fichier_config_appli($ftp, $fichier, $fichierconfig, $elements) { |
$tempfn = tempnam('', ''); |
ftp_get($ftp,$tempfn,$fichier['PAP_FTP_RACINE'].$fichierconfig,FTP_ASCII); |
$fp = fopen($tempfn, 'r'); |
if ($fp) { |
while (!feof($fp)) { |
$cont .= fread($fp, 500); |
} |
fclose($fp); |
$fp = fopen($tempfn, 'w'); |
if ($fp) { |
foreach ($elements as $element) { |
if ($fp) { |
foreach ($elements as $element) { |
list($expr,$rempl)=$elements; |
preg_replace('/'.$expr.'/',$rempl,$cont); |
} |
fwrite($fp, $cont); |
fclose($fp); |
ftp_put($ftp,$fichier['PAP_FTP_RACINE'].GEN_SEP.$fichierconfig,$tempfn,FTP_ASCII); |
} |
} |
|
ftp_put($ftp, $fichier['PAP_FTP_RACINE'].$fichierconfig, $tempfn, FTP_ASCII); |
} |
} |
} |
|
|
|
// Gestion de l'affichage |
if ($erreur == 0 && empty($sortie_verif)) { |
// Premier appel du fichier... |
339,6 → 341,12 |
'<label for="ftp_racine">Racine dépôt FTP :</label>'. |
'<input id="ftp_racine"'.$disabled.'type="text" size="60" name="fichier[PAP_FTP_RACINE]" value="'.$fichier['PAP_FTP_RACINE'].'" />'. |
'</li>'."\n"; |
$sortie_form .= '<li>Si vous voulez générer un nouveau fichier .htaccess, cochez cette case (si vous ne savez pas ce qu\'est un fichier .htaccess '. |
'n\'activez pas cette option).</li>'."\n"; |
$sortie_form .= '<li>'."\n". |
'<label for="htaccess_regeneration">Remplacer mon fichier .htacces :</label>'. |
'<input id="htaccess_regeneration"'.$disabled.'type="checkbox" name="pref[PAP_HTACCESS_REGENERATION]" value="1" />'. |
'Activation'.'</li>'."\n"; |
return $sortie_form; |
} |
|
350,6 → 358,9 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.34 2007-04-20 14:55:24 alexandre_tb |
* charset |
* |
* Revision 1.33 2007/04/20 12:55:07 ddelon |
* config fckeditor |
* |
420,7 → 431,7 |
* ecriture du fichier .htaccess |
* |
* Revision 1.10 2005/09/23 14:20:23 florian |
* nouvel habillage installateur, plus correction de quelques bugs |
* Nouvel habillage installateur, plus correction de quelques bugs |
* |
* Revision 1.9 2005/04/12 16:09:45 jpm |
* Amélioration de la gestion de la constante de redirection des urls et de la gestion des constantes de type entier et booléen. |