GALERIE D'IMAGE SIMPLE ET FACILE A INTEGRER A VOS PAGES EXISTANTES

darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007 - 28 mai 2007 à 21:50
foyout Messages postés 25 Date d'inscription jeudi 25 janvier 2007 Statut Membre Dernière intervention 8 novembre 2008 - 7 août 2008 à 21:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42879-galerie-d-image-simple-et-facile-a-integrer-a-vos-pages-existantes

foyout Messages postés 25 Date d'inscription jeudi 25 janvier 2007 Statut Membre Dernière intervention 8 novembre 2008
7 août 2008 à 21:58
Me revoila :-)

J'ai réussi a classer et afficher les noms par ordre alphabétique, donc je suis content, merci.

Par contre, j'ai encore un souci. Cette fois ce sont les photos que je voudrais classer par ordre alphabétiques de leur noms. Y'a un moyen de faire ça ?
Merci d'avance

Foyout
foyout Messages postés 25 Date d'inscription jeudi 25 janvier 2007 Statut Membre Dernière intervention 8 novembre 2008
9 juil. 2008 à 22:35
bon, merci deja pour tout ca. Je vais essayer de me debrouiller.
darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007
8 juil. 2008 à 12:50
ca remplace la partie du code qui scan le répertoire image.
Le truc c'est qu'il faut retravailler un peu le code de chaque coté et de faire aussi un petit code suplémentaire pour afficher l'array.
Et j'ai pas le temps de mettre ce code en ligne.
foyout Messages postés 25 Date d'inscription jeudi 25 janvier 2007 Statut Membre Dernière intervention 8 novembre 2008
8 juil. 2008 à 11:09
merci de m'aider.
Par contre, je suis pas très doué. Il faut que je mette ce code ou ?
darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007
7 juil. 2008 à 21:17
Ils se mettent de façon aléatoire, je n'ai jamais vraiment compris comment se faisait le classement.

Le problème c'est que l'on affiche le contenu du répertoire image en temps réel, c'est à dire qu'on affiche les dossiers en même temps qu'on les scans.

Il est en effet possible de trier par ordre mais il faut alors d'abord mettre tout le contenu du répertoire dans un array. Ensuite, il faut afficher le contenu de l'array.
Ainsi, il est possible de trier le contenu de l'array.

Voici une petite modif:

<?php
$dir = 'images/';
$fichier = array();
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if(filetype($dir . $file) == "dir" AND $file !== "." AND $file !== ".." AND $file !== "tb" AND $file !== "_notes"){
$file2 = str_replace("_", " ", $file);
$debutJournee = mktime(0,0,0,date("m",filemtime('images/'.$file)),date("d",filemtime('images/'.$file)),date("Y",filemtime('images/'.$file)));
$secAvtDeb = filemtime('../'.$type.'/'.'001_v1.0_compil.doc.librairie.jpg'.'/'.$id.'/'.$file)-$debutJournee;
$diff = time() - filemtime('images/'.$file);
$nbJr= intval($diff/(24*3600));
if( (($diff%(24*3600))+$secAvtDeb) > (24*3600) ) $nbJr++;
$jrs = ($nbJr < 31) ? '' : '';
$file = '[images/'.$file.'/index.php '.$file2.'] '.$jrs;
array_push($fichier, $file);
}}
closedir($dh);
}
}
natcasesort($fichier);
?>

Voila, normalement... je dis bien... normalement... dans l'array $fichier se trouve alors dans l'ordre alphabétique.
Avec mon petit truc en plus, il y aura même un logo new pour chaque nouveau dossier image datant de moins de 30 jours.

Par contre il te faudra afficher le contenu de l'array via une boucle par exemple.
foyout Messages postés 25 Date d'inscription jeudi 25 janvier 2007 Statut Membre Dernière intervention 8 novembre 2008
7 juil. 2008 à 13:24
Hello

désole de répondre si tard, j'ai eu quelques souci de mise en page auparavant qui m'ont empeché de tester la modif du script.
Mais un grand merci car ça marche nickel :-))

Par contre, je vais être chiant, mais j'ai une autre question. Comment faire pour que les elements de la liste se mettent par ordre alphabétique ? La je ne comprend pas trop l'ordre dans lequel ils se mettent,...

merci pour tout

Foyout
darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007
23 juin 2008 à 00:10
oui, c'est possible, j'ai modifié entre temps mon code, mais vu que c'était un petit truc mineur, et qu'en plus, c'était sur une autre version de code que ce script je n'ai pas mis à jour:

Modifier le code comme suit:

$files = filelist("images/",1,1); // nous demandons de scanner le repertoire images/ les valeurs qui suivent permetent de preciser si on veut compter les sous dossiers, enfin bref, on met tout a 1 ici
foreach ($files as $list) {
$file2 = str_replace("_", " ", $list['name']);
echo "" . $file2 ."
"; // on affiche la liste sous forme de lien
}

Principe:
Les sous dossiers image contenant un espace doivent alors comporter un _ au lieu de chaque espace.
Ensuite, au moment d'afficher chaque lien, on enleve le _ de chaque nom par un espace.

Par exemple, j'ai un sous dossier image Dragon ball Z
Je modifie alors le nom du sous dossier: Dragon_ball_Z

Au moment où l'on écrit les répertoires images dans le script, je remplace les _ par des espaces, mais uniquement pour l'affichage, pas pour le lien, sinon ça ne marche plus. J'aurais alors:

Dragon ball Z

voilou voula
foyout Messages postés 25 Date d'inscription jeudi 25 janvier 2007 Statut Membre Dernière intervention 8 novembre 2008
22 juin 2008 à 14:54
hello

merci beaucoup pour ce script bien utile et qui permet d'alléger le travail du webmaster.
Par contre, y'aurait-il pas un moyen pour permettre de mettre des espaces dans les noms des sous-dossiers du dossier image ?
Merki d'avance
darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007
13 nov. 2007 à 18:32
tu peux mettre ta page explorermanga complete ici? parce qu'apparament tu as modifié la page en question vu que la ligne 33 ne renvoi pas sur une ligne de code qui pourrait poser probleme.

l erreur en question provient du faite que foreach fonctionne avec un array comme variable. Si tu as modifiés les noms de variables il se pourrait bien que tu as oublié de modifier le nom des variables qui enregistre le tableau des répertoires.

En clair, tu as modifié le nom des variables de la page ou encore, que tu ne cherches pas dans le bon répertoire.
$files = filelist("images/",1,1);
foreach ($files as $list) {

tu peux voir dans le fichier par defaut, qu'on cherche dans le répertoire image qui se trouve au meme niveau d'arborescence que la page explorermanga.
alamandra Messages postés 43 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 21 janvier 2010
8 nov. 2007 à 03:51
salut et un grand merci pour ce super taff !!!

jobtiens l 'erreur suivante

// etc Warning: Invalid argument supplied for foreach() in /home/alamandra/public_html/avatars_gallery/explorermanga.php on line 33

as tu une idee, de ce que jai pu faire comme erreur ?

merci a bientot peut etre

JP
darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007
31 mai 2007 à 22:42
bon voila on a reglé ton petit soucis par pm interposé, pour info son probleme venait de la page qui appelait la galerie.
suivant :D
kerm0uch Messages postés 2 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 31 mai 2007
31 mai 2007 à 20:24
voila le meme code que j ai copier au dessus..


<tr>
<td colspan="3" id="borduretitre">Galerie
</td>
</tr>
<tr>
<td height="21" id="bordure"></td>
</tr>
<tr>
<td colspan="3" id="tableau" align="center">
<?php
// la fonction qui suit permet de lister les sous répertoires, il est possible de demander a la fonction de lister les sous dossiers, les sous sous dossiers, etc etc, mais ici nous ne le voulons pas
function filelist ($startdir="./", $searchSubdirs=1, $directoriesonly=0, $maxlevel="all", $level=1) {
$ignoredDirectory[] = ".";
$ignoredDirectory[] = "..";
$ignoredDirectory[] = "_vti_pvt";
$ignoredDirectory[] = "_vti_cnf";
$ignoredDirectory[] = "_private";
global $directorylist;
if (is_dir($startdir)) {
if ($dh = opendir($startdir)) {
while (($file = readdir($dh)) !== false) {
if (!(array_search($file,$ignoredDirectory) > -1)) {
if (filetype($startdir . $file) == "dir") {
$directorylist[$startdir . $file]['dir'] = 1;
$directorylist[$startdir . $file]['name'] = $file;

}}}
closedir($dh);
}}
return($directorylist);
}

$files = filelist("images/",1,1); // nous demandons de scanner le repertoire images/ les valeurs qui suivent permetent de preciser si on veut compter les sous dossiers, enfin bref, on met tout a 1 ici
foreach ($files as $list) {
echo "" . $list['name'] ."
"; // on affiche la liste sous forme de lien
}?>
</td>
</tr>


<tr>
<td colspan="3" id="borduretitre"><?php

echo str_replace('images/', '',str_replace('/index', '', $_GET['page']));?>
</td>
</tr>
<tr>
<td height="21" id="bordure"></td>
</tr>
<tr>
<td colspan="3" id="tableau" align="center">
<?php
$extensions_autorisees = array('jpg','jpeg','gif','png');
$totalimg = 0;
$page = str_replace('index', '', $_GET['page']); // on recupere le chemin du fichier index et on enleve index du nom pour en avoir que le chemin repertoire
$dir = $page;
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
$ext = substr(strrchr($file, \".\"), 1);
if (in_array(strtolower($ext),$extensions_autorisees)){
$totalimg ++;
}}}
closedir($dh);
}
if (isset($_GET['id'])) // le id permet de faire savoir à la page index quelle page on affiche
$id = $_GET['id'];
else
$id = 1; // si l'id ne contient rien, il s'agit alors de la premiere page
$lmax = 4; // nombre d'image par ligne
$hmax = 4; // nombre de colonnes max par page
$nbpagemax = ceil($totalimg / ($lmax * $hmax)); //on calcul le nombre de page max
function miniature($picture,$rep,$fext) // début de la fonction qui genere les miniatures
{
if (file_exists($rep . \"tb/mini_\" . $picture) == false) {if ($fext \"jpg\") { $source imagecreatefromjpeg($rep . $picture);}elseif ($fext \"gif\") { $source imagecreatefromgif($rep . $picture);}
else { $source = imagecreatefrompng($rep . $picture);}
$destination = imagecreatetruecolor(200, 150); // On crée la miniature vide
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
imagejpeg($destination, $rep . 'tb/mini_' . $picture);
}
} //fin de la fonction
$page = str_replace('index', '', $_GET['page']); // on recupere le chemin du fichier index et on enleve index du nom pour en avoir que le chemin repertoire
$dir = $page;
if (file_exists($dir . \"tb/\") == false) { //on verifie ensuite si on possede un dossier tb dans le dossier image
mkdir ($dir . \"tb/\", 0777); // si ce nest pas le cas, on creer le dossier
}
if ($id > 1)
$nombreimage = ($id - 1) * ($lmax * $hmax); //si ID est superieur a 1 on reprend le compte de la variable la ou elle en etait
else
$nombreimage = 0;
$verifnbimg = 0;
$intervalle = 0;
$nbligne = 0;
$nbpage = 1;
// 2 a la variable, ce qui correspond au fichier index et le repertoire tb, attention tout de meme a ne pas avoir de fichier thunbs.db dans
//le repertoire sous peine de fausser le compte
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
$ext = substr(strrchr($file, \".\"), 1);
if (in_array(strtolower($ext),$extensions_autorisees)){if ($nbligne !$hmax AND $verifnbimg $nombreimage AND $nombreimage <= $id * ($lmax * $hmax)) { //on verifie qu on affiche bien les images en fonction de la page
miniature($file, $dir, $ext); // on verifie avec la fonction que la miniature du fichier existe, sinon on la creer
//les lignes qui suivent affiches les miniatures, son nom, son extension et sa tailleif ($ext \"jpg\") { $source imagecreatefromjpeg($dir . $file);}elseif ($ext \"gif\") { $source imagecreatefromgif($dir . $file);}
else { $source = imagecreatefrompng($dir . $file);}
echo \"

Nom: " . str_replace("." . $ext, '', $file) . "

taille : " . ceil(filesize($dir . $file)/1000) . " Ko

" . imagesx($source) . " x " . imagesy($source) . ", \";
//fin de l affichage des miniatures
if ($nombreimage < $totalimg) {
$nombreimage ++;
}
$intervalle ++;
// cette ligne permet de passer a la colonne suivante apres avoir affiche x images
if ($intervalle == $lmax) { $nbligne ++; echo \"----
\"; $intervalle = 0; }
}
$verifnbimg ++;
}}
closedir($dh);
}
}
// maintenant on va creer autant de page qu'il faudra pour afficher toutes les images
if ($nbpagemax > 1) { // si le nombre d image ne depasse pas le nombre max par page il est inutile d afficher les pages
echo \"----
Pages";
while ($nbpage < $nbpagemax) {
echo " " . $nbpage . ",";
$nbpage++; }
echo " " . $nbpage; } // on repete encore une fois l instruction avant d afficher la
// derniere page pour eviter de mettre la , a la fin du dernier numero
echo "----, images : \" . $nombreimage . \"/\" . $totalimg . \"</td>\";
//petit plus, on affiche combien d'image est affiché par rapport au nombre max du dossier
?>
</td></tr>

ce code me renvoi des erreurs..
darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007
31 mai 2007 à 20:10
j ai regardé dans mon dossier image pour y regarder mon fichier index de la galerie.
Tes erreurs me renvoyent pas à des lignes sur mon fichier index qui pourraient générer des erreurs. Donc tu as modifié le fichier index.
il faudrait que tu nous montre le contenu du fichier index. essai la nouvelle archive sans rien toucher. ensuite, tu auras juste a recuperer la partie

<?php
if (isset($_GET['page'])) {
$page = $_GET['page'];
include("$page.php");
}
else {
include ('explorermanga.php');
}
?>

et à le mettre dans la page ou tu veu afficher la galerie.
darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007
31 mai 2007 à 19:55
moue... j'ai remarqué que mon archive avait quelques lacunes... j'en ai refais une... tu n'as plus qu'a la dl et réesayer pour me dire si ca marche.
kerm0uch Messages postés 2 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 31 mai 2007
31 mai 2007 à 19:28
salut
je suis debutant en php j'ai essayer ce code mais il me donne un message d erreur:
Notice: Undefined index: page in c:\program files\easyphp1-8\www\photosansbdd\index.php on line 46


Notice: Undefined index: page in c:\program files\easyphp1-8\www\photosansbdd\index.php on line 57

Notice: Undefined index: page in c:\program files\easyphp1-8\www\photosansbdd\index.php on line 90

je voudrais savoir s'il ya moyen de l'eviter..
merci
darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007
31 mai 2007 à 12:17
on peut retorner sur le vif du sujet... lol! mon script...
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
31 mai 2007 à 10:54
@Malalam, c'est vrai que xls et les transformations xslt sont ce qu'il y a de mieux, et on va finir par arriver sur cette sorte de template mais j'ai juste une petite question :
Tu a ta feuille xsl qui transforme ton arbre xml en page web (pour l'exemple). Ton arbre xml, a un moment ou un autre, il faut bien que tu le genere non ? tu passera aussi par php du coup ?
Apres je suis d'accord avec toi pour dire que ce sera plus rapide que faire 50 preg_replace et 20 str_replace :)

Par contre le gros avantage des moteurs de templates, sont le systeme de cache (pour ceux qui en ont un ! :p) comme l'a dit Neigedhiver
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
31 mai 2007 à 01:27
Salut,

T'es pas chiant... PHP est évidemment le premier moteur de templates qui existe.
M'enfin j'aimerais qu'on n'oublie pas que Smarty "compile" les templates non parsés (pour en faire des templates parsés) et offre une fonctionnalité de cache qui n'est pas négligeable...
Après, forcément, si on recompile toujours tout, ça bouffe plus de ressources que si on exploite intelligemment les possibilités de l'outil. C'est vrai, ça fait un objet en plus chargé en mémoire, m'enfin bon...
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
31 mai 2007 à 01:09
Hello,

je vais jouer les chiants, là...
J'ai rien contre les templates...nan nan...
Mais...

"genre ton css mettra en gras le champ {login}
et ton template remplacera {login} par le login de la personne connectée"
Merveilleux! Quelle différence entre {login} et <?php echo $login; ?> ? Ah ouais, quelques caractères...Et pi y a pas de php...y a juste une variable. Ah non, c'est pas une variable parce qu'elle n'est pas préfixée par un $ ou autre truc symptomatique d'un langage devant ? Hmmm...$login ou {login}...mouais.
Et un parser en moins...
Nan, j'ai du mal.
Le meilleur moteur de template ? Un langage serveur pour les traitements (PHP...?), qui renvoie un XML, mis en forme par une XSL (pout l'output, je précise...ça renverra du...html...pdf...rtf...ou autre...), couplée par une CSS (adaptée à-aux-ouput-s).
Smarty? Arf...
Ceci n'est que mon avis.
Mais bon... ;-)
C'est pas que le templating soit une mauvaise idée. La séparation fond/forme, c'est une bonne idée. Mais au prix de smarty ou autre, nan. Surtout quand il y a des moteurs de template déjà en place et natifs tellement évidents que personnes ne les voit...
darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007
30 mai 2007 à 12:40
que y a du boulot... bon sang de bonc sang! j'avais passé 2 ou 3 semaines a refaire mon site en php... il etait encore en htm... meme pas en html... il en avait besoin... ben j'peu tout recommencer quoi...
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
30 mai 2007 à 10:42
merci neigedhiver :)
C'est vrai que les template c'est qu'une partie interessante de tout ce qui touche au design pattern, uml, mvc etc. (Bien que je n'ai pas encore tout les connaissances dans le domaine :)) Personnellement je vois les templates comme une partie du MVC (c'est un peu le cas en meme temps :)) Pour un tuto pourquoi pas mais actuellement j'ai pas trop le temps. Si quelqu'un se lance c'est bien, sinon si j'ai le temps je le ferai plus tard (attention ! j'ai di SI ! :))
Bonne journée à tous.
Darknessneo : Je te propose de te mettre une note quand tu aura optimisé ton code (séparé mieux le html du php), qu'en pense tu ?! :)
darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007
30 mai 2007 à 07:53
euh sinon, une petite note pour le débutant?
darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007
30 mai 2007 à 07:53
un tuto je suis a 100% pour! j'en veu un! sinon, codefalse, je t'ai envoyé un PM.
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
29 mai 2007 à 23:02
J'aime bien tes explications codefalse, j'aurais pas fait mieux.
Vous pensez que ça mériterait un tuto complet sur les templates ça ?

A partir de là, c'est la porte ouverte à la séparation des classes métiers, à MVC, UML, aux design patterns... Enfin on peut rester sur des templates, le reste, je ne maîtrise pas du tout.
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
29 mai 2007 à 18:33
si elle sert toujours :
Une feuille css met tes éléments en place sur la page
un template mets des valeurs dans tes éléments
c'est completement différent.

genre ton css mettra en gras le champ {login}
et ton template remplacera {login} par le login de la personne connectée
darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007
29 mai 2007 à 17:46
ok, derniere question, si j'utilise des templates, ma feuille css ne sert plus a rien, right?
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
29 mai 2007 à 16:37
rien n'est crétin :)
mais ta page n'est pas un template. En fait, template, c'est une sorte de patron, comme pour les croquis, donc en fait tu lui dit comment être, mais tu ne met AUCUN code php (bon apres, certains moteur de template autorise du code php.. bref).
Tout les elements variables de ton site, tu les mets en tags, voir en block (cherche des tutos sur le web pour en comprendre le fonctionnement). Ensuite tu va "inclure" ton template en instanciant le moteur de template.

Le fait d'inclure est une autre méthode (celle que tout le monde commence par faire je dirai :))
Regarde des exemples de l'utilisation de template sur le web, ce sera plus explicatif que moi :)

Quelques tres bon liens :
http://www.asp-php.net/scripts/asp-php/template.php
http://eric-pommereau.developpez.com/tutoriels/initiation-smarty/

Et un petit comparatif :
http://cyberzoide.developpez.com/php4/template/

Voili voilou
darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007
29 mai 2007 à 15:38
ok codefalse, je traduit ce que j'ai compris:
dans mon site j'ai une page html que j'ai appelé menu.html
Ce menu affiche des images qui représentent les rubriques de mon site avec les liens vers les rubriques. j'appel cette page avec des includes là ou je veux afficher mon menu.
Est il crétin de ma part de dire que:
ma page menu.html est un template?

j vais faire une recherche sur les moteurs template. Je suis entrain de refaire tout mon site, d'ou la création de ce script, alors autant que je le fasse bien.
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
29 mai 2007 à 13:49
@ neigedhiver : Ok c'est bien ce qui me semblait :) Je preferais demander pour être sur de pas avoir sauté un wagon :p

@ darknessneo : Un moteur de template te permet de séparer le code html de ton code php, le but est de simplifier le travail des éventuels graphistes des programmeurs. En gros dans ton site, t'a une partie template/ et une partie code/ (pour faire simple)
tes pages html seront dans la partie template de ce genre :
<html>...Bonjour à toi {LOGIN}</html>
(tres tres simple)

Ensuite dans ta page php, tu integre un moteur de template (look google pour plus d'informations sur les différents moteurs), et tu a juste à faire :
// tu récupere $login dans une bdd par ex
$monTemplate->parseVar ("{LOGIN}", $login);
$monTemplate->show();

parseVar va remplacer {LOGIN} par la valeur de login, show() va afficher la page html nouvellement formée. Ceci est un exemple tres succint, faut savoir que le nomage des variable {..} est spécifique à chaque moteur, ainsi que les fonctions et l'usage. C'est juste pour que tu aie une idée.
Du coup les graphistes n'ont plus besoin de faire attention au code qu'il y a dans tes pages, juste à remettre {LOGIN} (dans mon cas) là ou il veulent que le login soit affiché.

Et toi dans 6 mois quand tu voudra changer ton graphisme uniquement, tu n'aura plus besoin de tout réadapter ton code ! :)

J'espere avoir bien expliqué et rien n'avoir omis/mal traité ! :)
darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007
29 mai 2007 à 13:04
ne partez pas dans votre ping pong incompréhensible, y a un newbie ici qui comprend rien!! C'est quoi un template, comment on fait un template, qu'est ce qui est séparable, ce qui ne l'est pas, pourquoi... comment... et où!
Je pige plus rien moi...
Quelques explications pour moi serait sympa...
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
29 mai 2007 à 12:49
@codefalse : je n'entends pas plus que ce que je dis. En l'occurrence, je parle avant tout de séparer le traitement des données de leur affichage.
L'affichage peut se faire directement avec PHP, ou alors avec un moteur de templates (Smarty, phpLib, etc).
Peu importe : l'idée est surtout de ne pas mélanger les deux.

Dans la pratique, avec un moteur de templates, la séparation est évidente. Sans, elle l'est un peu moins dans la mesure où l'affichage peut se faire via le même script qui assure le traitement, mais pas forcément.

Afin d'éviter les doublons, la séparation des tâches en fonctions élémentaires (ou le plus élémentaires possibles) est impérative. Cela permet de réutiliser du code à sa guise sans avoir besoin de le réécrire ou de le copier. Tout le traitement doit donc se faire en premier lieu.
Ainsi, on peut avoir un fichier qui contient les fonctions dont on a besoin et qu'on inclue depuis chaque page qui le nécessite.
Suivant la rédaction du code, on peut avoir des fonctions qui assurent directement l'affichage, ou, et c'est préférable, des fonctions qui retournent le contenu qui sera affiché. On pourrait avoir quelque chose dans ce genre là :

function get_images($directory)
{
// Code qui récupère la liste des images d'un répertoire

// Retourne la liste des images sous forme d'un tableau associatif
return $images_list;
}

Dans le script qui affiche les images, on aurait un truc dans ce genre là :

$images_list = get_images('./');

foreach($images_list as $image)
{
echo '
';
}

Là, c'est clair : le traitement se fait dans une fonction, l'affichage se fait après, à sa place.
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
29 mai 2007 à 12:34
@neigedhiver => quand tu dit séparer le code html du code php, tu parle de template, ou tu a quand meme quelques bouts de codes php dans ton html ? (juste les whiles, if, for qui pointent vers des classes) ?
darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007
29 mai 2007 à 00:14
merci. pour ce qui est de séparer ma page html de mes codes php, tu sous entend donc de mettre des includes a la pelle pour appeler les fonctions ou codes?
sinon, ce que je voudrais, c'est sécuriser mon script. J'ai test en essayant d'appeler d'autres pages via la page qui afiche la galerie, et ca ne marche pas, donc c une bonne chose mais je sais meme pas pourquoi enfaite... =P hehe

sinon, oui, je met une page index dans chaque répertoire. il suffit de copier la page index et de la coller dans tout les répertoires images. C'est un peu pompeux, mais c'est tout de meme rapde, de toute facon faut bien upload le dossier image, alors qu'on mette un fichier de plus ou de moins, surtout quand on arrive a 300 images dans un répertoire comme j'aurais moi... on voit plus la différence.
Enfin, j suis débutant, donc j'ai crée ce script en 1 semaine avec ce que j'ai su apprendre et comprendre du php, je pense encore en avoir pour longtemps avant d'en arriver a un résultat de pro... j'ai vu un script explorateur de malade... les mecs qui font ça sont des oufs... j'en suis vraiment loin. Mais si je peu apprendre je dis pas non. Apprenez moi... je suis ouvert a tout.
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
28 mai 2007 à 23:41
Re,

Ben ouais, j'ai bien compris ton point de vue... Je t'explique le mien, qui ne m'est pas venu tout seul, mais après quelques années d'expérience, après avoir beaucoup échangé avec beaucoup de monde, après avoir lu des livres...
Donc : pour améliorer ton site, je pourrais te proposer
- de séparer ton code de traitement de la présentation, puisque ça permettrait justement une meilleure intégration.
- si tu faisais des fonctions, ça éviterait les doublons. J'ai vaguement cru voir que le même fichier se trouvait dans chaque répertoire (mais je me gourre peut-être, j'ai pas encore eu le temps de regarder pour de vrai)

Sinon, promis, je regarde ça correctement demain et je te fais un commentaire plus constructif que ce que je viens de faire.

Bonne soirée
darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007
28 mai 2007 à 23:32
hehe oui, mes pages n'ont aucunes balises je suis tout a fait d'accord. je l'est dis clairement pourtant... mon script est fait justement pour integrer une page existante. je voulais une galerie d image que je puisse inserer a une page de mon site. c'est le principe de fonctionnement de ce script. il existe pleins de galeries d'images super developpés, qui generes des navigateurs super performants, ca dechire tout mais pour l'integrer a une page de ton site... tu peu arreter de rever... elles ont toutes leurs propre page index, des header que si tu integre a une page a toi, tu fais tout planter... Donc je revendique que j'ai pas de balises, mais ca a ete fait expres...


en effet, mes pages contiennent le traitement des variables et l'affichage... mais bon... c'était mon choix. Pourvoir integrer facilement, et rapidement une galerie d'image sur n'importe quelle page php. Je pense avoir réussi. Je n'ai aucun répertoire qui m'encombre, mis a par le répertoire images/ obligatoire. Je n'ai pas 15 voir meme plus, de pages de configuration, etc etc... apres avoir essayé plusieurs galeries d'images j'en ai eu marre. 2 pages, 1 répertoire... c'est un script personnel pour mon propre site que j'ai voulu partagé.

Apres on aime ou on aime pas... mais le but premier je le répete encore une fois, de cette galerie... c'est qu'elle s'integre sur une page existante via un include. Les balises se trouvent toutes sur la page qui va inclure la galerie... et pis voila.....

Sinon, a par ca... peut on me faire des sugestions pour améliorer mon script?
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
28 mai 2007 à 23:05
Salut,

J'ai pas trop regardé en détail... Je me suis arrêté rapidement, y'a deux trucs qui m'ont complètement bloqué :
- tes pages HTML ne sont conformes à aucun standard (aucune balise de début, de fin, rien)
- j'ai du mal avec les scripts qui mélangent html et php. Je ne t'en veux pas, hein, j'ai commencé comme ça aussi. Seulement maintenant, je bloque dessus... J'ai tendance à séparer le traitement de l'affichage... C'est plus clair.
darknessneo Messages postés 45 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 9 septembre 2007
28 mai 2007 à 21:50
c'est ma premiere source en php ici. Donc je poste un débutant ^^ je mettrais bien maxi debutant mais y a pas...
Je me doute qu'il y aurait largement moyen de perfectionner mon script mais bon. Mes compétances sont arrivés à leurs limites... Je suis ouvert a toute proposition pour m'améliorer.
Note: j'ai crée ce script car je ne trouvais pas une galerie capable de s'integrer à une de mes pages webs, j'ai du me résoudre à passer 1 semaine a creer mon propre script. en partant de zero...
Rejoignez-nous