Changeset 507 for trunk/picture.php


Ignore:
Timestamp:
Aug 31, 2004, 12:00:46 AM (20 years ago)
Author:
z0rglub
Message:

add rating feature

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/picture.php

    r496 r507  
    2626// +-----------------------------------------------------------------------+
    2727
    28 //----------------------------------------------------------- include
     28$rate_items = array(0,1,2,3,4,5);
     29//--------------------------------------------------------------------- include
    2930define('PHPWG_ROOT_PATH','./');
    3031include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );   
     
    192193  }
    193194
    194   $picture[$i]['url'] = PHPWG_ROOT_PATH.'picture.php?image_id='.$row['id'];
    195   $picture[$i]['url'].= '&cat='.$page['cat'];
    196   if ( $page['cat'] == 'search' )
    197   {
    198     $picture[$i]['url'].= '&search='.$_GET['search'];
    199   }
    200   if (isset($_GET['show_metadata']))
    201   {
    202     $picture[$i]['url'].= '&show_metadata=1';
    203   }
     195  $picture[$i]['url'] = PHPWG_ROOT_PATH.'picture.php';
     196  $picture[$i]['url'].= get_query_string_diff(array('image_id','add_fav'));
     197  $picture[$i]['url'].= '&image_id='.$row['id'];
    204198}
    205199
     
    214208$url_admin.= '&cat_id='.$page['cat'];
    215209$url_admin.= '&image_id='.$_GET['image_id'];
    216  
     210//----------------------------------------------------------- rate registration
     211if (isset($_GET['rate'])
     212    and $conf['rate']
     213    and !$user['is_the_guest']
     214    and in_array($_GET['rate'], $rate_items))
     215{
     216  $query = '
     217DELETE
     218  FROM '.RATE_TABLE.'
     219  WHERE user_id = '.$user['id'].'
     220    AND element_id = '.$_GET['image_id'].'
     221;';
     222  mysql_query($query);
     223  $query = '
     224INSERT INTO '.RATE_TABLE.'
     225  (user_id,element_id,rate)
     226  VALUES
     227  ('.$user['id'].','.$_GET['image_id'].','.$_GET['rate'].')
     228;';
     229  mysql_query($query);
     230
     231  // update of images.average_rate field
     232  $query = '
     233SELECT ROUND(AVG(rate),2) AS average_rate
     234  FROM '.RATE_TABLE.'
     235  WHERE element_id = '.$_GET['image_id'].'
     236;';
     237  $row = mysql_fetch_array(mysql_query($query));
     238  $query = '
     239UPDATE '.IMAGES_TABLE.'
     240  SET average_rate = '.$row['average_rate'].'
     241  WHERE id = '.$_GET['image_id'].'
     242;';
     243  mysql_query($query);
     244}
    217245//--------------------------------------------------------- favorite management
    218246if ( isset( $_GET['add_fav'] ) )
     
    537565if (empty($picture['current']['filesize']))
    538566{
    539   if (!$picture[$i]['is_picture'])
     567  if (!$picture['current']['is_picture'])
    540568  {
    541569    $filesize = floor(filesize($picture['current']['download'])/1024);
     
    573601}
    574602// number of visits
    575 $template->assign_block_vars('info_line', array(
     603$template->assign_block_vars(
     604  'info_line',
     605  array(
    576606    'INFO'=>$lang['visited'],
    577607    'VALUE'=>$picture['current']['hit'].' '.$lang['times']
    578608    ));
     609// rate results
     610if ($conf['rate'])
     611{
     612  $query = '
     613SELECT COUNT(rate) AS count
     614     , ROUND(AVG(rate),2) AS average
     615     , ROUND(STD(rate),2) AS STD
     616  FROM '.RATE_TABLE.'
     617  WHERE element_id = '.$picture['current']['id'].'
     618;';
     619  $row = mysql_fetch_array(mysql_query($query));
     620  if ($row['count'] == 0)
     621  {
     622    $value = $lang['no_rate'];
     623  }
     624  else
     625  {
     626    $value = $row['average'];
     627    $value.= ' (';
     628    $value.= $row['count'].' '.$lang['rates'];
     629    $value.= ', '.$lang['standard_deviation'].' : '.$row['STD'];
     630    $value.= ')';
     631  }
     632 
     633  $template->assign_block_vars(
     634    'info_line',
     635    array(
     636      'INFO'  => $lang['element_rate'],
     637      'VALUE' => $value
     638      ));
     639}
    579640//-------------------------------------------------------------------- metadata
    580641if ($conf['show_exif'] or $conf['show_iptc'])
     
    597658{
    598659  $url = PHPWG_ROOT_PATH.'picture.php';
    599  
    600   $str = $_SERVER['QUERY_STRING'];
    601   parse_str($str, $get_vars);
    602   $is_first = true;
    603   foreach ($get_vars as $key => $value)
    604   {
    605     if ($key != 'show_metadata')
    606     {
    607       if ($is_first)
    608       {
    609         $url.= '?';
    610         $is_first = false;
    611       }
    612       else
    613       {
    614         $url.= '&';
    615       }
    616       $url.= $key.'='.$value;
    617     }
    618   }
     660  $url.= get_query_string_diff(array('show_metadata','add_fav'));
    619661 
    620662  $template->assign_block_vars('hide_metadata', array('URL' => $url));
     
    709751  }
    710752}
     753//------------------------------------------------------------------- rate form
     754if ($conf['rate'])
     755{
     756  $query = '
     757SELECT rate
     758  FROM '.RATE_TABLE.'
     759  WHERE user_id = '.$user['id'].'
     760    AND element_id = '.$_GET['image_id'].'
     761;';
     762  $result = mysql_query($query);
     763  if (mysql_num_rows($result) > 0)
     764  {
     765    $row = mysql_fetch_array($result);
     766    $sentence = $lang['already_rated'];
     767    $sentence.= ' ('.$row['rate'].'). ';
     768    $sentence.= $lang['update_rate'];
     769  }
     770  else
     771  {
     772    $sentence = $lang['never_rated'].'. '.$lang['to_rate'];
     773  }
     774  $template->assign_block_vars(
     775    'rate',
     776    array('SENTENCE' => $sentence)
     777    );
     778 
     779 
     780  foreach ($rate_items as $num => $mark)
     781  {
     782    if ($num > 0)
     783    {
     784      $separator = '|';
     785    }
     786    else
     787    {
     788      $separator = '';
     789    }
     790
     791    $url = PHPWG_ROOT_PATH.'picture.php';
     792    $url.= get_query_string_diff(array('rate','add_fav'));
     793    $url.= '&rate='.$mark;
     794   
     795    $template->assign_block_vars(
     796      'rate.rate_option',
     797      array(
     798        'OPTION' => $mark,
     799        'URL' => $url,
     800        'SEPARATOR' => $separator
     801        ));
     802  }
     803}
    711804//------------------------------------------------------- favorite manipulation
    712805if ( !$user['is_the_guest'] )
     
    720813  if (!$row['nb_fav'])
    721814  {
    722     $url = PHPWG_ROOT_PATH.'picture.php?cat='.$page['cat'].'&image_id='.$_GET['image_id'];
    723     $url.='&add_fav=1';
    724     if ( $page['cat'] == 'search' )
    725     {
    726       $url.= '&search='.$_GET['search'];
    727     }
    728         $template->assign_block_vars('favorite', array(
    729       'FAVORITE_IMG' => PHPWG_ROOT_PATH.'template/'.$user['template'].'/theme/favorite.gif',
    730           'FAVORITE_HINT' =>$lang['add_favorites_hint'],
    731           'FAVORITE_ALT' =>'[ '.$lang['add_favorites_alt'].' ]',
    732       'U_FAVORITE'=> add_session_id( $url )
    733     ));
     815    $url = PHPWG_ROOT_PATH.'picture.php';
     816    $url.= get_query_string_diff(array('rate','add_fav'));
     817    $url.= '&add_fav=1';
     818
     819    $template->assign_block_vars(
     820      'favorite',
     821      array(
     822        'FAVORITE_IMG' => PHPWG_ROOT_PATH.'template/'.$user['template'].'/theme/favorite.gif',
     823        'FAVORITE_HINT' =>$lang['add_favorites_hint'],
     824        'FAVORITE_ALT' =>'[ '.$lang['add_favorites_alt'].' ]',
     825        'U_FAVORITE' => $url
     826        ));
    734827  }
    735828  else
    736829  {
    737     $url = PHPWG_ROOT_PATH.'picture.php?cat='.$page['cat'].'&image_id='.$_GET['image_id'];
     830    $url = PHPWG_ROOT_PATH.'picture.php';
     831    $url.= get_query_string_diff(array('rate','add_fav'));
    738832    $url.= '&add_fav=0';
    739         $template->assign_block_vars('favorite', array(
    740       'FAVORITE_IMG' => PHPWG_ROOT_PATH.'template/'.$user['template'].'/theme/del_favorite.gif',
    741           'FAVORITE_HINT' =>$lang['del_favorites_hint'],
    742           'FAVORITE_ALT' =>'[ '.$lang['del_favorites_alt'].' ]',
    743       'U_FAVORITE'=> add_session_id( $url )
    744     ));
     833   
     834    $template->assign_block_vars(
     835      'favorite',
     836      array(
     837        'FAVORITE_IMG' => PHPWG_ROOT_PATH.'template/'.$user['template'].'/theme/del_favorite.gif',
     838        'FAVORITE_HINT' =>$lang['del_favorites_hint'],
     839        'FAVORITE_ALT' =>'[ '.$lang['del_favorites_alt'].' ]',
     840        'U_FAVORITE'=> $url
     841        ));
    745842  }
    746843}
     
    762859 
    763860  // navigation bar creation
    764   $url = PHPWG_ROOT_PATH.'picture.php?cat='.$page['cat'].'&image_id='.$_GET['image_id'];
    765   if ( $page['cat'] == 'search' )
    766   {
    767     $url.= '&search='.$_GET['search'];
    768   }
    769   if( !isset( $_GET['start'] )
     861  $url = PHPWG_ROOT_PATH.'picture.php';
     862  $url.= get_query_string_diff(array('rate','add_fav'));
     863
     864  if (!isset( $_GET['start'] )
    770865      or !is_numeric( $_GET['start'] )
    771866      or ( is_numeric( $_GET['start'] ) and $_GET['start'] < 0 ) )
Note: See TracChangeset for help on using the changeset viewer.