 6295173652
			
		
	
	
	6295173652
	
	
	
		
			
			- Copyrights 2003-2007 - help - Some HTML comform requests git-svn-id: http://piwigo.org/svn/trunk@1903 68402e56-0260-453c-a942-63ccdbb3a9ee
		
			
				
	
	
		
			153 lines
		
	
	
	
		
			4.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
	
		
			4.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| // +-----------------------------------------------------------------------+
 | |
| // | PhpWebGallery - a PHP based picture gallery                           |
 | |
| // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
 | |
| // | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
 | |
| // +-----------------------------------------------------------------------+
 | |
| // | branch        : BSF (Best So Far)
 | |
| // | file          : $RCSfile$
 | |
| // | last update   : $Date$
 | |
| // | last modifier : $Author$
 | |
| // | revision      : $Revision$
 | |
| // +-----------------------------------------------------------------------+
 | |
| // | 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                                          |
 | |
| // |                                                                       |
 | |
| // | 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.                                                                  |
 | |
| // +-----------------------------------------------------------------------+
 | |
| 
 | |
| /**
 | |
|  * rate a picture by a user
 | |
|  *
 | |
|  * @param int image identifier
 | |
|  * @param int rate
 | |
|  * @return void
 | |
|  */
 | |
| function rate_picture($image_id, $rate)
 | |
| {
 | |
|   global $conf, $user;
 | |
| 
 | |
|   if (!isset($rate)
 | |
|       or !$conf['rate']
 | |
|       or !in_array($rate, $conf['rate_items']))
 | |
|   {
 | |
|     return;
 | |
|   }
 | |
| 
 | |
|   $user_anonymous = is_autorize_status(ACCESS_CLASSIC) ? false : true;
 | |
| 
 | |
|   if ($user_anonymous and !$conf['rate_anonymous'])
 | |
|   {
 | |
|     return;
 | |
|   }
 | |
| 
 | |
|   if ($user_anonymous)
 | |
|   {
 | |
|     $ip_components = explode('.', $_SERVER["REMOTE_ADDR"]);
 | |
|     if (count($ip_components) > 3)
 | |
|     {
 | |
|       array_pop($ip_components);
 | |
|     }
 | |
|     $anonymous_id = implode ('.', $ip_components);
 | |
| 
 | |
|     if (isset($_COOKIE['pwg_anonymous_rater']))
 | |
|     {
 | |
|       if ($anonymous_id != $_COOKIE['pwg_anonymous_rater'])
 | |
|       { // client has changed his IP adress or he's trying to fool us
 | |
|         $query = '
 | |
| SELECT element_id
 | |
|   FROM '.RATE_TABLE.'
 | |
|   WHERE user_id = '.$user['id'].'
 | |
|     AND anonymous_id = \''.$anonymous_id.'\'
 | |
| ;';
 | |
|         $already_there = array_from_query($query, 'element_id');
 | |
| 
 | |
|         if (count($already_there) > 0)
 | |
|         {
 | |
|           $query = '
 | |
| DELETE
 | |
|   FROM '.RATE_TABLE.'
 | |
|   WHERE user_id = '.$user['id'].'
 | |
|     AND anonymous_id = \''.$_COOKIE['pwg_anonymous_rater'].'\'
 | |
|     AND element_id NOT IN ('.implode(',', $already_there).')
 | |
| ;';
 | |
|            pwg_query($query);
 | |
|          }
 | |
| 
 | |
|          $query = '
 | |
| UPDATE
 | |
|   '.RATE_TABLE.'
 | |
|   SET anonymous_id = \'' .$anonymous_id.'\'
 | |
|   WHERE user_id = '.$user['id'].'
 | |
|     AND anonymous_id = \'' . $_COOKIE['pwg_anonymous_rater'].'\'
 | |
| ;';
 | |
|          pwg_query($query);
 | |
| 
 | |
|          setcookie(
 | |
|             'pwg_anonymous_rater',
 | |
|             $anonymous_id,
 | |
|             strtotime('+10 years'),
 | |
|             cookie_path()
 | |
|            );
 | |
|       } // end client changed ip
 | |
|     } // end client has cookie
 | |
|     else
 | |
|     {
 | |
|       setcookie(
 | |
|           'pwg_anonymous_rater',
 | |
|           $anonymous_id,
 | |
|           strtotime('+10 years'),
 | |
|           cookie_path()
 | |
|           );
 | |
|     }
 | |
|   } // end anonymous user
 | |
|   $query = '
 | |
| DELETE
 | |
|   FROM '.RATE_TABLE.'
 | |
|   WHERE element_id = '.$image_id.'
 | |
|   AND user_id = '.$user['id'].'
 | |
| ';
 | |
|   if (isset($anonymous_id))
 | |
|   {
 | |
|     $query.= ' AND anonymous_id = \''.$anonymous_id.'\'';
 | |
|   }
 | |
|   pwg_query($query);
 | |
|   $query = '
 | |
| INSERT
 | |
|   INTO '.RATE_TABLE.'
 | |
|   (user_id,anonymous_id,element_id,rate,date)
 | |
|   VALUES
 | |
|   ('
 | |
|     .$user['id'].','
 | |
|     .(isset($anonymous_id) ? '\''.$anonymous_id.'\'' : "''").','
 | |
|     .$image_id.','
 | |
|     .$rate
 | |
|     .',NOW())
 | |
| ;';
 | |
|   pwg_query($query);
 | |
| 
 | |
|   // update of images.average_rate field
 | |
|   $query = '
 | |
| SELECT ROUND(AVG(rate),2) AS average_rate
 | |
|   FROM '.RATE_TABLE.'
 | |
|   WHERE element_id = '.$image_id.'
 | |
| ;';
 | |
|   $row = mysql_fetch_array(pwg_query($query));
 | |
|   $query = '
 | |
| UPDATE '.IMAGES_TABLE.'
 | |
|   SET average_rate = '.$row['average_rate'].'
 | |
|   WHERE id = '.$image_id.'
 | |
| ;';
 | |
|   pwg_query($query);
 | |
| }
 | |
| 
 | |
| ?>
 |