CHAT_OUTPUT_BEGIN
COMMAND_ID=NEWFI-260919-NEWFDOM-CONTENT207-PUBLICRCA121R2
STATUS=OK
RC=0
HOST=pve01
MODE=read-only
COMPONENT=newfi-newfdom-content207-public-render-cache-xfrm-rca-readonly-r2-json-path-fix
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
COMMAND_SHA256=f739271047bc428da5abe24a53be462939138a138271b84da73622a3e4f2f144
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGE_DECLARED=false
RESULT_CONTRACT_VALID=true
RESULT_CONTRACT_STATUS=NOT_APPLICABLE
RESULT_CONTRACT_ERROR=NONE
COMMAND_RC=0
CHANGES_MADE=false
ROLLBACK_STARTED=false
ROLLBACK_RESTORED=null
MUTATION_OUTCOME=NO_MUTATION
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=e955eca9162212fb2b13fae31531a7512463b8c34a9bb61d9f127bdfb83d81a7
SANITIZED_OUTPUT_SHA256=e955eca9162212fb2b13fae31531a7512463b8c34a9bb61d9f127bdfb83d81a7
OUTPUT_BEGIN
NEWFI121R2_BEGIN
COMMAND_ID=NEWFI-260919-NEWFDOM-CONTENT207-PUBLICRCA121R2
NEWFI121R2_GIT={"branch":"implementation/newfi-closed-mvp-20260906","clean":true,"head":"bcd970b0fa5d0f140aad4a3246773f44409ffe46","remotes":[{"head":"bcd970b0fa5d0f140aad4a3246773f44409ffe46","remote":"origin"}]}
NEWFI121R2_STAGING={"_qga_transport":"stdin","http_probes":{},"ok":true,"role":"staging","source_scans":[{"matches":[{"line":73,"text":""},{"line":74,"text":"\t\t$listParams = $overviewPlugin->getCoreListData($viewableCategoryIds);"},{"line":75,"text":""},{"line":76,"text":"\t\t$this->assertValidPage($listParams['page'], $listParams['perPage'], $listParams['total'], 'resources');"},{"line":77,"text":"\t\t$this->assertCanonicalUrl($this->buildPaginatedLink('resources', null, $listParams['page']));"},{"line":78,"text":""},{"line":79,"text":"\t\t$viewParams = $categoryParams + $listParams;"},{"line":80,"text":""},{"line":81,"text":"\t\treturn $this->view('XFRM:Overview', 'xfrm_overview', $viewParams);"},{"line":82,"text":"\t}"},{"line":83,"text":""},{"line":84,"text":"\tpublic function actionFilters()"},{"line":85,"text":"\t{"},{"line":86,"text":"\t\t/** @var Overview $overviewPlugin */"},{"line":87,"text":"\t\t$overviewPlugin = $this->plugin('XFRM:Overview');"},{"line":112,"text":"\t\t$this->assertValidPage($page, $perPage, $total, 'resources/latest-reviews');"},{"line":113,"text":"\t\t$this->assertCanonicalUrl($this->buildPaginatedLink('resources/latest-reviews', null, $page));"},{"line":114,"text":""},{"line":115,"text":"\t\t$reviews = $finder->limitByPage($page, $perPage)->fetch();"},{"line":116,"text":"\t\t$reviews = $reviews->filterViewable();"},{"line":117,"text":""},{"line":118,"text":"\t\t$viewParams = ["},{"line":119,"text":"\t\t\t'reviews' => $reviews,"},{"line":120,"text":"\t\t\t'page' => $page,"},{"line":121,"text":"\t\t\t'perPage' => $perPage,"},{"line":122,"text":"\t\t\t'total' => $total,"},{"line":123,"text":"\t\t];"},{"line":124,"text":"\t\treturn $this->view('XFRM:LatestReviews', 'xfrm_latest_reviews', $viewParams);"},{"line":125,"text":"\t}"},{"line":126,"text":""},{"line":127,"text":"\tpublic function actionAdd()"},{"line":128,"text":"\t{"},{"line":129,"text":"\t\t/** @var User $visitor */"},{"line":130,"text":"\t\t$visitor = \\XF::visitor();"},{"line":169,"text":""},{"line":170,"text":"\t\t\treturn false;"},{"line":171,"text":"\t\t});"},{"line":172,"text":""},{"line":173,"text":"\t\t$categoryExtras = $categoryRepo->getCategoryListExtras($categoryTree);"},{"line":174,"text":""},{"line":175,"text":"\t\t$viewParams = ["},{"line":176,"text":"\t\t\t'categoryTree' => $categoryTree,"},{"line":177,"text":"\t\t\t'categoryExtras' => $categoryExtras,"},{"line":178,"text":"\t\t];"},{"line":179,"text":"\t\treturn $this->view('XFRM:ResourceItem\\AddChooser', 'xfrm_resource_add_chooser', $viewParams);"},{"line":180,"text":"\t}"},{"line":181,"text":""},{"line":182,"text":"\tpublic function actionView(ParameterBag $params)"},{"line":183,"text":"\t{"},{"line":184,"text":"\t\t$this->assertNotEmbeddedImageRequest();"},{"line":185,"text":""},{"line":186,"text":"\t\t$resource = $this->assertViewableResource($params->resource_id, $this->getResourceViewExtraWith());"},{"line":187,"text":""},{"line":188,"text":"\t\t$this->assertCanonicalUrl($this->buildLink('resources', $resource));"},{"line":231,"text":"\t\t}"},{"line":232,"text":"\t\telse"},{"line":233,"text":"\t\t{"},{"line":234,"text":"\t\t\t$authorOthers = $this->em()->getEmptyCollection();"},{"line":235,"text":"\t\t}"},{"line":236,"text":""},{"line":237,"text":"\t\t$trimmedDescription = null;"},{"line":238,"text":""},{"line":239,"text":"\t\tif (!$resource->canViewFullDescription())"},{"line":240,"text":"\t\t{"},{"line":241,"text":"\t\t\t$snippet = $this->app->stringFormatter()->wholeWordTrim("},{"line":242,"text":"\t\t\t\t$resource->Description->message,"},{"line":243,"text":"\t\t\t\t$this->options()->xfrmFilelessViewFull['length']"},{"line":244,"text":"\t\t\t);"},{"line":245,"text":"\t\t\tif (strlen($snippet) < strlen($resource->Description->message))"},{"line":246,"text":"\t\t\t{"},{"line":247,"text":"\t\t\t\t// just cleaning BB code, so not passing the content"},{"line":248,"text":"\t\t\t\t$trimmedDescription = $this->app->bbCode()->render($snippet, 'bbCodeClean', 'resource_update', null);"},{"line":249,"text":"\t\t\t}"},{"line":250,"text":"\t\t}"},{"line":251,"text":""},{"line":252,"text":"\t\tif ($this->isContentViewCounted())"},{"line":253,"text":"\t\t{"},{"line":254,"text":"\t\t\t$this->repository('XFRM:ResourceItem')->logResourceView($resource);"},{"line":255,"text":"\t\t}"},{"line":256,"text":""},{"line":257,"text":"\t\t$shownUpdateIds = $latestUpdates->keys();"},{"line":258,"text":"\t\t$shownUpdateIds[] = $resource->description_update_id;"},{"line":259,"text":""},{"line":260,"text":"\t\t/** @var UserAlert $userAlertRepo */"},{"line":261,"text":"\t\t$userAlertRepo = $this->repository('XF:UserAlert');"},{"line":262,"text":"\t\t$userAlertRepo->markUserAlertsReadForContent('resource_update', $shownUpdateIds);"},{"line":263,"text":"\t\t$userAlertRepo->markUserAlertsReadForContent('resource', $resource->resource_id);"},{"line":264,"text":""},{"line":265,"text":"\t\t$description = $resource->Description;"},{"line":266,"text":""},{"line":267,"text":"\t\t/** @var EmbedResolver $embedRepo */"},{"line":268,"text":"\t\t$embedRepo = $this->repository('XF:EmbedResolver');"},{"line":269,"text":"\t\t$embedRepo->addEmbedsToContent([$description]);"},{"line":270,"text":""},{"line":271,"text":"\t\t$viewParams = ["},{"line":272,"text":"\t\t\t'resource' => $resource,"},{"line":273,"text":"\t\t\t'category' => $resource->Category,"},{"line":274,"text":"\t\t\t'description' => $description,"},{"line":275,"text":"\t\t\t'trimmedDescription' => $trimmedDescription,"},{"line":276,"text":"\t\t\t'latestUpdates' => $latestUpdates,"},{"line":277,"text":"\t\t\t'latestReviews' => $latestReviews,"},{"line":278,"text":"\t\t\t'teamMembers' => $teamMembers,"},{"line":279,"text":"\t\t\t'authorOthers' => $authorOthers,"},{"line":280,"text":"\t\t\t'iconError' => $this->filter('icon_error', 'bool'),"},{"line":281,"text":"\t\t];"},{"line":282,"text":"\t\treturn $this->view('XFRM:ResourceItem\\View', 'xfrm_resource_view', $viewParams);"},{"line":283,"text":"\t}"},{"line":284,"text":""},{"line":285,"text":"\tprotected function getResourceViewExtraWith()"},{"line":286,"text":"\t{"},{"line":287,"text":"\t\t$extraWith = [];"},{"line":288,"text":"\t\t$userId = \\XF::visitor()->user_id;"},{"line":289,"text":"\t\tif ($userId)"},{"line":290,"text":"\t\t{"},{"line":291,"text":"\t\t\t$extraWith[] = 'Watch|' . $userId;"},{"line":292,"text":"\t\t\t$extraWith[] = 'CurrentVersion.Downloads|' . $userId;"},{"line":293,"text":"\t\t\t$extraWith[] = 'Description.Reactions|' . $userId;"},{"line":294,"text":"\t\t}"},{"line":295,"text":""},{"line":296,"text":"\t\treturn $extraWith;"},{"line":297,"text":"\t}"},{"line":298,"text":""},{"line":299,"text":"\tpublic function actionExtra(ParameterBag $params)"},{"line":301,"text":"\t\t$resource = $this->assertViewableResource($params->resource_id);"},{"line":302,"text":"\t\tif (!$resource->hasExtraInfoTab())"},{"line":303,"text":"\t\t{"},{"line":304,"text":"\t\t\treturn $this->redirect($this->buildLink('resources', $resource));"},{"line":305,"text":"\t\t}"},{"line":306,"text":""},{"line":307,"text":"\t\t$viewParams = ["},{"line":308,"text":"\t\t\t'resource' => $resource,"},{"line":309,"text":"\t\t\t'category' => $resource->Category,"},{"line":310,"text":"\t\t];"},{"line":311,"text":"\t\treturn $this->view('XFRM:ResourceItem\\Extra', 'xfrm_resource_extra', $viewParams);"},{"line":312,"text":"\t}"},{"line":313,"text":""},{"line":314,"text":"\tpublic function actionField(ParameterBag $params)"},{"line":315,"text":"\t{"},{"line":316,"text":"\t\t$resource = $this->assertViewableResource($params->resource_id);"},{"line":317,"text":""},{"line":325,"text":""},{"line":326,"text":"\t\t/** @var Set $fieldSet */"},{"line":327,"text":"\t\t$fieldSet = $resource->custom_fields;"},{"line":328,"text":"\t\t$definition = $fieldSet->getDefinition($fieldId);"},{"line":329,"text":"\t\t$fieldValue = $fieldSet->getFieldValue($fieldId);"},{"line":330,"text":""},{"line":331,"text":"\t\t$viewParams = ["},{"line":332,"text":"\t\t\t'resource' => $resource,"},{"line":333,"text":"\t\t\t'category' => $resource->Category,"},{"line":334,"text":""},{"line":335,"text":"\t\t\t'fieldId' => $fieldId,"},{"line":336,"text":"\t\t\t'fieldDefinition' => $definition,"},{"line":337,"text":"\t\t\t'fieldValue' => $fieldValue,"},{"line":338,"text":"\t\t];"},{"line":339,"text":"\t\treturn $this->view('XFRM:ResourceItem\\Field', 'xfrm_resource_field', $viewParams);"},{"line":340,"text":"\t}"},{"line":341,"text":""},{"line":342,"text":"\tpublic function actionUpdates(ParameterBag $params)"},{"line":343,"text":"\t{"},{"line":344,"text":"\t\t$this->assertNotEmbeddedImageRequest();"}],"path":"src/addons/XFRM/Pub/Controller/ResourceItem.php","present":true,"sha256":"78aaaaaf3ad95aedde7b4a1e4d8ec026b9a305dd4a2a23172d28a756244b9f67"},{"matches":[{"line":48,"text":" * @property array $team_member_user_ids"},{"line":49,"text":" * @property string $resource_state"},{"line":50,"text":" * @property string $resource_type"},{"line":51,"text":" * @property int $resource_date"},{"line":52,"text":" * @property int $resource_category_id"},{"line":53,"text":" * @property int $current_version_id"},{"line":54,"text":" * @property int $description_update_id"},{"line":55,"text":" * @property int $discussion_thread_id"},{"line":56,"text":" * @property string $external_url"},{"line":57,"text":" * @property string $external_url_"},{"line":58,"text":" * @property string $external_purchase_url"},{"line":59,"text":" * @property string $external_purchase_url_"},{"line":60,"text":" * @property float $price"},{"line":65,"text":" * @property int $rating_sum"},{"line":66,"text":" * @property float $rating_avg"},{"line":67,"text":" * @property float $rating_weighted"},{"line":68,"text":" * @property array|null $rating_split"},{"line":69,"text":" * @property int $update_count"},{"line":70,"text":" * @property int $review_count"},{"line":71,"text":" * @property int $last_update"},{"line":72,"text":" * @property string $alt_support_url"},{"line":73,"text":" * @property string $alt_support_url_"},{"line":74,"text":" * @property array|null $custom_fields_"},{"line":75,"text":" * @property int $prefix_id"},{"line":76,"text":" * @property int $icon_date"},{"line":77,"text":" * @property bool $icon_optimized"},{"line":89,"text":" * @property-read string|null $cover_image"},{"line":90,"text":" *"},{"line":91,"text":" * RELATIONS"},{"line":92,"text":" * @property-read Category|null $Category"},{"line":93,"text":" * @property-read User|null $User"},{"line":94,"text":" * @property-read AbstractCollection<ResourceTeamMember> $TeamMembers"},{"line":95,"text":" * @property-read ResourceUpdate|null $Description"},{"line":96,"text":" * @property-read ResourceVersion|null $CurrentVersion"},{"line":97,"text":" * @property-read Thread|null $Discussion"},{"line":98,"text":" * @property-read ResourcePrefix|null $Prefix"},{"line":99,"text":" * @property-read AbstractCollection<ResourceWatch> $Watch"},{"line":100,"text":" * @property-read DeletionLog|null $DeletionLog"},{"line":101,"text":" * @property-read ApprovalQueue|null $ApprovalQueue"},{"line":139,"text":"\t\t$mainEntity = ["},{"line":140,"text":"\t\t\t'@type' => 'CreativeWork',"},{"line":141,"text":"\t\t\t'@id' => $resourceLink,"},{"line":142,"text":"\t\t\t'headline' => $this->title,"},{"line":143,"text":"\t\t\t'alternativeHeadline' => $this->tag_line,"},{"line":144,"text":"\t\t\t'dateCreated' => gmdate('c', $this->resource_date),"},{"line":145,"text":"\t\t\t'dateModified' => $this->last_update"},{"line":146,"text":"\t\t\t\t? gmdate('c', $this->last_update)"},{"line":147,"text":"\t\t\t\t: null,"},{"line":148,"text":"\t\t\t'keywords' => implode(', ', array_column($this->tags, 'tag')),"},{"line":149,"text":"\t\t\t'url' => $resourceLink,"},{"line":150,"text":"\t\t\t'thumbnailUrl' => $options->xfrmAllowIcons && $this->icon_date"},{"line":151,"text":"\t\t\t\t? $this->getIconUrl('s', true)"},{"line":152,"text":"\t\t\t\t: null,"},{"line":153,"text":"\t\t\t'version' => $this->isVersioned()"},{"line":154,"text":"\t\t\t\t? $this->CurrentVersion->version_string"},{"line":155,"text":"\t\t\t\t: null,"},{"line":156,"text":"\t\t\t'discussionUrl' => $this->hasViewableDiscussion()"},{"line":157,"text":"\t\t\t\t? $this->Discussion->getContentUrl(true)"},{"line":158,"text":"\t\t\t\t: null,"},{"line":159,"text":"\t\t\t'description' => $strFormatter->snippetString("},{"line":160,"text":"\t\t\t\t$this->Description->message,"},{"line":161,"text":"\t\t\t\t0,"},{"line":162,"text":"\t\t\t\t['stripBbCode' => true]"},{"line":163,"text":"\t\t\t),"},{"line":164,"text":"\t\t\t'author' => ["},{"line":165,"text":"\t\t\t\t'@type' => 'Person',"},{"line":166,"text":"\t\t\t\t'@id' => $userLink,"},{"line":168,"text":"\t\t\t\t'url' => $userLink,"},{"line":169,"text":"\t\t\t],"},{"line":170,"text":"\t\t\t'interactionStatistic' => ["},{"line":171,"text":"\t\t\t\t["},{"line":172,"text":"\t\t\t\t\t'@type' => 'InteractionCounter',"},{"line":173,"text":"\t\t\t\t\t'interactionType' => 'https://schema.org/LikeAction',"},{"line":174,"text":"\t\t\t\t\t'userInteractionCount' => $this->Description->reaction_score,"},{"line":175,"text":"\t\t\t\t],"},{"line":176,"text":"\t\t\t\t["},{"line":177,"text":"\t\t\t\t\t'@type' => 'InteractionCounter',"},{"line":178,"text":"\t\t\t\t\t'interactionType' => 'https://schema.org/ViewAction',"},{"line":179,"text":"\t\t\t\t\t'userInteractionCount' => $this->view_count,"},{"line":180,"text":"\t\t\t\t],"},{"line":212,"text":"\t\t\t'url' => $resourceLink,"},{"line":213,"text":"\t\t\t'mainEntity' => $mainEntity,"},{"line":214,"text":"\t\t\t'publisher' => ["},{"line":215,"text":"\t\t\t\t'@type' => 'Organization',"},{"line":216,"text":"\t\t\t\t'name' => $options->boardTitle,"},{"line":217,"text":"\t\t\t\t'alternateName' => $options->boardShortTitle ?: null,"},{"line":218,"text":"\t\t\t\t'description' => $options->boardDescription ?: null,"},{"line":219,"text":"\t\t\t\t'url' => $options->boardUrl,"},{"line":220,"text":"\t\t\t\t'logo' => $logo,"},{"line":221,"text":"\t\t\t],"},{"line":222,"text":"\t\t];"},{"line":223,"text":""},{"line":224,"text":"\t\treturn Arr::filterNull($structuredData, true);"},{"line":314,"text":""},{"line":315,"text":"\tpublic function canDownload(&$error = null)"},{"line":316,"text":"\t{"},{"line":317,"text":"\t\treturn $this->hasPermission('download') || $this->isTeamMember();"},{"line":318,"text":"\t}"},{"line":319,"text":""},{"line":320,"text":"\tpublic function canViewFullDescription()"},{"line":321,"text":"\t{"},{"line":322,"text":"\t\tif ($this->resource_type != 'fileless')"},{"line":323,"text":"\t\t{"},{"line":324,"text":"\t\t\treturn true;"},{"line":325,"text":"\t\t}"},{"line":326,"text":""},{"line":953,"text":"\t{"},{"line":954,"text":"\t\tif (!$teamUser)"},{"line":955,"text":"\t\t{"},{"line":956,"text":"\t\t\t$teamUser = \\XF::visitor();"},{"line":957,"text":"\t\t}"},{"line":958,"text":""},{"line":959,"text":"\t\t$update = $this->_em->create('XFRM:ResourceUpdate');"},{"line":960,"text":""},{"line":961,"text":"\t\t$update->resource_id = $this->_getDeferredValue(function ()"},{"line":962,"text":"\t\t{"},{"line":963,"text":"\t\t\treturn $this->resource_id;"},{"line":964,"text":"\t\t}, 'save');"},{"line":965,"text":""},{"line":996,"text":"\t{"},{"line":997,"text":"\t\treturn Draft::createFromEntity($this, 'DraftUpdates');"},{"line":998,"text":"\t}"},{"line":999,"text":""},{"line":1000,"text":"\tpublic function getCoverImage(): ?string"},{"line":1001,"text":"\t{"},{"line":1002,"text":"\t\t$description = $this->Description;"},{"line":1003,"text":"\t\tif (!$description)"},{"line":1004,"text":"\t\t{"},{"line":1005,"text":"\t\t\treturn null;"},{"line":1006,"text":"\t\t}"},{"line":1007,"text":""},{"line":1008,"text":"\t\t$attachments = $description->attach_count"},{"line":1009,"text":"\t\t\t? $description->Attachments"},{"line":1010,"text":"\t\t\t: $this->_em->getEmptyCollection();"},{"line":1011,"text":""},{"line":1012,"text":"\t\treturn $this->getCoverImageInternal("},{"line":1013,"text":"\t\t\t$attachments,"},{"line":1014,"text":"\t\t\t$this->canViewUpdateImages(),"},{"line":1015,"text":"\t\t\t$description->embed_metadata,"},{"line":1016,"text":"\t\t\t$description->message"},{"line":1017,"text":"\t\t);"},{"line":1018,"text":"\t}"},{"line":1019,"text":""},{"line":1020,"text":"\tpublic function getFieldEditMode()"},{"line":1021,"text":"\t{"},{"line":1022,"text":"\t\t$visitor = \\XF::visitor();"},{"line":1055,"text":"\t\tif (!$this->canViewDeletedContent() && !$this->canViewModeratedContent())"},{"line":1056,"text":"\t\t{"},{"line":1057,"text":"\t\t\treturn $this->update_count;"},{"line":1058,"text":"\t\t}"},{"line":1059,"text":"\t\telse"},{"line":1060,"text":"\t\t{"},{"line":1061,"text":"\t\t\t/** @var \\XFRM\\Repository\\ResourceUpdate $updateRepo */"},{"line":1062,"text":"\t\t\t$updateRepo = $this->repository('XFRM:ResourceUpdate');"},{"line":1063,"text":"\t\t\treturn $updateRepo->findUpdatesInResource($this)->total();"},{"line":1064,"text":"\t\t}"},{"line":1065,"text":"\t}"},{"line":1066,"text":""},{"line":1067,"text":"\t/**"},{"line":1068,"text":"\t * @return int"}],"path":"src/addons/XFRM/Entity/ResourceItem.php","present":true,"sha256":"703773471dd35c876a0fed578a60dfc51e1dafc9520ad1493282b50fd9e05262"},{"matches":[{"line":21,"text":"use XF\\Mvc\\Entity\\Structure;"},{"line":22,"text":"use XF\\Repository\\UserAlert;"},{"line":23,"text":"use XF\\Spam\\ContentChecker;"},{"line":24,"text":""},{"line":25,"text":"/**"},{"line":26,"text":" * COLUMNS"},{"line":27,"text":" * @property int|null $resource_update_id"},{"line":28,"text":" * @property int $resource_id"},{"line":29,"text":" * @property int $team_user_id"},{"line":30,"text":" * @property string $team_username"},{"line":31,"text":" * @property string $title"},{"line":32,"text":" * @property string $title_"},{"line":33,"text":" * @property string $message"},{"line":34,"text":" * @property string $message_state"},{"line":35,"text":" * @property int $post_date"},{"line":36,"text":" * @property int $attach_count"},{"line":37,"text":" * @property int $ip_id"},{"line":38,"text":" * @property int $warning_id"},{"line":39,"text":" * @property string $warning_message"},{"line":40,"text":" * @property int $last_edit_date"},{"line":41,"text":" * @property int $last_edit_user_id"},{"line":42,"text":" * @property int $edit_count"},{"line":43,"text":" * @property array|null $embed_metadata"},{"line":44,"text":" * @property int $reaction_score"},{"line":45,"text":" * @property array|null $reactions_"},{"line":46,"text":" * @property array|null $reaction_users_"},{"line":47,"text":" *"},{"line":48,"text":" * GETTERS"},{"line":49,"text":" * @property-read string $resource_title"},{"line":50,"text":" * @property mixed $reactions"},{"line":51,"text":" * @property mixed $reaction_users"},{"line":52,"text":" * @property-read array $Embeds"},{"line":53,"text":" *"},{"line":54,"text":" * RELATIONS"},{"line":55,"text":" * @property-read ResourceItem|null $Resource"},{"line":56,"text":" * @property-read User|null $TeamUser"},{"line":57,"text":" * @property-read AbstractCollection<Attachment> $Attachments"},{"line":58,"text":" * @property-read DeletionLog|null $DeletionLog"},{"line":59,"text":" * @property-read ApprovalQueue|null $ApprovalQueue"},{"line":60,"text":" * @property-read AbstractCollection<ReactionContent> $Reactions"},{"line":61,"text":" * @property-read AbstractCollection<BookmarkItem> $Bookmarks"},{"line":62,"text":" */"},{"line":63,"text":"class ResourceUpdate extends Entity implements RenderableContentInterface, LinkableInterface, ViewableInterface"},{"line":64,"text":"{"},{"line":65,"text":"\tuse BookmarkTrait;"},{"line":66,"text":"\tuse EmbedRendererTrait;"},{"line":67,"text":"\tuse EmbedResolverTrait;"},{"line":68,"text":"\tuse ReactionTrait;"},{"line":69,"text":""},{"line":70,"text":"\tpublic function canView(&$error = null)"},{"line":71,"text":"\t{"},{"line":72,"text":"\t\t$resource = $this->Resource;"},{"line":73,"text":""},{"line":74,"text":"\t\tif (!$resource || !$resource->canView($error))"},{"line":75,"text":"\t\t{"},{"line":76,"text":"\t\t\treturn false;"},{"line":77,"text":"\t\t}"},{"line":78,"text":""},{"line":79,"text":"\t\t$visitor = \\XF::visitor();"},{"line":80,"text":""},{"line":81,"text":"\t\tif ($this->message_state == 'moderated')"},{"line":82,"text":"\t\t{"},{"line":83,"text":"\t\t\tif ("},{"line":84,"text":"\t\t\t\t!$resource->hasPermission('viewModerated')"},{"line":85,"text":"\t\t\t\t&& (!$visitor->user_id || !$resource->isTeamMember())"},{"line":86,"text":"\t\t\t)"},{"line":87,"text":"\t\t\t{"},{"line":88,"text":"\t\t\t\treturn false;"},{"line":89,"text":"\t\t\t}"},{"line":90,"text":"\t\t}"},{"line":91,"text":"\t\telse if ($this->message_state == 'deleted')"},{"line":92,"text":"\t\t{"},{"line":93,"text":"\t\t\tif (!$resource->hasPermission('viewDeleted'))"},{"line":94,"text":"\t\t\t{"},{"line":95,"text":"\t\t\t\treturn false;"},{"line":96,"text":"\t\t\t}"},{"line":97,"text":"\t\t}"},{"line":98,"text":""},{"line":99,"text":"\t\treturn true;"},{"line":100,"text":"\t}"},{"line":101,"text":""},{"line":102,"text":"\tpublic function canEdit(&$error = null)"},{"line":103,"text":"\t{"},{"line":104,"text":"\t\t$visitor = \\XF::visitor();"},{"line":105,"text":"\t\t$resource = $this->Resource;"},{"line":106,"text":""},{"line":107,"text":"\t\tif (!$visitor->user_id || !$resource)"},{"line":108,"text":"\t\t{"},{"line":109,"text":"\t\t\treturn false;"},{"line":110,"text":"\t\t}"},{"line":111,"text":""},{"line":112,"text":"\t\treturn $resource->canEdit($error);"},{"line":113,"text":"\t}"},{"line":114,"text":""},{"line":115,"text":"\tpublic function canViewHistory(&$error = null): bool"},{"line":116,"text":"\t{"},{"line":117,"text":"\t\t$visitor = \\XF::visitor();"},{"line":118,"text":"\t\tif (!$visitor->user_id)"},{"line":122,"text":""},{"line":123,"text":"\t\tif (!$this->app()->options()->editHistory['enabled'])"},{"line":124,"text":"\t\t{"},{"line":125,"text":"\t\t\treturn false;"},{"line":126,"text":"\t\t}"},{"line":127,"text":""},{"line":128,"text":"\t\tif ($this->Resource && $this->Resource->hasPermission('editAny'))"},{"line":129,"text":"\t\t{"},{"line":130,"text":"\t\t\treturn true;"},{"line":131,"text":"\t\t}"},{"line":132,"text":""},{"line":133,"text":"\t\treturn false;"},{"line":134,"text":"\t}"},{"line":135,"text":""},{"line":136,"text":"\tpublic function canDelete($type = 'soft', &$error = null)"},{"line":137,"text":"\t{"},{"line":138,"text":"\t\t$visitor = \\XF::visitor();"},{"line":139,"text":"\t\t$resource = $this->Resource;"},{"line":140,"text":""},{"line":141,"text":"\t\tif ($this->isDescription() || !$visitor->user_id || !$resource)"},{"line":142,"text":"\t\t{"},{"line":143,"text":"\t\t\treturn false;"},{"line":144,"text":"\t\t}"},{"line":145,"text":""},{"line":146,"text":"\t\tif ($type != 'soft')"},{"line":147,"text":"\t\t{"},{"line":148,"text":"\t\t\treturn $resource->hasPermission('hardDeleteAny');"},{"line":149,"text":"\t\t}"},{"line":150,"text":""},{"line":151,"text":"\t\tif ($resource->hasPermission('deleteAny'))"},{"line":152,"text":"\t\t{"},{"line":153,"text":"\t\t\treturn true;"},{"line":154,"text":"\t\t}"},{"line":155,"text":""},{"line":156,"text":"\t\tif ("},{"line":157,"text":"\t\t\t$resource->isTeamMember()"},{"line":158,"text":"\t\t\t&& $this->team_user_id == $visitor->user_id"},{"line":159,"text":"\t\t)"},{"line":160,"text":"\t\t{"},{"line":161,"text":"\t\t\treturn $resource->hasPermission('updateOwn');"},{"line":162,"text":"\t\t}"},{"line":163,"text":""},{"line":164,"text":"\t\treturn ("},{"line":165,"text":"\t\t\t$resource->user_id == $visitor->user_id"},{"line":166,"text":"\t\t\t&& $resource->hasPermission('updateOwn')"},{"line":167,"text":"\t\t);"},{"line":168,"text":"\t}"},{"line":169,"text":""},{"line":170,"text":"\tpublic function canUndelete(&$error = null)"},{"line":171,"text":"\t{"},{"line":172,"text":"\t\t$visitor = \\XF::visitor();"},{"line":173,"text":"\t\t$resource = $this->Resource;"},{"line":174,"text":""},{"line":175,"text":"\t\tif (!$visitor->user_id || !$resource)"},{"line":176,"text":"\t\t{"},{"line":177,"text":"\t\t\treturn false;"},{"line":178,"text":"\t\t}"},{"line":179,"text":""},{"line":180,"text":"\t\treturn $resource->hasPermission('undelete');"},{"line":181,"text":"\t}"},{"line":182,"text":""},{"line":183,"text":"\tpublic function canSendModeratorActionAlert()"}],"path":"src/addons/XFRM/Entity/ResourceUpdate.php","present":true,"sha256":"9e978eeef933f5dd12a66afa34eba873eb0cae8ddb527ea96fcff6b058a9d05f"}],"state":{"contentindexnow_jobs":0,"counts":{"drafts":0,"resources":13,"tag_content":39,"tags":33,"updates":13,"versions":13},"error_ids":[33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],"links":{"resource":"http://newfi-staging.gram1.ru/index.php?resources/n-yufaundlend-chto-vazhno-znat-o-porode.10/","update":"http://newfi-staging.gram1.ru/index.php?resources/n-yufaundlend-chto-vazhno-znat-o-porode.10/update/10/"},"portal_sha":"5e4eae47a54970611a5f08875b2423d69e9bb57d53b3fc888d15d33a52b595ed","resource":{"description_update_id":10,"last_update":1789766861,"resource_id":10,"state":"visible","title":"Ньюфаундленд: что важно знать о породе","type":"fileless"},"template_hits":[{"line":48,"text":"\t\t\t\t<xf:if is=\"$category.description\">","title":"xfrm_resource_add_chooser"},{"line":50,"text":"\t\t\t\t\t\t{$category.description|raw}","title":"xfrm_resource_add_chooser"},{"line":100,"text":"\t\t\t\t<xf:if is=\"$category.description\">","title":"xfrm_resource_add_chooser"},{"line":102,"text":"\t\t\t\t\t\t{$category.description|raw}","title":"xfrm_resource_add_chooser"},{"line":52,"text":"\t\t\t<xf:macro id=\"xfrm_resource_edit_macros::description\"","title":"xfrm_resource_edit"},{"line":53,"text":"\t\t\t\targ-description=\"{$resource.Description.message_}\"","title":"xfrm_resource_edit"},{"line":17,"text":"\t\texplain=\"{{ phrase('xfrm_provide_very_brief_one_line_description_of_your_resource') }}\" />","title":"xfrm_resource_edit_macros"},{"line":63,"text":"\t\t\t\thint=\"{{ phrase('xfrm_description_will_contain_contents_of_this_resource') }}\" />","title":"xfrm_resource_edit_macros"},{"line":84,"text":"<xf:macro id=\"description\" arg-description=\"\" arg-attachmentData=\"{{ [] }}\" arg-previewUrl=\"\">","title":"xfrm_resource_edit_macros"},{"line":86,"text":"\t\t<xf:editorrow name=\"description\" value=\"{$description}\" data-min-height=\"200\"","title":"xfrm_resource_edit_macros"},{"line":88,"text":"\t\t\tlabel=\"{{ phrase('description') }}\"","title":"xfrm_resource_edit_macros"},{"line":102,"text":"\t<xf:editorrow name=\"update_message\" data-min-height=\"200\"","title":"xfrm_resource_post_update"},{"line":103,"text":"\t\tvalue=\"{$resource.draft_update.message}\"","title":"xfrm_resource_post_update"},{"line":105,"text":"\t\tlabel=\"{{ phrase('xfrm_update_message') }}\"","title":"xfrm_resource_post_update"},{"line":23,"text":"\t\t\t<xf:textarearow name=\"message\" rows=\"2\" autosize=\"true\"","title":"xfrm_resource_rate"},{"line":28,"text":"\t\t\t\tmaxlength=\"{$xf.options.messageMaxLength}\"","title":"xfrm_resource_rate"},{"line":6,"text":"\t<xf:css src=\"message.less\" />","title":"xfrm_resource_review_macros"},{"line":9,"text":"\t<div class=\"message message--simple{{ $review.isIgnored() ? ' is-ignored' : '' }}\">","title":"xfrm_resource_review_macros"},{"line":11,"text":"\t\t<div class=\"message-inner\">","title":"xfrm_resource_review_macros"},{"line":12,"text":"\t\t\t<span class=\"message-cell message-cell--user\">","title":"xfrm_resource_review_macros"},{"line":14,"text":"\t\t\t\t\t<xf:macro id=\"message_macros::user_info_simple\"","title":"xfrm_resource_review_macros"},{"line":18,"text":"\t\t\t\t\t<xf:macro id=\"message_macros::user_info_simple\"","title":"xfrm_resource_review_macros"},{"line":23,"text":"\t\t\t<div class=\"message-cell message-cell--main\">","title":"xfrm_resource_review_macros"},{"line":24,"text":"\t\t\t\t<div class=\"message-content js-messageContent\">","title":"xfrm_resource_review_macros"},{"line":25,"text":"\t\t\t\t\t<div class=\"message-attribution message-attribution--plain\">","title":"xfrm_resource_review_macros"},{"line":27,"text":"\t\t\t\t\t\t\t<div class=\"message-attribution-source\">","title":"xfrm_resource_review_macros"},{"line":36,"text":"\t\t\t\t\t\t\t<li class=\"message-attribution-user\">","title":"xfrm_resource_review_macros"},{"line":62,"text":"\t\t\t\t\t\t<div class=\"messageNotice messageNotice--deleted\">","title":"xfrm_resource_review_macros"},{"line":72,"text":"\t\t\t\t\t\targ-wrapperClass=\"message-fields message-fields--before\" />","title":"xfrm_resource_review_macros"},{"line":74,"text":"\t\t\t\t\t<div class=\"message-body\">","title":"xfrm_resource_review_macros"},{"line":75,"text":"\t\t\t\t\t\t{{ structured_text($review.message) }}","title":"xfrm_resource_review_macros"},{"line":83,"text":"\t\t\t\t\t\targ-wrapperClass=\"message-fields message-fields--after\" />","title":"xfrm_resource_review_macros"},{"line":87,"text":"\t\t\t\t\t<div class=\"message-actionBar actionBar\">","title":"xfrm_resource_review_macros"},{"line":169,"text":"\t\t\t\t\t<div class=\"message-responses js-messageResponses\">","title":"xfrm_resource_review_macros"},{"line":175,"text":"\t\t\t\t\t\t\t<div class=\"js-replyNewMessageContainer\"></div>","title":"xfrm_resource_review_macros"},{"line":179,"text":"\t\t\t\t\t\t\t<xf:js src=\"xf/action.js, xf/message.js\" min=\"1\" />","title":"xfrm_resource_review_macros"},{"line":180,"text":"\t\t\t\t\t\t\t<div class=\"message-responseRow js-commentsTarget-{$review.resource_rating_id} toggleTarget\">","title":"xfrm_resource_review_macros"},{"line":183,"text":"\t\t\t\t\t\t\t\t\tdata-message-container=\"< .js-messageResponses | .js-replyNewMessageContainer\"","title":"xfrm_resource_review_macros"},{"line":191,"text":"\t\t\t\t\t\t\t\t\t\t\t<xf:textarea name=\"message\" rows=\"1\" autosize=\"true\"","title":"xfrm_resource_review_macros"},{"line":192,"text":"\t\t\t\t\t\t\t\t\t\t\t\tmaxlength=\"{$xf.options.messageMaxLength}\"","title":"xfrm_resource_review_macros"},{"line":217,"text":"\t\t\t\t<div class=\"message-cell message-cell--vote\">","title":"xfrm_resource_review_macros"},{"line":218,"text":"\t\t\t\t\t<div class=\"message-column\">","title":"xfrm_resource_review_macros"},{"line":234,"text":"\t<div class=\"message-responseRow\">","title":"xfrm_resource_review_macros"},{"line":278,"text":"\t\t\t<div class=\"contentRow-lesser\">{{ snippet($review.message, 100) }}</div>","title":"xfrm_resource_review_macros"},{"line":15,"text":"\t\t\t<xf:editorrow name=\"message\" value=\"{$update.message}\" data-min-height=\"100\" rowtype=\"{{ $quickEdit ? 'fullWidth noLabel' : '' }}\"","title":"xfrm_resource_update_edit"},{"line":17,"text":"\t\t\t\tlabel=\"{{ phrase('message') }}\"","title":"xfrm_resource_update_edit"},{"line":1,"text":"<xf:macro id=\"xfrm_resource_update_macros::resource_update\"","title":"xfrm_resource_update_edit_new_value"},{"line":1,"text":"<xf:macro id=\"resource_update\" arg-update=\"!\" arg-resource=\"!\">","title":"xfrm_resource_update_macros"},{"line":2,"text":"\t<xf:css src=\"message.less\" />","title":"xfrm_resource_update_macros"},{"line":3,"text":"\t<div class=\"message message--simple js-resourceUpdate\" id=\"js-resourceUpdate-{$update.resource_update_id}\">","title":"xfrm_resource_update_macros"},{"line":4,"text":"\t\t<span class=\"u-anchorTarget\" id=\"resource-update-{$update.resource_update_id}\"></span>","title":"xfrm_resource_update_macros"},{"line":5,"text":"\t\t<div class=\"message-inner\">","title":"xfrm_resource_update_macros"},{"line":6,"text":"\t\t\t<div class=\"message-cell message-cell--main\">","title":"xfrm_resource_update_macros"},{"line":8,"text":"\t\t\t\t\t<div class=\"message-content js-messageContent\">","title":"xfrm_resource_update_macros"},{"line":9,"text":"\t\t\t\t\t\t<div class=\"message-attribution message-attribution--split\">","title":"xfrm_resource_update_macros"},{"line":10,"text":"\t\t\t\t\t\t\t<h2 class=\"message-attribution-main block-textHeader\" style=\"margin: 0\">","title":"xfrm_resource_update_macros"},{"line":13,"text":"\t\t\t\t\t\t\t<ul class=\"message-attribution-opposite message-attribution-opposite--list\">","title":"xfrm_resource_update_macros"},{"line":33,"text":"\t\t\t\t\t\t<xf:if is=\"$update.message_state == 'deleted'\">","title":"xfrm_resource_update_macros"},{"line":34,"text":"\t\t\t\t\t\t\t<div class=\"messageNotice messageNotice--deleted\">","title":"xfrm_resource_update_macros"},{"line":37,"text":"\t\t\t\t\t\t<xf:elseif is=\"$update.message_state == 'moderated'\" />","title":"xfrm_resource_update_macros"},{"line":38,"text":"\t\t\t\t\t\t\t<div class=\"messageNotice messageNotice--moderated\">","title":"xfrm_resource_update_macros"},{"line":39,"text":"\t\t\t\t\t\t\t\t{{ phrase('this_message_is_awaiting_moderator_approval_and_is_invisible_to_normal') }}","title":"xfrm_resource_update_macros"},{"line":42,"text":"\t\t\t\t\t\t<xf:if is=\"$update.warning_message\">","title":"xfrm_resource_update_macros"},{"line":43,"text":"\t\t\t\t\t\t\t<div class=\"messageNotice messageNotice--warning\">","title":"xfrm_resource_update_macros"},{"line":44,"text":"\t\t\t\t\t\t\t\t{$update.warning_message}","title":"xfrm_resource_update_macros"},{"line":48,"text":"\t\t\t\t\t\t<div class=\"message-userContent lbContainer js-lbContainer\"","title":"xfrm_resource_update_macros"},{"line":49,"text":"\t\t\t\t\t\t\tdata-lb-id=\"resource_update-{$update.resource_update_id}\"","title":"xfrm_resource_update_macros"},{"line":52,"text":"\t\t\t\t\t\t\t<blockquote class=\"message-body\">","title":"xfrm_resource_update_macros"},{"line":53,"text":"\t\t\t\t\t\t\t\t{{ bb_code($update.message, 'resource_update', $update) }}","title":"xfrm_resource_update_macros"},{"line":57,"text":"\t\t\t\t\t\t\t\t<xf:macro id=\"message_macros::attachments\"","title":"xfrm_resource_update_macros"},{"line":59,"text":"\t\t\t\t\t\t\t\t\targ-message=\"{$update}\"","title":"xfrm_resource_update_macros"},{"line":65,"text":"\t\t\t\t\t\t\t<div class=\"message-lastEdit\">","title":"xfrm_resource_update_macros"},{"line":71,"text":"\t\t\t\t\t\t\t<div class=\"message-actionBar actionBar\">","title":"xfrm_resource_update_macros"},{"line":92,"text":"\t\t\t\t\t\t\t\t\t\t\t\t<xf:js src=\"xf/action.js, xf/message.js\" min=\"1\" />","title":"xfrm_resource_update_macros"},{"line":96,"text":"\t\t\t\t\t\t\t\t\t\t\t\t\tdata-editor-target=\"#js-resourceUpdate-{$update.resource_update_id} .js-quickEditTarget\"","title":"xfrm_resource_update_macros"},{"line":104,"text":"\t\t\t\t\t\t\t\t\t\t\t\t\tdata-target=\"#js-resourceUpdate-{$update.resource_update_id} .js-historyTarget\"","title":"xfrm_resource_update_macros"},{"line":115,"text":"\t\t\t\t\t\t\t\t\t\t\t<xf:if is=\"$update.message_state == 'deleted' AND $update.canUndelete()\">","title":"xfrm_resource_update_macros"},{"line":137,"text":"\t\t\t\t\t\t\t\t\t\t\t\t<xf:if is=\"$update.message_state == 'moderated'\">","title":"xfrm_resource_update_macros"},{"line":141,"text":"\t\t\t\t\t\t\t\t\t\t\t\t<xf:elseif is=\"$update.message_state == 'visible'\" />","title":"xfrm_resource_update_macros"},{"line":12,"text":"<div class=\"block block--messages\">","title":"xfrm_resource_updates"},{"line":30,"text":"\t\t\t<xf:macro id=\"xfrm_resource_update_macros::resource_update\"","title":"xfrm_resource_updates"},{"line":3,"text":"<xf:set var=\"$descSnippet\" value=\"{{ snippet($description.message, 250, {'stripBbCode': true}) }}\" />","title":"xfrm_resource_view"},{"line":6,"text":"\targ-description=\"{$descSnippet}\"","title":"xfrm_resource_view"},{"line":17,"text":"\t<div class=\"blockMessage blockMessage--error\">{{ phrase('xfrm_new_icon_could_not_be_applied_try_later') }}</div>","title":"xfrm_resource_view"},{"line":52,"text":"\t\t\t\t\t<xf:if is=\"$trimmedDescription\">","title":"xfrm_resource_view"},{"line":53,"text":"\t\t\t\t\t\t{{ bb_code($trimmedDescription, 'resource_update', $description) }}","title":"xfrm_resource_view"},{"line":55,"text":"\t\t\t\t\t\t<div class=\"block-rowMessage block-rowMessage--important\">","title":"xfrm_resource_view"},{"line":62,"text":"\t\t\t\t\t\t{{ bb_code($description.message, 'resource_update', $description) }}","title":"xfrm_resource_view"},{"line":73,"text":"\t\t\t\t\t<xf:if is=\"$description.attach_count\">","title":"xfrm_resource_view"},{"line":78,"text":"\t\t\t\t\t\t\t\t\t<xf:foreach loop=\"$description.Attachments\" value=\"$attachment\" if=\"!$description.isAttachmentEmbedded($attachment)\">","title":"xfrm_resource_view"},{"line":94,"text":"\t\t\t\t\t\t\t\t\t\t<xf:react content=\"{$description}\" link=\"resources/update/react\" list=\"< .js-resourceBody | .js-reactionsList\" />","title":"xfrm_resource_view"},{"line":102,"text":"\t\t\t\t\t\t\t\t\t\t<xf:if is=\"$description.canReport()\">","title":"xfrm_resource_view"},{"line":103,"text":"\t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ link('resources/update/report', $description) }}\"","title":"xfrm_resource_view"},{"line":113,"text":"\t\t\t\t\t\t\t\t\t\t<xf:if is=\"$description.edit_count && $description.canViewHistory()\">","title":"xfrm_resource_view"},{"line":114,"text":"\t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ link('resources/update/history', $description) }}\"","title":"xfrm_resource_view"},{"line":122,"text":"\t\t\t\t\t\t\t\t\t\t<xf:if is=\"$description.canDelete('soft')\">","title":"xfrm_resource_view"},{"line":123,"text":"\t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ link('resources/delete', $description) }}\"","title":"xfrm_resource_view"},{"line":128,"text":"\t\t\t\t\t\t\t\t\t\t<xf:if is=\"$xf.visitor.canViewIps() && $description.ip_id\">","title":"xfrm_resource_view"},{"line":129,"text":"\t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ link('resources/update/ip', $description) }}\"","title":"xfrm_resource_view"},{"line":134,"text":"\t\t\t\t\t\t\t\t\t\t<xf:if is=\"$description.canWarn()\">","title":"xfrm_resource_view"},{"line":135,"text":"\t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ link('resources/update/warn', $description) }}\"","title":"xfrm_resource_view"},{"line":138,"text":"\t\t\t\t\t\t\t\t\t\t<xf:elseif is=\"$description.warning_id && $xf.visitor.canViewWarnings()\" />","title":"xfrm_resource_view"},{"line":139,"text":"\t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ link('warnings', {'warning_id': $description.warning_id}) }}\"","title":"xfrm_resource_view"},{"line":168,"text":"\t\t\t\t\t<div class=\"reactionsBar js-reactionsList {{ $description.reactions ? 'is-active' : '' }}\">","title":"xfrm_resource_view"},{"line":169,"text":"\t\t\t\t\t\t<xf:reactions content=\"{$description}\" link=\"resources/update/reactions\" />","title":"xfrm_resource_view"},{"line":172,"text":"\t\t\t\t\t<xf:if is=\"$description.edit_count && $description.canViewHistory()\">","title":"xfrm_resource_view"},{"line":331,"text":"\t\t\t\t\t<div>{{ snippet($update.message, 100, {'stripBbCode': true}) }}</div>","title":"xfrm_resource_view"},{"line":19,"text":"\t\t<div class=\"blockMessage blockMessage--alt blockMessage--small blockMessage--close\">","title":"xfrm_resource_wrapper"},{"line":20,"text":"\t\t\t<xf:contentcheck>{{ prefix_description('resource', $resource.prefix_id) }}</xf:contentcheck>","title":"xfrm_resource_wrapper"},{"line":61,"text":"\t\t\t\t\t<div class=\"p-description\">","title":"xfrm_resource_wrapper_macros"},{"line":108,"text":"\t\t\t\t\t<dd class=\"blockStatus-message blockStatus-message--deleted\">","title":"xfrm_resource_wrapper_macros"},{"line":112,"text":"\t\t\t\t\t<dd class=\"blockStatus-message blockStatus-message--moderated\">","title":"xfrm_resource_wrapper_macros"}],"update":{"message_bytes":6764,"message_sha":"72be6b3055218854fd03ce9cb68906a1123141a78022518e32f494dc456baf77","resource_update_id":10,"source_url":true,"verify_phrase":true}}}
NEWFI121R2_PRODUCTION={"_qga_transport":"stdin","http_probes":{"resource_bust":{"body_bytes":65975,"body_sha256":"8d985e5ba5dfe6f05acf4befcc4fcd4247564714525d69c7b0a2521489851f67","curl_rc":0,"editorial_sources_label":false,"headers":{"cache-control":"private, no-cache, max-age=0","expires":"Thu, 19 Nov 1981 08:52:00 GMT","last-modified":"Fri, 18 Sep 2026 23:36:17 GMT","server":"nginx/1.28.3 (Ubuntu)"},"http":"200","source_url":false,"stderr":"","title":true,"url":"https://newfi.ru/resources/n-yufaundlend-chto-vazhno-znat-o-porode.4/?content207_rca=NEWFI-260919-NEWFDOM-CONTENT207-PUBLICRCA121R2","verify_phrase":false},"resource_nocache":{"body_bytes":65975,"body_sha256":"c2ef9332e95301e9611d6fc5ece6bb715961e2a651d65005c561ed64dd8e3e64","curl_rc":0,"editorial_sources_label":false,"headers":{"cache-control":"private, no-cache, max-age=0","expires":"Thu, 19 Nov 1981 08:52:00 GMT","last-modified":"Fri, 18 Sep 2026 23:36:17 GMT","server":"nginx/1.28.3 (Ubuntu)"},"http":"200","source_url":false,"stderr":"","title":true,"url":"https://newfi.ru/resources/n-yufaundlend-chto-vazhno-znat-o-porode.4/","verify_phrase":false},"resource_normal":{"body_bytes":65975,"body_sha256":"f0110b8de5364b52bcf9d17d3dc639a4e723e3d609bc897e814f38a8ed947621","curl_rc":0,"editorial_sources_label":false,"headers":{"cache-control":"private, no-cache, max-age=0","expires":"Thu, 19 Nov 1981 08:52:00 GMT","last-modified":"Fri, 18 Sep 2026 23:36:17 GMT","server":"nginx/1.28.3 (Ubuntu)"},"http":"200","source_url":false,"stderr":"","title":true,"url":"https://newfi.ru/resources/n-yufaundlend-chto-vazhno-znat-o-porode.4/","verify_phrase":false},"update_bust":{"body_bytes":65975,"body_sha256":"6e81140c90194a9fafa693b981c5c3a171b8157e9a2fb30e8bbf2158b06f36f8","curl_rc":0,"editorial_sources_label":false,"headers":{"cache-control":"private, no-cache, max-age=0","expires":"Thu, 19 Nov 1981 08:52:00 GMT","last-modified":"Fri, 18 Sep 2026 23:36:18 GMT","server":"nginx/1.28.3 (Ubuntu)"},"http":"200","source_url":false,"stderr":"","title":true,"url":"https://newfi.ru/resources/n-yufaundlend-chto-vazhno-znat-o-porode.4/update/4/?content207_rca=NEWFI-260919-NEWFDOM-CONTENT207-PUBLICRCA121R2","verify_phrase":false},"update_normal":{"body_bytes":65975,"body_sha256":"9ca709a8ef1a6e7b9396737e8c0d7496eb488a1d62dc5b30dede7ebfbbb1a1ac","curl_rc":0,"editorial_sources_label":false,"headers":{"cache-control":"private, no-cache, max-age=0","expires":"Thu, 19 Nov 1981 08:52:00 GMT","last-modified":"Fri, 18 Sep 2026 23:36:17 GMT","server":"nginx/1.28.3 (Ubuntu)"},"http":"200","source_url":false,"stderr":"","title":true,"url":"https://newfi.ru/resources/n-yufaundlend-chto-vazhno-znat-o-porode.4/update/4/","verify_phrase":false}},"ok":true,"role":"production","source_scans":[{"matches":[{"line":73,"text":""},{"line":74,"text":"\t\t$listParams = $overviewPlugin->getCoreListData($viewableCategoryIds);"},{"line":75,"text":""},{"line":76,"text":"\t\t$this->assertValidPage($listParams['page'], $listParams['perPage'], $listParams['total'], 'resources');"},{"line":77,"text":"\t\t$this->assertCanonicalUrl($this->buildPaginatedLink('resources', null, $listParams['page']));"},{"line":78,"text":""},{"line":79,"text":"\t\t$viewParams = $categoryParams + $listParams;"},{"line":80,"text":""},{"line":81,"text":"\t\treturn $this->view('XFRM:Overview', 'xfrm_overview', $viewParams);"},{"line":82,"text":"\t}"},{"line":83,"text":""},{"line":84,"text":"\tpublic function actionFilters()"},{"line":85,"text":"\t{"},{"line":86,"text":"\t\t/** @var Overview $overviewPlugin */"},{"line":87,"text":"\t\t$overviewPlugin = $this->plugin('XFRM:Overview');"},{"line":112,"text":"\t\t$this->assertValidPage($page, $perPage, $total, 'resources/latest-reviews');"},{"line":113,"text":"\t\t$this->assertCanonicalUrl($this->buildPaginatedLink('resources/latest-reviews', null, $page));"},{"line":114,"text":""},{"line":115,"text":"\t\t$reviews = $finder->limitByPage($page, $perPage)->fetch();"},{"line":116,"text":"\t\t$reviews = $reviews->filterViewable();"},{"line":117,"text":""},{"line":118,"text":"\t\t$viewParams = ["},{"line":119,"text":"\t\t\t'reviews' => $reviews,"},{"line":120,"text":"\t\t\t'page' => $page,"},{"line":121,"text":"\t\t\t'perPage' => $perPage,"},{"line":122,"text":"\t\t\t'total' => $total,"},{"line":123,"text":"\t\t];"},{"line":124,"text":"\t\treturn $this->view('XFRM:LatestReviews', 'xfrm_latest_reviews', $viewParams);"},{"line":125,"text":"\t}"},{"line":126,"text":""},{"line":127,"text":"\tpublic function actionAdd()"},{"line":128,"text":"\t{"},{"line":129,"text":"\t\t/** @var User $visitor */"},{"line":130,"text":"\t\t$visitor = \\XF::visitor();"},{"line":169,"text":""},{"line":170,"text":"\t\t\treturn false;"},{"line":171,"text":"\t\t});"},{"line":172,"text":""},{"line":173,"text":"\t\t$categoryExtras = $categoryRepo->getCategoryListExtras($categoryTree);"},{"line":174,"text":""},{"line":175,"text":"\t\t$viewParams = ["},{"line":176,"text":"\t\t\t'categoryTree' => $categoryTree,"},{"line":177,"text":"\t\t\t'categoryExtras' => $categoryExtras,"},{"line":178,"text":"\t\t];"},{"line":179,"text":"\t\treturn $this->view('XFRM:ResourceItem\\AddChooser', 'xfrm_resource_add_chooser', $viewParams);"},{"line":180,"text":"\t}"},{"line":181,"text":""},{"line":182,"text":"\tpublic function actionView(ParameterBag $params)"},{"line":183,"text":"\t{"},{"line":184,"text":"\t\t$this->assertNotEmbeddedImageRequest();"},{"line":185,"text":""},{"line":186,"text":"\t\t$resource = $this->assertViewableResource($params->resource_id, $this->getResourceViewExtraWith());"},{"line":187,"text":""},{"line":188,"text":"\t\t$this->assertCanonicalUrl($this->buildLink('resources', $resource));"},{"line":231,"text":"\t\t}"},{"line":232,"text":"\t\telse"},{"line":233,"text":"\t\t{"},{"line":234,"text":"\t\t\t$authorOthers = $this->em()->getEmptyCollection();"},{"line":235,"text":"\t\t}"},{"line":236,"text":""},{"line":237,"text":"\t\t$trimmedDescription = null;"},{"line":238,"text":""},{"line":239,"text":"\t\tif (!$resource->canViewFullDescription())"},{"line":240,"text":"\t\t{"},{"line":241,"text":"\t\t\t$snippet = $this->app->stringFormatter()->wholeWordTrim("},{"line":242,"text":"\t\t\t\t$resource->Description->message,"},{"line":243,"text":"\t\t\t\t$this->options()->xfrmFilelessViewFull['length']"},{"line":244,"text":"\t\t\t);"},{"line":245,"text":"\t\t\tif (strlen($snippet) < strlen($resource->Description->message))"},{"line":246,"text":"\t\t\t{"},{"line":247,"text":"\t\t\t\t// just cleaning BB code, so not passing the content"},{"line":248,"text":"\t\t\t\t$trimmedDescription = $this->app->bbCode()->render($snippet, 'bbCodeClean', 'resource_update', null);"},{"line":249,"text":"\t\t\t}"},{"line":250,"text":"\t\t}"},{"line":251,"text":""},{"line":252,"text":"\t\tif ($this->isContentViewCounted())"},{"line":253,"text":"\t\t{"},{"line":254,"text":"\t\t\t$this->repository('XFRM:ResourceItem')->logResourceView($resource);"},{"line":255,"text":"\t\t}"},{"line":256,"text":""},{"line":257,"text":"\t\t$shownUpdateIds = $latestUpdates->keys();"},{"line":258,"text":"\t\t$shownUpdateIds[] = $resource->description_update_id;"},{"line":259,"text":""},{"line":260,"text":"\t\t/** @var UserAlert $userAlertRepo */"},{"line":261,"text":"\t\t$userAlertRepo = $this->repository('XF:UserAlert');"},{"line":262,"text":"\t\t$userAlertRepo->markUserAlertsReadForContent('resource_update', $shownUpdateIds);"},{"line":263,"text":"\t\t$userAlertRepo->markUserAlertsReadForContent('resource', $resource->resource_id);"},{"line":264,"text":""},{"line":265,"text":"\t\t$description = $resource->Description;"},{"line":266,"text":""},{"line":267,"text":"\t\t/** @var EmbedResolver $embedRepo */"},{"line":268,"text":"\t\t$embedRepo = $this->repository('XF:EmbedResolver');"},{"line":269,"text":"\t\t$embedRepo->addEmbedsToContent([$description]);"},{"line":270,"text":""},{"line":271,"text":"\t\t$viewParams = ["},{"line":272,"text":"\t\t\t'resource' => $resource,"},{"line":273,"text":"\t\t\t'category' => $resource->Category,"},{"line":274,"text":"\t\t\t'description' => $description,"},{"line":275,"text":"\t\t\t'trimmedDescription' => $trimmedDescription,"},{"line":276,"text":"\t\t\t'latestUpdates' => $latestUpdates,"},{"line":277,"text":"\t\t\t'latestReviews' => $latestReviews,"},{"line":278,"text":"\t\t\t'teamMembers' => $teamMembers,"},{"line":279,"text":"\t\t\t'authorOthers' => $authorOthers,"},{"line":280,"text":"\t\t\t'iconError' => $this->filter('icon_error', 'bool'),"},{"line":281,"text":"\t\t];"},{"line":282,"text":"\t\treturn $this->view('XFRM:ResourceItem\\View', 'xfrm_resource_view', $viewParams);"},{"line":283,"text":"\t}"},{"line":284,"text":""},{"line":285,"text":"\tprotected function getResourceViewExtraWith()"},{"line":286,"text":"\t{"},{"line":287,"text":"\t\t$extraWith = [];"},{"line":288,"text":"\t\t$userId = \\XF::visitor()->user_id;"},{"line":289,"text":"\t\tif ($userId)"},{"line":290,"text":"\t\t{"},{"line":291,"text":"\t\t\t$extraWith[] = 'Watch|' . $userId;"},{"line":292,"text":"\t\t\t$extraWith[] = 'CurrentVersion.Downloads|' . $userId;"},{"line":293,"text":"\t\t\t$extraWith[] = 'Description.Reactions|' . $userId;"},{"line":294,"text":"\t\t}"},{"line":295,"text":""},{"line":296,"text":"\t\treturn $extraWith;"},{"line":297,"text":"\t}"},{"line":298,"text":""},{"line":299,"text":"\tpublic function actionExtra(ParameterBag $params)"},{"line":301,"text":"\t\t$resource = $this->assertViewableResource($params->resource_id);"},{"line":302,"text":"\t\tif (!$resource->hasExtraInfoTab())"},{"line":303,"text":"\t\t{"},{"line":304,"text":"\t\t\treturn $this->redirect($this->buildLink('resources', $resource));"},{"line":305,"text":"\t\t}"},{"line":306,"text":""},{"line":307,"text":"\t\t$viewParams = ["},{"line":308,"text":"\t\t\t'resource' => $resource,"},{"line":309,"text":"\t\t\t'category' => $resource->Category,"},{"line":310,"text":"\t\t];"},{"line":311,"text":"\t\treturn $this->view('XFRM:ResourceItem\\Extra', 'xfrm_resource_extra', $viewParams);"},{"line":312,"text":"\t}"},{"line":313,"text":""},{"line":314,"text":"\tpublic function actionField(ParameterBag $params)"},{"line":315,"text":"\t{"},{"line":316,"text":"\t\t$resource = $this->assertViewableResource($params->resource_id);"},{"line":317,"text":""},{"line":325,"text":""},{"line":326,"text":"\t\t/** @var Set $fieldSet */"},{"line":327,"text":"\t\t$fieldSet = $resource->custom_fields;"},{"line":328,"text":"\t\t$definition = $fieldSet->getDefinition($fieldId);"},{"line":329,"text":"\t\t$fieldValue = $fieldSet->getFieldValue($fieldId);"},{"line":330,"text":""},{"line":331,"text":"\t\t$viewParams = ["},{"line":332,"text":"\t\t\t'resource' => $resource,"},{"line":333,"text":"\t\t\t'category' => $resource->Category,"},{"line":334,"text":""},{"line":335,"text":"\t\t\t'fieldId' => $fieldId,"},{"line":336,"text":"\t\t\t'fieldDefinition' => $definition,"},{"line":337,"text":"\t\t\t'fieldValue' => $fieldValue,"},{"line":338,"text":"\t\t];"},{"line":339,"text":"\t\treturn $this->view('XFRM:ResourceItem\\Field', 'xfrm_resource_field', $viewParams);"},{"line":340,"text":"\t}"},{"line":341,"text":""},{"line":342,"text":"\tpublic function actionUpdates(ParameterBag $params)"},{"line":343,"text":"\t{"},{"line":344,"text":"\t\t$this->assertNotEmbeddedImageRequest();"}],"path":"src/addons/XFRM/Pub/Controller/ResourceItem.php","present":true,"sha256":"78aaaaaf3ad95aedde7b4a1e4d8ec026b9a305dd4a2a23172d28a756244b9f67"},{"matches":[{"line":48,"text":" * @property array $team_member_user_ids"},{"line":49,"text":" * @property string $resource_state"},{"line":50,"text":" * @property string $resource_type"},{"line":51,"text":" * @property int $resource_date"},{"line":52,"text":" * @property int $resource_category_id"},{"line":53,"text":" * @property int $current_version_id"},{"line":54,"text":" * @property int $description_update_id"},{"line":55,"text":" * @property int $discussion_thread_id"},{"line":56,"text":" * @property string $external_url"},{"line":57,"text":" * @property string $external_url_"},{"line":58,"text":" * @property string $external_purchase_url"},{"line":59,"text":" * @property string $external_purchase_url_"},{"line":60,"text":" * @property float $price"},{"line":65,"text":" * @property int $rating_sum"},{"line":66,"text":" * @property float $rating_avg"},{"line":67,"text":" * @property float $rating_weighted"},{"line":68,"text":" * @property array|null $rating_split"},{"line":69,"text":" * @property int $update_count"},{"line":70,"text":" * @property int $review_count"},{"line":71,"text":" * @property int $last_update"},{"line":72,"text":" * @property string $alt_support_url"},{"line":73,"text":" * @property string $alt_support_url_"},{"line":74,"text":" * @property array|null $custom_fields_"},{"line":75,"text":" * @property int $prefix_id"},{"line":76,"text":" * @property int $icon_date"},{"line":77,"text":" * @property bool $icon_optimized"},{"line":89,"text":" * @property-read string|null $cover_image"},{"line":90,"text":" *"},{"line":91,"text":" * RELATIONS"},{"line":92,"text":" * @property-read Category|null $Category"},{"line":93,"text":" * @property-read User|null $User"},{"line":94,"text":" * @property-read AbstractCollection<ResourceTeamMember> $TeamMembers"},{"line":95,"text":" * @property-read ResourceUpdate|null $Description"},{"line":96,"text":" * @property-read ResourceVersion|null $CurrentVersion"},{"line":97,"text":" * @property-read Thread|null $Discussion"},{"line":98,"text":" * @property-read ResourcePrefix|null $Prefix"},{"line":99,"text":" * @property-read AbstractCollection<ResourceWatch> $Watch"},{"line":100,"text":" * @property-read DeletionLog|null $DeletionLog"},{"line":101,"text":" * @property-read ApprovalQueue|null $ApprovalQueue"},{"line":139,"text":"\t\t$mainEntity = ["},{"line":140,"text":"\t\t\t'@type' => 'CreativeWork',"},{"line":141,"text":"\t\t\t'@id' => $resourceLink,"},{"line":142,"text":"\t\t\t'headline' => $this->title,"},{"line":143,"text":"\t\t\t'alternativeHeadline' => $this->tag_line,"},{"line":144,"text":"\t\t\t'dateCreated' => gmdate('c', $this->resource_date),"},{"line":145,"text":"\t\t\t'dateModified' => $this->last_update"},{"line":146,"text":"\t\t\t\t? gmdate('c', $this->last_update)"},{"line":147,"text":"\t\t\t\t: null,"},{"line":148,"text":"\t\t\t'keywords' => implode(', ', array_column($this->tags, 'tag')),"},{"line":149,"text":"\t\t\t'url' => $resourceLink,"},{"line":150,"text":"\t\t\t'thumbnailUrl' => $options->xfrmAllowIcons && $this->icon_date"},{"line":151,"text":"\t\t\t\t? $this->getIconUrl('s', true)"},{"line":152,"text":"\t\t\t\t: null,"},{"line":153,"text":"\t\t\t'version' => $this->isVersioned()"},{"line":154,"text":"\t\t\t\t? $this->CurrentVersion->version_string"},{"line":155,"text":"\t\t\t\t: null,"},{"line":156,"text":"\t\t\t'discussionUrl' => $this->hasViewableDiscussion()"},{"line":157,"text":"\t\t\t\t? $this->Discussion->getContentUrl(true)"},{"line":158,"text":"\t\t\t\t: null,"},{"line":159,"text":"\t\t\t'description' => $strFormatter->snippetString("},{"line":160,"text":"\t\t\t\t$this->Description->message,"},{"line":161,"text":"\t\t\t\t0,"},{"line":162,"text":"\t\t\t\t['stripBbCode' => true]"},{"line":163,"text":"\t\t\t),"},{"line":164,"text":"\t\t\t'author' => ["},{"line":165,"text":"\t\t\t\t'@type' => 'Person',"},{"line":166,"text":"\t\t\t\t'@id' => $userLink,"},{"line":168,"text":"\t\t\t\t'url' => $userLink,"},{"line":169,"text":"\t\t\t],"},{"line":170,"text":"\t\t\t'interactionStatistic' => ["},{"line":171,"text":"\t\t\t\t["},{"line":172,"text":"\t\t\t\t\t'@type' => 'InteractionCounter',"},{"line":173,"text":"\t\t\t\t\t'interactionType' => 'https://schema.org/LikeAction',"},{"line":174,"text":"\t\t\t\t\t'userInteractionCount' => $this->Description->reaction_score,"},{"line":175,"text":"\t\t\t\t],"},{"line":176,"text":"\t\t\t\t["},{"line":177,"text":"\t\t\t\t\t'@type' => 'InteractionCounter',"},{"line":178,"text":"\t\t\t\t\t'interactionType' => 'https://schema.org/ViewAction',"},{"line":179,"text":"\t\t\t\t\t'userInteractionCount' => $this->view_count,"},{"line":180,"text":"\t\t\t\t],"},{"line":212,"text":"\t\t\t'url' => $resourceLink,"},{"line":213,"text":"\t\t\t'mainEntity' => $mainEntity,"},{"line":214,"text":"\t\t\t'publisher' => ["},{"line":215,"text":"\t\t\t\t'@type' => 'Organization',"},{"line":216,"text":"\t\t\t\t'name' => $options->boardTitle,"},{"line":217,"text":"\t\t\t\t'alternateName' => $options->boardShortTitle ?: null,"},{"line":218,"text":"\t\t\t\t'description' => $options->boardDescription ?: null,"},{"line":219,"text":"\t\t\t\t'url' => $options->boardUrl,"},{"line":220,"text":"\t\t\t\t'logo' => $logo,"},{"line":221,"text":"\t\t\t],"},{"line":222,"text":"\t\t];"},{"line":223,"text":""},{"line":224,"text":"\t\treturn Arr::filterNull($structuredData, true);"},{"line":314,"text":""},{"line":315,"text":"\tpublic function canDownload(&$error = null)"},{"line":316,"text":"\t{"},{"line":317,"text":"\t\treturn $this->hasPermission('download') || $this->isTeamMember();"},{"line":318,"text":"\t}"},{"line":319,"text":""},{"line":320,"text":"\tpublic function canViewFullDescription()"},{"line":321,"text":"\t{"},{"line":322,"text":"\t\tif ($this->resource_type != 'fileless')"},{"line":323,"text":"\t\t{"},{"line":324,"text":"\t\t\treturn true;"},{"line":325,"text":"\t\t}"},{"line":326,"text":""},{"line":953,"text":"\t{"},{"line":954,"text":"\t\tif (!$teamUser)"},{"line":955,"text":"\t\t{"},{"line":956,"text":"\t\t\t$teamUser = \\XF::visitor();"},{"line":957,"text":"\t\t}"},{"line":958,"text":""},{"line":959,"text":"\t\t$update = $this->_em->create('XFRM:ResourceUpdate');"},{"line":960,"text":""},{"line":961,"text":"\t\t$update->resource_id = $this->_getDeferredValue(function ()"},{"line":962,"text":"\t\t{"},{"line":963,"text":"\t\t\treturn $this->resource_id;"},{"line":964,"text":"\t\t}, 'save');"},{"line":965,"text":""},{"line":996,"text":"\t{"},{"line":997,"text":"\t\treturn Draft::createFromEntity($this, 'DraftUpdates');"},{"line":998,"text":"\t}"},{"line":999,"text":""},{"line":1000,"text":"\tpublic function getCoverImage(): ?string"},{"line":1001,"text":"\t{"},{"line":1002,"text":"\t\t$description = $this->Description;"},{"line":1003,"text":"\t\tif (!$description)"},{"line":1004,"text":"\t\t{"},{"line":1005,"text":"\t\t\treturn null;"},{"line":1006,"text":"\t\t}"},{"line":1007,"text":""},{"line":1008,"text":"\t\t$attachments = $description->attach_count"},{"line":1009,"text":"\t\t\t? $description->Attachments"},{"line":1010,"text":"\t\t\t: $this->_em->getEmptyCollection();"},{"line":1011,"text":""},{"line":1012,"text":"\t\treturn $this->getCoverImageInternal("},{"line":1013,"text":"\t\t\t$attachments,"},{"line":1014,"text":"\t\t\t$this->canViewUpdateImages(),"},{"line":1015,"text":"\t\t\t$description->embed_metadata,"},{"line":1016,"text":"\t\t\t$description->message"},{"line":1017,"text":"\t\t);"},{"line":1018,"text":"\t}"},{"line":1019,"text":""},{"line":1020,"text":"\tpublic function getFieldEditMode()"},{"line":1021,"text":"\t{"},{"line":1022,"text":"\t\t$visitor = \\XF::visitor();"},{"line":1055,"text":"\t\tif (!$this->canViewDeletedContent() && !$this->canViewModeratedContent())"},{"line":1056,"text":"\t\t{"},{"line":1057,"text":"\t\t\treturn $this->update_count;"},{"line":1058,"text":"\t\t}"},{"line":1059,"text":"\t\telse"},{"line":1060,"text":"\t\t{"},{"line":1061,"text":"\t\t\t/** @var \\XFRM\\Repository\\ResourceUpdate $updateRepo */"},{"line":1062,"text":"\t\t\t$updateRepo = $this->repository('XFRM:ResourceUpdate');"},{"line":1063,"text":"\t\t\treturn $updateRepo->findUpdatesInResource($this)->total();"},{"line":1064,"text":"\t\t}"},{"line":1065,"text":"\t}"},{"line":1066,"text":""},{"line":1067,"text":"\t/**"},{"line":1068,"text":"\t * @return int"}],"path":"src/addons/XFRM/Entity/ResourceItem.php","present":true,"sha256":"703773471dd35c876a0fed578a60dfc51e1dafc9520ad1493282b50fd9e05262"},{"matches":[{"line":21,"text":"use XF\\Mvc\\Entity\\Structure;"},{"line":22,"text":"use XF\\Repository\\UserAlert;"},{"line":23,"text":"use XF\\Spam\\ContentChecker;"},{"line":24,"text":""},{"line":25,"text":"/**"},{"line":26,"text":" * COLUMNS"},{"line":27,"text":" * @property int|null $resource_update_id"},{"line":28,"text":" * @property int $resource_id"},{"line":29,"text":" * @property int $team_user_id"},{"line":30,"text":" * @property string $team_username"},{"line":31,"text":" * @property string $title"},{"line":32,"text":" * @property string $title_"},{"line":33,"text":" * @property string $message"},{"line":34,"text":" * @property string $message_state"},{"line":35,"text":" * @property int $post_date"},{"line":36,"text":" * @property int $attach_count"},{"line":37,"text":" * @property int $ip_id"},{"line":38,"text":" * @property int $warning_id"},{"line":39,"text":" * @property string $warning_message"},{"line":40,"text":" * @property int $last_edit_date"},{"line":41,"text":" * @property int $last_edit_user_id"},{"line":42,"text":" * @property int $edit_count"},{"line":43,"text":" * @property array|null $embed_metadata"},{"line":44,"text":" * @property int $reaction_score"},{"line":45,"text":" * @property array|null $reactions_"},{"line":46,"text":" * @property array|null $reaction_users_"},{"line":47,"text":" *"},{"line":48,"text":" * GETTERS"},{"line":49,"text":" * @property-read string $resource_title"},{"line":50,"text":" * @property mixed $reactions"},{"line":51,"text":" * @property mixed $reaction_users"},{"line":52,"text":" * @property-read array $Embeds"},{"line":53,"text":" *"},{"line":54,"text":" * RELATIONS"},{"line":55,"text":" * @property-read ResourceItem|null $Resource"},{"line":56,"text":" * @property-read User|null $TeamUser"},{"line":57,"text":" * @property-read AbstractCollection<Attachment> $Attachments"},{"line":58,"text":" * @property-read DeletionLog|null $DeletionLog"},{"line":59,"text":" * @property-read ApprovalQueue|null $ApprovalQueue"},{"line":60,"text":" * @property-read AbstractCollection<ReactionContent> $Reactions"},{"line":61,"text":" * @property-read AbstractCollection<BookmarkItem> $Bookmarks"},{"line":62,"text":" */"},{"line":63,"text":"class ResourceUpdate extends Entity implements RenderableContentInterface, LinkableInterface, ViewableInterface"},{"line":64,"text":"{"},{"line":65,"text":"\tuse BookmarkTrait;"},{"line":66,"text":"\tuse EmbedRendererTrait;"},{"line":67,"text":"\tuse EmbedResolverTrait;"},{"line":68,"text":"\tuse ReactionTrait;"},{"line":69,"text":""},{"line":70,"text":"\tpublic function canView(&$error = null)"},{"line":71,"text":"\t{"},{"line":72,"text":"\t\t$resource = $this->Resource;"},{"line":73,"text":""},{"line":74,"text":"\t\tif (!$resource || !$resource->canView($error))"},{"line":75,"text":"\t\t{"},{"line":76,"text":"\t\t\treturn false;"},{"line":77,"text":"\t\t}"},{"line":78,"text":""},{"line":79,"text":"\t\t$visitor = \\XF::visitor();"},{"line":80,"text":""},{"line":81,"text":"\t\tif ($this->message_state == 'moderated')"},{"line":82,"text":"\t\t{"},{"line":83,"text":"\t\t\tif ("},{"line":84,"text":"\t\t\t\t!$resource->hasPermission('viewModerated')"},{"line":85,"text":"\t\t\t\t&& (!$visitor->user_id || !$resource->isTeamMember())"},{"line":86,"text":"\t\t\t)"},{"line":87,"text":"\t\t\t{"},{"line":88,"text":"\t\t\t\treturn false;"},{"line":89,"text":"\t\t\t}"},{"line":90,"text":"\t\t}"},{"line":91,"text":"\t\telse if ($this->message_state == 'deleted')"},{"line":92,"text":"\t\t{"},{"line":93,"text":"\t\t\tif (!$resource->hasPermission('viewDeleted'))"},{"line":94,"text":"\t\t\t{"},{"line":95,"text":"\t\t\t\treturn false;"},{"line":96,"text":"\t\t\t}"},{"line":97,"text":"\t\t}"},{"line":98,"text":""},{"line":99,"text":"\t\treturn true;"},{"line":100,"text":"\t}"},{"line":101,"text":""},{"line":102,"text":"\tpublic function canEdit(&$error = null)"},{"line":103,"text":"\t{"},{"line":104,"text":"\t\t$visitor = \\XF::visitor();"},{"line":105,"text":"\t\t$resource = $this->Resource;"},{"line":106,"text":""},{"line":107,"text":"\t\tif (!$visitor->user_id || !$resource)"},{"line":108,"text":"\t\t{"},{"line":109,"text":"\t\t\treturn false;"},{"line":110,"text":"\t\t}"},{"line":111,"text":""},{"line":112,"text":"\t\treturn $resource->canEdit($error);"},{"line":113,"text":"\t}"},{"line":114,"text":""},{"line":115,"text":"\tpublic function canViewHistory(&$error = null): bool"},{"line":116,"text":"\t{"},{"line":117,"text":"\t\t$visitor = \\XF::visitor();"},{"line":118,"text":"\t\tif (!$visitor->user_id)"},{"line":122,"text":""},{"line":123,"text":"\t\tif (!$this->app()->options()->editHistory['enabled'])"},{"line":124,"text":"\t\t{"},{"line":125,"text":"\t\t\treturn false;"},{"line":126,"text":"\t\t}"},{"line":127,"text":""},{"line":128,"text":"\t\tif ($this->Resource && $this->Resource->hasPermission('editAny'))"},{"line":129,"text":"\t\t{"},{"line":130,"text":"\t\t\treturn true;"},{"line":131,"text":"\t\t}"},{"line":132,"text":""},{"line":133,"text":"\t\treturn false;"},{"line":134,"text":"\t}"},{"line":135,"text":""},{"line":136,"text":"\tpublic function canDelete($type = 'soft', &$error = null)"},{"line":137,"text":"\t{"},{"line":138,"text":"\t\t$visitor = \\XF::visitor();"},{"line":139,"text":"\t\t$resource = $this->Resource;"},{"line":140,"text":""},{"line":141,"text":"\t\tif ($this->isDescription() || !$visitor->user_id || !$resource)"},{"line":142,"text":"\t\t{"},{"line":143,"text":"\t\t\treturn false;"},{"line":144,"text":"\t\t}"},{"line":145,"text":""},{"line":146,"text":"\t\tif ($type != 'soft')"},{"line":147,"text":"\t\t{"},{"line":148,"text":"\t\t\treturn $resource->hasPermission('hardDeleteAny');"},{"line":149,"text":"\t\t}"},{"line":150,"text":""},{"line":151,"text":"\t\tif ($resource->hasPermission('deleteAny'))"},{"line":152,"text":"\t\t{"},{"line":153,"text":"\t\t\treturn true;"},{"line":154,"text":"\t\t}"},{"line":155,"text":""},{"line":156,"text":"\t\tif ("},{"line":157,"text":"\t\t\t$resource->isTeamMember()"},{"line":158,"text":"\t\t\t&& $this->team_user_id == $visitor->user_id"},{"line":159,"text":"\t\t)"},{"line":160,"text":"\t\t{"},{"line":161,"text":"\t\t\treturn $resource->hasPermission('updateOwn');"},{"line":162,"text":"\t\t}"},{"line":163,"text":""},{"line":164,"text":"\t\treturn ("},{"line":165,"text":"\t\t\t$resource->user_id == $visitor->user_id"},{"line":166,"text":"\t\t\t&& $resource->hasPermission('updateOwn')"},{"line":167,"text":"\t\t);"},{"line":168,"text":"\t}"},{"line":169,"text":""},{"line":170,"text":"\tpublic function canUndelete(&$error = null)"},{"line":171,"text":"\t{"},{"line":172,"text":"\t\t$visitor = \\XF::visitor();"},{"line":173,"text":"\t\t$resource = $this->Resource;"},{"line":174,"text":""},{"line":175,"text":"\t\tif (!$visitor->user_id || !$resource)"},{"line":176,"text":"\t\t{"},{"line":177,"text":"\t\t\treturn false;"},{"line":178,"text":"\t\t}"},{"line":179,"text":""},{"line":180,"text":"\t\treturn $resource->hasPermission('undelete');"},{"line":181,"text":"\t}"},{"line":182,"text":""},{"line":183,"text":"\tpublic function canSendModeratorActionAlert()"}],"path":"src/addons/XFRM/Entity/ResourceUpdate.php","present":true,"sha256":"9e978eeef933f5dd12a66afa34eba873eb0cae8ddb527ea96fcff6b058a9d05f"}],"state":{"contentindexnow_jobs":0,"counts":{"drafts":0,"resources":13,"tag_content":39,"tags":33,"updates":13,"versions":13},"error_ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"links":{"resource":"https://newfi.ru/resources/n-yufaundlend-chto-vazhno-znat-o-porode.4/","update":"https://newfi.ru/resources/n-yufaundlend-chto-vazhno-znat-o-porode.4/update/4/"},"portal_sha":"5e4eae47a54970611a5f08875b2423d69e9bb57d53b3fc888d15d33a52b595ed","resource":{"description_update_id":4,"last_update":1789766867,"resource_id":4,"state":"visible","title":"Ньюфаундленд: что важно знать о породе","type":"fileless"},"template_hits":[{"line":48,"text":"\t\t\t\t<xf:if is=\"$category.description\">","title":"xfrm_resource_add_chooser"},{"line":50,"text":"\t\t\t\t\t\t{$category.description|raw}","title":"xfrm_resource_add_chooser"},{"line":100,"text":"\t\t\t\t<xf:if is=\"$category.description\">","title":"xfrm_resource_add_chooser"},{"line":102,"text":"\t\t\t\t\t\t{$category.description|raw}","title":"xfrm_resource_add_chooser"},{"line":52,"text":"\t\t\t<xf:macro id=\"xfrm_resource_edit_macros::description\"","title":"xfrm_resource_edit"},{"line":53,"text":"\t\t\t\targ-description=\"{$resource.Description.message_}\"","title":"xfrm_resource_edit"},{"line":17,"text":"\t\texplain=\"{{ phrase('xfrm_provide_very_brief_one_line_description_of_your_resource') }}\" />","title":"xfrm_resource_edit_macros"},{"line":63,"text":"\t\t\t\thint=\"{{ phrase('xfrm_description_will_contain_contents_of_this_resource') }}\" />","title":"xfrm_resource_edit_macros"},{"line":84,"text":"<xf:macro id=\"description\" arg-description=\"\" arg-attachmentData=\"{{ [] }}\" arg-previewUrl=\"\">","title":"xfrm_resource_edit_macros"},{"line":86,"text":"\t\t<xf:editorrow name=\"description\" value=\"{$description}\" data-min-height=\"200\"","title":"xfrm_resource_edit_macros"},{"line":88,"text":"\t\t\tlabel=\"{{ phrase('description') }}\"","title":"xfrm_resource_edit_macros"},{"line":102,"text":"\t<xf:editorrow name=\"update_message\" data-min-height=\"200\"","title":"xfrm_resource_post_update"},{"line":103,"text":"\t\tvalue=\"{$resource.draft_update.message}\"","title":"xfrm_resource_post_update"},{"line":105,"text":"\t\tlabel=\"{{ phrase('xfrm_update_message') }}\"","title":"xfrm_resource_post_update"},{"line":23,"text":"\t\t\t<xf:textarearow name=\"message\" rows=\"2\" autosize=\"true\"","title":"xfrm_resource_rate"},{"line":28,"text":"\t\t\t\tmaxlength=\"{$xf.options.messageMaxLength}\"","title":"xfrm_resource_rate"},{"line":6,"text":"\t<xf:css src=\"message.less\" />","title":"xfrm_resource_review_macros"},{"line":9,"text":"\t<div class=\"message message--simple{{ $review.isIgnored() ? ' is-ignored' : '' }}\">","title":"xfrm_resource_review_macros"},{"line":11,"text":"\t\t<div class=\"message-inner\">","title":"xfrm_resource_review_macros"},{"line":12,"text":"\t\t\t<span class=\"message-cell message-cell--user\">","title":"xfrm_resource_review_macros"},{"line":14,"text":"\t\t\t\t\t<xf:macro id=\"message_macros::user_info_simple\"","title":"xfrm_resource_review_macros"},{"line":18,"text":"\t\t\t\t\t<xf:macro id=\"message_macros::user_info_simple\"","title":"xfrm_resource_review_macros"},{"line":23,"text":"\t\t\t<div class=\"message-cell message-cell--main\">","title":"xfrm_resource_review_macros"},{"line":24,"text":"\t\t\t\t<div class=\"message-content js-messageContent\">","title":"xfrm_resource_review_macros"},{"line":25,"text":"\t\t\t\t\t<div class=\"message-attribution message-attribution--plain\">","title":"xfrm_resource_review_macros"},{"line":27,"text":"\t\t\t\t\t\t\t<div class=\"message-attribution-source\">","title":"xfrm_resource_review_macros"},{"line":36,"text":"\t\t\t\t\t\t\t<li class=\"message-attribution-user\">","title":"xfrm_resource_review_macros"},{"line":62,"text":"\t\t\t\t\t\t<div class=\"messageNotice messageNotice--deleted\">","title":"xfrm_resource_review_macros"},{"line":72,"text":"\t\t\t\t\t\targ-wrapperClass=\"message-fields message-fields--before\" />","title":"xfrm_resource_review_macros"},{"line":74,"text":"\t\t\t\t\t<div class=\"message-body\">","title":"xfrm_resource_review_macros"},{"line":75,"text":"\t\t\t\t\t\t{{ structured_text($review.message) }}","title":"xfrm_resource_review_macros"},{"line":83,"text":"\t\t\t\t\t\targ-wrapperClass=\"message-fields message-fields--after\" />","title":"xfrm_resource_review_macros"},{"line":87,"text":"\t\t\t\t\t<div class=\"message-actionBar actionBar\">","title":"xfrm_resource_review_macros"},{"line":169,"text":"\t\t\t\t\t<div class=\"message-responses js-messageResponses\">","title":"xfrm_resource_review_macros"},{"line":175,"text":"\t\t\t\t\t\t\t<div class=\"js-replyNewMessageContainer\"></div>","title":"xfrm_resource_review_macros"},{"line":179,"text":"\t\t\t\t\t\t\t<xf:js src=\"xf/action.js, xf/message.js\" min=\"1\" />","title":"xfrm_resource_review_macros"},{"line":180,"text":"\t\t\t\t\t\t\t<div class=\"message-responseRow js-commentsTarget-{$review.resource_rating_id} toggleTarget\">","title":"xfrm_resource_review_macros"},{"line":183,"text":"\t\t\t\t\t\t\t\t\tdata-message-container=\"< .js-messageResponses | .js-replyNewMessageContainer\"","title":"xfrm_resource_review_macros"},{"line":191,"text":"\t\t\t\t\t\t\t\t\t\t\t<xf:textarea name=\"message\" rows=\"1\" autosize=\"true\"","title":"xfrm_resource_review_macros"},{"line":192,"text":"\t\t\t\t\t\t\t\t\t\t\t\tmaxlength=\"{$xf.options.messageMaxLength}\"","title":"xfrm_resource_review_macros"},{"line":217,"text":"\t\t\t\t<div class=\"message-cell message-cell--vote\">","title":"xfrm_resource_review_macros"},{"line":218,"text":"\t\t\t\t\t<div class=\"message-column\">","title":"xfrm_resource_review_macros"},{"line":234,"text":"\t<div class=\"message-responseRow\">","title":"xfrm_resource_review_macros"},{"line":278,"text":"\t\t\t<div class=\"contentRow-lesser\">{{ snippet($review.message, 100) }}</div>","title":"xfrm_resource_review_macros"},{"line":15,"text":"\t\t\t<xf:editorrow name=\"message\" value=\"{$update.message}\" data-min-height=\"100\" rowtype=\"{{ $quickEdit ? 'fullWidth noLabel' : '' }}\"","title":"xfrm_resource_update_edit"},{"line":17,"text":"\t\t\t\tlabel=\"{{ phrase('message') }}\"","title":"xfrm_resource_update_edit"},{"line":1,"text":"<xf:macro id=\"xfrm_resource_update_macros::resource_update\"","title":"xfrm_resource_update_edit_new_value"},{"line":1,"text":"<xf:macro id=\"resource_update\" arg-update=\"!\" arg-resource=\"!\">","title":"xfrm_resource_update_macros"},{"line":2,"text":"\t<xf:css src=\"message.less\" />","title":"xfrm_resource_update_macros"},{"line":3,"text":"\t<div class=\"message message--simple js-resourceUpdate\" id=\"js-resourceUpdate-{$update.resource_update_id}\">","title":"xfrm_resource_update_macros"},{"line":4,"text":"\t\t<span class=\"u-anchorTarget\" id=\"resource-update-{$update.resource_update_id}\"></span>","title":"xfrm_resource_update_macros"},{"line":5,"text":"\t\t<div class=\"message-inner\">","title":"xfrm_resource_update_macros"},{"line":6,"text":"\t\t\t<div class=\"message-cell message-cell--main\">","title":"xfrm_resource_update_macros"},{"line":8,"text":"\t\t\t\t\t<div class=\"message-content js-messageContent\">","title":"xfrm_resource_update_macros"},{"line":9,"text":"\t\t\t\t\t\t<div class=\"message-attribution message-attribution--split\">","title":"xfrm_resource_update_macros"},{"line":10,"text":"\t\t\t\t\t\t\t<h2 class=\"message-attribution-main block-textHeader\" style=\"margin: 0\">","title":"xfrm_resource_update_macros"},{"line":13,"text":"\t\t\t\t\t\t\t<ul class=\"message-attribution-opposite message-attribution-opposite--list\">","title":"xfrm_resource_update_macros"},{"line":33,"text":"\t\t\t\t\t\t<xf:if is=\"$update.message_state == 'deleted'\">","title":"xfrm_resource_update_macros"},{"line":34,"text":"\t\t\t\t\t\t\t<div class=\"messageNotice messageNotice--deleted\">","title":"xfrm_resource_update_macros"},{"line":37,"text":"\t\t\t\t\t\t<xf:elseif is=\"$update.message_state == 'moderated'\" />","title":"xfrm_resource_update_macros"},{"line":38,"text":"\t\t\t\t\t\t\t<div class=\"messageNotice messageNotice--moderated\">","title":"xfrm_resource_update_macros"},{"line":39,"text":"\t\t\t\t\t\t\t\t{{ phrase('this_message_is_awaiting_moderator_approval_and_is_invisible_to_normal') }}","title":"xfrm_resource_update_macros"},{"line":42,"text":"\t\t\t\t\t\t<xf:if is=\"$update.warning_message\">","title":"xfrm_resource_update_macros"},{"line":43,"text":"\t\t\t\t\t\t\t<div class=\"messageNotice messageNotice--warning\">","title":"xfrm_resource_update_macros"},{"line":44,"text":"\t\t\t\t\t\t\t\t{$update.warning_message}","title":"xfrm_resource_update_macros"},{"line":48,"text":"\t\t\t\t\t\t<div class=\"message-userContent lbContainer js-lbContainer\"","title":"xfrm_resource_update_macros"},{"line":49,"text":"\t\t\t\t\t\t\tdata-lb-id=\"resource_update-{$update.resource_update_id}\"","title":"xfrm_resource_update_macros"},{"line":52,"text":"\t\t\t\t\t\t\t<blockquote class=\"message-body\">","title":"xfrm_resource_update_macros"},{"line":53,"text":"\t\t\t\t\t\t\t\t{{ bb_code($update.message, 'resource_update', $update) }}","title":"xfrm_resource_update_macros"},{"line":57,"text":"\t\t\t\t\t\t\t\t<xf:macro id=\"message_macros::attachments\"","title":"xfrm_resource_update_macros"},{"line":59,"text":"\t\t\t\t\t\t\t\t\targ-message=\"{$update}\"","title":"xfrm_resource_update_macros"},{"line":65,"text":"\t\t\t\t\t\t\t<div class=\"message-lastEdit\">","title":"xfrm_resource_update_macros"},{"line":71,"text":"\t\t\t\t\t\t\t<div class=\"message-actionBar actionBar\">","title":"xfrm_resource_update_macros"},{"line":92,"text":"\t\t\t\t\t\t\t\t\t\t\t\t<xf:js src=\"xf/action.js, xf/message.js\" min=\"1\" />","title":"xfrm_resource_update_macros"},{"line":96,"text":"\t\t\t\t\t\t\t\t\t\t\t\t\tdata-editor-target=\"#js-resourceUpdate-{$update.resource_update_id} .js-quickEditTarget\"","title":"xfrm_resource_update_macros"},{"line":104,"text":"\t\t\t\t\t\t\t\t\t\t\t\t\tdata-target=\"#js-resourceUpdate-{$update.resource_update_id} .js-historyTarget\"","title":"xfrm_resource_update_macros"},{"line":115,"text":"\t\t\t\t\t\t\t\t\t\t\t<xf:if is=\"$update.message_state == 'deleted' AND $update.canUndelete()\">","title":"xfrm_resource_update_macros"},{"line":137,"text":"\t\t\t\t\t\t\t\t\t\t\t\t<xf:if is=\"$update.message_state == 'moderated'\">","title":"xfrm_resource_update_macros"},{"line":141,"text":"\t\t\t\t\t\t\t\t\t\t\t\t<xf:elseif is=\"$update.message_state == 'visible'\" />","title":"xfrm_resource_update_macros"},{"line":12,"text":"<div class=\"block block--messages\">","title":"xfrm_resource_updates"},{"line":30,"text":"\t\t\t<xf:macro id=\"xfrm_resource_update_macros::resource_update\"","title":"xfrm_resource_updates"},{"line":3,"text":"<xf:set var=\"$descSnippet\" value=\"{{ snippet($description.message, 250, {'stripBbCode': true}) }}\" />","title":"xfrm_resource_view"},{"line":6,"text":"\targ-description=\"{$descSnippet}\"","title":"xfrm_resource_view"},{"line":17,"text":"\t<div class=\"blockMessage blockMessage--error\">{{ phrase('xfrm_new_icon_could_not_be_applied_try_later') }}</div>","title":"xfrm_resource_view"},{"line":52,"text":"\t\t\t\t\t<xf:if is=\"$trimmedDescription\">","title":"xfrm_resource_view"},{"line":53,"text":"\t\t\t\t\t\t{{ bb_code($trimmedDescription, 'resource_update', $description) }}","title":"xfrm_resource_view"},{"line":55,"text":"\t\t\t\t\t\t<div class=\"block-rowMessage block-rowMessage--important\">","title":"xfrm_resource_view"},{"line":62,"text":"\t\t\t\t\t\t{{ bb_code($description.message, 'resource_update', $description) }}","title":"xfrm_resource_view"},{"line":73,"text":"\t\t\t\t\t<xf:if is=\"$description.attach_count\">","title":"xfrm_resource_view"},{"line":78,"text":"\t\t\t\t\t\t\t\t\t<xf:foreach loop=\"$description.Attachments\" value=\"$attachment\" if=\"!$description.isAttachmentEmbedded($attachment)\">","title":"xfrm_resource_view"},{"line":94,"text":"\t\t\t\t\t\t\t\t\t\t<xf:react content=\"{$description}\" link=\"resources/update/react\" list=\"< .js-resourceBody | .js-reactionsList\" />","title":"xfrm_resource_view"},{"line":102,"text":"\t\t\t\t\t\t\t\t\t\t<xf:if is=\"$description.canReport()\">","title":"xfrm_resource_view"},{"line":103,"text":"\t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ link('resources/update/report', $description) }}\"","title":"xfrm_resource_view"},{"line":113,"text":"\t\t\t\t\t\t\t\t\t\t<xf:if is=\"$description.edit_count && $description.canViewHistory()\">","title":"xfrm_resource_view"},{"line":114,"text":"\t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ link('resources/update/history', $description) }}\"","title":"xfrm_resource_view"},{"line":122,"text":"\t\t\t\t\t\t\t\t\t\t<xf:if is=\"$description.canDelete('soft')\">","title":"xfrm_resource_view"},{"line":123,"text":"\t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ link('resources/delete', $description) }}\"","title":"xfrm_resource_view"},{"line":128,"text":"\t\t\t\t\t\t\t\t\t\t<xf:if is=\"$xf.visitor.canViewIps() && $description.ip_id\">","title":"xfrm_resource_view"},{"line":129,"text":"\t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ link('resources/update/ip', $description) }}\"","title":"xfrm_resource_view"},{"line":134,"text":"\t\t\t\t\t\t\t\t\t\t<xf:if is=\"$description.canWarn()\">","title":"xfrm_resource_view"},{"line":135,"text":"\t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ link('resources/update/warn', $description) }}\"","title":"xfrm_resource_view"},{"line":138,"text":"\t\t\t\t\t\t\t\t\t\t<xf:elseif is=\"$description.warning_id && $xf.visitor.canViewWarnings()\" />","title":"xfrm_resource_view"},{"line":139,"text":"\t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ link('warnings', {'warning_id': $description.warning_id}) }}\"","title":"xfrm_resource_view"},{"line":168,"text":"\t\t\t\t\t<div class=\"reactionsBar js-reactionsList {{ $description.reactions ? 'is-active' : '' }}\">","title":"xfrm_resource_view"},{"line":169,"text":"\t\t\t\t\t\t<xf:reactions content=\"{$description}\" link=\"resources/update/reactions\" />","title":"xfrm_resource_view"},{"line":172,"text":"\t\t\t\t\t<xf:if is=\"$description.edit_count && $description.canViewHistory()\">","title":"xfrm_resource_view"},{"line":331,"text":"\t\t\t\t\t<div>{{ snippet($update.message, 100, {'stripBbCode': true}) }}</div>","title":"xfrm_resource_view"},{"line":19,"text":"\t\t<div class=\"blockMessage blockMessage--alt blockMessage--small blockMessage--close\">","title":"xfrm_resource_wrapper"},{"line":20,"text":"\t\t\t<xf:contentcheck>{{ prefix_description('resource', $resource.prefix_id) }}</xf:contentcheck>","title":"xfrm_resource_wrapper"},{"line":61,"text":"\t\t\t\t\t<div class=\"p-description\">","title":"xfrm_resource_wrapper_macros"},{"line":108,"text":"\t\t\t\t\t<dd class=\"blockStatus-message blockStatus-message--deleted\">","title":"xfrm_resource_wrapper_macros"},{"line":112,"text":"\t\t\t\t\t<dd class=\"blockStatus-message blockStatus-message--moderated\">","title":"xfrm_resource_wrapper_macros"}],"update":{"message_bytes":6764,"message_sha":"72be6b3055218854fd03ce9cb68906a1123141a78022518e32f494dc456baf77","resource_update_id":4,"source_url":true,"verify_phrase":true}}}
NEWFI121R2_SAFE_REPORT={"changes_made":false,"decision":"PASS_CONTENT207_PUBLIC_RENDER_RCA_CAPTURED","public_probes":{"resource_bust":{"body_bytes":65975,"body_sha256":"8d985e5ba5dfe6f05acf4befcc4fcd4247564714525d69c7b0a2521489851f67","curl_rc":0,"editorial_sources_label":false,"headers":{"cache-control":"private, no-cache, max-age=0","expires":"Thu, 19 Nov 1981 08:52:00 GMT","last-modified":"Fri, 18 Sep 2026 23:36:17 GMT","server":"nginx/1.28.3 (Ubuntu)"},"http":"200","source_url":false,"stderr":"","title":true,"url":"https://newfi.ru/resources/n-yufaundlend-chto-vazhno-znat-o-porode.4/?content207_rca=NEWFI-260919-NEWFDOM-CONTENT207-PUBLICRCA121R2","verify_phrase":false},"resource_nocache":{"body_bytes":65975,"body_sha256":"c2ef9332e95301e9611d6fc5ece6bb715961e2a651d65005c561ed64dd8e3e64","curl_rc":0,"editorial_sources_label":false,"headers":{"cache-control":"private, no-cache, max-age=0","expires":"Thu, 19 Nov 1981 08:52:00 GMT","last-modified":"Fri, 18 Sep 2026 23:36:17 GMT","server":"nginx/1.28.3 (Ubuntu)"},"http":"200","source_url":false,"stderr":"","title":true,"url":"https://newfi.ru/resources/n-yufaundlend-chto-vazhno-znat-o-porode.4/","verify_phrase":false},"resource_normal":{"body_bytes":65975,"body_sha256":"f0110b8de5364b52bcf9d17d3dc639a4e723e3d609bc897e814f38a8ed947621","curl_rc":0,"editorial_sources_label":false,"headers":{"cache-control":"private, no-cache, max-age=0","expires":"Thu, 19 Nov 1981 08:52:00 GMT","last-modified":"Fri, 18 Sep 2026 23:36:17 GMT","server":"nginx/1.28.3 (Ubuntu)"},"http":"200","source_url":false,"stderr":"","title":true,"url":"https://newfi.ru/resources/n-yufaundlend-chto-vazhno-znat-o-porode.4/","verify_phrase":false},"update_bust":{"body_bytes":65975,"body_sha256":"6e81140c90194a9fafa693b981c5c3a171b8157e9a2fb30e8bbf2158b06f36f8","curl_rc":0,"editorial_sources_label":false,"headers":{"cache-control":"private, no-cache, max-age=0","expires":"Thu, 19 Nov 1981 08:52:00 GMT","last-modified":"Fri, 18 Sep 2026 23:36:18 GMT","server":"nginx/1.28.3 (Ubuntu)"},"http":"200","source_url":false,"stderr":"","title":true,"url":"https://newfi.ru/resources/n-yufaundlend-chto-vazhno-znat-o-porode.4/update/4/?content207_rca=NEWFI-260919-NEWFDOM-CONTENT207-PUBLICRCA121R2","verify_phrase":false},"update_normal":{"body_bytes":65975,"body_sha256":"9ca709a8ef1a6e7b9396737e8c0d7496eb488a1d62dc5b30dede7ebfbbb1a1ac","curl_rc":0,"editorial_sources_label":false,"headers":{"cache-control":"private, no-cache, max-age=0","expires":"Thu, 19 Nov 1981 08:52:00 GMT","last-modified":"Fri, 18 Sep 2026 23:36:17 GMT","server":"nginx/1.28.3 (Ubuntu)"},"http":"200","source_url":false,"stderr":"","title":true,"url":"https://newfi.ru/resources/n-yufaundlend-chto-vazhno-znat-o-porode.4/update/4/","verify_phrase":false}},"resource_link":"https://newfi.ru/resources/n-yufaundlend-chto-vazhno-znat-o-porode.4/","source_scan_count":3,"template_hit_count":112,"update_link":"https://newfi.ru/resources/n-yufaundlend-chto-vazhno-znat-o-porode.4/update/4/"}
NEWFI121R2_DECISION=PASS_CONTENT207_PUBLIC_RENDER_RCA_CAPTURED
NEWFI121R2_NEXT_GATE=BUILD_CONTENT207_PUBLIC_VISIBILITY_SAFE_RESUME

OUTPUT_END
CHAT_OUTPUT_END
