/** * @param array $contentCollection * @param ContentInterface $source * @param ContentInterface $destination * * @return string */ public function reverseDescribe(array $contentCollection, ContentInterface $source = null, ContentInterface $destination = null) { $content = reset($contentCollection); $count = count($contentCollection); $type = null; if ($count > 1) { $type = trans('content.type.' . $content->getType() . '.plural'); } else { $type = trans('content.type.' . $content->getType()); } return $this->viewFactory->make($this->getReverseDescriptionView(), ['type' => $type, 'title' => $count > 1 ? null : $content->getTitle(), 'url' => $content->getUrl(), 'count' => $count > 1 ? $count : 'a', 'source_title' => $source ? $source->getTitle() : null, 'source_url' => $source ? $source->getUrl() : null, 'destination_title' => $destination ? $destination->getTitle() : null, 'destination_url' => $destination ? $destination->getUrl() : null]); }
/** * @param User $user * @param ModerationInterface $moderation * @param Collection $contentCollection * @param string $ipAddress * @param bool $isReverse * @param ContentInterface $source * @param ContentInterface $destination */ public function log(User $user, ModerationInterface $moderation, Collection $contentCollection, $ipAddress, $isReverse = false, ContentInterface $source = null, ContentInterface $destination = null) { $attributes = ['user_id' => $user->id, 'moderation' => $moderation->getKey(), 'is_reverse' => $isReverse, 'ip_address' => $ipAddress]; if ($source) { $attributes['source_content_type'] = $source->getType(); $attributes['source_content_id'] = $source->getId(); } if ($destination) { $attributes['destination_content_type'] = $destination->getType(); $attributes['destination_content_id'] = $destination->getId(); } $moderationLog = $this->moderationLogRepository->create($attributes); foreach ($contentCollection as $content) { $this->moderationLogSubjectRepository->addContentToLog($moderationLog, $content); } }
/** * @param ModerationLog $moderationLog * @param ContentInterface $content * * @return ModerationLogSubject */ public function addContentToLog(ModerationLog $moderationLog, ContentInterface $content) { return $this->create(['moderation_log_id' => $moderationLog->id, 'content_type' => $content->getType(), 'content_id' => $content->getId()]); }