Page 1 sur 1

Récupération des Thumbnails pour présentation d'un top

Posté : mercredi, 02 avril 2008, 20:56
par tryptico
Bonjour à tous,
Voila plusieurs jours que je m'efforce tant bien que mal de récupérer les images des nouveaux sites et du top clic, pour les présenter sur la page d'accueil, et je n'arrive à rien. Mes cheveux commence à tomber et mes yeux me brule :rolleyes:
Quelqu'un pourrait-il me prêter main forte s'il vous plaît ?
merci beaucoup !

Posté : mercredi, 02 avril 2008, 23:29
par Keroin
Hello tryptico et :welcome:

Peux tu préciser quelle version du script tu as ?
=> Categorizator, YourPHPAnnuaire,...

Ensuite tu le veux à quel endroit sur ton index ?

Posté : mercredi, 02 avril 2008, 23:38
par tryptico
Merci de ta rapidité
J'ai mis a jour mon categorizator vers revolutionneyourphp
Ensuite, j'aimerai placer cela soit sur l'index avant le tableau des catégories, soit dans mon menu de droite.
C gérable ?

Posté : jeudi, 03 avril 2008, 00:15
par Keroin
Oui c'est possible, l'affichage des thumbnails est géré par le fichier functions.php (après la ligne 100).

Pour les nouveaux site c'est assez simple, c'est ce que je fais sur les fiches individuelles des sites en fait.

Le code donne quelque chose comme ça (à habiller comme tu en as envie par la suite).

Ici on veut afficher les 10 derniers sites validés

Code : Tout sélectionner

<?php
$lk = connection_BD(); // Connection

// Recherche des 10 derniers sites
$sql = "SELECT id, titre, url_image, description, url FROM $T_sites ORDER BY date_validation DESC LIMIT 0,10";
//envoi de la requete
$res = send_sql($sql,"trouver les 10 derniers sites");


// Les 10 derniers sites
while($infos = mysql_fetch_array($res))
{
   $idsite = $infos['id'];
   $titre = $infos['titre'];
   $description = $infos['description'];
   $urlimage = $infos['url_image'];
   $urlsite = $infos['url'];
   

 echo '<a href="' .$urlsite. '"><img src="' .$urlimage. '" width="120" height="90" border="0"></a><br> ';
}
?>
Fait des tests quand même car comme j'ai tout énormément modifié j'ai retrouvé une partie de ce code de mémoire ;-)

On va d'abord faire cette partie là et voir si ça fonctionne comme tu veux (tu devrais avoir les 10 vignettes les unes en dessous des autres).
=> à mettre dans le fichier after.php par exemple.

Pour récupérer le top clic le code est un peu plus compliqué et il va falloir que je cherche un peu plus mais on va déjà voir pour celui là ;-)

Posté : jeudi, 03 avril 2008, 00:28
par tryptico
ça marche nickel, c'est génial
merci beaucoup

Posté : jeudi, 03 avril 2008, 00:54
par Keroin
Ok cool :good:

Pour le top clic essaye ça

Code : Tout sélectionner

<?php
//connexion a la BD
$lk = connection_BD();

//creation de la requete pour le top clic
$sql = "SELECT s.id, id_cat, titre, description, url, url_image, nb_clics, date_validation, cat_name, TO_DAYS(CURRENT_DATE) - TO_DAYS(date_validation) AS dif_days FROM $T_sites AS s, $T_categories AS c WHERE s.id_cat = c.id AND s.activation = 1 AND c.activation = 1 AND nb_clics > 0 ORDER BY nb_clics DESC,titre LIMIT 0,10";

//envoi de la requete
$res = send_sql($sql,"trouver les sites du Top clics");

//fin de la connexion
mysql_close($lk);

if (mysql_num_rows($res))
//si on a des resultats
{
    echo "<table border=0 align=\"center\" width=60%>\n";
    $position=1;
    while ($resultat = mysql_fetch_array($res))
    {
        affiche_site($resultat,"topc");
        $position++;
    }
    echo "</table>\n";
}
else //pas de resultat
{
    ?>
    <center>
    <span class="no_clic_site_annuaire">
    Aucun site n'a encore reçu de visite...
    </span>
    </center>
    <br><br>
    
A tester...

Posté : jeudi, 03 avril 2008, 01:14
par tryptico
il doit y avoir un petit quelque chose qui debloque mais je sais pas...
Parse error: syntax error, unexpected $end

Posté : jeudi, 03 avril 2008, 01:19
par Keroin
Et comme ça ?

Code : Tout sélectionner

<?php
//connexion a la BD
$lk = connection_BD();

//creation de la requete pour le top clic
$sql = "SELECT s.id, id_cat, titre, description, url, url_image, nb_clics, date_validation, cat_name, TO_DAYS(CURRENT_DATE) - TO_DAYS(date_validation) AS dif_days FROM $T_sites AS s, $T_categories AS c WHERE s.id_cat = c.id AND s.activation = 1 AND c.activation = 1 AND nb_clics > 0 ORDER BY nb_clics DESC,titre LIMIT 0,10";

//envoi de la requete
$res = send_sql($sql,"trouver les sites du Top clics");

//fin de la connexion
mysql_close($lk);

if (mysql_num_rows($res))
//si on a des resultats
{
   echo "<table border=0 align=\"center\" width=60%>\n";
   $position=1;
   while ($resultat = mysql_fetch_array($res))
   {
      affiche_site($resultat,"topc");
      $position++;
   }
   echo "</table>\n";
}
else //pas de resultat
{
   ?>
   <center>
   <span class="no_clic_site_annuaire">
   Aucun site n'a encore reçu de visite...
   </span>
   </center>
   <br><br>

<?php
}
?>

Posté : jeudi, 03 avril 2008, 01:24
par tryptico
le site s'ouvre mais les infos (liens description...) des sites s'affiche aussi...

Posté : jeudi, 03 avril 2008, 01:35
par Keroin
Ah oui c'est vrai j'avais zappé que tu ne voulais que les vignettes :frown:

Il faut modifier la deuxième partie du code

Code : Tout sélectionner


<?php
//connexion a la BD
$lk = connection_BD();

//creation de la requete pour le top clic
$sql = "SELECT s.id, id_cat, titre, description, url, url_image, nb_clics, date_validation, cat_name, TO_DAYS(CURRENT_DATE) - TO_DAYS(date_validation) AS dif_days FROM $T_sites AS s, $T_categories AS c WHERE s.id_cat = c.id AND s.activation = 1 AND c.activation = 1 AND nb_clics > 0 ORDER BY nb_clics DESC,titre LIMIT 0,10";

//envoi de la requete
$res = send_sql($sql,"trouver les sites du Top clics");

while($infos = mysql_fetch_array($res))
{
   $id_top = $infos['id'];
   $urlimage_top = $infos['url_image'];
   $url_top = $infos['url'];
   

 echo '<a href="' .$url_top. '"><img src="' .$urlimage_top. '" width="120" height="90" border="0"></a><br> ';
}
?>
A tester...

Posté : jeudi, 03 avril 2008, 10:18
par tryptico
ça marche !!! yoouuu
Encore merci !
:clap2 Je vais pouvoir avancer

Posté : jeudi, 03 avril 2008, 10:38
par tryptico
AH si, une petite chose, les vignette renvoi vers le lien direct du site, est ce qu'il est possible de faire le lien vers la fiche d'info du site en question, histoire d'optimiser un peu... (si tu as deux minutes...) :)

Posté : jeudi, 03 avril 2008, 14:07
par Keroin
Ok, donc je part du principe que tu as activé l'url rewritting et que ton fichier contenant le code des fiches de site s'appelle infosite.php.

Cela doit donner quelque chose comme ça

Code : Tout sélectionner

<?php
//connexion a la BD
$lk = connection_BD();

//creation de la requete pour le top clic
$sql = "SELECT s.id, id_cat, titre, description, url, url_image, nb_clics, date_validation, cat_name, TO_DAYS(CURRENT_DATE) - TO_DAYS(date_validation) AS dif_days FROM $T_sites AS s, $T_categories AS c WHERE s.id_cat = c.id AND s.activation = 1 AND c.activation = 1 AND nb_clics > 0 ORDER BY nb_clics DESC,titre LIMIT 0,10";

//envoi de la requete
$res = send_sql($sql,"trouver les sites du Top clics");

while($infos = mysql_fetch_array($res))
{
   $id_top = $infos['id'];
   $urlimage_top = $infos['url_image'];
   $url_top = $infos['url'];
   

 echo '<a href="http://TONNOMDEDOMAINE.COM/infosite-' .$id_top. '.html"><img src="' .$urlimage_top. '" width="120" height="90" border="0"></a><br> ';
}
?>
N'oublie pas de modifier ton nom de domaine dans les dernières lignes du script.

Il est possible aussi, selon la configuration, que cet "echo" là suffise

Code : Tout sélectionner

echo '<a href="infosite-' .$id_top. '.html"><img src="' .$urlimage_top. '" width="120" height="90" border="0"></a><br> ';
}
  
Testes les deux ;-)

Posté : jeudi, 03 avril 2008, 20:55
par tryptico
l'echo fonctionne, malheureusement le postulat de départ est incorrect.
Le fichier qui renvoi les page des sites se nomme page_site.php et meme si l'url rewiting est ok en changeant le nom de infosite par page-site il me redirige vers une page qui n'existe pas avec un mauvais nom :s

Posté : jeudi, 03 avril 2008, 21:27
par Keroin
Dans quel format sont tes url des pages des sites?

Posté : jeudi, 03 avril 2008, 22:11
par tryptico
-http://www.monsite.com/titre-du-site-sX.html
le X étant le numéro du site je pense

Posté : jeudi, 03 avril 2008, 22:36
par Keroin
Le X représente l'id du site (son numéro d'enregistrement dans la base de données).

Essaye ça alors...

Code : Tout sélectionner

<?php
//connexion a la BD
$lk = connection_BD();

//creation de la requete pour le top clic
$sql = "SELECT s.id, id_cat, titre, description, url, url_image, nb_clics, date_validation, cat_name, TO_DAYS(CURRENT_DATE) - TO_DAYS(date_validation) AS dif_days FROM $T_sites AS s, $T_categories AS c WHERE s.id_cat = c.id AND s.activation = 1 AND c.activation = 1 AND nb_clics > 0 ORDER BY nb_clics DESC,titre LIMIT 0,10";

//envoi de la requete
$res = send_sql($sql,"trouver les sites du Top clics");

while($infos = mysql_fetch_array($res))
{
   $id_top = $infos['id'];
   $urlimage_top = $infos['url_image'];
   $url_top = $infos['url'];
   

 echo '<a href="http://TONNOMDEDOMAINE.COM/' .$url_du_site_rw. '-s' .$id_top. '.html"><img src="' .$urlimage_top. '" width="120" height="90" border="0"></a><br> ';
}
?>
Si ça ne veut pas essaye aussi ça

Code : Tout sélectionner

<?php
//connexion a la BD
$lk = connection_BD();

//creation de la requete pour le top clic
$sql = "SELECT s.id, id_cat, titre, description, url, url_image, nb_clics, date_validation, cat_name, TO_DAYS(CURRENT_DATE) - TO_DAYS(date_validation) AS dif_days FROM $T_sites AS s, $T_categories AS c WHERE s.id_cat = c.id AND s.activation = 1 AND c.activation = 1 AND nb_clics > 0 ORDER BY nb_clics DESC,titre LIMIT 0,10";

//envoi de la requete
$res = send_sql($sql,"trouver les sites du Top clics");

while($infos = mysql_fetch_array($res))
{
   $id_top = $infos['id'];
   $urlimage_top = $infos['url_image'];
   $url_top = $infos['url'];
   

 echo '<a href="' .$url_du_site_rw. '-s' .$id_top. '.html"><img src="' .$urlimage_top. '" width="120" height="90" border="0"></a><br> ';
}
?>