PluXml.org

Blog ou CMS à l'Xml

Vous n'êtes pas identifié(e).

#1 07/10/2013 02:43:18

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 555
Site Web

[Plugin]Maintenance

Ce petit plugin vous permet de mettre votre site en maintenance pour vos visiteurs mais de le laisser visible pour celui qui active le plugin (plus précisément pour l'adresse ip que l'on souhaite).

Avant d'activer la maintenance, il faut configurer le plugin : titre, favicon, css et contenu html (celui entre les balises body).

Vérifiez bien les droits sur le fichier .htaccess à la racine du site (et faites-en une sauvegarde par la même occasion, surtout lors de la première utilisation, on ne sait jamais).
Normalement, l'ancien htaccess est sauvegardé (renommé en htaccess.txt) lors de l'activation de la maintenance et restauré à la désactivation.

Petite précision : le plugin fonctionne pour toutes les versions de pluxml (du moins, celles qui acceptent les plugins).

Enjoy. tongue

Historique :

06/10/2013 : v1.0
07/10/2013 : v1.1 : Vérification du fichier htaccess avant modification, Pré-configuration à l'activation du plugin, corrections mineures diverses.

Dernière modification par Jerry Wham (07/10/2013 15:17:08)


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#2 07/10/2013 07:38:58

bankai
Pluxml Forever :)
Lieu : Saint-Pierre-la-cour
Inscription : 06/02/2011
Messages : 611
Site Web

Re : [Plugin]Maintenance

Très très bon plugin Jerry, merci smile


Mon site web : Mon blog tout simplement avec sa version de pluXml : version dev Github
Un soucis, une angoisse, une question ? le Wiki est là pour tous ici, pour le reste, on est là pour ça :-)
Suivre PluXml sur les réseaux sociaux : Google+ Twitter

Hors ligne

#3 07/10/2013 07:58:58

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [Plugin]Maintenance

Salut Jerry
Chez moi l'adresse ip n'est pas sauvegardée dans le fichier de maintenance.xml


Ancien responsable de PluXml  cool

Hors ligne

#4 07/10/2013 09:40:44

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 555
Site Web

Re : [Plugin]Maintenance

Il faut entrer celle qui est indiquée au dessus du formulaire. L'as-tu fait ?
Je ne l'ai pas mise par défaut car il peut arriver que l'on active la maintenance et que l'on bosse ensuite à partir d'un autre poste. Dois-je la mettre par défaut ?

Dernière modification par Jerry Wham (07/10/2013 09:40:58)


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#5 07/10/2013 09:58:24

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [Plugin]Maintenance

Oui oui bien sur j'ai saisi l'ip , seulement elle n'est pas enregistrée dans le fichier. J'ai édité le fichier xml la zone reste vide


Ancien responsable de PluXml  cool

Hors ligne

#6 07/10/2013 10:36:18

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 555
Site Web

Re : [Plugin]Maintenance

Là je ne comprends pas trop ce qui se passe. Dans le fichier admin, j'ai :

if(!empty($_POST)) {
	$old = $plxPlugin->getParam('maintenance');
	if ($_POST['maintenance']==1 && $old == 0) {	
		$plxPlugin->setParam('ip', $_POST['ip'], 'cdata');
		$plxPlugin->setParam('maintenance', $_POST['maintenance'], 'numeric');
		$plxPlugin->saveParams();
		$plxPlugin->mkhtaccess();
	}elseif($_POST['maintenance']==0 && $old == 1) {
		$plxPlugin->setParam('ip', $_POST['ip'], 'cdata');
		$plxPlugin->setParam('maintenance', $_POST['maintenance'], 'numeric');
		$plxPlugin->saveParams();
		$plxPlugin->delhtaccess();
	}
	header('Location: plugin.php?p=maintenance');
	exit;
}

Chez moi, l'enregistrement se fait bien.
Les autres paramètres s'enregistrent ou pas (maintenance par exemple, il est égal à 0 ou 1) ?


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#7 07/10/2013 11:23:11

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [Plugin]Maintenance

Apres une installation, dans le fichier admin.php tu fais référence au paramètre "maintenance" qui n'existe pas dans maitenance.xml
Comme il n'existe pas, la variable  $old = '';
Apres dans les tests tu as $old == 1 ou $old == 0
donc tu ne passeras jamais dans le if et dans le else
voilà pourquoi ip n'est pas sauvegardé


Ancien responsable de PluXml  cool

Hors ligne

#8 07/10/2013 11:41:29

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 555
Site Web

Re : [Plugin]Maintenance

Oui, mais en php, 0, '' ou null n'est-il pas souvent interprété de façon identique, sauf si tu as une stricte égalité (===) ?

Je me suis fait la réflexion avant de te répondre précédemment et j'ai fait le test (en supprimant les lignes correspondantes dans le fichier xml de paramètres). Et l'enregistrement s'est bien fait.

Je vais quand même modifier les sources. Tu pourras me dire si ça change quelque chose ?

Dernière modification par Jerry Wham (07/10/2013 11:43:49)


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#9 07/10/2013 11:47:56

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [Plugin]Maintenance

Jerry Wham a écrit :

Oui, mais en php, 0, '' ou null n'est-il pas souvent interprété de façon identique, sauf si tu as une stricte égalité (===) ?

non: if ($test=='') ou if($test==0) ce n'est pas du tout la meme chose (et heureusement)


Ancien responsable de PluXml  cool

Hors ligne

#10 07/10/2013 11:53:26

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 555
Site Web

Re : [Plugin]Maintenance

Stéphane a écrit :
Jerry Wham a écrit :

Oui, mais en php, 0, '' ou null n'est-il pas souvent interprété de façon identique, sauf si tu as une stricte égalité (===) ?

non: if ($test=='') ou if($test==0) ce n'est pas du tout la meme chose (et heureusement)

Oui mais non : fais ce test :

<?php 
$test = '';
if ($test=='') {
	echo 'ici'."\n";
}

if($test==0) {
	echo 'l&aacute;'."\n";
}

if($test==null) {
	echo 'et l&aacute;'."\n";
}

$test = 0;
if ($test=='') {
	echo 'ici'."\n";
}

if($test==0) {
	echo 'l&aacute;'."\n";
}

if($test==null) {
	echo 'et l&aacute;'."\n";
}


$test = null;
if ($test=='') {
	echo 'ici'."\n";
}

if($test==0) {
	echo 'l&aacute;'."\n";
}

if($test==null) {
	echo 'et l&aacute;'."\n";
}
 ?>

Ça te retourne

ici là et là ici là et là

Dernière modification par Jerry Wham (07/10/2013 11:54:35)


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#11 07/10/2013 11:56:47

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 555
Site Web

Re : [Plugin]Maintenance

Jerry Wham a écrit :
Stéphane a écrit :
Jerry Wham a écrit :

Oui, mais en php, 0, '' ou null n'est-il pas souvent interprété de façon identique, sauf si tu as une stricte égalité (===) ?

non: if ($test=='') ou if($test==0) ce n'est pas du tout la meme chose (et heureusement)

Oui mais non : fais ce test :

<?php 
$test = '';
if ($test=='') {
	echo 'ici'."\n";
}

if($test==0) {
	echo 'l&aacute;'."\n";
}

if($test==null) {
	echo 'et l&aacute;'."\n";
}

$test = 0;
if ($test=='') {
	echo 'ici'."\n";
}

if($test==0) {
	echo 'l&aacute;'."\n";
}

if($test==null) {
	echo 'et l&aacute;'."\n";
}


$test = null;
if ($test=='') {
	echo 'ici'."\n";
}

if($test==0) {
	echo 'l&aacute;'."\n";
}

if($test==null) {
	echo 'et l&aacute;'."\n";
}
 ?>

Ça te retourne

ici là et là ici là et là ici là et là

Par contre, si tu teste l'égalité stricte (===) alors là le résultat est différent :

<?php 
$test = '';
if ($test==='') {
	echo 'ici'."\n";
}

if($test===0) {
	echo 'l&aacute;'."\n";
}

if($test===null) {
	echo 'et l&aacute;'."\n";
}

$test = 0;
if ($test==='') {
	echo 'ici'."\n";
}

if($test===0) {
	echo 'l&aacute;'."\n";
}

if($test===null) {
	echo 'et l&aacute;'."\n";
}


$test = null;
if ($test==='') {
	echo 'ici'."\n";
}

if($test===0) {
	echo 'l&aacute;'."\n";
}

if($test===null) {
	echo 'et l&aacute;'."\n";
}
 ?>

Résultat

ici là et là

C'est les joies de php

Dernière modification par Jerry Wham (07/10/2013 11:58:32)


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#12 07/10/2013 12:49:41

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [Plugin]Maintenance

En effet... ^^


Ancien responsable de PluXml  cool

Hors ligne

#13 07/10/2013 13:18:11

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 555
Site Web

Re : [Plugin]Maintenance

Sinon, ça a changé quelque chose ?


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#14 07/10/2013 13:53:26

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [Plugin]Maintenance

avec ce code les tests sont ok

if(!empty($_POST)) {
	$old = intval($plxPlugin->getParam('maintenance'));
	if($_POST['maintenance'] AND !$old) {
		$plxPlugin->setParam('ip', $_POST['ip'], 'cdata');
		$plxPlugin->setParam('maintenance', $_POST['maintenance'], 'numeric');
		$plxPlugin->saveParams();	
		$plxPlugin->mkhtaccess();
	}
	elseif(!$_POST['maintenance'] AND $old) {
		$plxPlugin->setParam('ip', $_POST['ip'], 'cdata');
		$plxPlugin->setParam('maintenance', $_POST['maintenance'], 'numeric');
		$plxPlugin->saveParams();	
		$plxPlugin->delhtaccess();
	}
	header('Location: plugin.php?p=maintenance');
	exit;
}

Sauf que maintenant quand je passe en mode maintenance et que j'ai mis l'ip de ma machine, je suis redirigé sur la page de maintenance et je ne peux plus rien faire (impossible de sortir du mode maintenance: plus d'accès à l'admin)

Autre remarque: supprimer brut de fonderie le fichier .htaccess sans faire des controles sur son contenu, vaut mieux pas faire de fausses manips, le risque est de supprimer le vrai htaccess. Tu pourrais vérifier par exemple avant de le supprimer que ton code de maintenance est bien présent (ou un mot clé genre : #maintenance)


Ancien responsable de PluXml  cool

Hors ligne

#15 07/10/2013 14:14:22

Suricat
Membre
Inscription : 26/05/2011
Messages : 145

Re : [Plugin]Maintenance

Merci pour ce plugin. Utile lors des mises à jour...

Hors ligne

#16 07/10/2013 14:38:16

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 555
Site Web

Re : [Plugin]Maintenance

Stéphane a écrit :

Sauf que maintenant quand je passe en mode maintenance et que j'ai mis l'ip de ma machine, je suis redirigé sur la page de maintenance et je ne peux plus rien faire (impossible de sortir du mode maintenance: plus d'accès à l'admin)

C'est que l'adresse entrée n'est pas la bonne. Si tu es chez toi, derrière une box, c'est l'adresse de la box qu'il faut entrer (pas celle en 192.168...) pas celle de ton poste.

Stéphane a écrit :

Autre remarque: supprimer brut de fonderie le fichier .htaccess sans faire des controles sur son contenu, vaut mieux pas faire de fausses manips, le risque est de supprimer le vrai htaccess. Tu pourrais vérifier par exemple avant de le supprimer que ton code de maintenance est bien présent (ou un mot clé genre : #maintenance)

Oui, c'est vrai, j'y avais pensé mais je ne savais pas trop comment faire (je teste juste si le fichier d'origine a bien été renommé en htaccess.txt). Il suffisait que je regarde un peu mieux les sources de pluxml.

Je modifierai ça ce soir.


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#17 07/10/2013 14:56:55

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [Plugin]Maintenance

pourquoi ça serait l'adresse de ma box ?  je suis en local avec le serveur sur ma machine. L'adresse ip proposé est 127.0.0.1. Ce qui me va bien puisque mon serveur est en localhost. Bon c'est pas trop grave si ça marche pour tout le monde.


Ancien responsable de PluXml  cool

Hors ligne

#18 07/10/2013 14:57:17

Frédéric
Membre
Inscription : 03/06/2009
Messages : 2 534

Re : [Plugin]Maintenance

Merci Jerry pour ce plugin qui est indispensable je pense pour des raisons de sécurité lors de mise à jour.
Je pense qu'il serait en effet mieux de l'intégrer en natif pour ces raisons notamment.

Après je ne suis vraiment pas partisan de gérer uniquement par htaccess, de plus en plus de personnes s'autohéberge est n'utilise donc pas systématiquement apache.

Mais c'est une bonne piste wink

Hors ligne

#19 07/10/2013 15:06:31

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [Plugin]Maintenance

Frédéric a écrit :

Après je ne suis vraiment pas partisan de gérer uniquement par htaccess, de plus en plus de personnes s'autohéberge est n'utilise donc pas systématiquement apache.

+1

c'est pour cela que cela ne sera pas en natif et restera en plugin.
en plus le mod_rewrite n'est pas forcément actif chez tous les hébergeurs.


Ancien responsable de PluXml  cool

Hors ligne

#20 07/10/2013 15:10:33

Frédéric
Membre
Inscription : 03/06/2009
Messages : 2 534

Re : [Plugin]Maintenance

Mais on peux le gérer avant buffeurisation de sortie Stéphane avec un paramètre en configuration faire le test sur celui-ci.
On a nul besoin de modifier le htaccess pour cette option je pense.
Et pour moi ce mod touche au core de pluxml donc a mettre en natif pour avoir un meilleur controle en cas de maj de PluXml

Dernière modification par Frédéric (07/10/2013 15:11:25)

Hors ligne

#21 07/10/2013 15:15:23

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 555
Site Web

Re : [Plugin]Maintenance

@ Stéphane : j'ai modifié les vérifications avant modification du htaccess. Tu peux me dire si c'est mieux ?
@ Frédéric : Le problème est que si tu modifies les fichiers de pluxml, ta redirection vers le fichier de maintenance ne tiendra plus. Là, on a un fichier htaccess (certes pas fonctionnel partout) et un fichier workinprogress.php que l'on ne devrait pas écraser lors d'une mise à jour (le fichier htacess sera écrasé à la toute fin). Ce système est quasi indépendant du fonctionnement de pluxml.

Ou alors utiliser différemment le fichier d'update ?

Dernière modification par Jerry Wham (07/10/2013 15:18:55)


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#22 07/10/2013 15:22:50

Frédéric
Membre
Inscription : 03/06/2009
Messages : 2 534

Re : [Plugin]Maintenance

Ok alors j'active la maintenance et maintenant je fait le test en modifiant le numéro de version de pluxml pour qu'il me lance le script de mise à jour et simule une connexion externe.
Bingo ca plante ma mise à jour alors que j'ai la redirection de la maintenance active.

Conclusion justement le plugin et indépendant comme tu le dit Jerry et il faut donc un controle qui se fait lors de la mise à jour (le but initiale sur l'autre discussion il me semble ?).
Bref c'est un paramètre a  ne pas prendre à la légère qui modifie le comportement de Pluxml lors d'une mise à jour et quad des Plugins ?
A voir même avoir un comportement avec eux pour les désactiver aussi en cas d'update.

Il fait donc partie de la configuration de PluXml donc il le faut en natif.

Hors ligne

#23 07/10/2013 15:26:23

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 555
Site Web

Re : [Plugin]Maintenance

@Frédéric : tu peux faire s'il te plait la même manip sans mon plugin activé (je parle bien du plugin à désactiver) ? Je pense que ça plantera tout autant...


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#24 07/10/2013 15:28:24

Frédéric
Membre
Inscription : 03/06/2009
Messages : 2 534

Re : [Plugin]Maintenance

Je te le confirme, et je l'avais justement signaler à Stéphane de sécuriser sur ce point avec une maintenance, la coïncidence veut qu'un membre et lancé ce sujet... smile

Hors ligne

#25 07/10/2013 15:36:49

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 555
Site Web

Re : [Plugin]Maintenance

Tu me confirme quoi ? Que ça plante sans mon plugin ?


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

Pied de page des forums

A propos Nous soutenir Contact Twitter Google+
Copyright © 2006-2018 PluXml.org, tous droits réservés