/** * {%inheritDoc} */ public static function process(User $user, $params = []) { if (!isset($params['code']) || empty($params['code'])) { return false; } if ($activity = Activity::findActivityType('LikeWorkOfArt')->first()) { $code = $params['code']; if ($data = self::isAssessionNumber($code)) { // Skip activity process if user has already like this work of art $likeCount = ActivityMetadata::hasMetadataValue($user, $activity, 'object_id', $data['object_id'])->count(); if ($likeCount == 0) { // User haven't like this artwork yet if ($ret = parent::process($user, ['activity' => $activity])) { // TODO: Find a better way to pass this data $activity->objectData = $data; // Save user metada activity ActivityMetadata::addUserActivity($user, $activity, $data, ['object_title']); FriendsLog::artwork(['user' => $user, 'artwork_id' => $params['code']]); } return $ret; } else { Session::put('activityError', Lang::get('dma.friends::lang.activities.alreadyLikeWorkArtError', ['code' => $params['code']])); } } else { // Verify if user try to enter an Object number // Regex expression to match object number format $re = "/((([a-zA-Z0-9_\\-]+\\.){1,})([a-zA-Z0-9_\\-]+))/"; $isObjectNumber = preg_match_all($re, str_replace(' ', '', $code)) > 0; if ($isObjectNumber) { Session::put('activityError', Lang::get('dma.friends::lang.activities.likeWorkArtCodeError', ['code' => $params['code']])); } } } return false; }
public function testArtwork() { $user = FactoryMuffin::create('RainLab\\User\\Models\\User'); $params = ['user' => $user, 'artwork_id' => '1998.12AD']; FriendsLog::artwork($params); }