Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

Gweltas
2003-12-07 02:27:46

J'ai modifié le MOD pour le rendre plus compréhensible. Voici l'extrait du fichier picture.php au final.

Code:

//------------------------------------------------------- favorite manipulation
if (!$user['is_the_guest'])
{
// verify if the picture is already in the favorite of the user
$query = 'SELECT COUNT(*) AS nb_fav FROM '.PREFIX_TABLE.'favorites WHERE image_id = '.$page['id'];
$query.= ' AND user_id = '.$user['id'].';';
$result = mysql_query( $query );
$row = mysql_fetch_array( $result );

if (!$row['nb_fav'])
{
  $url = './picture.php?cat='.$page['cat'].'&image_id='.$page['id'];
  $url.= '&expand='.$_GET['expand'].'&add_fav=1';
  if ( $page['cat'] == 'search' )
  {
    $url.= '&search='.$_GET['search'].'&mode='.$_GET['mode'];
  }
  $vtp->addSession( $handle, 'favorite' );
  $vtp->setVar( $handle, 'favorite.link', add_session_id( $url ) );
  $vtp->setVar( $handle, 'favorite.title', $lang['add_favorites_hint'] );
  $vtp->setVar( $handle, 'favorite.src',
                './template/'.$user['template'].'/theme/favorite.gif' );
  $vtp->setVar( $handle, 'favorite.alt','[ '.$lang['add_favorites_alt'].' ]' );
  $vtp->closeSession( $handle, 'favorite' );
}
else
{
  $url = './picture.php?cat='.$page['cat'].'&image_id='.$page['id'];
  $url.= '&expand='.$_GET['expand'].'&add_fav=0';
  $vtp->addSession( $handle, 'favorite' );
  $vtp->setVar( $handle, 'favorite.link', add_session_id( $url ) );
  $vtp->setVar( $handle, 'favorite.title', $lang['del_favorites_hint'] );
  $vtp->setVar( $handle, 'favorite.src',
                './template/'.$user['template'].'/theme/del_favorite.gif' );
  $vtp->setVar( $handle, 'favorite.alt','[ '.$lang['del_favorites_alt'].' ]' );
  $vtp->closeSession( $handle, 'favorite' );
}
}
Gweltas
2003-12-05 16:13:56

Pour optimiser la gestion des favoris et surtout faire en sorte qu'il soit possible pour un utilisateur enregistré de savoir graphiquement si une image est déja dans ses favoris ou non sans passer par la catégorie "fav"

Code:

#
#---- [ OPEN ] --------
#
picture.php
#
#---- [ FIND ] -------------------------------------------
# (line 444)
//------------------------------------------------------- favorite manipulation
if ( $page['cat'] != 'fav' and !$user['is_the_guest'] )
{
#
#---- [ REPLACE WITH ] -------------------------------------
#
if (!$user['is_the_guest'])
{
// verify if the picture is already in the favorite of the user
$query = 'SELECT COUNT(*) AS nb_fav FROM '.PREFIX_TABLE.'favorites WHERE image_id = '.$page['id'];
$query.= ' AND user_id = '.$user['id'].';';
$result = mysql_query( $query );
$row = mysql_fetch_array( $result );
if (! $row['nb_fav'] ) 

#
#---- [ FIND ] -------------------------------------------
# (ligne 461)

if ( $page['cat'] == 'fav' )

#
#---- [ REPLACE WITH] -------------------------------------
#

else

#
#---- [ END ] --------
#
# EoM

_________________

Voilà ce n'est pas optimal en terme de performance (surtout en cas d'ajout ou de retrait de favori puisque la requête est faite deux fois) mais cela débloque...

Pied de page des forums

Propulsé par FluxBB

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