Annonce

  •  » Utilisation
  •  » Les auteurs d'une photo, d'une toile

#1 2004-04-22 02:49:49

Rickways
Membre
2004-04-22
104

Les auteurs d'une photo, d'une toile

Sur mon site je vais exposer des toiles de peintres.

Je vais donc indiquer grace à la place AUTEUR, le nom de l'auteur.

J'aurais aimé savoir deux choses:

- Est il possible de créer un lien à la place du nom de l'auteur afin d'arriver sur sa carte de visite.
- Est il possible de créer un nouveau lien permettant de voir en miniature toutes les oeuvres d'un même artiste

Pour plus de précision voici le fonctionnement de la galerie d'art aujourd'hui:
- Chaque artiste propose une toile par mois, et l'ensemble des miniatures de ses toiles sont regroupé dans la galerie du mois, et en dessous de sa carte de visite.

MERCI POUR VOTRE AIDE


Merci au créateur de ce magnifique outils.

Hors ligne

#2 2004-04-22 09:02:38

pse
Former Piwigo Team
France
2004-04-03
125

Re: Les auteurs d'une photo, d'une toile

Rickways a écrit:

- Est il possible de créer un lien à la place du nom de l'auteur afin d'arriver sur sa carte de visite.

Non, pas directement. Si tu code un lien HTML dans le champ AUTEUR, le code HTML ne sera pas interprété dans ta page. Il te faut modifier une ligne de code PHP pour réactiver l'inteprétation HTML, cf http://forum.phpwebgallery.net/viewtopic.php?id=1342  (qui traite de la même chose pour le champ commentaire).
Ca c'est la solution cheap. Sinon, si tu t'y connais en prog, tu peux rajouter un champ lien en plus du champ auteur dans la base...

Rickways a écrit:

- Est il possible de créer un nouveau lien permettant de voir en miniature toutes les oeuvres d'un même artiste

Non mais tu dois pouvoir facilement l'implémenter (enfin tjs si tu t'y connais en prog) en rajoutant une fonction de recherche à partir du champ AUTEUR.

Ce sera un site ouvert à tous ?

Hors ligne

#3 2004-04-22 12:13:13

Alexd
Invité

Re: Les auteurs d'une photo, d'une toile

Salut jai fais une galerie un peut du meme style avec des tableaux/peintures et en fait ce que jai fait c que jai remplacé le commentaire d'une categorie par une biographie sachant qu'une categorie devient un auteur donc je pense que tu peut aisément remplacer ça par une carte de visite si t a laise avec le code...

#4 2004-04-22 13:56:25

Webabar
Membre
France
2004-03-24
214

Re: Les auteurs d'une photo, d'une toile

J'avais trouvé ça à une époque mais j'ai jamais essayé (mis à part la demo sur le site) :

Code:

<?
/***************************************************************************

PHP vCard class v2.0
(c) Kai Blankenhorn
www.bitfolge.de/en
kaib@bitfolge.de


This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

***************************************************************************/


function encode($string) {
  return escape(quoted_printable_encode($string));
}

function escape($string) {
  return str_replace(";","\;",$string);
}

// taken from PHP documentation comments
function quoted_printable_encode($input, $line_max = 76) {
  $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
  $lines = preg_split("/(?:\r\n|\r|\n)/", $input);
  $eol = "\r\n";
  $linebreak = "=0D=0A";
  $escape = "=";
  $output = "";

  for ($j=0;$j<count($lines);$j++) {
    $line = $lines[$j];
    $linlen = strlen($line);
    $newline = "";
    for($i = 0; $i < $linlen; $i++) {
      $c = substr($line, $i, 1);
      $dec = ord($c);
      if ( ($dec == 32) && ($i == ($linlen - 1)) ) { // convert space at eol only
        $c = "=20"; 
      } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { // always encode "\t", which is *not* required
        $h2 = floor($dec/16); $h1 = floor($dec%16); 
        $c = $escape.$hex["$h2"].$hex["$h1"]; 
      }
      if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is not counted
        $output .= $newline.$escape.$eol; // soft line break; " =\r\n" is okay
        $newline = "    ";
      }
      $newline .= $c;
    } // end of for
    $output .= $newline;
    if ($j<count($lines)-1) $output .= $linebreak;
  }
  return trim($output);
}

class vCard {
  var $properties;
  var $filename;
  
  function setPhoneNumber($number, $type="") {
  // type may be PREF | WORK | HOME | VOICE | FAX | MSG | CELL | PAGER | BBS | CAR | MODEM | ISDN | VIDEO or any senseful combination, e.g. "PREF;WORK;VOICE"
    $key = "TEL";
    if ($type!="") $key .= ";".$type;
    $key.= ";ENCODING=QUOTED-PRINTABLE";
    $this->properties[$key] = quoted_printable_encode($number);
  }
  
  // UNTESTED !!!
  function setPhoto($type, $photo) { // $type = "GIF" | "JPEG"
    $this->properties["PHOTO;TYPE=$type;ENCODING=BASE64"] = base64_encode($photo);
  }
  
  function setFormattedName($name) {
    $this->properties["FN"] = quoted_printable_encode($name);
  }
  
  function setName($family="", $first="", $additional="", $prefix="", $suffix="") {
    $this->properties["N"] = "$family;$first;$additional;$prefix;$suffix";
    $this->filename = "$first%20$family.vcf";
    if ($this->properties["FN"]=="") $this->setFormattedName(trim("$prefix $first $additional $family $suffix"));
  }
  
  function setBirthday($date) { // $date format is YYYY-MM-DD
    $this->properties["BDAY"] = $date;
  }
  
  function setAddress($postoffice="", $extended="", $street="", $city="", $region="", $zip="", $country="", $type="HOME;POSTAL") {
  // $type may be DOM | INTL | POSTAL | PARCEL | HOME | WORK or any combination of these: e.g. "WORK;PARCEL;POSTAL"
    $key = "ADR";
    if ($type!="") $key.= ";$type";
    $key.= ";ENCODING=QUOTED-PRINTABLE";
    $this->properties[$key] = encode($name).";".encode($extended).";".encode($street).";".encode($city).";".encode($region).";".encode($zip).";".encode($country);
    
    if ($this->properties["LABEL;$type;ENCODING=QUOTED-PRINTABLE"] == "") {
      //$this->setLabel($postoffice, $extended, $street, $city, $region, $zip, $country, $type);
    }
  }
  
  function setLabel($postoffice="", $extended="", $street="", $city="", $region="", $zip="", $country="", $type="HOME;POSTAL") {
    $label = "";
    if ($postoffice!="") $label.= "$postoffice\r\n";
    if ($extended!="") $label.= "$extended\r\n";
    if ($street!="") $label.= "$street\r\n";
    if ($zip!="") $label.= "$zip ";
    if ($city!="") $label.= "$city\r\n";
    if ($region!="") $label.= "$region\r\n";
    if ($country!="") $country.= "$country\r\n";
    
    $this->properties["LABEL;$type;ENCODING=QUOTED-PRINTABLE"] = quoted_printable_encode($label);
  }
  
  function setEmail($address) {
    $this->properties["EMAIL;INTERNET"] = $address;
  }
  
  function setNote($note) {
    $this->properties["NOTE;ENCODING=QUOTED-PRINTABLE"] = quoted_printable_encode($note);
  }
  
  function setURL($url, $type="") {
  // $type may be WORK | HOME
    $key = "URL";
    if ($type!="") $key.= ";$type";
    $this->properties[$key] = $url;
  }
  
  function getVCard() {
    $text = "BEGIN:VCARD\r\n";
    $text.= "VERSION:2.1\r\n";
    foreach($this->properties as $key => $value) {
      $text.= "$key:$value\r\n";
    }
    $text.= "REV:".date("Y-m-d")."T".date("H:i:s")."Z\r\n";
    $text.= "MAILER:PHP vCard class by Kai Blankenhorn\r\n";
    $text.= "END:VCARD\r\n";
    return $text;
  }
  
  function getFileName() {
    return $this->filename;
  }
}


//  USAGE EXAMPLE

$v = new vCard();

$v->setPhoneNumber("+49 23 456789", "PREF;HOME;VOICE");
$v->setName("Mustermann", "Thomas", "", "Herr");
$v->setBirthday("1960-07-31");
$v->setAddress("", "", "Musterstrasse 20", "Musterstadt", "", "98765", "Deutschland");
$v->setEmail("thomas.mustermann@thomas-mustermann.de");
$v->setNote("You can take some notes here.\r\nMultiple lines are supported via \\r\\n.");
$v->setURL("http://www.thomas-mustermann.de", "WORK");

$output = $v->getVCard();
$filename = $v->getFileName();

Header("Content-Disposition: attachment; filename=$filename");
Header("Content-Length: ".strlen($output));
Header("Connection: close");
Header("Content-Type: text/x-vCard; name=$filename");

echo $output;
?>

Ca permet d'afficher / downloader le contact sous forme de vcard...

Dernière modification par Webabar (2004-04-22 13:57:47)


Y'a des détails qui trompent pas...
Ma galerie PWG :
http://pagesperso.laposte.net/cezanne92/

Hors ligne

#5 2004-04-22 22:22:21

Rickways
Membre
2004-04-22
104

Re: Les auteurs d'une photo, d'une toile

Tout d'abord Merci à tous.

Concernant le site il sera en effet ouvert à tous.

Puis pour la program, y'a pas moyen j'débute et j'comprend presque rien... (Merci webabar, mais un truc comme ça je sais meme pas à quoi ça correspond et ce que je peux en faire !!)

J'ai toutes les tares, MAIS J'Y ARRIVERAIS !!!


Merci au créateur de ce magnifique outils.

Hors ligne

#6 2004-04-23 02:19:06

Rickways
Membre
2004-04-22
104

Re: Les auteurs d'une photo, d'une toile

Pse a écrit:

Rickways a écrit:

- Est il possible de créer un nouveau lien permettant de voir en miniature toutes les oeuvres d'un même artiste

Non mais tu dois pouvoir facilement l'implémenter (enfin tjs si tu t'y connais en prog) en rajoutant une fonction de recherche à partir du champ AUTEUR.

Ce sera un site ouvert à tous ?

Je vois pas du tout comment faire mais je suis sur que je peux y arriver.


J'ai réussi à réactiver le HTML dans les comments,
à ce même endroit j'ai donc mis le nom de l'auteur (au lieu de la case auteur) et activer un lien fictif.

Au final j'aimerais que ce lien amène sur une page (intégrer à la gallerie) présentant rapidement l'auteur (photo, nom, prenom, présentation, + et surtout ça: TOUTES ces toiles exposés.) C'EST LA où il faudrait une fonction recherche de l'auteur, mais....

Je sais pas comment faire du tout.

Je ne sais pas comment faire une page intégrer au design
et je ne sais pas comment faire afficher les thumbnails à partir d'un programmation quelqueconque de recherche sur le nom de l'auteur !

PAS FACILE? mais j'écoute vos conseils c comme ça que j'apprends!

merci pour tout, j'adore déjà ce p'tit coin sympa !


Merci au créateur de ce magnifique outils.

Hors ligne

#7 2004-04-23 08:55:04

pse
Former Piwigo Team
France
2004-04-03
125

Re: Les auteurs d'une photo, d'une toile

Rickways a écrit:

Au final j'aimerais que ce lien amène sur une page (intégrer à la gallerie) présentant rapidement l'auteur (photo, nom, prenom, présentation, + et surtout ça: TOUTES ces toiles exposés.) C'EST LA où il faudrait une fonction recherche de l'auteur, mais....

Pour la fonction recherche, tu n'as qu'à te baser sur celle existante. J'ai pas le code sous les yeux, mais je présume qu'elle doit faire une recherche sur tous les champs descriptifs d'une image. Toi tu n'as qu'à restreindre la recherche au champ auteur et enrichir la page de résultat pour présenter les infos liées à l'artiste.
Donc commence par dupliquer la fonction et la page de résultats (après tu pourras faire untruc plus propre), et procède par tâtonnements, tu devrais y arriver.

Par contre, pour que tu puisses afficher les infos d'un artiste, il te faut déjà définir un moyen de stockage ! Tu peux par exemple enrichir la base user pour rajouter les infos qu'il te manque, ce qui te demanderas aussi d'enrichir le formulaire d'édition utilisateur.

Je te dis tout ça à l'aveugle, mais ça doit être une piste à creuser.

Hésite pas à demander de l'aide.

PS : à priori ta fonctionnalité pourrait servir à d'autres, donc si t'arrives à développer un module facilement "pluggable", ça serait vraiment intéressant.

Hors ligne

#8 2004-04-24 00:10:43

Rickways
Membre
2004-04-22
104

Re: Les auteurs d'une photo, d'une toile

Bon l'idée me plait bien.

D'ici un mois je m'y mets.

V'là l'idée en complément de la tienne (comme ça ça parait simple, mais va falloir que j'apprenne tout le langage.)


- Les artistes s'inscrivent obligatoirement.
Ils entrent tout ce qu'il faut (Pseudo, Adresse mail, site web, Présentation, autres)
- Le lien auteur appelera une page sur laquelle je ferais appel à la bas de données Pour afficher toutes les données de l'inscrit
on trouve ça souvent dans les forum ça doit être faisable.
- Puis j'incrémente en plus une fonction recherche de sur l'auteur de toutes les toiles qui porte son nom

DANS L'idée c'est exactement ça.

Bon comme j'disais j'my plonge dans un mois, et si j'arrive à faire quelque chose, il va de soit que je partage.

Mais d'ici là j'aurais d'autres questions à poser pour mieux comprendre le PHP

MERKI


Merci au créateur de ce magnifique outils.

Hors ligne

  •  » Utilisation
  •  » Les auteurs d'une photo, d'une toile

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact