Artiphp - CMS open source et gratuit
Vous êtes ici » Accueil/Forum
Saisissez votre recherche
RechercherRechercher   Liste des MembresListe des Membres   S'enregistrerS'enregistrer    ProfilProfil 
Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 


auteur.php

 
Ce forum est verrouillé; vous ne pouvez pas poster, ni répondre, ni éditer les sujets.   Ce sujet est verrouillé; vous ne pouvez pas éditer les messages ou faire de réponses.    Artiloo.com Index du Forum -> Artiphp 3 Velocity
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
ivoyages



Inscrit le: 03 Jan 2004
Messages: 1522

MessagePosté le: Dim 19 Mar 2006 12:41    Sujet du message: auteur.php Répondre en citant

Bonjour,

Sur les fiches des auteurs, j'affiche les dossiers, news et images qui ont été publié.

Ils sont triés par date via un order by dateimg desc par exemple pour les images.

Pour les news, l'ordre d'affichage n'est pas correct malgé mon order by dateNews desc. Mais je ne comprends pas pourquoi.

Par ailleurs, j'aimerais afficher les réalisations des auteurs de l'année en cours. Est-ce possible ?

Voici mon code :

Code:
//affichage d'un auteur specifique
//----------------------------

if ($_GET['id_auteur']) {
  $id_auteur=intval($_GET['id_auteur']);

  $requete="select * from ".$extension."utilisateurs where id_utilisateur='$id_auteur'";
  $result=mysql_query($requete, $link);
  $auteurs=mysql_fetch_object($result);

  $auteurs->descUtilisateur = stripslashes($auteurs->descUtilisateur);

  // metatags automatique
  $nprenom = htmlspecialchars($auteurs->prenomUtilisateur);
  $nnom = htmlspecialchars($auteurs->nomUtilisateur);
  $metatitle="auteur : ".$nnom." ".$nprenom."";
  $ndesc = htmlspecialchars($auteurs->descUtilisateur);
  $metaDescription="$ndesc";
  //---------------------


//DOSSIERS
  $listeauteurs .="<table width=\"100%\" class=\"dossier\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\">";

  if ($auteurs->imgUtilisateur=="") {
  $photo="";
  } else {
  $photo="<img src=\"../images/".$auteurs->imgUtilisateur."\" border=\"0\" align=\"left\">";
  }
    $SESSION_SKIN=$_SESSION['SESSION_SKIN'];
    $listeauteurs .= "<tr class=\"titre\"><td colspan=\"2\"><font class=\"titre\">".$auteurs->prenomUtilisateur." " .$auteurs->nomUtilisateur." (".$auteurs->loginUtilisateur.")</font></td></tr>\n";
    $listeauteurs .= "<tr class=\"chapo\"><td><img src=\"../templates/temp$SESSION_SKIN/img/email.gif\" align=\"center\"> <a href=\"mail.php?id_auteur=" .$auteurs->id_utilisateur."\">" .$LG_AUTENVOIMAIL."</a></td>\n";
    $listeauteurs .= "<td><img src=\"../templates/temp$SESSION_SKIN/img/home.gif\" align=\"center\"> <font class=\"chapo\">$LG_AUTVILLE : " .$auteurs->villeUtilisateur."</font></td></tr>\n";
    $listeauteurs .= "<tr class=\"chapo\"><td><img src=\"../templates/temp$SESSION_SKIN/img/www.gif\" align=\"center\"> <a href=\"" .$auteurs->urlUtilisateur."\" target=\"_blank\">" .$auteurs->siteUtilisateur."</a></td>\n";
    $listeauteurs .= "<td><img src=\"../templates/temp$SESSION_SKIN/img/work.gif\" align=\"center\"> <font class=\"chapo\">$LG_AUTPROF : " .$auteurs->metierUtilisateur."</font></td></tr>\n";
    $listeauteurs .= "<tr class=\"texte\"><td colspan=\"2\"><font class=\"texte\">".$photo." " .$auteurs->descUtilisateur."</font></td></tr>\n";
    $listeauteurs .= "<tr class=\"titre\"><td colspan=\"2\"><font class=\"titre\">$LG_AUTARTI</font></td></tr>\n";
    $listeauteurs .= "<tr class=\"chapo\"><td colspan=\"2\">\n";

  $requete="select * from ".$extension."dossier where id_auteur='$id_auteur' and id_parentdos='0' and pubDossier='1' order by dateDossier desc";
  $result2=mysql_query($requete, $link);
    while ($dossier=mysql_fetch_object($result2)) {

    $dossier->titreDossier = stripslashes($dossier->titreDossier);

      $listeauteurs .= "- <a href=\"../dossiers/dossiers.php?id_dossier=".$dossier->id_dossier."\">".$dossier->titreDossier."</a> <font class=\"datedos\">[" .$dossier->dateDosvis."]</font><br>\n";
    }

$listeauteurs .= "</td></tr>\n";

//NEWS
$listeauteurs .= "<tr class=\"titre\"><td colspan=\"2\">&nbsp;</td></tr>\n";
$listeauteurs .= "<tr class=\"titre\"><td colspan=\"2\"><font class=\"titre\">Les brèves</font></td></tr>\n";
$listeauteurs .= "<tr><td colspan=\"2\">\n";
$requete="select * from ".$extension."news where id_autnews='$id_auteur' order by dateNews desc";
$result2=mysql_query($requete, $link);
while ($news=mysql_fetch_object($result2)) {
   $news->titreNews = stripslashes($news->titreNews);
   $listeauteurs .= "- <a href=\"../news/index.php?id_news=".$news->id_news."\">".$news->titreNews."</a> <font class=\"dateNews\">[" .$news->dateNews."]</font><br>\n";
}
$listeauteurs .= "</td></tr>\n";

//OEUVRES
$requete="select * from ".$extension."galerie where id_artiste='$id_auteur' and pubimg='1' order by dateimg desc";
$result2=mysql_query($requete, $link);
$rows=mysql_num_rows($result2);
if ($rows > 0) { // On n'affiche que s'il existe des images pour cet auteur
   $listeauteurs .= "<tr class=\"titre\"><td colspan=\"2\">&nbsp;</td></tr>\n";
   $listeauteurs .= "<tr class=\"titre\"><td colspan=\"2\"><font class=\"titre\">Cet auteur expose</font></td></tr>\n";
   $listeauteurs .= "<tr><td colspan=\"2\"><table width=\"100%\"><tr>\n";
   $i = 0;
   while ($galerie=mysql_fetch_object($result2)) {
      $galerie->titreimg = stripslashes($galerie->titreimg);
      if ($i%3==0) $listeauteurs .= "</tr><tr>\n"; // Paramétrage du nombre de colonnes
      $i++;
//Adapter le pourcentage en fonction du nombre de colonnes
      $listeauteurs .= "<td width=\"33%\" valign=\"top\"><a href=\"../galerie/oeuvre.php?id_img=".$galerie->id_img."\"><img src=\"../galerie/mini/".$galerie->imgchemin."\" border=\"0\"></a><br>\n";

      $month = substr($galerie->dateimg, 4 ,2);
      $day = substr($galerie->dateimg, 6, 2);
      $year = substr($galerie->dateimg, 0 ,4);
      $datetable = $day."/".$month."/".$year;

      $listeauteurs .= "- <a href=\"../galerie/artiste.php?id_auteur=".$galerie->id_artiste."\">".$galerie->titreimg."</a> <font class=\"dateimg\"><br />En ligne depuis le [" . $datetable . "]</font></td>\n";

   }

   $listeauteurs .= "</tr></table></td></tr>\n";
   $toutes="<a href=\"../galerie/pauteur.php?id_auteur=".$auteurs->id_utilisateur."\"><img src=\"../galerie/tab.gif\" align=\"center\" alt=\"Toutes les oeuvres de l'auteur\" border=\"0\">Toutes les oeuvres de l'auteur</a>";
   $listeauteurs .= "<br><tr><td colspan=\"2\"><p align=\"right\">".$toutes."</td></tr><br>";

}




Greg
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
jimro



Inscrit le: 07 Oct 2004
Messages: 6918

MessagePosté le: Dim 19 Mar 2006 18:33    Sujet du message: Répondre en citant

Bonjour ivoyages,

Compare les champs dateNews et ordreNews (et leur type) dans la table 'news', et tu comprendras vite pourquoi tu n'as pas choisi le bon.

Pour le reste, fais un tour sur www.php.net, et vois les fonctions de temps et de date. Tu devrais y parvenir sans difficulté.

jimro
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ivoyages



Inscrit le: 03 Jan 2004
Messages: 1522

MessagePosté le: Dim 19 Mar 2006 20:14    Sujet du message: Répondre en citant

Merci Jimro... Je vais regarder ça sur la doc Php...

Greg
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
ivoyages



Inscrit le: 03 Jan 2004
Messages: 1522

MessagePosté le: Mar 19 Sep 2006 17:46    Sujet du message: Répondre en citant

Je souhaite personnaliser de la même façon la page auteur pour la version XXL en ajoutant : News, xnews, galerie de l'auteur

Comme la page fait appelle à l'url friendly, j'ai laissé le code de la version Velocity de coté etj'ai essayé d'adapter ce qui a été fait pour Xdossiers aux news mair rien ne s'affiche. J'ai donc fait une ou plisuerus erreurs. Si quelqu'un pouvait jeter un oeil au code que je puisse voir où je me suis trompé. ça m'aidera ensuite à faire de même pour les autres modules.

Code:
/***************** NEWS ***********/
// recherche du module News

// La recherche de la présence de ce module est inutile puisqu'il est inclus d'office dans Artiphp

$req="select id_module, nomModule from ".$extension."module";
$res=mysql_query($req, $link);
while ($downok=mysql_fetch_object($res)) {

// Le nom 'système' du module est 'News' et non pas 'news'

   if ($downok->nomModule=='News') {
      $visunews="1";
   }
}

if ($visunews=='1') {
   $listeauteurs .= "<div class=\"contart\"><h1>$LG_NEWS</h1><ul>\n";

// WHERE et non pas here. Prendre l'habitude de mettre en majuscules les éléments du langage SQL.

   $requete="SELECT * FROM ".$extension."news WHERE id_autnews='$id_auteur' ORDER BY ordreNews DESC";
   $result2=mysql_query($requete, $link);

   while ($news=mysql_fetch_object($result2)) {

      $news->titreNews = stripslashes($news->titreNews);

      //url friendly
      if ($friendly) {
         $urlfriendly = fonct_urlfriendly($news->titreNews);
         if ($friendly=='1') {
            $valurl="index.php?val=".$news->id_news."_".$urlfriendly."";
         } else {
            $valurl="news_".$news->id_news."_".$urlfriendly.".html";
         }
      } else {
         $valurl="index.php?id_news=".$news->id_news."";
      }
      //--------------

// A la place de ../, il est aussi possible de mettre $votre_url/

      $listeauteurs .= "<li><a href=\"$votre_url/news/".$valurl."\">".$news->titreNews."</a> <span>" .$news->dateNews."</span></li>\n";

   }

   $listeauteurs .= "</ul></div>\n";
}
/***************** FIN NEWS ********/


Greg


EDIT jimro >> Code corrigé, et qqs remarques en commentaires
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
jimro



Inscrit le: 07 Oct 2004
Messages: 6918

MessagePosté le: Mar 19 Sep 2006 19:35    Sujet du message: Répondre en citant

Re,

Code corrigé (mais non testé), et qqs remarques en commentaires.


jimro
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ivoyages



Inscrit le: 03 Jan 2004
Messages: 1522

MessagePosté le: Mer 20 Sep 2006 9:36    Sujet du message: Répondre en citant

Merci Jimro,

J'ai fait ta correction et je l'ai appliqué à XNews => c'est OK !

Par contre j'ai des soucis pour la galerie

1) problème dans l'url friendly
2) je souhaite que seules les trois dernières photos soient affichées avec un lien vers le reste de la galerie

Pour l'instant mon code est :

Code:
/***************** GALERIE ***********/
// recherche du module Galerie photo
$req="select id_module, nomModule from ".$extension."module";
$res=mysql_query($req, $link);
while ($downok=mysql_fetch_object($res)) {

   if ($downok->nomModule=='Galerie') {
      $visugalerie="1";
   }
}

if ($visugalerie=='1') {
   $listeauteurs .= "<div class=\"contart\"><h1>3 dernières Photos de l'auteur</h1><ul>\n";

// Il faut ajouter le LIMIT, ainsi que la table galcategorie pour récupérer l'id et le nom de la galerie

   $requete="SELECT imgchemin, id_catgal, nomCatgal FROM ".$extension."galerie, ".$extension."galcategorie WHERE id_catgal=id_catgalerie AND id_artiste='$id_auteur' AND pubimg='1' ORDER BY dateimg DESC LIMIT 3";
   $result2=mysql_query($requete, $link);

   while ($galerie=mysql_fetch_object($result2)) {

      $nomcat = stripslashes($galerie->nomCatgal);
      $idcatgal = $galerie->id_catgal;

      //*** Encodage url rewriting ***
      if ($friendly) {
         $urlfriendly = fonct_urlfriendly($nomcat);
         if ($friendly=="1") {
            $valurl = "cat.php?val=" . $idcatgal . "_" . $urlfriendly;
         } else {
            $valurl = "galeries_" . $idcatgal . "_" . $urlfriendly . ".html";
            $urlfriendlycat = "$urlfriendly";
         }
      } else {
         $valurl = "cat.php?idcat=" . $idcatgal;
      }
      //******************************

      $listeauteurs .= "<li><a href=\"$votre_url/galerie/".$valurl."\">".$nomcat."<br /><img src=\"$votre_url/galerie/mini/".$galerie->imgchemin."\" border=\"0\"></a></li>\n";

   }

   $listeauteurs .= "</ul></div>\n";
}
/***************** FIN GALERIE ********/


Greg

EDIT jimro >> Code corrigé, voir les commentaires dans le code.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
jimro



Inscrit le: 07 Oct 2004
Messages: 6918

MessagePosté le: Mer 20 Sep 2006 13:01    Sujet du message: Répondre en citant

En outre, ta vérif de présence de module est loin d'être optimisée puisque tu fais une requête pour chaque module. D'une part, inutile de vérifier la présence des modules intégrés d'office à Artiphp, d'autre part, inutile de lancer une requête à chaque fois.

Mets plutôt un code s'appliquant à tous les modules concernés par l'affichage de données dans auteur.php comme ceci :
Code:
// recherche des modules additionnels
$req="select id_module, nomModule from ".$extension."module";
$res=mysql_query($req, $link);
while ($downok=mysql_fetch_object($res)) {
   if ($downok->nomModule=='Galerie') {
      $visugalerie="1";
   }
   if ($downok->nomModule=='XNews') {
      $visuxnews="1";
   }

// etc.

}



jimro
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ivoyages



Inscrit le: 03 Jan 2004
Messages: 1522

MessagePosté le: Mer 20 Sep 2006 14:39    Sujet du message: Répondre en citant

Merci pour cette juste remarque... C'est corrigé...

Une petite idée concernant l'affichage des 3 dernières photos sur 3 colonnes et de mon problème d'url friendly ?

Le tout est visible ici : http://www.namibie-voyage.info/welcome/auteur.php?id_auteur=1

Problème url friendly : Les liens des photos sont du type : http://www.namibie-voyage.info/galerie/oeuvre.php?val=3_oryx alors qu'il doit renvoyer vers http://www.namibie-voyage.info/galerie/oeuvre.php?val=3_0_oryx#img3

Pour les 3 colonnes... je dois dire que je suis un peu perdu avec la portion de code sur l'url friendly

Greg
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
jimro



Inscrit le: 07 Oct 2004
Messages: 6918

MessagePosté le: Mer 20 Sep 2006 16:41    Sujet du message: Répondre en citant

Je pensais que tu allais voir que j'ai modifié le code directement dans ton post.

jimro
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ivoyages



Inscrit le: 03 Jan 2004
Messages: 1522

MessagePosté le: Mer 20 Sep 2006 17:03    Sujet du message: Répondre en citant

Ah j'avais même pas vu

Par contre les 3 photos sont sur 1 colonne. Je l'ai voudrais sur une ligne... Je me suis mal exprimé dans les précédents posts

Sorry

Par contre, tu as mis les liens vers les catégories. Est ce par ceque ce n'est pas possible vers l'image ?

Greg
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
jimro



Inscrit le: 07 Oct 2004
Messages: 6918

MessagePosté le: Mer 20 Sep 2006 19:12    Sujet du message: Répondre en citant

Si, c'est possible. Mais c'est ce que tu demandais :
ivoyages a écrit:
2) je souhaite que seules les trois dernières photos soient affichées avec un lien vers le reste de la galerie


Voici avec les liens vers les images :
Code:
/***************** GALERIE ***********/
if ($visugalerie=='1') {
   $listeauteurs .= "<div class=\"contart\"><h1>3 dernières Photos de l'auteur</h1><ul class=\"ulimggal\">\n";

   $requete="SELECT titreimg, id_img, imgchemin FROM ".$extension."galerie WHERE id_artiste='$id_auteur' AND pubimg='1' ORDER BY dateimg DESC LIMIT 3";
   $result2=mysql_query($requete, $link);

   while ($galerie=mysql_fetch_object($result2)) {

      $galerie->titreimg = stripslashes($galerie->titreimg);
      $idcatgal = $galerie->id_catgal;

      //*** Encodage url rewriting ***
      if ($friendly) {
         $urlfriendly = fonct_urlfriendly($galerie->titreimg);
         if ($friendly=="1") {
            $valurl = "oeuvre.php?val=" . $galerie->id_img . "_0_" . $urlfriendly;
         } else {
            $valurl = "oeuvre_" . $galerie->id_img . "_0_" . $urlfriendly . ".html";
         }
      } else {
         $valurl = "oeuvre.php?id_img=" . $galerie->id_img;
      }
      //******************************

      $listeauteurs .= "<li class=\"liimggal\"><a href=\"$votre_url/galerie/".$valurl."\">".$galerie->titreimg."<br /><img src=\"$votre_url/galerie/mini/".$galerie->imgchemin."\" border=\"0\"></a></li>\n";

   }

   $listeauteurs .= "</ul></div>\n";
}
/***************** FIN GALERIE ********/

et tu définis les classes ulimggal et liimggal, dans le fichier general.css, avec les paramètres qui vont bien (display:block; etc.).


jimro
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ivoyages



Inscrit le: 03 Jan 2004
Messages: 1522

MessagePosté le: Jeu 21 Sep 2006 8:29    Sujet du message: Répondre en citant

Merci Jimro

Greg
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Ce forum est verrouillé; vous ne pouvez pas poster, ni répondre, ni éditer les sujets.   Ce sujet est verrouillé; vous ne pouvez pas éditer les messages ou faire de réponses.    Artiloo.com Index du Forum -> Artiphp 3 Velocity Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com