PluXml.org

Blog ou CMS à l'Xml

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

#1 09/11/2017 05:57:33

Yannic
Membre
Lieu : Lac-Saint-Jean QC CA
Inscription : 17/01/2017
Messages : 216
Site Web

Couleur de la version de PluXml

A chaque fois je fait le saut big_smile car c'est en rouge "Vous utilisez la dernière version de PluXml (5.6)"

Ce ne serais pas plux logique en vert quand c'est à jour et en rouge quand ça ne l'est pas ?


Bonjour chez vous !
Mon Site sous PluXml : cryptoservices.net
Mon Blog sous PluXml : yenten.today

Hors ligne

#2 09/11/2017 10:54:32

niqnutn
Membre
Inscription : 21/09/2015
Messages : 366

Re : Couleur de la version de PluXml

oui, entièrement d'accord.

Hors ligne

#3 09/11/2017 13:55:03

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 090
Site Web

Re : Couleur de la version de PluXml

Et parfois la retombée peut être brutale  devil

Pour éviter cela voici quelques modifs :
Modifier la fonction checkMaj(...) dans le fichier core/lib/class.plx.admin.php. On en profite pour optimiser le code :

[== PHP ==]

    public function checkMaj() {

        # La fonction est active ?
        $theClass = 'text-error';
        $msg = L_PLUXML_UPDATE_UNAVAILABLE;
        if(ini_get('allow_url_fopen')) {
 
            # Envoi requête HTTP vers le site de PluXml
            if($fp = @fopen('http://telechargements.pluxml.org/latest-version', 'r')) {
                $latest_version = trim(fread($fp, 16));
                fclose($fp);
            }
            if(!empty($latest_version)) {
                # Comparaison
                if(version_compare(PLX_VERSION, $latest_version, ">=")) {
                    $msg = L_PLUXML_UPTODATE.' ('.PLX_VERSION.')';
                    $theClass = 'text-success';
                } else {
                    $msg = L_PLUXML_UPDATE_AVAILABLE.' <a href="http://www.pluxml.org/">PluXml.org</a>';
                }
            } else {
                $msg = L_PLUXML_UPDATE_ERR;
                $theClass .= ' unavailable'
            }
        }
        return <<< RESULT
<span class="$theClass">$msg</span>
RESULT;

    }

Rappel : str_replace accepte aussi les tableaux(array) en paramètres.
On rajoute 2 class dans le fichier core/admin/theme/theme.css, vers les class error et success à la ligne 418

[== CSS ==]
.text-error {
	color: red;
	background-color: yellow;
}
.text-success {
	color: green;
}

Et on modifie la ligne n°22 de core/admin/parametres_infos.php comme suit :

[== PHP ==]
	<p id="check-maj"><?php echo $plxAdmin->checkMaj(); ?></p>

Au final on ajuste les couleurs à son goût dans les class ci-dessus.

Ceux-ci ne sont que des détails cosmétiques.

Ce qui est plus gênant c'est l'emploi de allow_url_fopen et de fopen dans la fonction checkMaj.
Chez certains hébergeurs, pas que les gratuits, leurs usages sont interdits.
De plus, il y redondance d'information puisque qu'on va cherché une information à pluxml.org alors qu'elle existe sur le dépôt de Github.

Donc il vaudrait mieux utiliser Javascript et l'Api de Github.
J'en connais même certains qui font pareil pour vérifier la mise à jour de leurs plugins à chaque fois qu'on affiche la page de leurs configs.
Pas cool, surtout si leurs serveurs rament.

Hors ligne

#4 09/11/2017 20:12:11

zetrader
Membre
Lieu : Paris et Valencia
Inscription : 14/01/2010
Messages : 253
Site Web

Re : Couleur de la version de PluXml

Je n'avais même pas fait attention à ce détail, mais oui je suis d'accord, plus logique en vert si on a la dernière version et en rouge quand on n'est pas à jour.

Hors ligne

#5 09/11/2017 20:28:44

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 090
Site Web

Re : Couleur de la version de PluXml

Pour faire suite à ce qui est plus haut, j'ai envoyé un pull request sur Github.

Si vous connaissez Git et que vous  voulez tester, c'est la branche check_maj sur mon dépôt Github :

[== bash ==]
git clone --depth 1 -b check_maj https://github.com/bazooka07/PluXml.git

C'est un bon exemple pour récupérer le numéro de la dernière release sur un dépôt Github avec Javascript.
Cela se passe dans le fichier core/lib/checkMaj.js

Hors ligne

#6 26/11/2017 23:32:21

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

Re : Couleur de la version de PluXml

Attention de ne pas dépendre d'une solution proprio unique. Pour rappel, pluxml était autrefois hébergé chez google (google code pour être exact), jusqu'à ce que le service ferme...
Rien ne dit que Github ne fermera pas un jour, ou que les conditions de fonctionnement changeront.

Je ne dis pas que la solution proposée par Bazooka est mauvaise, je dis juste qu'il faut se méfier de mettre tous ses oeufs dans le même panier.


Mangez un castor, vous sauverez un arbre !

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

Hors ligne

#7 27/11/2017 00:42:10

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 090
Site Web

Re : Couleur de la version de PluXml

Pas de souci, mon ami big_smile

Actuellement l'adresse pour connaitre le numéro de la dernière version de PluXml est ici :
http://telechargements.pluxml.org/latest-version

Le souci est que le site http://telechargements.pluxml.org ne sait pas répondre pour l'heure à une requête JSONP et que je n'en suis pas le webmaster.

Pour faire la démo, j'ai recopié le fichier latest-version sur un serveur dont j'ai la maitrise :
http://kazimentou.lan/divers/PluXml-dow … st-version

A côté de ce modeste fichier de texte, le petit script php suivant va faire le job :

[== index.php ==]
<?php
const FILENAME = 'latest-version';
const TIMESTAMP_FORMAT = 'D, d M Y H:i:s';

if(file_exists(FILENAME)) {

    header('Last-Modified: '.gmdate(TIMESTAMP_FORMAT, filemtime(FILENAME)).' GMT');
    header('Expires: 7200');

    if(isset($_GET['callback'])) {
        $callback = filter_input(INPUT_GET, 'callback', FILTER_SANITIZE_STRING);
        if(!empty($callback)) {
            // implementation JSONP
            header('Content-type: application/javascript; charset=utf-8');
            echo "$callback('";
            readfile(FILENAME);
            echo "');";
            exit;
        }
    }

    header('Content-Type: text/plain; charset=utf-8');
    readfile(FILENAME);
    exit;

} else {
    header('HTTP/1.0 404 Not Found');
    header('Location: http://www.pluxml.org/');
}
?>

Il reste juste à écrire une modeste fonction de callback en javascript pour appeler un script js sur le serveur :

[== test.html ==]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<title>La dernière version de PluXml</title>
	<meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body>
	<p>
		La version <span id="version">inconnue</span> de PluXml est en ligne (<em>d'après un script Javascript</em>).
	</p>
	<script type="text/javascript">
		function process(data) {
			'use script';
			var idVersion = document.getElementById('version');
			if(idVersion != null) {
				var matches = data.match(/^(\d+\.\d+(?:\.\d+)?)$/);
				if(matches != null) {
					idVersion.textContent = matches[1];
				} else {
					console.log('Bad response from this server : ' + data)
				}
			} else {
				console.log('#' + idVersion + ' element not found');
			}
		}
	</script>
	<script id="version-pluxml" type="text/javascript" src="http://kazimentou.fr/divers/PluXml-download?callback=process"></script>
</body>
</html>

Pour éviter de recopier le code tu peux enregistrer la page suivante :
http://kazimentou.lan/divers/PluXml-download/test.html

Donc, vraiment rien de sorcier.

Le jour où Github fermera, cela risque d'être la révolution vu le nombre de projets hébergés, surtout que de plus en plus d'entreprises y vont.

L'intérêt de Github, c'est qu'il y a un serveur git qui est opensource.
Après, c'est vrai qu'on ne sait pas trop ce qu'ils font des données qu'ils voient passer sur leurs radars.

Dernière modification par bazooka07 (27/11/2017 00:43:09)

Hors ligne

Pied de page des forums

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