Vous n'êtes pas identifié.
Annonce
Annonce 1 : Le Codex en français a besoin de vous pour avancer !
Annonce 2 : Avant de poster, n'oubliez pas de faire une petite Recherche et de lire les règles de ce forum.
Annonce 3 : Lisez notre blog, il regorge de bonnes informations.
Pages: 1
- Index
- » Utilisation spécifique de WordPress
- » Creation de damier en php,avec lecture de table dans wordpress
#1 16-08-2008 14:05:07
- baudry
- Expert WP
- Date d'inscription: 17-03-2008
- Messages: 201
Creation de damier en php,avec lecture de table dans wordpress
Bonjour,
Ma configuration WP actuelle Wordpress 2.61
- Version de WordPress :
- Thème utilisé :
- Plugins en place :
- Nom de l'hebergeur :
- Adresse du site : http://olivierbaudrydesign.free.fr
Problème(s) rencontré(s) :Création de damier en php,avec lecture de table dans wordpress.
Bonjour
Toujours suite à mon idée de damier en php de 6 colonnes 4 rangées à affichage aléatoire d'images, ne voulant pas avoir un truc trop lourd au niveau affichage, délai de traitement du php j'ai fais ceci, seulement comment intégrer un compteur l'idée étant toujours d'afficher les images aléatoirement et qu'un clic suffise à voir la rubrique contenant l'image:
création de la basephotos.php
:
Code:
- <?
- $connexion=mysql_connect("localhost","root","");
- $db=mysql_select_db("monsite",$connexion);
- $sql = mysql_query ("CREATE TABLE photos (
- id INT NOT NULL AUTO_INCREMENT,
- image_nom VARCHAR(40) NOT NULL,
- image_date DATE NOT NULL,
- image_taille VARCHAR(20) NOT NULL,
- image_categorie VARCHAR(40) NOT NULL,
- image_sujet VARCHAR(40) NOT NULL,
- image_type VARCHAR(20) NOT NULL,
- image_commentaire LONGTEXT NOT NULL,
- image_vignette LONGBLOB NOT NULL,
- image_fichier VARCHAR(200),
- PRIMARY KEY (id))");
- $sql = mysql_close();
- ?>
- randomizer.php
- <?php
- /*
- Template Name: Randomizer
- */
- ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transiti
- onal.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head profile="http://gmpg.org/xfn/11">
- <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
- <meta name="Description" content="<?php bloginfo('description'); ?>" />
- <title><?php bloginfo('name'); ?><?php wp_title(); ?></title>
- <meta name="generator" content="WordPress <?php bloginfo('version'); ?>" /> <!-- leave this for stats please -->
- <link rel="stylesheet" href="<?php bloginfo('template_url'); ?>/common.css" type="text/css" media="screen" />
- <link rel="stylesheet" href="<?php bloginfo('template_url'); ?>/links.css" type="text/css" media="screen" />
- <link rel="stylesheet" href="<?php bloginfo('template_url'); ?>/lists.css" type="text/css" media="screen" />
- <link rel="stylesheet" href="<?php bloginfo('template_url'); ?>/randomizer.css" type="text/css" media="screen" />
- <link rel="stylesheet" href="<?php bloginfo('template_url'); ?>/menu.css" type="text/css" media="screen" />
- <link rel="Shortcut Icon" href="<?php echo get_settings('home'); ?>/wp-content/themes/oupocreanum/images/favicon.
- ico" type="image/x-icon" />
- <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>" />
- <link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>" />
- <link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="<?php bloginfo('atom_url'); ?>" />
- <link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
- <?php wp_get_archives('type=monthly&format=link');
- ?>
- <?php //comments_popup_script(); // off by default ?>
- <?php wp_head(); ?>
- </head>
- <body>
- <div id="block"><!-- begin blog -->
- <div id="content">
- <h1 id="header"><a href="<?php echo get_settings('home'); ?>"><?php bloginfo('name'); ?></a></h1>
- <div id="random">
- <?
- include "entete.php";
- $rep="randomizer";
- $id_rep = opendir($rep);
- function vignette($fichier)
- {
- $size = getimagesize("randomizer/$fichier");
- $source_image = imagecreatefromjpeg("randomizer/$fichier");
- $dest_image = imagecreatetruecolor(120,120);
- imagecopyresampled($dest_image, $source_image, 0, 0, 0, 0, 120, 120, $size[0], $size[1]);
- imagejpeg($dest_image, "vignettes/_$fichier", 60);
- imagedestroy($source_image);
- imagedestroy($dest_image);
- }
- ?>
- <table border=0>
- <tr>
- <?
- $n=0;
- while ($fichier = readdir($id_rep))
- {
- $extension=substr($fichier,-3);
- if($fichier!="." && $fichier!=".." && (eregi("gif",$extension)||eregi("jpg",$extension
- )))
- {
- vignette($fichier);
- echo "\n <td valign='middle' align='center'>";
- echo "\n <a href='Affichagephoto.php?fichier=$rep/$fichier'>
- <img src='vignettes/_$fichier' border='0' alt='$fichier'></a>";
- echo "\n </td>";
- $n++;
- if ($n==6)
- {
- echo "</tr> <tr>";
- $n=0;
- }
- }
- }
- ?>
- </tr>
- </table>
- <?
- include "basdepage.php";
- ?>
- </div>
- <?php
- $language=<<<LANGUAGE
- <ul id="menu_language">
- <li><a href="/" title="lire en français" id="menu_french_inactive"><span class='off'>french</span></a></li>
- <li><a href="/" title="read in english" id="menu_english_active"><span class='off'>english</span><a></li>
- </ul>
- LANGUAGE;
- $lines = split("\n", $language);
- foreach ($lines as $line) {
- $current = false;
- preg_match('/href="([^"]+)"/', $line, $url);
- if (substr($_SERVER["REQUEST_URI"], 0, 5) == substr($url[1], 0, 5)) {
- $line = str_replace('<a h', '<a id="current" h', $line);
- }
- echo $line."\n";
- }
- ?></ul>
- <?php
- $menu = <<<MENU
- <ul id="menu_nav">
- <li><a href="http://olivierbaudrydesign.free.fr" title="home" id="menu_home"><span class='off'>home</span></a></li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=5/" title="biographie" id='menu_biography'><span class='off'>biographie</span></a></li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=22" title="cv" id="menu_cv"><span class='off'>cv</span></a></li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=9/" title="workingprogress" id="menu_workingprogress"><span class='off'>workingprogress</span></a><
- /li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=6/" title="randomizer" id="menu_randomizer_on"><span class='off'>randomizer</span></a></li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=25/" title="videos" id="menu_videos"><span class='off'>videos</span></a></li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=23/" title="photographies" id="menu_pictures"><span class='off'>photographies</span></a></l
- i>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=12/" title="sons" id="menu_sounds"><span class='off'>sons</span></a></li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=20/" title="expositions" id="menu_exhibitions"><span class='off'>expositions</span></a></li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=21/" title="publications" id="menu_publications"><span class='off'>publications</span></a></li
- >
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=15/" title="logiciels" id="menu_software"><span class='off'>logiciels</span></a></li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=13/" title="abstracts" id="menu_abstracts"><span class='off'>abstracts</span></a></li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=14/" title="machines" id="menu_machines"><span class='off'>machines</span></a></li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=29/" title="artistes" id="menu_artists"><span class='off'>artistes</span></a></li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=16/" title="bibliographie" id="menu_bibliography"><span class='off'>bibliographie</span></a></l
- i>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=31/" title="discographie" id="menu_discography"><span class='off'>discographie</span></a></li
- >
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=30/" title="webographie" id="menu_webography"><span class='off'>webographie</span></a></li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=19/" title="citations" id="menu_citations"><span class='off'>citations</span></a></li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=17/" title="lexique" id="menu_lexique"><span class='off'>lexique</span></a></li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=28/" title="liens" id="menu_links"><span class='off'>liens</span></a></li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=35/" title="forum" id="menu_forum"><span class='off'>forum</span></a></li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=26/" title="téléchargement" id="menu_upload"><span class='off'>téléchargement</span></a></
- li>
- <li><a href="http://olivierbaudrydesign.free.fr/?page_i
- d=24/" title="remerciements" id="menu_thanks"><span class='off'>remerciements</span></a></l
- i>
- </ul>
- MENU;
- $lines = split("\n", $menu);
- foreach ($lines as $line) {
- $current = false;
- preg_match('/href="([^"]+)"/', $line, $url);
- if (substr($_SERVER["REQUEST_URI"], 0, 5) == substr($url[1], 0, 5)) {
- $line = str_replace('<a h', '<a id="current" h', $line);
- }
- echo $line."\n";
- }
- ?>
- </ul>
- <div id="search">
- <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get" name="searchform" id="searchform">
- <input type="text" name="s" id="s" value="search in blog..." />
- <input type="image" alt="submit" src="/wp-content/themes/oupocreanum/images/retur
- n.gif" />
- </form>
- </div>
- </div>
- <!-- end header -->
- <?php get_footer(); ?>
- extr_basephoto.php
- <?php
- include "entete.php";
- $connexion=mysql_connect("localhost","root","");
- $db=mysql_select_db("monsite",$connexion);
- $requete = mysql_query ("SELECT * FROM randomizer", $connexion);
- echo "<table border='0'>";
- $n=0;
- while ($enregistrement=mysql_fetch_assoc($requete)) {
- $filename= "~" . $enregistrement["image_nom"] . ".jpg";
- $filehandle = fopen($filename, "w");
- $file_url = "Affichagephoto.php?fichier=" .$enregistrement["image_fichier"];
- fwrite($filehandle, $enregistrement["image_vignette"]);
- fclose($filehandle);
- echo "<td> <a href=$file_url> <img src=\"", $filename, "\" alt=\"", $enregistrement["nom"], "\"></td></a>\n";
- $n++;
- if ($n==6)
- {
- echo "</tr> <tr>";
- $n=0;
- }
- }
- echo "</tr></table>\n";
- mysql_free_result($requete);
- mysql_close();
- include "basdepage.php";
- ?>
- affichage photo.php :
- <?php
- include "entete.php";
- $photo=$_GET["fichier"];
- echo "<br> <center>";
- echo "<img src='$photo' border='0'> <br>";
- echo "<a href='randomizer.php'>Retour sur la page Photos</a>";
- echo "</center>";
- include "basdepage.php";
- ?>
- et rempl_basephoto.php :
- <?
- $connexion=mysql_connect("localhost","root","");
- $db=mysql_select_db("monsite",$connexion);
- $rep="vignettes";
- $rep2="randomizer";
- $id_rep = opendir($rep);
- while ($fichier = readdir($id_rep))
- {
- $extension=substr($fichier,-3);
- if($fichier!="." && $fichier!=".." && (eregi("gif",$extension)||eregi("jpg",$extension
- )))
- {
- $nomimage = "$rep/$fichier";
- $emplacement_fichier = $rep2 . "/" .substr("$fichier",1);
- $nom_fichier= substr("$fichier",1,strpos("$fichier",".")-1);
- $mavignette = addslashes(fread(fopen($nomimage, "rb"), filesize($nomimage)));
- $result=mysql_query("INSERT INTO randomizer (image_nom,image_vignette,image_fichier)
- VALUES ('$nom_fichier','$mavignette','$emplacement_fich
- ier')");
- }
- }
- $sql = mysql_close();
- ?>
- seulement voilà j'aurais besoin d'afficher un compteur et aussi je pense qu'il est possible de limiter le nombre de fichiers php pour n'en faire qu'un bizarrement le fichier randomizer ne permet pas l'affichage de la grille or si je ne grde que le traitement d'image cela fonctionne.
- Je tiens à préciser que dans le répertoire du site j'ai créer un dossier randomizer afin d'y stocker les images.
- Et mes pistes de bases étaient celles ci :
- <?php if eregi("\.(jpeg|jpg|png)$";
- <div id="random">
- <table id="random_table">
- <?php
- $nb_lignes=4;
- $nb_colonnes=6;
- for($i=1;$i<=$nb_lignes;$i=$i+1){
- echo "<tr>";
- for($j=1;$j<=$nb_colonnes;$j=$j+1){
- echo '<td class="'.$couleur.'">'.$img.'</a></td>/n';
- }
- echo "</tr>\n";
- }
- ?>
- </table>
- ou encore ceci : <--- ici une bidouille php
- dont je ne suis pas sur pour envoyer une requette mysql histoire de récupérer les images contenues dans les posts, pages ou se trouvent les images ( workingprogress, pictures :
- $query = "SELECT id FROM wp_posts WHERE post_status='publish' AND post_content REGEXP '![\[][^\]\)]([^\)])' ORDER BY RAND()";
- // these are regular expressions for extracting urls from above results
- $full_pattern = "/!\[.*?\]\(.*?\)/s";
- $url_pattern = "/\]\(.*?\)/s";
- $title_pattern = "/!\[.*?\]/s";
- $url_start = 2;
- $title_start = 2;
- // a function that grabs all the above data and puts it into an array named $urls
- $urls = getImages('workingprogress','pictures','exhibiti
- ons', 'abstracts', $how_many, $query, $content_query, $full_pattern, $url_pattern, $url_start, $title_pattern, $title_start); */
- $files = array(); $i = -1; // Initialize some variables
- if ('' == $folder) $folder = './';
- $handle = opendir($folder);
- $exts = explode(' ', $exts);
- while (false !== ($file = readdir($handle))) {
- foreach($exts as $ext) { // for each extension check the extension
- if (preg_match('/\.'.$ext.'$/i', $file, $test)) { // faster than ereg, case insensitive
- $files[] = $file; // it’s good
- ++$i;
- }
- }
- }
- closedir($handle); // We’re not using it anymore
- mt_srand((double)microtime()*1000000); // seed for PHP < 4.2 pour le raffraichissement de la page
- $rand = mt_rand(0, $i); // $i was incremented as we went along
- header('Location: '.$folder.$files[$rand]); // Voila!
- ?>
Seulement ceci n'était pas correct or l'idée d'utilisée la fonction microtime était intéressante pour l'affichage aléatoire.
Un compteur servant à compter les images et permettant ainsi de n'afficher que le nombre correspondant aux cases du damier au lieu de traiter toutes les pages du sites. Mon site est à l'adresse olivierbaudrydesign.free.fr.l'idée est que sur la page randomizer je puisse ainsi cliquer sur une des cases et me retrouver ainsi sur un article dépendant de sound.php etc
C'est mon premier site web! Les css ne sont pas encore tous au point, je le sais, mais je vais le corriger une fois le php valide. Le damier n'est pas encore en place ( en fait je sais l'aspect visuel que cela devrait avoir mais on ne peut ici mettre de fichier image joint. hélas) mais justement j'essaie de simplifier la chose et voulais avoir une idée sur les scripts. Pour l'intégrer dans les pages. en html j'ai pas de soucis cela marche mais c'est pas très dynamique.
On m'a conseillé ceci : En gros l'idée pour la requête ça va être, pour chaque rubrique ( workingprogress, sounds, lexique...):
- faire un count des posts dans ma base. Si la base est indexée, c'est
une requête très légère.
(la suite est à répéter x fois selon le nombre d'images souhaitées par
rubrique)
- calculer un random entre 0 et mon count
- récupèrer la ligne dont mon id >= à mon random (et pas = parce si il
y a des trous ou que il y a un statut foireux ça va pas le faire) et dont le
statut="publish" et mettre un LIMIT 0,1 pour ne ramener que cette ligne.
Ainsi ça va faire x requêtes, mais comme il n'est ramèné qu'une ligne à
la fois, ça sera beaucoup plus léger que de laisser à la base le soin de tout filtrer puis tout trier, pour finalement ne garder que quelques lignes.
Pour être plus clair , sur
http://www.tenbyten.org/10x10.html
on peut voir un damier et à droite des liens correspondants aux page dans mon cas ceux ci n'apparaitront pas mais lors du clic dessus on doit trouver l'image dans la page correspondante. L'affichage doit être aléatoire et changer à chaque rafraichissement c'est un peu en quelque sorte l'accroche de l'article.
Pour voir en Visuel ce que ça devrait donner voir :
http://olivierbaudrydesign.free.fr/dossier damier recherche.rar
De plus j'aimerais avoir une idée sur mes scripts , j'ai essayé de suivre une méthode pas à pas pour les nuls, mais bizarrement je n'arrive pas à l'intégrer dans ma page.
Dernière modification par baudry (16-08-2008 14:06:33)
Hors ligne
Pages: 1
- Index
- » Utilisation spécifique de WordPress
- » Creation de damier en php,avec lecture de table dans wordpress