diff --git a/include/functions_picture.inc.php b/include/functions_picture.inc.php index a6adad95f..20c665862 100644 --- a/include/functions_picture.inc.php +++ b/include/functions_picture.inc.php @@ -115,4 +115,24 @@ function encode_slideshow_params($decode_params=array()) return $result; } +/** + * Increase the number of visits for a given photo. + * + * Code moved from picture.php to be used by both the API and picture.php + * + * @since 14 + * @param int $image_id + */ +function increase_image_visit_counter($image_id) +{ + // avoiding auto update of "lastmodified" field + $query = ' +UPDATE + '.IMAGES_TABLE.' + SET hit = hit+1, lastmodified = lastmodified + WHERE id = '.$image_id.' +;'; + pwg_query($query); +} + ?> \ No newline at end of file diff --git a/include/ws_functions/pwg.php b/include/ws_functions/pwg.php index bbb31546e..14de0e3c2 100644 --- a/include/ws_functions/pwg.php +++ b/include/ws_functions/pwg.php @@ -614,6 +614,14 @@ function ws_history_log($params, &$service) $page['tag_ids'] = explode(',', $params['tags_string']); } + // when visiting a photo (which is currently, in version 14, the only event registered + // by pwg.history.log) we should also increment images.hit + if (!empty($params['image_id'])) + { + include_once(PHPWG_ROOT_PATH.'include/functions_picture.inc.php'); + increase_image_visit_counter($params['image_id']); + } + pwg_log($params['image_id'], 'picture'); } diff --git a/picture.php b/picture.php index d7adab8c4..fccc5233e 100644 --- a/picture.php +++ b/picture.php @@ -430,14 +430,7 @@ else // don't increment if adding a comment if (trigger_change('allow_increment_element_hit_count', $inc_hit_count, $page['image_id'] ) ) { - // avoiding auto update of "lastmodified" field - $query = ' -UPDATE - '.IMAGES_TABLE.' - SET hit = hit+1, lastmodified = lastmodified - WHERE id = '.$page['image_id'].' -;'; - pwg_query($query); + increase_image_visit_counter($page['image_id']); } //---------------------------------------------------------- related categories