Annonce

  •  » Plugins
  •  » Recherche de plugin - Afficher les commentaire sur la page d'accueil

#1 2007-04-17 12:59:02

Niubert
Membre
2007-04-17
67

Recherche de plugin - Afficher les commentaire sur la page d'accueil

Bonjour tout le monde.

Je viens de passer à la 1.6.2 (de la 1.5.2) et j'en profite pour rajouter quelques plugins. Actuellement je recherche un plugin pour afficher les X derniers commentaires directement sur l'index. Je pense que ça doit exister mais décidément je ne trouve pas.

Merci de votre aide :)




EDIT 26/04/07

Voilà la modification à apporter :

Dans index.php, juste avant :

Code:

//------------------------------------------------------------ log informations
pwg_log('category', $page['title']);

(soit juste avant la fin du fichier)

insérer :

Code:

// BEGIN COMS ON INDEX

$comments = array();
$element_ids = array();
$category_ids = array();

/*Nombre de commentaires à afficher*/
$NbrComs = 5;

$query = 'SELECT com.id AS comment_id
, com.image_id
, ic.category_id
, com.author
, com.date
, com.content
, com.id AS comment_id
 FROM phpwebgallery_image_category AS ic
 INNER JOIN phpwebgallery_comments AS com
 ON ic.image_id = com.image_id
 WHERE ic.category_id NOT IN ('.$user['forbidden_categories'].')
 GROUP BY comment_id
 ORDER BY date DESC
 LIMIT 0,'.$NbrComs;

$result = pwg_query($query);
while ($row = mysql_fetch_array($result))
{
  array_push($comments, $row);
  array_push($element_ids, $row['image_id']);
  array_push($category_ids, $row['category_id']);
}

if (count($comments) > 0)
{
  // retrieving element informations
  $elements = array();
  $query = '
SELECT id, name, file, path, tn_ext
  FROM '.IMAGES_TABLE.'
  WHERE id IN ('.implode(',', $element_ids).')
;';
  $result = pwg_query($query);
  while ($row = mysql_fetch_array($result))
  {
    $elements[$row['id']] = $row;
  }

  // retrieving category informations
  $categories = array();
  $query = '
SELECT id, name, uppercats
  FROM '.CATEGORIES_TABLE.'
  WHERE id IN ('.implode(',', $category_ids).')
;';
  $result = pwg_query($query);
  while ($row = mysql_fetch_array($result))
  {
    $categories[$row['id']] = $row;
  }

  foreach ($comments as $comment)
  {
    // name of the picture
    $name = get_cat_display_name_cache(
      $categories[$comment['category_id']]['uppercats'], null, false);
    $name.= $conf['level_separator'];
    if (!empty($elements[$comment['image_id']]['name']))
    {
      $name.= $elements[$comment['image_id']]['name'];
    }
    else
    {
      $name.= get_name_from_file($elements[$comment['image_id']]['file']);
    }

    // source of the thumbnail picture
    $thumbnail_src = get_thumbnail_src(
      $elements[$comment['image_id']]['path'],
      @$elements[$comment['image_id']]['tn_ext']
      );

    // link to the full size picture
    $url = make_picture_url(
            array(
              'category' => $comment['category_id'],
              'cat_name' => $categories[ $comment['category_id']] ['name'],
              'image_id' => $comment['image_id'],
              'image_file' => $elements[$comment['image_id']]['file'],
            )
          );

    $template->assign_block_vars(
      'picture',
      array(
        'TITLE_IMG'=>$name,
        'I_THUMB'=>$thumbnail_src,
        'U_THUMB'=>$url
        ));

    $author = $comment['author'];
    if (empty($comment['author']))
    {
      $author = l10n('guest');
    }

    $template->assign_block_vars(
      'comment',
      array(
        'U_PICTURE' => $url,
        'TN_SRC' => $thumbnail_src,
        'AUTHOR' => $author,
        'DATE'=>format_date($comment['date'],'mysql_datetime',true),
        'CONTENT'=>parse_comment_content($comment['content']),
        ));  
  }
}
//END COMS ON INDEX

Et dans le fichier index.tpl, ajouter à la fin :

Code:

<div id="content">
  <h2><a href="comments.php" title="Derniers commentaires">Derniers commentaires</a></h2>
<div id="comments">
  <!-- BEGIN comment -->
  <div class="comment">
    <a class="illustration" href="{comment.U_PICTURE}"><img src="{comment.TN_SRC}" /></a>
    <p class="commentHeader"><span class="author">{comment.AUTHOR}</span> - <span class="date">{comment.DATE}</span></p>
    <blockquote>{comment.CONTENT}</blockquote>
    <hr class="separation">
  </div>
  <!-- END comment -->
</div></div>

Et le tour est joué !

Pour ceux qui veulent une démo voir ici

J'ai repris le template du comments.tpl de yoga (thème par défaut chez moi pour le moment) donc je ne sais pas ce que ça donnera sur d'autres thèmes.

Voili voilou, si ça peut servir je serai content ! :)

PS : Ha oui, et si vous voulez changer le nombre de miniature à afficher (j'en ai mis 5) modifiez la valeur de $NbrComs tout au début du code à insérer dans index.php ;)

J'ai aussi rajouté la modif pour ne pas avoir les commentaires des catégories privés pour les visiteurs et ceux qui n'y ont pas accés :)

Merci & enjoy !



Edit du 27/04/07

Pour la version finale voir ici (merci à Nicco pour la synthèse :) )

Dernière modification par Niubert (2007-04-27 12:40:55)

Hors ligne

#2 2007-04-17 13:12:52

flipflip
Membre
Lyon
2005-03-19
2316

Re: Recherche de plugin - Afficher les commentaire sur la page d'accueil

Bonjour, je n'ai jamais vu de mod permettant cette fonction.


Le cerveau à des capacités tellement étonnantes qu’aujourd’hui pratiquement tout le monde en à un

Mon site : http://www.blogoflip.fr

Hors ligne

#3 2007-04-18 15:20:30

Nicco
Membre
Paris - Val de Marne
2006-05-12
1794

Re: Recherche de plugin - Afficher les commentaire sur la page d'accueil

pas mal ca pour motiver les visiteurs à saisir des commentaires : +1


Nicco Starrrr ..... voici ma galerie http://gallery-nicco.no-ip.org & ma passion http://bd-nicco.no-ip.org
version PWG 1.7.1 + de nombreux plugins actifs (trop pour les énumérer)

Hors ligne

#4 2007-04-18 15:49:53

sakkhho
Membre
Paris
2007-04-02
1836

Re: Recherche de plugin - Afficher les commentaire sur la page d'accueil

ca rejoint un peu l'idée ds cette disucssion
http://forum.phpwebgallery.net/viewtopic.php?id=10338

perso je prefere l'icone pour eviter de surchargé la page d'acceuil...


Piwigo 2.3.5

Hors ligne

#5 2007-04-18 16:55:01

Niubert
Membre
2007-04-17
67

Re: Recherche de plugin - Afficher les commentaire sur la page d'accueil

Personnellement je préférerait un petit cadre du meme style que celui de la news (j'ai installé le mod news dessus) en bas avec sur quelques lignes, le début des 5 ou 10 derniers commentaires. (sans la miniature de l'image)

Ca resterait sobre et discret.

Si vraiment ça n'existe pas, alors je le ferai moi même...

Hors ligne

#6 2007-04-18 19:13:55

Nicco
Membre
Paris - Val de Marne
2006-05-12
1794

Re: Recherche de plugin - Afficher les commentaire sur la page d'accueil

Et bien moi je veux les 2 naaaaaaaaaaaa

sans rire ca peux etre cool et il suffit de faire une variable dans config qui active ou non l'affichage sur la page d'acceuil

et pour finir va s y Niubert ... je trouve ca trop cool que plein de monde fasse un MOD quand il veut quelque chose car ca permet aux autres de pouvoir l utiliser aussi

et surtout ca augmente les possibilité de PWG


Nicco Starrrr ..... voici ma galerie http://gallery-nicco.no-ip.org & ma passion http://bd-nicco.no-ip.org
version PWG 1.7.1 + de nombreux plugins actifs (trop pour les énumérer)

Hors ligne

#7 2007-04-20 17:48:01

Niubert
Membre
2007-04-17
67

Re: Recherche de plugin - Afficher les commentaire sur la page d'accueil

Bon, du coup j'ai fait ma petite modification moi même. Voilà ce qu'il faut faire pour ceux que ça interresse :

Dans index.php, juste avant :

Code:

//------------------------------------------------------------ log informations
pwg_log('category', $page['title']);

(soit juste avant la fin du fichier)

insérer :

Code:

// BEGIN COMS ON INDEX

$comments = array();
$element_ids = array();
$category_ids = array();

/*Nombre de commentaires à afficher*/
$NbrComs = 5;

$query = 'SELECT com.id AS comment_id
, com.image_id
, ic.category_id
, com.author
, com.date
, com.content
, com.id AS comment_id
 FROM phpwebgallery_image_category AS ic
 INNER JOIN phpwebgallery_comments AS com
 ON ic.image_id = com.image_id
 GROUP BY comment_id
 ORDER BY date DESC
 LIMIT 0,'.$NbrComs;

$result = pwg_query($query);
while ($row = mysql_fetch_array($result))
{
  array_push($comments, $row);
  array_push($element_ids, $row['image_id']);
  array_push($category_ids, $row['category_id']);
}

if (count($comments) > 0)
{
  // retrieving element informations
  $elements = array();
  $query = '
SELECT id, name, file, path, tn_ext
  FROM '.IMAGES_TABLE.'
  WHERE id IN ('.implode(',', $element_ids).')
;';
  $result = pwg_query($query);
  while ($row = mysql_fetch_array($result))
  {
    $elements[$row['id']] = $row;
  }

  // retrieving category informations
  $categories = array();
  $query = '
SELECT id, name, uppercats
  FROM '.CATEGORIES_TABLE.'
  WHERE id IN ('.implode(',', $category_ids).')
;';
  $result = pwg_query($query);
  while ($row = mysql_fetch_array($result))
  {
    $categories[$row['id']] = $row;
  }

  foreach ($comments as $comment)
  {
    // name of the picture
    $name = get_cat_display_name_cache(
      $categories[$comment['category_id']]['uppercats'], null, false);
    $name.= $conf['level_separator'];
    if (!empty($elements[$comment['image_id']]['name']))
    {
      $name.= $elements[$comment['image_id']]['name'];
    }
    else
    {
      $name.= get_name_from_file($elements[$comment['image_id']]['file']);
    }

    // source of the thumbnail picture
    $thumbnail_src = get_thumbnail_src(
      $elements[$comment['image_id']]['path'],
      @$elements[$comment['image_id']]['tn_ext']
      );

    // link to the full size picture
    $url = make_picture_url(
            array(
              'category' => $comment['category_id'],
              'cat_name' => $categories[ $comment['category_id']] ['name'],
              'image_id' => $comment['image_id'],
              'image_file' => $elements[$comment['image_id']]['file'],
            )
          );

    $template->assign_block_vars(
      'picture',
      array(
        'TITLE_IMG'=>$name,
        'I_THUMB'=>$thumbnail_src,
        'U_THUMB'=>$url
        ));

    $author = $comment['author'];
    if (empty($comment['author']))
    {
      $author = l10n('guest');
    }

    $template->assign_block_vars(
      'comment',
      array(
        'U_PICTURE' => $url,
        'TN_SRC' => $thumbnail_src,
        'AUTHOR' => $author,
        'DATE'=>format_date($comment['date'],'mysql_datetime',true),
        'CONTENT'=>parse_comment_content($comment['content']),
        ));  
  }
}
//END COMS ON INDEX

Et dans le fichier index.tpl, ajouter à la fin :

Code:

<!-- BEGIN COMS ON INDEX -->
<div id="content">
  <h2><a href="comments.php" title="Derniers commentaires">Derniers commentaires</a></h2>
<div id="comments">
  <!-- BEGIN comment -->
  <div class="comment">
    <a class="illustration" href="{comment.U_PICTURE}"><img src="{comment.TN_SRC}" /></a>
    <p class="commentHeader"><span class="author">{comment.AUTHOR}</span> - <span class="date">{comment.DATE}</span></p>
    <blockquote>{comment.CONTENT}</blockquote>
    <hr class="separation">
  </div>
  <!-- END comment -->
</div></div>
<!-- END COMS ON INDEX -->

Et le tour est joué !

Pour ceux qui veulent une démo voir ici

J'ai repris le template du comments.tpl de yoga (thème par défaut chez moi pour le moment) donc je ne sais pas ce que ça donnera sur d'autres thèmes.

Voili voilou, si ça peut servir je serai content ! :)

PS : Ha oui, et si vous voulez changer le nombre de miniature à afficher (j'en ai mis 5) modifiez la valeur de $NbrComs tout au début du code à insérer dans index.php ;)

Dernière modification par Niubert (2007-04-20 17:49:50)

Hors ligne

#8 2007-04-20 19:00:09

sakkhho
Membre
Paris
2007-04-02
1836

Re: Recherche de plugin - Afficher les commentaire sur la page d'accueil

bravo !!
je pense que je vais l'adopter...
merci bcp !


Piwigo 2.3.5

Hors ligne

#9 2007-04-20 19:37:15

sakkhho
Membre
Paris
2007-04-02
1836

Re: Recherche de plugin - Afficher les commentaire sur la page d'accueil

j'ai une erreur quand j'aoute le code ds le index.tpl
Parse error: syntax error, unexpected T_STRING in /mnt/146/sdb/a/d/xxxx/phpwebgallery/include/template.php(168) : eval()'d code on line 175

Dernière modification par sakkhho (2007-04-20 19:38:21)


Piwigo 2.3.5

Hors ligne

#10 2007-04-20 19:56:56

Gotcha
Ex Equipe Piwigo
Pierrelatte (26)
2007-03-14
13331

Re: Recherche de plugin - Afficher les commentaire sur la page d'accueil

Pareil que pour sakkhho :(

Code:

Parse error: syntax error, unexpected T_STRING

Ayez comme premier réflexe de consulter le wiki.
Ensuite, veuillez effectuer une recherche sur le forum avant de poser votre question.

LE FAIRE EST LE REVELATEUR DE L'ETRE

Hors ligne

#11 2007-04-20 19:57:56

sakkhho
Membre
Paris
2007-04-02
1836

Re: Recherche de plugin - Afficher les commentaire sur la page d'accueil

niubert tu nous aurais menti ?????

:-)


Piwigo 2.3.5

Hors ligne

#12 2007-04-21 00:03:33

Niubert
Membre
2007-04-17
67

Re: Recherche de plugin - Afficher les commentaire sur la page d'accueil

Bah non chez moi ça marche ! :)

Je sais pas trop quoi vous dire là...

Hors ligne

#13 2007-04-21 09:43:22

sakkhho
Membre
Paris
2007-04-02
1836

Re: Recherche de plugin - Afficher les commentaire sur la page d'accueil

alors j'ai repris mon comments.tpl

<div id="content">
  <h2><a href="comments.php" title="Derniers commentaires">Derniers commentaires</a></h2>
<div id="comments">
  <!-- BEGIN comment -->
  <div class="comment">
    <a class="illustration" href="{comment.U_PICTURE}"><img src="{comment.TN_SRC}" /></a>
    <p class="commentHeader"><span class="author">{comment.AUTHOR}</span> - <span class="date">{comment.DATE}</span></p>
    <blockquote>{comment.CONTENT}</blockquote>
    <hr class="separation">
  </div>
  <!-- END comment -->
</div>
</div> <!-- content -->

et ca marche !
je vois pas la difference mais bon..

Dernière modification par sakkhho (2007-04-21 09:52:37)


Piwigo 2.3.5

Hors ligne

#14 2007-04-21 09:46:41

sakkhho
Membre
Paris
2007-04-02
1836

Re: Recherche de plugin - Afficher les commentaire sur la page d'accueil

mais plusieurs soucis.
cette modif est affiché tt le tps, donc pas de difference public, privée...

ce qui serait bien c'est quil n'affiche que le commentaires des categories autorisés....

si qq'un à une idée...


Piwigo 2.3.5

Hors ligne

#15 2007-04-21 10:26:39

Niubert
Membre
2007-04-17
67

Re: Recherche de plugin - Afficher les commentaire sur la page d'accueil

J'ai viré ça de la requete sql (voir dans ton comments.php) :

Code:

if ($user['forbidden_categories'] != '')
{
  $query.= '
    AND category_id NOT IN ('.$user['forbidden_categories'].')';
}

Je pense qu'il faut que tu creuses par là :)

Hors ligne

  •  » Plugins
  •  » Recherche de plugin - Afficher les commentaire sur la page d'accueil

Pied de page des forums

Propulsé par FluxBB

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