Modifier "automatiquement le menu des pages / site statique

Le premier forum francophone sur l'éditeur de pages Web multiplateforme (Linux, Mac OS X, Windows) qui monte… KompoZer, héritier de Nvu, permet de créer vos pages Web graphiquement (wysiwyg) sans aucune connaissance du langage HTML.

Modérateur : chinon37

Fabrice.Tres.Net
Tyrannosaurus Rex
Messages : 2390
Inscription : 26 juin 2006, 12:50

Modifier "automatiquement le menu des pages / site statique

Message par Fabrice.Tres.Net »

Bonjour à toutes et à tous,
et + particulièrement aux "anciens",

Comme j'ai découvert simplehtmldom par hasard, j'y ai vu une manière simple pour modifier des parties identiques dans des pages statiques sous réserve qu'elles soient dans des blocs similaires au sens DOM.
Par exemple, si toutes vos pages intègrent un menu dans un bloc déclaré comme "<div id="mon_menu">...</div>",
il va être alors possible de modifier votre menu dans toutes vos pages de manière automatique si vous maîtrisez un peu la programmation php.

Code : Tout sélectionner

<?php
require_once './simple_html_dom.php';

/*  ------------   A CONFIGURER SELON VOS BESOINS   -----------*/

$dir_resultat ="resultat"; /* répertoire d'accueil des fichiers modifiés  */ 
$liste_fichiers = "a_traiter.txt"; /*liste des fichiers à traiter, un nom /ligne */
$bloc_a_modifier= "div[id=menuhaut]";
$nouveau_contenu= "<h1>MON NOUVEAU MENU</h1>"; /* a remplir selon vos besoins */

/* ----------------------------------------------------------------- */

echo "<h3>Modification automatique du menu de </h3>";

$fd = fopen($liste_fichiers, 'r');
if ($fd)
	{
	while (!feof($fd)) /*Tant que l'on est pas à la fin du fichier*/
	{
		$src_file = fgets($fd);		/*On lit la ligne courante*/
		/* et récupère le nom du fichier à traiter*/
		echo $src_file . "<br />"; /* pour voir l'avancement */ 
		$res_file="$dir_resultat". '/'. "$src_file"; /* on met le resultat dans un autre répertoire au cas où...*/
		echo 'nom fichier resultat: '.$res_file . "<br/>";
		
		$html = new simple_html_dom();
		$html->load_file($src_file);
		$ret = $html->find($bloc_a_modifier); 
		$ret[0]->outertext =$nouveau_contenu;
		echo $html->save($res_file); // affiche + sauvegarde
	}
	fclose($fd);	/* c est fini, on ferme le fichier*/
	}
?>

Restrictions : ne marche qu'avec PHP5, ce qui n'est pas un souci pour un usage en local avec un serveur Apache type WAMP,...
Les pages mal codées peuvent poser des problèmes.

Pour télécharger simplehtmldom, http://simplehtmldom.sourceforge.net
dans mon exemple, je l'ai installé directement dans ma "racine".

http://simplehtmldom.sourceforge.net/manual.htm

PS: Vous pouvez appliquer cette méthode à vos bandeaux, bas de pages,.. à tout ce qui peut être identifié par le DOM.
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 7 invités