diff --git a/runtime/history/NEWFI-260909-NEWFDOM-PORTAL-OFFLINE-DRYRUN78.json b/runtime/history/NEWFI-260909-NEWFDOM-PORTAL-OFFLINE-DRYRUN78.json new file mode 100644 index 00000000..4f176880 --- /dev/null +++ b/runtime/history/NEWFI-260909-NEWFDOM-PORTAL-OFFLINE-DRYRUN78.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "NEWFI-260909-NEWFDOM-PORTAL-OFFLINE-DRYRUN78", + "status": "FAIL", + "rc": 1, + "host": "pve01", + "mode": "read-only", + "component": "newfi-portal-offline-candidate-dryrun", + "started_at_utc": "2026-09-09T10:57:54Z", + "finished_at_utc": "2026-09-09T10:57:54Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "c3b9b00de74914c64d2001c328bb872d18faebaca599d34eeb68f4a5a98e2b9a", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": false, + "result_contract_valid": true, + "result_contract_status": null, + "result_contract_error": null, + "command_rc": 1, + "changes_made": false, + "rollback_started": false, + "rollback_restored": null, + "mutation_outcome": "NO_MUTATION", + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "f919de6ee921394c1ca79153b63ee348663947fa130acf0edf87d939991889f8", + "sanitized_output_sha256": "f919de6ee921394c1ca79153b63ee348663947fa130acf0edf87d939991889f8", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "NEWFI78_BEGIN\nCOMMAND_ID=NEWFI-260909-NEWFDOM-PORTAL-OFFLINE-DRYRUN78\nERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nRUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\nGRAM_SUPPORT_WRITER_LOCK=RESPECTED\nSERVER_SCOPE=PVE01_GIT_WORKTREE_ONLY\nVM210_ACCESS=NONE\nVM211_ACCESS=NONE\nGRAM_SUPPORT_ACCESS=NONE\nNEWFI78_GIT={\"branch\":\"implementation/newfi-closed-mvp-20260906\",\"clean\":true,\"exact\":true,\"head\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"remote_head\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\"}\nNEWFI78_SOURCE_FILE={\"bytes\":363,\"matches_expected\":true,\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\",\"state\":\"OK\"}\nNEWFI78_SOURCE_FILE={\"bytes\":5213,\"matches_expected\":true,\"rel\":\"Service/PortalData.php\",\"sha256\":\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\",\"state\":\"OK\"}\nNEWFI78_SOURCE_FILE={\"bytes\":11021,\"matches_expected\":true,\"rel\":\"_data/templates.xml\",\"sha256\":\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\",\"state\":\"OK\"}\nNEWFI78_EXCEPTION=ValueError:SECTION_CARDINALITY:gallery:0\nTraceback (most recent call last):\n File \"\", line 1, in \n import base64,zlib;b=zlib.decompress(base64.b64decode(\"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\"));exec(compile(b,\"\",\"exec\"))\n ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"\", line 199, in \n File \"\", line 152, in main\n File \"\", line 79, in find_section\nValueError: SECTION_CARDINALITY:gallery:0\n" +} diff --git a/runtime/history/NEWFI-260909-NEWFDOM-PORTAL-OFFLINE-DRYRUN78.txt b/runtime/history/NEWFI-260909-NEWFDOM-PORTAL-OFFLINE-DRYRUN78.txt new file mode 100644 index 00000000..fe78041c --- /dev/null +++ b/runtime/history/NEWFI-260909-NEWFDOM-PORTAL-OFFLINE-DRYRUN78.txt @@ -0,0 +1,56 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=NEWFI-260909-NEWFDOM-PORTAL-OFFLINE-DRYRUN78 +STATUS=FAIL +RC=1 +HOST=pve01 +MODE=read-only +COMPONENT=newfi-portal-offline-candidate-dryrun +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=c3b9b00de74914c64d2001c328bb872d18faebaca599d34eeb68f4a5a98e2b9a +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=1 +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=f919de6ee921394c1ca79153b63ee348663947fa130acf0edf87d939991889f8 +SANITIZED_OUTPUT_SHA256=f919de6ee921394c1ca79153b63ee348663947fa130acf0edf87d939991889f8 +OUTPUT_BEGIN +NEWFI78_BEGIN +COMMAND_ID=NEWFI-260909-NEWFDOM-PORTAL-OFFLINE-DRYRUN78 +ERROR_REGISTER_CHECK=OK +REFERENCE_CHECK=OK +AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED +RUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d +GRAM_SUPPORT_WRITER_LOCK=RESPECTED +SERVER_SCOPE=PVE01_GIT_WORKTREE_ONLY +VM210_ACCESS=NONE +VM211_ACCESS=NONE +GRAM_SUPPORT_ACCESS=NONE +NEWFI78_GIT={"branch":"implementation/newfi-closed-mvp-20260906","clean":true,"exact":true,"head":"a1efc08a15ba91971c2297d886b25ca2097e6935","remote_head":"a1efc08a15ba91971c2297d886b25ca2097e6935"} +NEWFI78_SOURCE_FILE={"bytes":363,"matches_expected":true,"rel":"Pub/Controller/Portal.php","sha256":"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d","state":"OK"} +NEWFI78_SOURCE_FILE={"bytes":5213,"matches_expected":true,"rel":"Service/PortalData.php","sha256":"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d","state":"OK"} +NEWFI78_SOURCE_FILE={"bytes":11021,"matches_expected":true,"rel":"_data/templates.xml","sha256":"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28","state":"OK"} +NEWFI78_EXCEPTION=ValueError:SECTION_CARDINALITY:gallery:0 +Traceback (most recent call last): + File "", line 1, in + import base64,zlib;b=zlib.decompress(base64.b64decode("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"));exec(compile(b,"","exec")) + ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 199, in + File "", line 152, in main + File "", line 79, in find_section +ValueError: SECTION_CARDINALITY:gallery:0 + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 9e1dcae3..4f176880 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "SUPPORT-260909-GRAM-XF-DATATYPE-EVIDENCE-046", + "command_id": "NEWFI-260909-NEWFDOM-PORTAL-OFFLINE-DRYRUN78", "status": "FAIL", - "rc": 3, + "rc": 1, "host": "pve01", "mode": "read-only", - "component": "gram-support-datatype-evidence", - "started_at_utc": "2026-09-09T10:57:31Z", - "finished_at_utc": "2026-09-09T10:57:33Z", + "component": "newfi-portal-offline-candidate-dryrun", + "started_at_utc": "2026-09-09T10:57:54Z", + "finished_at_utc": "2026-09-09T10:57:54Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "2912e8a38ca2a4553f5608d66d932f5b7b402cf92eec4c3b93e2f683c18002c4", + "command_sha256": "c3b9b00de74914c64d2001c328bb872d18faebaca599d34eeb68f4a5a98e2b9a", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, @@ -21,7 +21,7 @@ "result_contract_valid": true, "result_contract_status": null, "result_contract_error": null, - "command_rc": 3, + "command_rc": 1, "changes_made": false, "rollback_started": false, "rollback_restored": null, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "d3105032468f050c04b0fb02bcd7ea00c487c07fa27ba6fa7d2f74292c00fd8b", - "sanitized_output_sha256": "d3105032468f050c04b0fb02bcd7ea00c487c07fa27ba6fa7d2f74292c00fd8b", + "raw_evidence_sha256": "f919de6ee921394c1ca79153b63ee348663947fa130acf0edf87d939991889f8", + "sanitized_output_sha256": "f919de6ee921394c1ca79153b63ee348663947fa130acf0edf87d939991889f8", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "SUPPORT046_BEGIN\nERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nRUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\nSUPPORT046_QGA_STATE={\"exitcode\":3,\"state\":\"GUEST_HOLD\"}\nSUPPORT046_VM211={\"artifact_sha256\":\"c20ca0744835ab3e6d7e4d944923a51e86cc53ffa7371a1a58b72b13453a8b3b\",\"candidate\":{\"code_event_listeners.xml\":{\"attrs\":[\"active\",\"callback_class\",\"callback_method\",\"event_id\",\"execute_order\"],\"child_tags\":[\"listener\"],\"nested_tags\":[],\"root\":\"code_event_listeners\"},\"content_type_fields.xml\":{\"attrs\":[\"content_type\",\"field_name\"],\"child_tags\":[\"field\"],\"nested_tags\":[],\"root\":\"content_type_fields\"},\"option_groups.xml\":{\"attrs\":[\"debug_only\",\"display_order\",\"group_id\"],\"child_tags\":[\"group\"],\"nested_tags\":[],\"root\":\"option_groups\"},\"options.xml\":{\"attrs\":[\"data_type\",\"edit_format\",\"option_id\"],\"child_tags\":[\"option\"],\"nested_tags\":[\"default_value\",\"relation\"],\"root\":\"options\"},\"permission_interface_groups.xml\":{\"attrs\":[\"display_order\",\"interface_group_id\",\"is_moderator\"],\"child_tags\":[\"interface_group\"],\"nested_tags\":[],\"root\":\"permission_interface_groups\"},\"permissions.xml\":{\"attrs\":[\"display_order\",\"interface_group_id\",\"permission_group_id\",\"permission_id\",\"permission_type\"],\"child_tags\":[\"permission\"],\"nested_tags\":[],\"root\":\"permissions\"},\"phrases.xml\":{\"attrs\":[\"title\",\"version_id\",\"version_string\"],\"child_tags\":[\"phrase\"],\"nested_tags\":[],\"root\":\"phrases\"},\"routes.xml\":{\"attrs\":[\"action_prefix\",\"context\",\"controller\",\"format\",\"route_prefix\",\"route_type\",\"sub_name\"],\"child_tags\":[\"route\"],\"nested_tags\":[],\"root\":\"routes\"},\"template_modifications.xml\":{\"attrs\":[\"action\",\"description\",\"enabled\",\"execution_order\",\"modification_key\",\"template\",\"type\"],\"child_tags\":[\"modification\"],\"nested_tags\":[\"find\",\"replace\"],\"root\":\"template_modifications\"},\"templates.xml\":{\"attrs\":[\"title\",\"type\",\"version_id\",\"version_string\"],\"child_tags\":[\"template\"],\"nested_tags\":[],\"root\":\"templates\"}},\"command_id\":\"SUPPORT-260909-GRAM-XF-DATATYPE-EVIDENCE-046\",\"db\":{\"addon\":0,\"board_active\":\"0\",\"errors_after_43\":1,\"options\":0,\"phrases\":0,\"routes\":0,\"tables\":0,\"templates\":0},\"decision\":\"HOLD\",\"evidence\":{\"datatypes\":{\"code_event_listeners.xml\":{\"class\":\"XF\\\\AddOn\\\\DataType\\\\CodeEventListener\",\"exists\":true,\"exportAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":2},\"exportAddOnData_source\":{\"end_line\":40,\"file\":\"src/XF/AddOn/DataType/CodeEventListener.php\",\"lines\":[{\"line\":26,\"text\":\"\\tpublic function exportAddOnData($addOnId, \\\\DOMElement $container)\"},{\"line\":27,\"text\":\"\\t{\"},{\"line\":28,\"text\":\"\\t\\t$entries = $this->finder()\"},{\"line\":29,\"text\":\"\\t\\t\\t->where('addon_id', $addOnId)\"},{\"line\":30,\"text\":\"\\t\\t\\t->order(['event_id', 'callback_class', 'callback_method'])->fetch();\"},{\"line\":31,\"text\":\"\"},{\"line\":32,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":33,\"text\":\"\\t\\t{\"},{\"line\":34,\"text\":\"\\t\\t\\t$node = $container->ownerDocument->createElement($this->getChildTag());\"},{\"line\":35,\"text\":\"\\t\\t\\t$this->exportMappedAttributes($node, $entry);\"},{\"line\":36,\"text\":\"\\t\\t\\t$container->appendChild($node);\"},{\"line\":37,\"text\":\"\\t\\t}\"},{\"line\":38,\"text\":\"\"},{\"line\":39,\"text\":\"\\t\\treturn $entries->count() ? true : false;\"},{\"line\":40,\"text\":\"\\t}\"}],\"sha256\":\"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab\",\"start_line\":26},\"getChildTag\":{\"ok\":true,\"value\":\"listener\"},\"getChildTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getChildTag_source\":{\"end_line\":24,\"file\":\"src/XF/AddOn/DataType/CodeEventListener.php\",\"lines\":[{\"line\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'listener';\"},{\"line\":24,\"text\":\"\\t}\"}],\"sha256\":\"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab\",\"start_line\":21},\"getContainerTag\":{\"ok\":true,\"value\":\"code_event_listeners\"},\"getContainerTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getContainerTag_source\":{\"end_line\":19,\"file\":\"src/XF/AddOn/DataType/CodeEventListener.php\",\"lines\":[{\"line\":16,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":17,\"text\":\"\\t{\"},{\"line\":18,\"text\":\"\\t\\treturn 'code_event_listeners';\"},{\"line\":19,\"text\":\"\\t}\"}],\"sha256\":\"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab\",\"start_line\":16},\"getEntityId_sig\":null,\"getEntityId_source\":null,\"getEntityShortName_sig\":null,\"getEntityShortName_source\":null,\"getMaintainedAttributes\":{\"ok\":true,\"value\":[]},\"getMaintainedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMaintainedAttributes_source\":{\"end_line\":182,\"file\":\"src/XF/AddOn/DataType/AbstractDataType.php\",\"lines\":[{\"line\":179,\"text\":\"\\tprotected function getMaintainedAttributes()\"},{\"line\":180,\"text\":\"\\t{\"},{\"line\":181,\"text\":\"\\t\\treturn [];\"},{\"line\":182,\"text\":\"\\t}\"}],\"sha256\":\"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815\",\"start_line\":179},\"getMappedAttributes\":{\"ok\":true,\"value\":[\"event_id\",\"execute_order\",\"callback_class\",\"callback_method\",\"active\",\"hint\",\"description\"]},\"getMappedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMappedAttributes_source\":{\"end_line\":138,\"file\":\"src/XF/AddOn/DataType/CodeEventListener.php\",\"lines\":[{\"line\":127,\"text\":\"\\tprotected function getMappedAttributes()\"},{\"line\":128,\"text\":\"\\t{\"},{\"line\":129,\"text\":\"\\t\\treturn [\"},{\"line\":130,\"text\":\"\\t\\t\\t'event_id',\"},{\"line\":131,\"text\":\"\\t\\t\\t'execute_order',\"},{\"line\":132,\"text\":\"\\t\\t\\t'callback_class',\"},{\"line\":133,\"text\":\"\\t\\t\\t'callback_method',\"},{\"line\":134,\"text\":\"\\t\\t\\t'active',\"},{\"line\":135,\"text\":\"\\t\\t\\t'hint',\"},{\"line\":136,\"text\":\"\\t\\t\\t'description',\"},{\"line\":137,\"text\":\"\\t\\t];\"},{\"line\":138,\"text\":\"\\t}\"}],\"sha256\":\"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab\",\"start_line\":127},\"importAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false},{\"name\":\"start\",\"required\":false,\"variadic\":false},{\"name\":\"maxRunTime\",\"required\":false,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":4},\"importAddOnData_source\":{\"end_line\":86,\"file\":\"src/XF/AddOn/DataType/CodeEventListener.php\",\"lines\":[{\"line\":42,\"text\":\"\\tpublic function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)\"},{\"line\":43,\"text\":\"\\t{\"},{\"line\":44,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":45,\"text\":\"\"},{\"line\":46,\"text\":\"\\t\\t$entries = $this->getEntries($container, $start);\"},{\"line\":47,\"text\":\"\\t\\tif (!$entries)\"},{\"line\":48,\"text\":\"\\t\\t{\"},{\"line\":49,\"text\":\"\\t\\t\\treturn false;\"},{\"line\":50,\"text\":\"\\t\\t}\"},{\"line\":51,\"text\":\"\"},{\"line\":52,\"text\":\"\\t\\t$existing = [];\"},{\"line\":53,\"text\":\"\\t\\tforeach ($this->findAllForType($addOnId)->fetch() AS $listener)\"},{\"line\":54,\"text\":\"\\t\\t{\"},{\"line\":55,\"text\":\"\\t\\t\\t$existing[$listener->getAddOnUniqueKey()] = $listener;\"},{\"line\":56,\"text\":\"\\t\\t}\"},{\"line\":57,\"text\":\"\"},{\"line\":58,\"text\":\"\\t\\t$i = 0;\"},{\"line\":59,\"text\":\"\\t\\t$last = 0;\"},{\"line\":60,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":61,\"text\":\"\\t\\t{\"},{\"line\":62,\"text\":\"\\t\\t\\t$i++;\"},{\"line\":63,\"text\":\"\"},{\"line\":64,\"text\":\"\\t\\t\\tif ($i <= $start)\"},{\"line\":65,\"text\":\"\\t\\t\\t{\"},{\"line\":66,\"text\":\"\\t\\t\\t\\tcontinue;\"},{\"line\":67,\"text\":\"\\t\\t\\t}\"},{\"line\":68,\"text\":\"\"},{\"line\":69,\"text\":\"\\t\\t\\t$key = $this->getAddOnUniqueKeyFromXml($entry);\"},{\"line\":70,\"text\":\"\\t\\t\\t$entity = $existing[$key] ?? $this->create();\"},{\"line\":71,\"text\":\"\"},{\"line\":72,\"text\":\"\\t\\t\\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);\"},{\"line\":73,\"text\":\"\\t\\t\\t$entity->setOption('check_duplicate', false);\"},{\"line\":74,\"text\":\"\\t\\t\\t$this->importMappedAttributes($entry, $entity);\"},{\"line\":75,\"text\":\"\\t\\t\\t$entity->addon_id = $addOnId;\"},{\"line\":76,\"text\":\"\"},{\"line\":77,\"text\":\"\\t\\t\\t$entity->save(true, false);\"},{\"line\":78,\"text\":\"\"},{\"line\":79,\"text\":\"\\t\\t\\tif ($this->resume($maxRunTime, $startTime))\"},{\"line\":80,\"text\":\"\\t\\t\\t{\"},{\"line\":81,\"text\":\"\\t\\t\\t\\t$last = $i;\"},{\"line\":82,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":83,\"text\":\"\\t\\t\\t}\"},{\"line\":84,\"text\":\"\\t\\t}\"},{\"line\":85,\"text\":\"\\t\\treturn ($last ?: false);\"},{\"line\":86,\"text\":\"\\t}\"}],\"sha256\":\"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab\",\"start_line\":42}},\"content_type_fields.xml\":{\"class\":\"XF\\\\AddOn\\\\DataType\\\\ContentTypeField\",\"exists\":true,\"exportAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":2},\"exportAddOnData_source\":{\"end_line\":45,\"file\":\"src/XF/AddOn/DataType/ContentTypeField.php\",\"lines\":[{\"line\":26,\"text\":\"\\tpublic function exportAddOnData($addOnId, \\\\DOMElement $container)\"},{\"line\":27,\"text\":\"\\t{\"},{\"line\":28,\"text\":\"\\t\\t$entries = $this->finder()\"},{\"line\":29,\"text\":\"\\t\\t\\t->where('addon_id', $addOnId)\"},{\"line\":30,\"text\":\"\\t\\t\\t->order(['content_type', 'field_name'])->fetch();\"},{\"line\":31,\"text\":\"\"},{\"line\":32,\"text\":\"\\t\\t$doc = $container->ownerDocument;\"},{\"line\":33,\"text\":\"\"},{\"line\":34,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":35,\"text\":\"\\t\\t{\"},{\"line\":36,\"text\":\"\\t\\t\\t$node = $doc->createElement($this->getChildTag());\"},{\"line\":37,\"text\":\"\"},{\"line\":38,\"text\":\"\\t\\t\\t$this->exportMappedAttributes($node, $entry);\"},{\"line\":39,\"text\":\"\\t\\t\\t$node->appendChild($doc->createTextNode($entry->field_value));\"},{\"line\":40,\"text\":\"\"},{\"line\":41,\"text\":\"\\t\\t\\t$container->appendChild($node);\"},{\"line\":42,\"text\":\"\\t\\t}\"},{\"line\":43,\"text\":\"\"},{\"line\":44,\"text\":\"\\t\\treturn $entries->count() ? true : false;\"},{\"line\":45,\"text\":\"\\t}\"}],\"sha256\":\"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594\",\"start_line\":26},\"getChildTag\":{\"ok\":true,\"value\":\"field\"},\"getChildTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getChildTag_source\":{\"end_line\":24,\"file\":\"src/XF/AddOn/DataType/ContentTypeField.php\",\"lines\":[{\"line\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'field';\"},{\"line\":24,\"text\":\"\\t}\"}],\"sha256\":\"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594\",\"start_line\":21},\"getContainerTag\":{\"ok\":true,\"value\":\"content_type_fields\"},\"getContainerTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getContainerTag_source\":{\"end_line\":19,\"file\":\"src/XF/AddOn/DataType/ContentTypeField.php\",\"lines\":[{\"line\":16,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":17,\"text\":\"\\t{\"},{\"line\":18,\"text\":\"\\t\\treturn 'content_type_fields';\"},{\"line\":19,\"text\":\"\\t}\"}],\"sha256\":\"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594\",\"start_line\":16},\"getEntityId_sig\":null,\"getEntityId_source\":null,\"getEntityShortName_sig\":null,\"getEntityShortName_source\":null,\"getMaintainedAttributes\":{\"ok\":true,\"value\":[]},\"getMaintainedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMaintainedAttributes_source\":{\"end_line\":182,\"file\":\"src/XF/AddOn/DataType/AbstractDataType.php\",\"lines\":[{\"line\":179,\"text\":\"\\tprotected function getMaintainedAttributes()\"},{\"line\":180,\"text\":\"\\t{\"},{\"line\":181,\"text\":\"\\t\\treturn [];\"},{\"line\":182,\"text\":\"\\t}\"}],\"sha256\":\"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815\",\"start_line\":179},\"getMappedAttributes\":{\"ok\":true,\"value\":[\"content_type\",\"field_name\"]},\"getMappedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMappedAttributes_source\":{\"end_line\":138,\"file\":\"src/XF/AddOn/DataType/ContentTypeField.php\",\"lines\":[{\"line\":132,\"text\":\"\\tprotected function getMappedAttributes()\"},{\"line\":133,\"text\":\"\\t{\"},{\"line\":134,\"text\":\"\\t\\treturn [\"},{\"line\":135,\"text\":\"\\t\\t\\t'content_type',\"},{\"line\":136,\"text\":\"\\t\\t\\t'field_name',\"},{\"line\":137,\"text\":\"\\t\\t];\"},{\"line\":138,\"text\":\"\\t}\"}],\"sha256\":\"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594\",\"start_line\":132},\"importAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false},{\"name\":\"start\",\"required\":false,\"variadic\":false},{\"name\":\"maxRunTime\",\"required\":false,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":4},\"importAddOnData_source\":{\"end_line\":88,\"file\":\"src/XF/AddOn/DataType/ContentTypeField.php\",\"lines\":[{\"line\":47,\"text\":\"\\tpublic function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)\"},{\"line\":48,\"text\":\"\\t{\"},{\"line\":49,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":50,\"text\":\"\"},{\"line\":51,\"text\":\"\\t\\t$entries = $this->getEntries($container, $start);\"},{\"line\":52,\"text\":\"\\t\\tif (!$entries)\"},{\"line\":53,\"text\":\"\\t\\t{\"},{\"line\":54,\"text\":\"\\t\\t\\treturn false;\"},{\"line\":55,\"text\":\"\\t\\t}\"},{\"line\":56,\"text\":\"\"},{\"line\":57,\"text\":\"\\t\\t$existing = $this->finder()->fetch()->groupBy('content_type', 'field_name');\"},{\"line\":58,\"text\":\"\"},{\"line\":59,\"text\":\"\\t\\t$i = 0;\"},{\"line\":60,\"text\":\"\\t\\t$last = 0;\"},{\"line\":61,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":62,\"text\":\"\\t\\t{\"},{\"line\":63,\"text\":\"\\t\\t\\t$i++;\"},{\"line\":64,\"text\":\"\"},{\"line\":65,\"text\":\"\\t\\t\\tif ($i <= $start)\"},{\"line\":66,\"text\":\"\\t\\t\\t{\"},{\"line\":67,\"text\":\"\\t\\t\\t\\tcontinue;\"},{\"line\":68,\"text\":\"\\t\\t\\t}\"},{\"line\":69,\"text\":\"\"},{\"line\":70,\"text\":\"\\t\\t\\t$type = (string) $entry['content_type'];\"},{\"line\":71,\"text\":\"\\t\\t\\t$name = (string) $entry['field_name'];\"},{\"line\":72,\"text\":\"\\t\\t\\t$entity = $existing[$type][$name] ?? $this->create();\"},{\"line\":73,\"text\":\"\"},{\"line\":74,\"text\":\"\\t\\t\\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);\"},{\"line\":75,\"text\":\"\\t\\t\\t$this->importMappedAttributes($entry, $entity);\"},{\"line\":76,\"text\":\"\\t\\t\\t$entity->field_value = (string) $entry;\"},{\"line\":77,\"text\":\"\\t\\t\\t$entity->addon_id = $addOnId;\"},{\"line\":78,\"text\":\"\"},{\"line\":79,\"text\":\"\\t\\t\\t$entity->save(true, false);\"},{\"line\":80,\"text\":\"\"},{\"line\":81,\"text\":\"\\t\\t\\tif ($this->resume($maxRunTime, $startTime))\"},{\"line\":82,\"text\":\"\\t\\t\\t{\"},{\"line\":83,\"text\":\"\\t\\t\\t\\t$last = $i;\"},{\"line\":84,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":85,\"text\":\"\\t\\t\\t}\"},{\"line\":86,\"text\":\"\\t\\t}\"},{\"line\":87,\"text\":\"\\t\\treturn ($last ?: false);\"},{\"line\":88,\"text\":\"\\t}\"}],\"sha256\":\"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594\",\"start_line\":47}},\"option_groups.xml\":{\"class\":\"XF\\\\AddOn\\\\DataType\\\\OptionGroup\",\"exists\":true,\"exportAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":2},\"exportAddOnData_source\":{\"end_line\":40,\"file\":\"src/XF/AddOn/DataType/OptionGroup.php\",\"lines\":[{\"line\":24,\"text\":\"\\tpublic function exportAddOnData($addOnId, \\\\DOMElement $container)\"},{\"line\":25,\"text\":\"\\t{\"},{\"line\":26,\"text\":\"\\t\\t$entries = $this->finder()\"},{\"line\":27,\"text\":\"\\t\\t\\t->where('addon_id', $addOnId)\"},{\"line\":28,\"text\":\"\\t\\t\\t->order('group_id')->fetch();\"},{\"line\":29,\"text\":\"\"},{\"line\":30,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":31,\"text\":\"\\t\\t{\"},{\"line\":32,\"text\":\"\\t\\t\\t$node = $container->ownerDocument->createElement($this->getChildTag());\"},{\"line\":33,\"text\":\"\"},{\"line\":34,\"text\":\"\\t\\t\\t$this->exportMappedAttributes($node, $entry);\"},{\"line\":35,\"text\":\"\"},{\"line\":36,\"text\":\"\\t\\t\\t$container->appendChild($node);\"},{\"line\":37,\"text\":\"\\t\\t}\"},{\"line\":38,\"text\":\"\"},{\"line\":39,\"text\":\"\\t\\treturn $entries->count() ? true : false;\"},{\"line\":40,\"text\":\"\\t}\"}],\"sha256\":\"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da\",\"start_line\":24},\"getChildTag\":{\"ok\":true,\"value\":\"group\"},\"getChildTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getChildTag_source\":{\"end_line\":22,\"file\":\"src/XF/AddOn/DataType/OptionGroup.php\",\"lines\":[{\"line\":19,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":20,\"text\":\"\\t{\"},{\"line\":21,\"text\":\"\\t\\treturn 'group';\"},{\"line\":22,\"text\":\"\\t}\"}],\"sha256\":\"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da\",\"start_line\":19},\"getContainerTag\":{\"ok\":true,\"value\":\"option_groups\"},\"getContainerTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getContainerTag_source\":{\"end_line\":17,\"file\":\"src/XF/AddOn/DataType/OptionGroup.php\",\"lines\":[{\"line\":14,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":15,\"text\":\"\\t{\"},{\"line\":16,\"text\":\"\\t\\treturn 'option_groups';\"},{\"line\":17,\"text\":\"\\t}\"}],\"sha256\":\"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da\",\"start_line\":14},\"getEntityId_sig\":null,\"getEntityId_source\":null,\"getEntityShortName_sig\":null,\"getEntityShortName_source\":null,\"getMaintainedAttributes\":{\"ok\":true,\"value\":[]},\"getMaintainedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMaintainedAttributes_source\":{\"end_line\":182,\"file\":\"src/XF/AddOn/DataType/AbstractDataType.php\",\"lines\":[{\"line\":179,\"text\":\"\\tprotected function getMaintainedAttributes()\"},{\"line\":180,\"text\":\"\\t{\"},{\"line\":181,\"text\":\"\\t\\treturn [];\"},{\"line\":182,\"text\":\"\\t}\"}],\"sha256\":\"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815\",\"start_line\":179},\"getMappedAttributes\":{\"ok\":true,\"value\":[\"group_id\",\"icon\",\"display_order\",\"debug_only\"]},\"getMappedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMappedAttributes_source\":{\"end_line\":96,\"file\":\"src/XF/AddOn/DataType/OptionGroup.php\",\"lines\":[{\"line\":88,\"text\":\"\\tprotected function getMappedAttributes()\"},{\"line\":89,\"text\":\"\\t{\"},{\"line\":90,\"text\":\"\\t\\treturn [\"},{\"line\":91,\"text\":\"\\t\\t\\t'group_id',\"},{\"line\":92,\"text\":\"\\t\\t\\t'icon',\"},{\"line\":93,\"text\":\"\\t\\t\\t'display_order',\"},{\"line\":94,\"text\":\"\\t\\t\\t'debug_only',\"},{\"line\":95,\"text\":\"\\t\\t];\"},{\"line\":96,\"text\":\"\\t}\"}],\"sha256\":\"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da\",\"start_line\":88},\"importAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false},{\"name\":\"start\",\"required\":false,\"variadic\":false},{\"name\":\"maxRunTime\",\"required\":false,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":4},\"importAddOnData_source\":{\"end_line\":81,\"file\":\"src/XF/AddOn/DataType/OptionGroup.php\",\"lines\":[{\"line\":42,\"text\":\"\\tpublic function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)\"},{\"line\":43,\"text\":\"\\t{\"},{\"line\":44,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":45,\"text\":\"\"},{\"line\":46,\"text\":\"\\t\\t$entries = $this->getEntries($container, $start);\"},{\"line\":47,\"text\":\"\\t\\tif (!$entries)\"},{\"line\":48,\"text\":\"\\t\\t{\"},{\"line\":49,\"text\":\"\\t\\t\\treturn false;\"},{\"line\":50,\"text\":\"\\t\\t}\"},{\"line\":51,\"text\":\"\"},{\"line\":52,\"text\":\"\\t\\t$ids = $this->pluckXmlAttribute($entries, 'group_id');\"},{\"line\":53,\"text\":\"\\t\\t$existing = $this->findByIds($ids);\"},{\"line\":54,\"text\":\"\"},{\"line\":55,\"text\":\"\\t\\t$i = 0;\"},{\"line\":56,\"text\":\"\\t\\t$last = 0;\"},{\"line\":57,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":58,\"text\":\"\\t\\t{\"},{\"line\":59,\"text\":\"\\t\\t\\t$id = $ids[$i++];\"},{\"line\":60,\"text\":\"\"},{\"line\":61,\"text\":\"\\t\\t\\tif ($i <= $start)\"},{\"line\":62,\"text\":\"\\t\\t\\t{\"},{\"line\":63,\"text\":\"\\t\\t\\t\\tcontinue;\"},{\"line\":64,\"text\":\"\\t\\t\\t}\"},{\"line\":65,\"text\":\"\"},{\"line\":66,\"text\":\"\\t\\t\\t$entity = $existing[$id] ?? $this->create();\"},{\"line\":67,\"text\":\"\"},{\"line\":68,\"text\":\"\\t\\t\\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);\"},{\"line\":69,\"text\":\"\\t\\t\\t$this->importMappedAttributes($entry, $entity);\"},{\"line\":70,\"text\":\"\\t\\t\\t$entity->addon_id = $addOnId;\"},{\"line\":71,\"text\":\"\"},{\"line\":72,\"text\":\"\\t\\t\\t$entity->save(true, false);\"},{\"line\":73,\"text\":\"\"},{\"line\":74,\"text\":\"\\t\\t\\tif ($this->resume($maxRunTime, $startTime))\"},{\"line\":75,\"text\":\"\\t\\t\\t{\"},{\"line\":76,\"text\":\"\\t\\t\\t\\t$last = $i;\"},{\"line\":77,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":78,\"text\":\"\\t\\t\\t}\"},{\"line\":79,\"text\":\"\\t\\t}\"},{\"line\":80,\"text\":\"\\t\\treturn ($last ?: false);\"},{\"line\":81,\"text\":\"\\t}\"}],\"sha256\":\"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da\",\"start_line\":42}},\"options.xml\":{\"class\":\"XF\\\\AddOn\\\\DataType\\\\Option\",\"exists\":true,\"exportAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":2},\"exportAddOnData_source\":{\"end_line\":62,\"file\":\"src/XF/AddOn/DataType/Option.php\",\"lines\":[{\"line\":27,\"text\":\"\\tpublic function exportAddOnData($addOnId, \\\\DOMElement $container)\"},{\"line\":28,\"text\":\"\\t{\"},{\"line\":29,\"text\":\"\\t\\t$entries = $this->finder()\"},{\"line\":30,\"text\":\"\\t\\t\\t->where('addon_id', $addOnId)\"},{\"line\":31,\"text\":\"\\t\\t\\t->order('option_id')->fetch();\"},{\"line\":32,\"text\":\"\"},{\"line\":33,\"text\":\"\\t\\t$doc = $container->ownerDocument;\"},{\"line\":34,\"text\":\"\"},{\"line\":35,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":36,\"text\":\"\\t\\t{\"},{\"line\":37,\"text\":\"\\t\\t\\t$node = $doc->createElement($this->getChildTag());\"},{\"line\":38,\"text\":\"\"},{\"line\":39,\"text\":\"\\t\\t\\t$this->exportMappedAttributes($node, $entry);\"},{\"line\":40,\"text\":\"\\t\\t\\t$node->appendChild(Xml::createDomElement($doc, 'default_value', $entry->getValue('default_value')));\"},{\"line\":41,\"text\":\"\\t\\t\\tif ($entry->edit_format_params !== '')\"},{\"line\":42,\"text\":\"\\t\\t\\t{\"},{\"line\":43,\"text\":\"\\t\\t\\t\\t$node->appendChild(Xml::createDomElement($doc, 'edit_format_params', $entry->edit_format_params));\"},{\"line\":44,\"text\":\"\\t\\t\\t}\"},{\"line\":45,\"text\":\"\\t\\t\\tif ($entry->sub_options)\"},{\"line\":46,\"text\":\"\\t\\t\\t{\"},{\"line\":47,\"text\":\"\\t\\t\\t\\t$node->appendChild(Xml::createDomElement($doc, 'sub_options', implode(\\\"\\\\n\\\", $entry->sub_options)));\"},{\"line\":48,\"text\":\"\\t\\t\\t}\"},{\"line\":49,\"text\":\"\"},{\"line\":50,\"text\":\"\\t\\t\\tforeach ($entry->Relations AS $relation)\"},{\"line\":51,\"text\":\"\\t\\t\\t{\"},{\"line\":52,\"text\":\"\\t\\t\\t\\t$relationNode = $doc->createElement('relation');\"},{\"line\":53,\"text\":\"\\t\\t\\t\\t$relationNode->setAttribute('group_id', $relation->group_id);\"},{\"line\":54,\"text\":\"\\t\\t\\t\\t$relationNode->setAttribute('display_order', $relation->display_order);\"},{\"line\":55,\"text\":\"\\t\\t\\t\\t$node->appendChild($relationNode);\"},{\"line\":56,\"text\":\"\\t\\t\\t}\"},{\"line\":57,\"text\":\"\"},{\"line\":58,\"text\":\"\\t\\t\\t$container->appendChild($node);\"},{\"line\":59,\"text\":\"\\t\\t}\"},{\"line\":60,\"text\":\"\"},{\"line\":61,\"text\":\"\\t\\treturn $entries->count() ? true : false;\"},{\"line\":62,\"text\":\"\\t}\"}],\"sha256\":\"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60\",\"start_line\":27},\"getChildTag\":{\"ok\":true,\"value\":\"option\"},\"getChildTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getChildTag_source\":{\"end_line\":25,\"file\":\"src/XF/AddOn/DataType/Option.php\",\"lines\":[{\"line\":22,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":23,\"text\":\"\\t{\"},{\"line\":24,\"text\":\"\\t\\treturn 'option';\"},{\"line\":25,\"text\":\"\\t}\"}],\"sha256\":\"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60\",\"start_line\":22},\"getContainerTag\":{\"ok\":true,\"value\":\"options\"},\"getContainerTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getContainerTag_source\":{\"end_line\":20,\"file\":\"src/XF/AddOn/DataType/Option.php\",\"lines\":[{\"line\":17,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":18,\"text\":\"\\t{\"},{\"line\":19,\"text\":\"\\t\\treturn 'options';\"},{\"line\":20,\"text\":\"\\t}\"}],\"sha256\":\"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60\",\"start_line\":17},\"getEntityId_sig\":null,\"getEntityId_source\":null,\"getEntityShortName_sig\":null,\"getEntityShortName_source\":null,\"getMaintainedAttributes\":{\"ok\":true,\"value\":[]},\"getMaintainedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMaintainedAttributes_source\":{\"end_line\":182,\"file\":\"src/XF/AddOn/DataType/AbstractDataType.php\",\"lines\":[{\"line\":179,\"text\":\"\\tprotected function getMaintainedAttributes()\"},{\"line\":180,\"text\":\"\\t{\"},{\"line\":181,\"text\":\"\\t\\treturn [];\"},{\"line\":182,\"text\":\"\\t}\"}],\"sha256\":\"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815\",\"start_line\":179},\"getMappedAttributes\":{\"ok\":true,\"value\":[\"option_id\",\"edit_format\",\"data_type\",\"validation_class\",\"validation_method\",\"advanced\"]},\"getMappedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMappedAttributes_source\":{\"end_line\":138,\"file\":\"src/XF/AddOn/DataType/Option.php\",\"lines\":[{\"line\":128,\"text\":\"\\tprotected function getMappedAttributes()\"},{\"line\":129,\"text\":\"\\t{\"},{\"line\":130,\"text\":\"\\t\\treturn [\"},{\"line\":131,\"text\":\"\\t\\t\\t'option_id',\"},{\"line\":132,\"text\":\"\\t\\t\\t'edit_format',\"},{\"line\":133,\"text\":\"\\t\\t\\t'data_type',\"},{\"line\":134,\"text\":\"\\t\\t\\t'validation_class',\"},{\"line\":135,\"text\":\"\\t\\t\\t'validation_method',\"},{\"line\":136,\"text\":\"\\t\\t\\t'advanced',\"},{\"line\":137,\"text\":\"\\t\\t];\"},{\"line\":138,\"text\":\"\\t}\"}],\"sha256\":\"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60\",\"start_line\":128},\"importAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false},{\"name\":\"start\",\"required\":false,\"variadic\":false},{\"name\":\"maxRunTime\",\"required\":false,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":4},\"importAddOnData_source\":{\"end_line\":121,\"file\":\"src/XF/AddOn/DataType/Option.php\",\"lines\":[{\"line\":64,\"text\":\"\\tpublic function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)\"},{\"line\":65,\"text\":\"\\t{\"},{\"line\":66,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":67,\"text\":\"\"},{\"line\":68,\"text\":\"\\t\\t$entries = $this->getEntries($container, $start);\"},{\"line\":69,\"text\":\"\\t\\tif (!$entries)\"},{\"line\":70,\"text\":\"\\t\\t{\"},{\"line\":71,\"text\":\"\\t\\t\\treturn false;\"},{\"line\":72,\"text\":\"\\t\\t}\"},{\"line\":73,\"text\":\"\"},{\"line\":74,\"text\":\"\\t\\t$ids = $this->pluckXmlAttribute($entries, 'option_id');\"},{\"line\":75,\"text\":\"\\t\\t$existing = $this->findByIds($ids);\"},{\"line\":76,\"text\":\"\"},{\"line\":77,\"text\":\"\\t\\t$i = 0;\"},{\"line\":78,\"text\":\"\\t\\t$last = 0;\"},{\"line\":79,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":80,\"text\":\"\\t\\t{\"},{\"line\":81,\"text\":\"\\t\\t\\t$id = $ids[$i++];\"},{\"line\":82,\"text\":\"\"},{\"line\":83,\"text\":\"\\t\\t\\tif ($i <= $start)\"},{\"line\":84,\"text\":\"\\t\\t\\t{\"},{\"line\":85,\"text\":\"\\t\\t\\t\\tcontinue;\"},{\"line\":86,\"text\":\"\\t\\t\\t}\"},{\"line\":87,\"text\":\"\"},{\"line\":88,\"text\":\"\\t\\t\\t/** @var \\\\XF\\\\Entity\\\\Option $entity */\"},{\"line\":89,\"text\":\"\\t\\t\\t$entity = $existing[$id] ?? $this->create();\"},{\"line\":90,\"text\":\"\"},{\"line\":91,\"text\":\"\\t\\t\\t$entity->setOptions([\"},{\"line\":92,\"text\":\"\\t\\t\\t\\t'verify_validation_callback' => false,\"},{\"line\":93,\"text\":\"\\t\\t\\t\\t'verify_value' => false,\"},{\"line\":94,\"text\":\"\\t\\t\\t]);\"},{\"line\":95,\"text\":\"\\t\\t\\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);\"},{\"line\":96,\"text\":\"\\t\\t\\t$this->importMappedAttributes($entry, $entity);\"},{\"line\":97,\"text\":\"\\t\\t\\t$entity->addon_id = $addOnId;\"},{\"line\":98,\"text\":\"\\t\\t\\t$entity->default_value = (string) $entry->default_value;\"},{\"line\":99,\"text\":\"\\t\\t\\t$entity->edit_format_params = (string) $entry->edit_format_params;\"},{\"line\":100,\"text\":\"\"},{\"line\":101,\"text\":\"\\t\\t\\t$subOptions = (string) $entry->sub_options;\"},{\"line\":102,\"text\":\"\\t\\t\\t$entity->sub_options = strlen($subOptions) ? explode(\\\"\\\\n\\\", $subOptions) : [];\"},{\"line\":103,\"text\":\"\"},{\"line\":104,\"text\":\"\\t\\t\\t$entity->save(true, false);\"},{\"line\":105,\"text\":\"\"},{\"line\":106,\"text\":\"\\t\\t\\t$relations = [];\"},{\"line\":107,\"text\":\"\\t\\t\\tforeach ($entry->relation AS $relation)\"},{\"line\":108,\"text\":\"\\t\\t\\t{\"},{\"line\":109,\"text\":\"\\t\\t\\t\\t$relations[(string) $relation['group_id']] = (string) $relation['display_order'];\"},{\"line\":110,\"text\":\"\\t\\t\\t}\"},{\"line\":111,\"text\":\"\"},{\"line\":112,\"text\":\"\\t\\t\\t$entity->updateRelations($relations);\"},{\"line\":113,\"text\":\"\"},{\"line\":114,\"text\":\"\\t\\t\\tif ($this->resume($maxRunTime, $startTime))\"},{\"line\":115,\"text\":\"\\t\\t\\t{\"},{\"line\":116,\"text\":\"\\t\\t\\t\\t$last = $i;\"},{\"line\":117,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":118,\"text\":\"\\t\\t\\t}\"},{\"line\":119,\"text\":\"\\t\\t}\"},{\"line\":120,\"text\":\"\\t\\treturn ($last ?: false);\"},{\"line\":121,\"text\":\"\\t}\"}],\"sha256\":\"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60\",\"start_line\":64}},\"permission_interface_groups.xml\":{\"class\":\"XF\\\\AddOn\\\\DataType\\\\PermissionInterfaceGroup\",\"exists\":true,\"exportAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":2},\"exportAddOnData_source\":{\"end_line\":41,\"file\":\"src/XF/AddOn/DataType/PermissionInterfaceGroup.php\",\"lines\":[{\"line\":25,\"text\":\"\\tpublic function exportAddOnData($addOnId, \\\\DOMElement $container)\"},{\"line\":26,\"text\":\"\\t{\"},{\"line\":27,\"text\":\"\\t\\t$entries = $this->finder()\"},{\"line\":28,\"text\":\"\\t\\t\\t->where('addon_id', $addOnId)\"},{\"line\":29,\"text\":\"\\t\\t\\t->order('interface_group_id')->fetch();\"},{\"line\":30,\"text\":\"\"},{\"line\":31,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":32,\"text\":\"\\t\\t{\"},{\"line\":33,\"text\":\"\\t\\t\\t$node = $container->ownerDocument->createElement($this->getChildTag());\"},{\"line\":34,\"text\":\"\"},{\"line\":35,\"text\":\"\\t\\t\\t$this->exportMappedAttributes($node, $entry);\"},{\"line\":36,\"text\":\"\"},{\"line\":37,\"text\":\"\\t\\t\\t$container->appendChild($node);\"},{\"line\":38,\"text\":\"\\t\\t}\"},{\"line\":39,\"text\":\"\"},{\"line\":40,\"text\":\"\\t\\treturn $entries->count() ? true : false;\"},{\"line\":41,\"text\":\"\\t}\"}],\"sha256\":\"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6\",\"start_line\":25},\"getChildTag\":{\"ok\":true,\"value\":\"interface_group\"},\"getChildTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getChildTag_source\":{\"end_line\":23,\"file\":\"src/XF/AddOn/DataType/PermissionInterfaceGroup.php\",\"lines\":[{\"line\":20,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":21,\"text\":\"\\t{\"},{\"line\":22,\"text\":\"\\t\\treturn 'interface_group';\"},{\"line\":23,\"text\":\"\\t}\"}],\"sha256\":\"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6\",\"start_line\":20},\"getContainerTag\":{\"ok\":true,\"value\":\"permission_interface_groups\"},\"getContainerTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getContainerTag_source\":{\"end_line\":18,\"file\":\"src/XF/AddOn/DataType/PermissionInterfaceGroup.php\",\"lines\":[{\"line\":15,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":16,\"text\":\"\\t{\"},{\"line\":17,\"text\":\"\\t\\treturn 'permission_interface_groups';\"},{\"line\":18,\"text\":\"\\t}\"}],\"sha256\":\"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6\",\"start_line\":15},\"getEntityId_sig\":null,\"getEntityId_source\":null,\"getEntityShortName_sig\":null,\"getEntityShortName_source\":null,\"getMaintainedAttributes\":{\"ok\":true,\"value\":[]},\"getMaintainedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMaintainedAttributes_source\":{\"end_line\":182,\"file\":\"src/XF/AddOn/DataType/AbstractDataType.php\",\"lines\":[{\"line\":179,\"text\":\"\\tprotected function getMaintainedAttributes()\"},{\"line\":180,\"text\":\"\\t{\"},{\"line\":181,\"text\":\"\\t\\treturn [];\"},{\"line\":182,\"text\":\"\\t}\"}],\"sha256\":\"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815\",\"start_line\":179},\"getMappedAttributes\":{\"ok\":true,\"value\":[\"interface_group_id\",\"display_order\",\"is_moderator\"]},\"getMappedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMappedAttributes_source\":{\"end_line\":102,\"file\":\"src/XF/AddOn/DataType/PermissionInterfaceGroup.php\",\"lines\":[{\"line\":95,\"text\":\"\\tprotected function getMappedAttributes()\"},{\"line\":96,\"text\":\"\\t{\"},{\"line\":97,\"text\":\"\\t\\treturn [\"},{\"line\":98,\"text\":\"\\t\\t\\t'interface_group_id',\"},{\"line\":99,\"text\":\"\\t\\t\\t'display_order',\"},{\"line\":100,\"text\":\"\\t\\t\\t'is_moderator',\"},{\"line\":101,\"text\":\"\\t\\t];\"},{\"line\":102,\"text\":\"\\t}\"}],\"sha256\":\"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6\",\"start_line\":95},\"importAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false},{\"name\":\"start\",\"required\":false,\"variadic\":false},{\"name\":\"maxRunTime\",\"required\":false,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":4},\"importAddOnData_source\":{\"end_line\":82,\"file\":\"src/XF/AddOn/DataType/PermissionInterfaceGroup.php\",\"lines\":[{\"line\":43,\"text\":\"\\tpublic function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)\"},{\"line\":44,\"text\":\"\\t{\"},{\"line\":45,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":46,\"text\":\"\"},{\"line\":47,\"text\":\"\\t\\t$entries = $this->getEntries($container, $start);\"},{\"line\":48,\"text\":\"\\t\\tif (!$entries)\"},{\"line\":49,\"text\":\"\\t\\t{\"},{\"line\":50,\"text\":\"\\t\\t\\treturn false;\"},{\"line\":51,\"text\":\"\\t\\t}\"},{\"line\":52,\"text\":\"\"},{\"line\":53,\"text\":\"\\t\\t$ids = $this->pluckXmlAttribute($entries, 'interface_group_id');\"},{\"line\":54,\"text\":\"\\t\\t$existing = $this->findByIds($ids);\"},{\"line\":55,\"text\":\"\"},{\"line\":56,\"text\":\"\\t\\t$i = 0;\"},{\"line\":57,\"text\":\"\\t\\t$last = 0;\"},{\"line\":58,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":59,\"text\":\"\\t\\t{\"},{\"line\":60,\"text\":\"\\t\\t\\t$id = $ids[$i++];\"},{\"line\":61,\"text\":\"\"},{\"line\":62,\"text\":\"\\t\\t\\tif ($i <= $start)\"},{\"line\":63,\"text\":\"\\t\\t\\t{\"},{\"line\":64,\"text\":\"\\t\\t\\t\\tcontinue;\"},{\"line\":65,\"text\":\"\\t\\t\\t}\"},{\"line\":66,\"text\":\"\"},{\"line\":67,\"text\":\"\\t\\t\\t$entity = $existing[$id] ?? $this->create();\"},{\"line\":68,\"text\":\"\"},{\"line\":69,\"text\":\"\\t\\t\\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);\"},{\"line\":70,\"text\":\"\\t\\t\\t$this->importMappedAttributes($entry, $entity);\"},{\"line\":71,\"text\":\"\\t\\t\\t$entity->addon_id = $addOnId;\"},{\"line\":72,\"text\":\"\"},{\"line\":73,\"text\":\"\\t\\t\\t$entity->save(true, false);\"},{\"line\":74,\"text\":\"\"},{\"line\":75,\"text\":\"\\t\\t\\tif ($this->resume($maxRunTime, $startTime))\"},{\"line\":76,\"text\":\"\\t\\t\\t{\"},{\"line\":77,\"text\":\"\\t\\t\\t\\t$last = $i;\"},{\"line\":78,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":79,\"text\":\"\\t\\t\\t}\"},{\"line\":80,\"text\":\"\\t\\t}\"},{\"line\":81,\"text\":\"\\t\\treturn ($last ?: false);\"},{\"line\":82,\"text\":\"\\t}\"}],\"sha256\":\"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6\",\"start_line\":43}},\"permissions.xml\":{\"class\":\"XF\\\\AddOn\\\\DataType\\\\Permission\",\"exists\":true,\"exportAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":2},\"exportAddOnData_source\":{\"end_line\":44,\"file\":\"src/XF/AddOn/DataType/Permission.php\",\"lines\":[{\"line\":28,\"text\":\"\\tpublic function exportAddOnData($addOnId, \\\\DOMElement $container)\"},{\"line\":29,\"text\":\"\\t{\"},{\"line\":30,\"text\":\"\\t\\t$entries = $this->finder()\"},{\"line\":31,\"text\":\"\\t\\t\\t->where('addon_id', $addOnId)\"},{\"line\":32,\"text\":\"\\t\\t\\t->order(['permission_group_id', 'permission_id'])->fetch();\"},{\"line\":33,\"text\":\"\"},{\"line\":34,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":35,\"text\":\"\\t\\t{\"},{\"line\":36,\"text\":\"\\t\\t\\t$node = $container->ownerDocument->createElement($this->getChildTag());\"},{\"line\":37,\"text\":\"\"},{\"line\":38,\"text\":\"\\t\\t\\t$this->exportMappedAttributes($node, $entry);\"},{\"line\":39,\"text\":\"\"},{\"line\":40,\"text\":\"\\t\\t\\t$container->appendChild($node);\"},{\"line\":41,\"text\":\"\\t\\t}\"},{\"line\":42,\"text\":\"\"},{\"line\":43,\"text\":\"\\t\\treturn $entries->count() ? true : false;\"},{\"line\":44,\"text\":\"\\t}\"}],\"sha256\":\"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477\",\"start_line\":28},\"getChildTag\":{\"ok\":true,\"value\":\"permission\"},\"getChildTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getChildTag_source\":{\"end_line\":26,\"file\":\"src/XF/AddOn/DataType/Permission.php\",\"lines\":[{\"line\":23,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":24,\"text\":\"\\t{\"},{\"line\":25,\"text\":\"\\t\\treturn 'permission';\"},{\"line\":26,\"text\":\"\\t}\"}],\"sha256\":\"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477\",\"start_line\":23},\"getContainerTag\":{\"ok\":true,\"value\":\"permissions\"},\"getContainerTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getContainerTag_source\":{\"end_line\":21,\"file\":\"src/XF/AddOn/DataType/Permission.php\",\"lines\":[{\"line\":18,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":19,\"text\":\"\\t{\"},{\"line\":20,\"text\":\"\\t\\treturn 'permissions';\"},{\"line\":21,\"text\":\"\\t}\"}],\"sha256\":\"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477\",\"start_line\":18},\"getEntityId_sig\":null,\"getEntityId_source\":null,\"getEntityShortName_sig\":null,\"getEntityShortName_source\":null,\"getMaintainedAttributes\":{\"ok\":true,\"value\":[]},\"getMaintainedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMaintainedAttributes_source\":{\"end_line\":182,\"file\":\"src/XF/AddOn/DataType/AbstractDataType.php\",\"lines\":[{\"line\":179,\"text\":\"\\tprotected function getMaintainedAttributes()\"},{\"line\":180,\"text\":\"\\t{\"},{\"line\":181,\"text\":\"\\t\\treturn [];\"},{\"line\":182,\"text\":\"\\t}\"}],\"sha256\":\"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815\",\"start_line\":179},\"getMappedAttributes\":{\"ok\":true,\"value\":[\"permission_group_id\",\"permission_id\",\"permission_type\",\"depend_permission_id\",\"interface_group_id\",\"display_order\"]},\"getMappedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMappedAttributes_source\":{\"end_line\":159,\"file\":\"src/XF/AddOn/DataType/Permission.php\",\"lines\":[{\"line\":149,\"text\":\"\\tprotected function getMappedAttributes()\"},{\"line\":150,\"text\":\"\\t{\"},{\"line\":151,\"text\":\"\\t\\treturn [\"},{\"line\":152,\"text\":\"\\t\\t\\t'permission_group_id',\"},{\"line\":153,\"text\":\"\\t\\t\\t'permission_id',\"},{\"line\":154,\"text\":\"\\t\\t\\t'permission_type',\"},{\"line\":155,\"text\":\"\\t\\t\\t'depend_permission_id',\"},{\"line\":156,\"text\":\"\\t\\t\\t'interface_group_id',\"},{\"line\":157,\"text\":\"\\t\\t\\t'display_order',\"},{\"line\":158,\"text\":\"\\t\\t];\"},{\"line\":159,\"text\":\"\\t}\"}],\"sha256\":\"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477\",\"start_line\":149},\"importAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false},{\"name\":\"start\",\"required\":false,\"variadic\":false},{\"name\":\"maxRunTime\",\"required\":false,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":4},\"importAddOnData_source\":{\"end_line\":102,\"file\":\"src/XF/AddOn/DataType/Permission.php\",\"lines\":[{\"line\":46,\"text\":\"\\tpublic function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)\"},{\"line\":47,\"text\":\"\\t{\"},{\"line\":48,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":49,\"text\":\"\"},{\"line\":50,\"text\":\"\\t\\t$entries = $this->getEntries($container, $start);\"},{\"line\":51,\"text\":\"\\t\\tif (!$entries)\"},{\"line\":52,\"text\":\"\\t\\t{\"},{\"line\":53,\"text\":\"\\t\\t\\treturn false;\"},{\"line\":54,\"text\":\"\\t\\t}\"},{\"line\":55,\"text\":\"\"},{\"line\":56,\"text\":\"\\t\\t$conditions = [];\"},{\"line\":57,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":58,\"text\":\"\\t\\t{\"},{\"line\":59,\"text\":\"\\t\\t\\t$conditions[] = [\"},{\"line\":60,\"text\":\"\\t\\t\\t\\t'permission_group_id' => (string) $entry['permission_group_id'],\"},{\"line\":61,\"text\":\"\\t\\t\\t\\t'permission_id' => (string) $entry['permission_id'],\"},{\"line\":62,\"text\":\"\\t\\t\\t];\"},{\"line\":63,\"text\":\"\\t\\t}\"},{\"line\":64,\"text\":\"\\t\\tif ($conditions)\"},{\"line\":65,\"text\":\"\\t\\t{\"},{\"line\":66,\"text\":\"\\t\\t\\t$existing = $this->finder()->whereOr($conditions)->fetch()->groupBy('permission_group_id', 'permission_id');\"},{\"line\":67,\"text\":\"\\t\\t}\"},{\"line\":68,\"text\":\"\\t\\telse\"},{\"line\":69,\"text\":\"\\t\\t{\"},{\"line\":70,\"text\":\"\\t\\t\\t$existing = [];\"},{\"line\":71,\"text\":\"\\t\\t}\"},{\"line\":72,\"text\":\"\"},{\"line\":73,\"text\":\"\\t\\t$i = 0;\"},{\"line\":74,\"text\":\"\\t\\t$last = 0;\"},{\"line\":75,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":76,\"text\":\"\\t\\t{\"},{\"line\":77,\"text\":\"\\t\\t\\t$i++;\"},{\"line\":78,\"text\":\"\"},{\"line\":79,\"text\":\"\\t\\t\\tif ($i <= $start)\"},{\"line\":80,\"text\":\"\\t\\t\\t{\"},{\"line\":81,\"text\":\"\\t\\t\\t\\tcontinue;\"},{\"line\":82,\"text\":\"\\t\\t\\t}\"},{\"line\":83,\"text\":\"\"},{\"line\":84,\"text\":\"\\t\\t\\t$groupId = (string) $entry['permission_group_id'];\"},{\"line\":85,\"text\":\"\\t\\t\\t$permissionId = (string) $entry['permission_id'];\"},{\"line\":86,\"text\":\"\\t\\t\\t$entity = $existing[$groupId][$permissionId] ?? $this->create();\"},{\"line\":87,\"text\":\"\"},{\"line\":88,\"text\":\"\\t\\t\\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);\"},{\"line\":89,\"text\":\"\\t\\t\\t$entity->setOption('dependent_check', false);\"},{\"line\":90,\"text\":\"\\t\\t\\t$this->importMappedAttributes($entry, $entity);\"},{\"line\":91,\"text\":\"\\t\\t\\t$entity->addon_id = $addOnId;\"},{\"line\":92,\"text\":\"\"},{\"line\":93,\"text\":\"\\t\\t\\t$entity->save(true, false);\"},{\"line\":94,\"text\":\"\"},{\"line\":95,\"text\":\"\\t\\t\\tif ($this->resume($maxRunTime, $startTime))\"},{\"line\":96,\"text\":\"\\t\\t\\t{\"},{\"line\":97,\"text\":\"\\t\\t\\t\\t$last = $i;\"},{\"line\":98,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":99,\"text\":\"\\t\\t\\t}\"},{\"line\":100,\"text\":\"\\t\\t}\"},{\"line\":101,\"text\":\"\\t\\treturn ($last ?: false);\"},{\"line\":102,\"text\":\"\\t}\"}],\"sha256\":\"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477\",\"start_line\":46}},\"phrases.xml\":{\"class\":\"XF\\\\AddOn\\\\DataType\\\\Phrase\",\"exists\":true,\"exportAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":2},\"exportAddOnData_source\":{\"end_line\":47,\"file\":\"src/XF/AddOn/DataType/Phrase.php\",\"lines\":[{\"line\":26,\"text\":\"\\tpublic function exportAddOnData($addOnId, \\\\DOMElement $container)\"},{\"line\":27,\"text\":\"\\t{\"},{\"line\":28,\"text\":\"\\t\\t$entries = $this->finder()\"},{\"line\":29,\"text\":\"\\t\\t\\t->where('addon_id', $addOnId)\"},{\"line\":30,\"text\":\"\\t\\t\\t->where('language_id', 0)\"},{\"line\":31,\"text\":\"\\t\\t\\t->order('title')->fetch();\"},{\"line\":32,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":33,\"text\":\"\\t\\t{\"},{\"line\":34,\"text\":\"\\t\\t\\t$node = $container->ownerDocument->createElement($this->getChildTag());\"},{\"line\":35,\"text\":\"\"},{\"line\":36,\"text\":\"\\t\\t\\t$this->exportMappedAttributes($node, $entry);\"},{\"line\":37,\"text\":\"\\t\\t\\tif ($entry['global_cache'])\"},{\"line\":38,\"text\":\"\\t\\t\\t{\"},{\"line\":39,\"text\":\"\\t\\t\\t\\t$node->setAttribute('global_cache', '1');\"},{\"line\":40,\"text\":\"\\t\\t\\t}\"},{\"line\":41,\"text\":\"\\t\\t\\t$this->exportCdata($node, $entry->phrase_text);\"},{\"line\":42,\"text\":\"\"},{\"line\":43,\"text\":\"\\t\\t\\t$container->appendChild($node);\"},{\"line\":44,\"text\":\"\\t\\t}\"},{\"line\":45,\"text\":\"\"},{\"line\":46,\"text\":\"\\t\\treturn $entries->count() ? true : false;\"},{\"line\":47,\"text\":\"\\t}\"}],\"sha256\":\"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266\",\"start_line\":26},\"getChildTag\":{\"ok\":true,\"value\":\"phrase\"},\"getChildTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getChildTag_source\":{\"end_line\":24,\"file\":\"src/XF/AddOn/DataType/Phrase.php\",\"lines\":[{\"line\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'phrase';\"},{\"line\":24,\"text\":\"\\t}\"}],\"sha256\":\"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266\",\"start_line\":21},\"getContainerTag\":{\"ok\":true,\"value\":\"phrases\"},\"getContainerTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getContainerTag_source\":{\"end_line\":19,\"file\":\"src/XF/AddOn/DataType/Phrase.php\",\"lines\":[{\"line\":16,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":17,\"text\":\"\\t{\"},{\"line\":18,\"text\":\"\\t\\treturn 'phrases';\"},{\"line\":19,\"text\":\"\\t}\"}],\"sha256\":\"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266\",\"start_line\":16},\"getEntityId_sig\":null,\"getEntityId_source\":null,\"getEntityShortName_sig\":null,\"getEntityShortName_source\":null,\"getMaintainedAttributes\":{\"ok\":true,\"value\":[]},\"getMaintainedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMaintainedAttributes_source\":{\"end_line\":182,\"file\":\"src/XF/AddOn/DataType/AbstractDataType.php\",\"lines\":[{\"line\":179,\"text\":\"\\tprotected function getMaintainedAttributes()\"},{\"line\":180,\"text\":\"\\t{\"},{\"line\":181,\"text\":\"\\t\\treturn [];\"},{\"line\":182,\"text\":\"\\t}\"}],\"sha256\":\"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815\",\"start_line\":179},\"getMappedAttributes\":{\"ok\":true,\"value\":[\"title\",\"version_id\",\"version_string\"]},\"getMappedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMappedAttributes_source\":{\"end_line\":128,\"file\":\"src/XF/AddOn/DataType/Phrase.php\",\"lines\":[{\"line\":121,\"text\":\"\\tprotected function getMappedAttributes()\"},{\"line\":122,\"text\":\"\\t{\"},{\"line\":123,\"text\":\"\\t\\treturn [\"},{\"line\":124,\"text\":\"\\t\\t\\t'title',\"},{\"line\":125,\"text\":\"\\t\\t\\t'version_id',\"},{\"line\":126,\"text\":\"\\t\\t\\t'version_string',\"},{\"line\":127,\"text\":\"\\t\\t];\"},{\"line\":128,\"text\":\"\\t}\"}],\"sha256\":\"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266\",\"start_line\":121},\"importAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false},{\"name\":\"start\",\"required\":false,\"variadic\":false},{\"name\":\"maxRunTime\",\"required\":false,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":4},\"importAddOnData_source\":{\"end_line\":114,\"file\":\"src/XF/AddOn/DataType/Phrase.php\",\"lines\":[{\"line\":49,\"text\":\"\\tpublic function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)\"},{\"line\":50,\"text\":\"\\t{\"},{\"line\":51,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":52,\"text\":\"\"},{\"line\":53,\"text\":\"\\t\\t$entries = $this->getEntries($container, $start);\"},{\"line\":54,\"text\":\"\\t\\tif (!$entries)\"},{\"line\":55,\"text\":\"\\t\\t{\"},{\"line\":56,\"text\":\"\\t\\t\\treturn false;\"},{\"line\":57,\"text\":\"\\t\\t}\"},{\"line\":58,\"text\":\"\"},{\"line\":59,\"text\":\"\\t\\t$ids = $this->pluckXmlAttribute($entries, 'title');\"},{\"line\":60,\"text\":\"\"},{\"line\":61,\"text\":\"\\t\\t// This chucking approach has been taken due to a MariaDB performance regression with large\"},{\"line\":62,\"text\":\"\\t\\t// IN clauses (see #187523). However, this may have benefits on some slower servers as this\"},{\"line\":63,\"text\":\"\\t\\t// will reduce the number of times we attempt to instantiate phrase entities that won't be\"},{\"line\":64,\"text\":\"\\t\\t// processed in this run.\"},{\"line\":65,\"text\":\"\\t\\t$chunkSize = 200;\"},{\"line\":66,\"text\":\"\\t\\t$nextFetch = null;\"},{\"line\":67,\"text\":\"\"},{\"line\":68,\"text\":\"\\t\\t$i = 0;\"},{\"line\":69,\"text\":\"\\t\\t$last = 0;\"},{\"line\":70,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":71,\"text\":\"\\t\\t{\"},{\"line\":72,\"text\":\"\\t\\t\\t$originalI = $i;\"},{\"line\":73,\"text\":\"\"},{\"line\":74,\"text\":\"\\t\\t\\t$id = $ids[$i++];\"},{\"line\":75,\"text\":\"\"},{\"line\":76,\"text\":\"\\t\\t\\tif ($i <= $start)\"},{\"line\":77,\"text\":\"\\t\\t\\t{\"},{\"line\":78,\"text\":\"\\t\\t\\t\\tcontinue;\"},{\"line\":79,\"text\":\"\\t\\t\\t}\"},{\"line\":80,\"text\":\"\"},{\"line\":81,\"text\":\"\\t\\t\\tif ($nextFetch === null || $originalI >= $nextFetch)\"},{\"line\":82,\"text\":\"\\t\\t\\t{\"},{\"line\":83,\"text\":\"\\t\\t\\t\\t$slice = array_slice($ids, $originalI, $chunkSize);\"},{\"line\":84,\"text\":\"\\t\\t\\t\\t$nextFetch = $originalI + $chunkSize;\"},{\"line\":85,\"text\":\"\"},{\"line\":86,\"text\":\"\\t\\t\\t\\t$existing = $this->finder()\"},{\"line\":87,\"text\":\"\\t\\t\\t\\t\\t->where('title', $slice)\"},{\"line\":88,\"text\":\"\\t\\t\\t\\t\\t->where('language_id', 0)\"},{\"line\":89,\"text\":\"\\t\\t\\t\\t\\t->keyedBy('title')\"},{\"line\":90,\"text\":\"\\t\\t\\t\\t\\t->fetch();\"},{\"line\":91,\"text\":\"\\t\\t\\t}\"},{\"line\":92,\"text\":\"\"},{\"line\":93,\"text\":\"\\t\\t\\t$entity = $existing[$id] ?? $this->create();\"},{\"line\":94,\"text\":\"\\t\\t\\t$entity->setOption('check_duplicate', false);\"},{\"line\":95,\"text\":\"\\t\\t\\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);\"},{\"line\":96,\"text\":\"\"},{\"line\":97,\"text\":\"\\t\\t\\t$this->importMappedAttributes($entry, $entity);\"},{\"line\":98,\"text\":\"\\t\\t\\t$entity->language_id = 0;\"},{\"line\":99,\"text\":\"\\t\\t\\t$entity->global_cache = (int) $entry['global_cache'];\"},{\"line\":100,\"text\":\"\\t\\t\\t$entity->phrase_text = $this->getCdataValue($entry);\"},{\"line\":101,\"text\":\"\\t\\t\\t$entity->addon_id = $addOnId;\"},{\"line\":102,\"text\":\"\\t\\t\\t$entity->save(true, false);\"},{\"line\":103,\"text\":\"\"},{\"line\":104,\"text\":\"\\t\\t\\t\\\\XF::dequeueRunOnce('styleLastModifiedDate');\"},{\"line\":105,\"text\":\"\"},{\"line\":106,\"text\":\"\\t\\t\\tif ($this->resume($maxRunTime, $startTime))\"},{\"line\":107,\"text\":\"\\t\\t\\t{\"},{\"line\":108,\"text\":\"\\t\\t\\t\\t$last = $i;\"},{\"line\":109,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":110,\"text\":\"\\t\\t\\t}\"},{\"line\":111,\"text\":\"\\t\\t}\"},{\"line\":112,\"text\":\"\"},{\"line\":113,\"text\":\"\\t\\treturn ($last ?: false);\"},{\"line\":114,\"text\":\"\\t}\"}],\"sha256\":\"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266\",\"start_line\":49}},\"routes.xml\":{\"class\":\"XF\\\\AddOn\\\\DataType\\\\Route\",\"exists\":true,\"exportAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":2},\"exportAddOnData_source\":{\"end_line\":41,\"file\":\"src/XF/AddOn/DataType/Route.php\",\"lines\":[{\"line\":26,\"text\":\"\\tpublic function exportAddOnData($addOnId, \\\\DOMElement $container)\"},{\"line\":27,\"text\":\"\\t{\"},{\"line\":28,\"text\":\"\\t\\t$entries = $this->finder()\"},{\"line\":29,\"text\":\"\\t\\t\\t->where('addon_id', $addOnId)\"},{\"line\":30,\"text\":\"\\t\\t\\t->order(['route_type', 'route_prefix', 'sub_name'])->fetch();\"},{\"line\":31,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":32,\"text\":\"\\t\\t{\"},{\"line\":33,\"text\":\"\\t\\t\\t$node = $container->ownerDocument->createElement($this->getChildTag());\"},{\"line\":34,\"text\":\"\"},{\"line\":35,\"text\":\"\\t\\t\\t$this->exportMappedAttributes($node, $entry);\"},{\"line\":36,\"text\":\"\"},{\"line\":37,\"text\":\"\\t\\t\\t$container->appendChild($node);\"},{\"line\":38,\"text\":\"\\t\\t}\"},{\"line\":39,\"text\":\"\"},{\"line\":40,\"text\":\"\\t\\treturn $entries->count() ? true : false;\"},{\"line\":41,\"text\":\"\\t}\"}],\"sha256\":\"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb\",\"start_line\":26},\"getChildTag\":{\"ok\":true,\"value\":\"route\"},\"getChildTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getChildTag_source\":{\"end_line\":24,\"file\":\"src/XF/AddOn/DataType/Route.php\",\"lines\":[{\"line\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'route';\"},{\"line\":24,\"text\":\"\\t}\"}],\"sha256\":\"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb\",\"start_line\":21},\"getContainerTag\":{\"ok\":true,\"value\":\"routes\"},\"getContainerTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getContainerTag_source\":{\"end_line\":19,\"file\":\"src/XF/AddOn/DataType/Route.php\",\"lines\":[{\"line\":16,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":17,\"text\":\"\\t{\"},{\"line\":18,\"text\":\"\\t\\treturn 'routes';\"},{\"line\":19,\"text\":\"\\t}\"}],\"sha256\":\"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb\",\"start_line\":16},\"getEntityId_sig\":null,\"getEntityId_source\":null,\"getEntityShortName_sig\":null,\"getEntityShortName_source\":null,\"getMaintainedAttributes\":{\"ok\":true,\"value\":[]},\"getMaintainedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMaintainedAttributes_source\":{\"end_line\":182,\"file\":\"src/XF/AddOn/DataType/AbstractDataType.php\",\"lines\":[{\"line\":179,\"text\":\"\\tprotected function getMaintainedAttributes()\"},{\"line\":180,\"text\":\"\\t{\"},{\"line\":181,\"text\":\"\\t\\treturn [];\"},{\"line\":182,\"text\":\"\\t}\"}],\"sha256\":\"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815\",\"start_line\":179},\"getMappedAttributes\":{\"ok\":true,\"value\":[\"route_type\",\"route_prefix\",\"sub_name\",\"format\",\"build_class\",\"build_method\",\"controller\",\"context\",\"action_prefix\"]},\"getMappedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMappedAttributes_source\":{\"end_line\":167,\"file\":\"src/XF/AddOn/DataType/Route.php\",\"lines\":[{\"line\":154,\"text\":\"\\tprotected function getMappedAttributes()\"},{\"line\":155,\"text\":\"\\t{\"},{\"line\":156,\"text\":\"\\t\\treturn [\"},{\"line\":157,\"text\":\"\\t\\t\\t'route_type',\"},{\"line\":158,\"text\":\"\\t\\t\\t'route_prefix',\"},{\"line\":159,\"text\":\"\\t\\t\\t'sub_name',\"},{\"line\":160,\"text\":\"\\t\\t\\t'format',\"},{\"line\":161,\"text\":\"\\t\\t\\t'build_class',\"},{\"line\":162,\"text\":\"\\t\\t\\t'build_method',\"},{\"line\":163,\"text\":\"\\t\\t\\t'controller',\"},{\"line\":164,\"text\":\"\\t\\t\\t'context',\"},{\"line\":165,\"text\":\"\\t\\t\\t'action_prefix',\"},{\"line\":166,\"text\":\"\\t\\t];\"},{\"line\":167,\"text\":\"\\t}\"}],\"sha256\":\"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb\",\"start_line\":154},\"importAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false},{\"name\":\"start\",\"required\":false,\"variadic\":false},{\"name\":\"maxRunTime\",\"required\":false,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":4},\"importAddOnData_source\":{\"end_line\":104,\"file\":\"src/XF/AddOn/DataType/Route.php\",\"lines\":[{\"line\":43,\"text\":\"\\tpublic function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)\"},{\"line\":44,\"text\":\"\\t{\"},{\"line\":45,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":46,\"text\":\"\"},{\"line\":47,\"text\":\"\\t\\t$entries = $this->getEntries($container, $start);\"},{\"line\":48,\"text\":\"\\t\\tif (!$entries)\"},{\"line\":49,\"text\":\"\\t\\t{\"},{\"line\":50,\"text\":\"\\t\\t\\treturn false;\"},{\"line\":51,\"text\":\"\\t\\t}\"},{\"line\":52,\"text\":\"\"},{\"line\":53,\"text\":\"\\t\\t$conditions = [];\"},{\"line\":54,\"text\":\"\\t\\t$existing = [];\"},{\"line\":55,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":56,\"text\":\"\\t\\t{\"},{\"line\":57,\"text\":\"\\t\\t\\t$conditions[] = [\"},{\"line\":58,\"text\":\"\\t\\t\\t\\t'route_type' => (string) $entry['route_type'],\"},{\"line\":59,\"text\":\"\\t\\t\\t\\t'route_prefix' => (string) $entry['route_prefix'],\"},{\"line\":60,\"text\":\"\\t\\t\\t\\t'sub_name' => (string) $entry['sub_name'],\"},{\"line\":61,\"text\":\"\\t\\t\\t];\"},{\"line\":62,\"text\":\"\\t\\t}\"},{\"line\":63,\"text\":\"\\t\\tif ($conditions)\"},{\"line\":64,\"text\":\"\\t\\t{\"},{\"line\":65,\"text\":\"\\t\\t\\tforeach ($this->finder()->whereOr($conditions)->fetch() AS $route)\"},{\"line\":66,\"text\":\"\\t\\t\\t{\"},{\"line\":67,\"text\":\"\\t\\t\\t\\t$existing[$route->route_type][$route->route_prefix][$route->sub_name] = $route;\"},{\"line\":68,\"text\":\"\\t\\t\\t}\"},{\"line\":69,\"text\":\"\\t\\t}\"},{\"line\":70,\"text\":\"\"},{\"line\":71,\"text\":\"\\t\\t$i = 0;\"},{\"line\":72,\"text\":\"\\t\\t$last = 0;\"},{\"line\":73,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":74,\"text\":\"\\t\\t{\"},{\"line\":75,\"text\":\"\\t\\t\\t$i++;\"},{\"line\":76,\"text\":\"\"},{\"line\":77,\"text\":\"\\t\\t\\tif ($i <= $start)\"},{\"line\":78,\"text\":\"\\t\\t\\t{\"},{\"line\":79,\"text\":\"\\t\\t\\t\\tcontinue;\"},{\"line\":80,\"text\":\"\\t\\t\\t}\"},{\"line\":81,\"text\":\"\"},{\"line\":82,\"text\":\"\\t\\t\\t$type = (string) $entry['route_type'];\"},{\"line\":83,\"text\":\"\\t\\t\\t$prefix = (string) $entry['route_prefix'];\"},{\"line\":84,\"text\":\"\\t\\t\\t$subName = (string) $entry['sub_name'];\"},{\"line\":85,\"text\":\"\\t\\t\\t$entity = $existing[$type][$prefix][$subName] ?? $this->create();\"},{\"line\":86,\"text\":\"\"},{\"line\":87,\"text\":\"\\t\\t\\t$entity->setOptions([\"},{\"line\":88,\"text\":\"\\t\\t\\t\\t'check_duplicate' => false,\"},{\"line\":89,\"text\":\"\\t\\t\\t]);\"},{\"line\":90,\"text\":\"\"},{\"line\":91,\"text\":\"\\t\\t\\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);\"},{\"line\":92,\"text\":\"\"},{\"line\":93,\"text\":\"\\t\\t\\t$this->importMappedAttributes($entry, $entity);\"},{\"line\":94,\"text\":\"\\t\\t\\t$entity->addon_id = $addOnId;\"},{\"line\":95,\"text\":\"\\t\\t\\t$entity->save(true, false);\"},{\"line\":96,\"text\":\"\"},{\"line\":97,\"text\":\"\\t\\t\\tif ($this->resume($maxRunTime, $startTime))\"},{\"line\":98,\"text\":\"\\t\\t\\t{\"},{\"line\":99,\"text\":\"\\t\\t\\t\\t$last = $i;\"},{\"line\":100,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":101,\"text\":\"\\t\\t\\t}\"},{\"line\":102,\"text\":\"\\t\\t}\"},{\"line\":103,\"text\":\"\\t\\treturn ($last ?: false);\"},{\"line\":104,\"text\":\"\\t}\"}],\"sha256\":\"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb\",\"start_line\":43}},\"template_modifications.xml\":{\"class\":\"XF\\\\AddOn\\\\DataType\\\\TemplateModification\",\"exists\":true,\"exportAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":2},\"exportAddOnData_source\":{\"end_line\":46,\"file\":\"src/XF/AddOn/DataType/TemplateModification.php\",\"lines\":[{\"line\":28,\"text\":\"\\tpublic function exportAddOnData($addOnId, \\\\DOMElement $container)\"},{\"line\":29,\"text\":\"\\t{\"},{\"line\":30,\"text\":\"\\t\\t$entries = $this->finder()\"},{\"line\":31,\"text\":\"\\t\\t\\t->where('addon_id', $addOnId)\"},{\"line\":32,\"text\":\"\\t\\t\\t->order(['template', 'modification_key'])->fetch();\"},{\"line\":33,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":34,\"text\":\"\\t\\t{\"},{\"line\":35,\"text\":\"\\t\\t\\t$node = $container->ownerDocument->createElement($this->getChildTag());\"},{\"line\":36,\"text\":\"\"},{\"line\":37,\"text\":\"\\t\\t\\t$this->exportMappedAttributes($node, $entry);\"},{\"line\":38,\"text\":\"\"},{\"line\":39,\"text\":\"\\t\\t\\t$this->exportCdataToNewNode($node, 'find', $entry);\"},{\"line\":40,\"text\":\"\\t\\t\\t$this->exportCdataToNewNode($node, 'replace', $entry);\"},{\"line\":41,\"text\":\"\"},{\"line\":42,\"text\":\"\\t\\t\\t$container->appendChild($node);\"},{\"line\":43,\"text\":\"\\t\\t}\"},{\"line\":44,\"text\":\"\"},{\"line\":45,\"text\":\"\\t\\treturn $entries->count() ? true : false;\"},{\"line\":46,\"text\":\"\\t}\"}],\"sha256\":\"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a\",\"start_line\":28},\"getChildTag\":{\"ok\":true,\"value\":\"modification\"},\"getChildTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getChildTag_source\":{\"end_line\":26,\"file\":\"src/XF/AddOn/DataType/TemplateModification.php\",\"lines\":[{\"line\":23,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":24,\"text\":\"\\t{\"},{\"line\":25,\"text\":\"\\t\\treturn 'modification';\"},{\"line\":26,\"text\":\"\\t}\"}],\"sha256\":\"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a\",\"start_line\":23},\"getContainerTag\":{\"ok\":true,\"value\":\"template_modifications\"},\"getContainerTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getContainerTag_source\":{\"end_line\":21,\"file\":\"src/XF/AddOn/DataType/TemplateModification.php\",\"lines\":[{\"line\":18,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":19,\"text\":\"\\t{\"},{\"line\":20,\"text\":\"\\t\\treturn 'template_modifications';\"},{\"line\":21,\"text\":\"\\t}\"}],\"sha256\":\"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a\",\"start_line\":18},\"getEntityId_sig\":null,\"getEntityId_source\":null,\"getEntityShortName_sig\":null,\"getEntityShortName_source\":null,\"getMaintainedAttributes\":{\"ok\":true,\"value\":[\"enabled\"]},\"getMaintainedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMaintainedAttributes_source\":{\"end_line\":158,\"file\":\"src/XF/AddOn/DataType/TemplateModification.php\",\"lines\":[{\"line\":153,\"text\":\"\\tprotected function getMaintainedAttributes()\"},{\"line\":154,\"text\":\"\\t{\"},{\"line\":155,\"text\":\"\\t\\treturn [\"},{\"line\":156,\"text\":\"\\t\\t\\t'enabled',\"},{\"line\":157,\"text\":\"\\t\\t];\"},{\"line\":158,\"text\":\"\\t}\"}],\"sha256\":\"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a\",\"start_line\":153},\"getMappedAttributes\":{\"ok\":true,\"value\":[\"type\",\"template\",\"modification_key\",\"description\",\"execution_order\",\"enabled\",\"action\"]},\"getMappedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMappedAttributes_source\":{\"end_line\":151,\"file\":\"src/XF/AddOn/DataType/TemplateModification.php\",\"lines\":[{\"line\":140,\"text\":\"\\tprotected function getMappedAttributes()\"},{\"line\":141,\"text\":\"\\t{\"},{\"line\":142,\"text\":\"\\t\\treturn [\"},{\"line\":143,\"text\":\"\\t\\t\\t'type',\"},{\"line\":144,\"text\":\"\\t\\t\\t'template',\"},{\"line\":145,\"text\":\"\\t\\t\\t'modification_key',\"},{\"line\":146,\"text\":\"\\t\\t\\t'description',\"},{\"line\":147,\"text\":\"\\t\\t\\t'execution_order',\"},{\"line\":148,\"text\":\"\\t\\t\\t'enabled',\"},{\"line\":149,\"text\":\"\\t\\t\\t'action',\"},{\"line\":150,\"text\":\"\\t\\t];\"},{\"line\":151,\"text\":\"\\t}\"}],\"sha256\":\"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a\",\"start_line\":140},\"importAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false},{\"name\":\"start\",\"required\":false,\"variadic\":false},{\"name\":\"maxRunTime\",\"required\":false,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":4},\"importAddOnData_source\":{\"end_line\":96,\"file\":\"src/XF/AddOn/DataType/TemplateModification.php\",\"lines\":[{\"line\":48,\"text\":\"\\tpublic function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)\"},{\"line\":49,\"text\":\"\\t{\"},{\"line\":50,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":51,\"text\":\"\"},{\"line\":52,\"text\":\"\\t\\t$entries = $this->getEntries($container, $start);\"},{\"line\":53,\"text\":\"\\t\\tif (!$entries)\"},{\"line\":54,\"text\":\"\\t\\t{\"},{\"line\":55,\"text\":\"\\t\\t\\treturn false;\"},{\"line\":56,\"text\":\"\\t\\t}\"},{\"line\":57,\"text\":\"\"},{\"line\":58,\"text\":\"\\t\\t$keys = $this->pluckXmlAttribute($entries, 'modification_key');\"},{\"line\":59,\"text\":\"\\t\\t$existing = $this->finder()\"},{\"line\":60,\"text\":\"\\t\\t\\t->where('modification_key', $keys)\"},{\"line\":61,\"text\":\"\\t\\t\\t->keyedBy('modification_key')\"},{\"line\":62,\"text\":\"\\t\\t\\t->fetch();\"},{\"line\":63,\"text\":\"\"},{\"line\":64,\"text\":\"\\t\\t$i = 0;\"},{\"line\":65,\"text\":\"\\t\\t$last = 0;\"},{\"line\":66,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":67,\"text\":\"\\t\\t{\"},{\"line\":68,\"text\":\"\\t\\t\\t$i++;\"},{\"line\":69,\"text\":\"\"},{\"line\":70,\"text\":\"\\t\\t\\tif ($i <= $start)\"},{\"line\":71,\"text\":\"\\t\\t\\t{\"},{\"line\":72,\"text\":\"\\t\\t\\t\\tcontinue;\"},{\"line\":73,\"text\":\"\\t\\t\\t}\"},{\"line\":74,\"text\":\"\"},{\"line\":75,\"text\":\"\\t\\t\\t$entity = $existing[(string) $entry['modification_key']] ?? $this->create();\"},{\"line\":76,\"text\":\"\\t\\t\\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);\"},{\"line\":77,\"text\":\"\\t\\t\\t$entity->setOption('hide_errors', true);\"},{\"line\":78,\"text\":\"\"},{\"line\":79,\"text\":\"\\t\\t\\t$this->importMappedAttributes($entry, $entity);\"},{\"line\":80,\"text\":\"\"},{\"line\":81,\"text\":\"\\t\\t\\t$entity->find = $this->getCdataValue($entry->find);\"},{\"line\":82,\"text\":\"\\t\\t\\t$entity->replace = $this->getCdataValue($entry->replace);\"},{\"line\":83,\"text\":\"\"},{\"line\":84,\"text\":\"\\t\\t\\t$entity->addon_id = $addOnId;\"},{\"line\":85,\"text\":\"\\t\\t\\t$entity->save(true, false);\"},{\"line\":86,\"text\":\"\"},{\"line\":87,\"text\":\"\\t\\t\\t\\\\XF::dequeueRunOnce('styleLastModifiedDate');\"},{\"line\":88,\"text\":\"\"},{\"line\":89,\"text\":\"\\t\\t\\tif ($this->resume($maxRunTime, $startTime))\"},{\"line\":90,\"text\":\"\\t\\t\\t{\"},{\"line\":91,\"text\":\"\\t\\t\\t\\t$last = $i;\"},{\"line\":92,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":93,\"text\":\"\\t\\t\\t}\"},{\"line\":94,\"text\":\"\\t\\t}\"},{\"line\":95,\"text\":\"\\t\\treturn ($last ?: false);\"},{\"line\":96,\"text\":\"\\t}\"}],\"sha256\":\"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a\",\"start_line\":48}},\"templates.xml\":{\"class\":\"XF\\\\AddOn\\\\DataType\\\\Template\",\"exists\":true,\"exportAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":2},\"exportAddOnData_source\":{\"end_line\":42,\"file\":\"src/XF/AddOn/DataType/Template.php\",\"lines\":[{\"line\":25,\"text\":\"\\tpublic function exportAddOnData($addOnId, \\\\DOMElement $container)\"},{\"line\":26,\"text\":\"\\t{\"},{\"line\":27,\"text\":\"\\t\\t$entries = $this->finder()\"},{\"line\":28,\"text\":\"\\t\\t\\t->where('addon_id', $addOnId)\"},{\"line\":29,\"text\":\"\\t\\t\\t->where('style_id', 0)\"},{\"line\":30,\"text\":\"\\t\\t\\t->order(['type', 'title'])->fetch();\"},{\"line\":31,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":32,\"text\":\"\\t\\t{\"},{\"line\":33,\"text\":\"\\t\\t\\t$node = $container->ownerDocument->createElement($this->getChildTag());\"},{\"line\":34,\"text\":\"\"},{\"line\":35,\"text\":\"\\t\\t\\t$this->exportMappedAttributes($node, $entry);\"},{\"line\":36,\"text\":\"\\t\\t\\t$this->exportCdata($node, $entry->template);\"},{\"line\":37,\"text\":\"\"},{\"line\":38,\"text\":\"\\t\\t\\t$container->appendChild($node);\"},{\"line\":39,\"text\":\"\\t\\t}\"},{\"line\":40,\"text\":\"\"},{\"line\":41,\"text\":\"\\t\\treturn $entries->count() ? true : false;\"},{\"line\":42,\"text\":\"\\t}\"}],\"sha256\":\"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a\",\"start_line\":25},\"getChildTag\":{\"ok\":true,\"value\":\"template\"},\"getChildTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getChildTag_source\":{\"end_line\":23,\"file\":\"src/XF/AddOn/DataType/Template.php\",\"lines\":[{\"line\":20,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":21,\"text\":\"\\t{\"},{\"line\":22,\"text\":\"\\t\\treturn 'template';\"},{\"line\":23,\"text\":\"\\t}\"}],\"sha256\":\"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a\",\"start_line\":20},\"getContainerTag\":{\"ok\":true,\"value\":\"templates\"},\"getContainerTag_sig\":{\"params\":[],\"protected\":false,\"public\":true,\"required\":0,\"static\":false,\"total\":0},\"getContainerTag_source\":{\"end_line\":18,\"file\":\"src/XF/AddOn/DataType/Template.php\",\"lines\":[{\"line\":15,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":16,\"text\":\"\\t{\"},{\"line\":17,\"text\":\"\\t\\treturn 'templates';\"},{\"line\":18,\"text\":\"\\t}\"}],\"sha256\":\"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a\",\"start_line\":15},\"getEntityId_sig\":null,\"getEntityId_source\":null,\"getEntityShortName_sig\":null,\"getEntityShortName_source\":null,\"getMaintainedAttributes\":{\"ok\":true,\"value\":[]},\"getMaintainedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMaintainedAttributes_source\":{\"end_line\":182,\"file\":\"src/XF/AddOn/DataType/AbstractDataType.php\",\"lines\":[{\"line\":179,\"text\":\"\\tprotected function getMaintainedAttributes()\"},{\"line\":180,\"text\":\"\\t{\"},{\"line\":181,\"text\":\"\\t\\treturn [];\"},{\"line\":182,\"text\":\"\\t}\"}],\"sha256\":\"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815\",\"start_line\":179},\"getMappedAttributes\":{\"ok\":true,\"value\":[\"type\",\"title\",\"version_id\",\"version_string\"]},\"getMappedAttributes_sig\":{\"params\":[],\"protected\":true,\"public\":false,\"required\":0,\"static\":false,\"total\":0},\"getMappedAttributes_source\":{\"end_line\":164,\"file\":\"src/XF/AddOn/DataType/Template.php\",\"lines\":[{\"line\":156,\"text\":\"\\tprotected function getMappedAttributes()\"},{\"line\":157,\"text\":\"\\t{\"},{\"line\":158,\"text\":\"\\t\\treturn [\"},{\"line\":159,\"text\":\"\\t\\t\\t'type',\"},{\"line\":160,\"text\":\"\\t\\t\\t'title',\"},{\"line\":161,\"text\":\"\\t\\t\\t'version_id',\"},{\"line\":162,\"text\":\"\\t\\t\\t'version_string',\"},{\"line\":163,\"text\":\"\\t\\t];\"},{\"line\":164,\"text\":\"\\t}\"}],\"sha256\":\"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a\",\"start_line\":156},\"importAddOnData_sig\":{\"params\":[{\"name\":\"addOnId\",\"required\":true,\"variadic\":false},{\"name\":\"container\",\"required\":true,\"variadic\":false},{\"name\":\"start\",\"required\":false,\"variadic\":false},{\"name\":\"maxRunTime\",\"required\":false,\"variadic\":false}],\"protected\":false,\"public\":true,\"required\":2,\"static\":false,\"total\":4},\"importAddOnData_source\":{\"end_line\":109,\"file\":\"src/XF/AddOn/DataType/Template.php\",\"lines\":[{\"line\":44,\"text\":\"\\tpublic function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)\"},{\"line\":45,\"text\":\"\\t{\"},{\"line\":46,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":47,\"text\":\"\"},{\"line\":48,\"text\":\"\\t\\t$entries = $this->getEntries($container, $start);\"},{\"line\":49,\"text\":\"\\t\\tif (!$entries)\"},{\"line\":50,\"text\":\"\\t\\t{\"},{\"line\":51,\"text\":\"\\t\\t\\treturn false;\"},{\"line\":52,\"text\":\"\\t\\t}\"},{\"line\":53,\"text\":\"\"},{\"line\":54,\"text\":\"\\t\\t$conditions = [];\"},{\"line\":55,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":56,\"text\":\"\\t\\t{\"},{\"line\":57,\"text\":\"\\t\\t\\t$conditions[] = [\"},{\"line\":58,\"text\":\"\\t\\t\\t\\t'type' => (string) $entry['type'],\"},{\"line\":59,\"text\":\"\\t\\t\\t\\t'title' => (string) $entry['title'],\"},{\"line\":60,\"text\":\"\\t\\t\\t];\"},{\"line\":61,\"text\":\"\\t\\t}\"},{\"line\":62,\"text\":\"\\t\\tif ($conditions)\"},{\"line\":63,\"text\":\"\\t\\t{\"},{\"line\":64,\"text\":\"\\t\\t\\t$existing = $this->finder()\"},{\"line\":65,\"text\":\"\\t\\t\\t\\t->whereOr($conditions)\"},{\"line\":66,\"text\":\"\\t\\t\\t\\t->where('style_id', 0)\"},{\"line\":67,\"text\":\"\\t\\t\\t\\t->fetch()\"},{\"line\":68,\"text\":\"\\t\\t\\t\\t->groupBy('type', 'title');\"},{\"line\":69,\"text\":\"\\t\\t}\"},{\"line\":70,\"text\":\"\\t\\telse\"},{\"line\":71,\"text\":\"\\t\\t{\"},{\"line\":72,\"text\":\"\\t\\t\\t$existing = [];\"},{\"line\":73,\"text\":\"\\t\\t}\"},{\"line\":74,\"text\":\"\"},{\"line\":75,\"text\":\"\\t\\t$i = 0;\"},{\"line\":76,\"text\":\"\\t\\t$last = 0;\"},{\"line\":77,\"text\":\"\"},{\"line\":78,\"text\":\"\\t\\tforeach ($entries AS $entry)\"},{\"line\":79,\"text\":\"\\t\\t{\"},{\"line\":80,\"text\":\"\\t\\t\\t$i++;\"},{\"line\":81,\"text\":\"\"},{\"line\":82,\"text\":\"\\t\\t\\tif ($i <= $start)\"},{\"line\":83,\"text\":\"\\t\\t\\t{\"},{\"line\":84,\"text\":\"\\t\\t\\t\\tcontinue;\"},{\"line\":85,\"text\":\"\\t\\t\\t}\"},{\"line\":86,\"text\":\"\"},{\"line\":87,\"text\":\"\\t\\t\\t$type = (string) $entry['type'];\"},{\"line\":88,\"text\":\"\\t\\t\\t$title = (string) $entry['title'];\"},{\"line\":89,\"text\":\"\\t\\t\\t$entity = $existing[$type][$title] ?? $this->create();\"},{\"line\":90,\"text\":\"\\t\\t\\t$entity->setOption('check_duplicate', false);\"},{\"line\":91,\"text\":\"\\t\\t\\t$entity->setOption('report_modification_errors', false);\"},{\"line\":92,\"text\":\"\\t\\t\\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);\"},{\"line\":93,\"text\":\"\"},{\"line\":94,\"text\":\"\\t\\t\\t$this->importMappedAttributes($entry, $entity);\"},{\"line\":95,\"text\":\"\\t\\t\\t$entity->style_id = 0;\"},{\"line\":96,\"text\":\"\\t\\t\\t$entity->template = $this->getCdataValue($entry);\"},{\"line\":97,\"text\":\"\\t\\t\\t$entity->addon_id = $addOnId;\"},{\"line\":98,\"text\":\"\\t\\t\\t$entity->save(true, false);\"},{\"line\":99,\"text\":\"\"},{\"line\":100,\"text\":\"\\t\\t\\t\\\\XF::dequeueRunOnce('styleLastModifiedDate');\"},{\"line\":101,\"text\":\"\"},{\"line\":102,\"text\":\"\\t\\t\\tif ($this->resume($maxRunTime, $startTime))\"},{\"line\":103,\"text\":\"\\t\\t\\t{\"},{\"line\":104,\"text\":\"\\t\\t\\t\\t$last = $i;\"},{\"line\":105,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":106,\"text\":\"\\t\\t\\t}\"},{\"line\":107,\"text\":\"\\t\\t}\"},{\"line\":108,\"text\":\"\\t\\treturn ($last ?: false);\"},{\"line\":109,\"text\":\"\\t}\"}],\"sha256\":\"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a\",\"start_line\":44}}},\"xf_version_id\":2031270},\"guest\":\"newfi-staging\",\"holds\":[\"DB_NOT_CLEAN\"],\"scope\":\"READ_ONLY_NO_MUTATION\",\"status\":\"HOLD\",\"structural\":{\"code_event_listeners.xml\":{\"candidate_attrs\":[\"active\",\"callback_class\",\"callback_method\",\"event_id\",\"execute_order\"],\"candidate_child_tags\":[\"listener\"],\"candidate_nested_tags\":[],\"candidate_root\":\"code_event_listeners\",\"child_runtime\":\"listener\",\"children_match\":true,\"container_match\":true,\"container_runtime\":\"code_event_listeners\"},\"content_type_fields.xml\":{\"candidate_attrs\":[\"content_type\",\"field_name\"],\"candidate_child_tags\":[\"field\"],\"candidate_nested_tags\":[],\"candidate_root\":\"content_type_fields\",\"child_runtime\":\"field\",\"children_match\":true,\"container_match\":true,\"container_runtime\":\"content_type_fields\"},\"option_groups.xml\":{\"candidate_attrs\":[\"debug_only\",\"display_order\",\"group_id\"],\"candidate_child_tags\":[\"group\"],\"candidate_nested_tags\":[],\"candidate_root\":\"option_groups\",\"child_runtime\":\"group\",\"children_match\":true,\"container_match\":true,\"container_runtime\":\"option_groups\"},\"options.xml\":{\"candidate_attrs\":[\"data_type\",\"edit_format\",\"option_id\"],\"candidate_child_tags\":[\"option\"],\"candidate_nested_tags\":[\"default_value\",\"relation\"],\"candidate_root\":\"options\",\"child_runtime\":\"option\",\"children_match\":true,\"container_match\":true,\"container_runtime\":\"options\"},\"permission_interface_groups.xml\":{\"candidate_attrs\":[\"display_order\",\"interface_group_id\",\"is_moderator\"],\"candidate_child_tags\":[\"interface_group\"],\"candidate_nested_tags\":[],\"candidate_root\":\"permission_interface_groups\",\"child_runtime\":\"interface_group\",\"children_match\":true,\"container_match\":true,\"container_runtime\":\"permission_interface_groups\"},\"permissions.xml\":{\"candidate_attrs\":[\"display_order\",\"interface_group_id\",\"permission_group_id\",\"permission_id\",\"permission_type\"],\"candidate_child_tags\":[\"permission\"],\"candidate_nested_tags\":[],\"candidate_root\":\"permissions\",\"child_runtime\":\"permission\",\"children_match\":true,\"container_match\":true,\"container_runtime\":\"permissions\"},\"phrases.xml\":{\"candidate_attrs\":[\"title\",\"version_id\",\"version_string\"],\"candidate_child_tags\":[\"phrase\"],\"candidate_nested_tags\":[],\"candidate_root\":\"phrases\",\"child_runtime\":\"phrase\",\"children_match\":true,\"container_match\":true,\"container_runtime\":\"phrases\"},\"routes.xml\":{\"candidate_attrs\":[\"action_prefix\",\"context\",\"controller\",\"format\",\"route_prefix\",\"route_type\",\"sub_name\"],\"candidate_child_tags\":[\"route\"],\"candidate_nested_tags\":[],\"candidate_root\":\"routes\",\"child_runtime\":\"route\",\"children_match\":true,\"container_match\":true,\"container_runtime\":\"routes\"},\"template_modifications.xml\":{\"candidate_attrs\":[\"action\",\"description\",\"enabled\",\"execution_order\",\"modification_key\",\"template\",\"type\"],\"candidate_child_tags\":[\"modification\"],\"candidate_nested_tags\":[\"find\",\"replace\"],\"candidate_root\":\"template_modifications\",\"child_runtime\":\"modification\",\"children_match\":true,\"container_match\":true,\"container_runtime\":\"template_modifications\"},\"templates.xml\":{\"candidate_attrs\":[\"title\",\"type\",\"version_id\",\"version_string\"],\"candidate_child_tags\":[\"template\"],\"candidate_nested_tags\":[],\"candidate_root\":\"templates\",\"child_runtime\":\"template\",\"children_match\":true,\"container_match\":true,\"container_runtime\":\"templates\"}}}\nSUPPORT046_HOLD=RuntimeError\nHOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"SUPPORT-260909-GRAM-XF-DATATYPE-EVIDENCE-046\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"FAIL\",\"version\":1}\n" + "output": "NEWFI78_BEGIN\nCOMMAND_ID=NEWFI-260909-NEWFDOM-PORTAL-OFFLINE-DRYRUN78\nERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nRUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\nGRAM_SUPPORT_WRITER_LOCK=RESPECTED\nSERVER_SCOPE=PVE01_GIT_WORKTREE_ONLY\nVM210_ACCESS=NONE\nVM211_ACCESS=NONE\nGRAM_SUPPORT_ACCESS=NONE\nNEWFI78_GIT={\"branch\":\"implementation/newfi-closed-mvp-20260906\",\"clean\":true,\"exact\":true,\"head\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"remote_head\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\"}\nNEWFI78_SOURCE_FILE={\"bytes\":363,\"matches_expected\":true,\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\",\"state\":\"OK\"}\nNEWFI78_SOURCE_FILE={\"bytes\":5213,\"matches_expected\":true,\"rel\":\"Service/PortalData.php\",\"sha256\":\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\",\"state\":\"OK\"}\nNEWFI78_SOURCE_FILE={\"bytes\":11021,\"matches_expected\":true,\"rel\":\"_data/templates.xml\",\"sha256\":\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\",\"state\":\"OK\"}\nNEWFI78_EXCEPTION=ValueError:SECTION_CARDINALITY:gallery:0\nTraceback (most recent call last):\n File \"\", line 1, in \n import base64,zlib;b=zlib.decompress(base64.b64decode(\"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\"));exec(compile(b,\"\",\"exec\"))\n ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"\", line 199, in \n File \"\", line 152, in main\n File \"\", line 79, in find_section\nValueError: SECTION_CARDINALITY:gallery:0\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 244171ee..fe78041c 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,22 +1,22 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=SUPPORT-260909-GRAM-XF-DATATYPE-EVIDENCE-046 +COMMAND_ID=NEWFI-260909-NEWFDOM-PORTAL-OFFLINE-DRYRUN78 STATUS=FAIL -RC=3 +RC=1 HOST=pve01 MODE=read-only -COMPONENT=gram-support-datatype-evidence +COMPONENT=newfi-portal-offline-candidate-dryrun REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 -COMMAND_SHA256=2912e8a38ca2a4553f5608d66d932f5b7b402cf92eec4c3b93e2f683c18002c4 +COMMAND_SHA256=c3b9b00de74914c64d2001c328bb872d18faebaca599d34eeb68f4a5a98e2b9a 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=3 +COMMAND_RC=1 CHANGES_MADE=false ROLLBACK_STARTED=false ROLLBACK_RESTORED=null @@ -24,18 +24,33 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=d3105032468f050c04b0fb02bcd7ea00c487c07fa27ba6fa7d2f74292c00fd8b -SANITIZED_OUTPUT_SHA256=d3105032468f050c04b0fb02bcd7ea00c487c07fa27ba6fa7d2f74292c00fd8b +RAW_EVIDENCE_SHA256=f919de6ee921394c1ca79153b63ee348663947fa130acf0edf87d939991889f8 +SANITIZED_OUTPUT_SHA256=f919de6ee921394c1ca79153b63ee348663947fa130acf0edf87d939991889f8 OUTPUT_BEGIN -SUPPORT046_BEGIN +NEWFI78_BEGIN +COMMAND_ID=NEWFI-260909-NEWFDOM-PORTAL-OFFLINE-DRYRUN78 ERROR_REGISTER_CHECK=OK REFERENCE_CHECK=OK AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED RUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d -SUPPORT046_QGA_STATE={"exitcode":3,"state":"GUEST_HOLD"} -SUPPORT046_VM211={"artifact_sha256":"c20ca0744835ab3e6d7e4d944923a51e86cc53ffa7371a1a58b72b13453a8b3b","candidate":{"code_event_listeners.xml":{"attrs":["active","callback_class","callback_method","event_id","execute_order"],"child_tags":["listener"],"nested_tags":[],"root":"code_event_listeners"},"content_type_fields.xml":{"attrs":["content_type","field_name"],"child_tags":["field"],"nested_tags":[],"root":"content_type_fields"},"option_groups.xml":{"attrs":["debug_only","display_order","group_id"],"child_tags":["group"],"nested_tags":[],"root":"option_groups"},"options.xml":{"attrs":["data_type","edit_format","option_id"],"child_tags":["option"],"nested_tags":["default_value","relation"],"root":"options"},"permission_interface_groups.xml":{"attrs":["display_order","interface_group_id","is_moderator"],"child_tags":["interface_group"],"nested_tags":[],"root":"permission_interface_groups"},"permissions.xml":{"attrs":["display_order","interface_group_id","permission_group_id","permission_id","permission_type"],"child_tags":["permission"],"nested_tags":[],"root":"permissions"},"phrases.xml":{"attrs":["title","version_id","version_string"],"child_tags":["phrase"],"nested_tags":[],"root":"phrases"},"routes.xml":{"attrs":["action_prefix","context","controller","format","route_prefix","route_type","sub_name"],"child_tags":["route"],"nested_tags":[],"root":"routes"},"template_modifications.xml":{"attrs":["action","description","enabled","execution_order","modification_key","template","type"],"child_tags":["modification"],"nested_tags":["find","replace"],"root":"template_modifications"},"templates.xml":{"attrs":["title","type","version_id","version_string"],"child_tags":["template"],"nested_tags":[],"root":"templates"}},"command_id":"SUPPORT-260909-GRAM-XF-DATATYPE-EVIDENCE-046","db":{"addon":0,"board_active":"0","errors_after_43":1,"options":0,"phrases":0,"routes":0,"tables":0,"templates":0},"decision":"HOLD","evidence":{"datatypes":{"code_event_listeners.xml":{"class":"XF\\AddOn\\DataType\\CodeEventListener","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":40,"file":"src/XF/AddOn/DataType/CodeEventListener.php","lines":[{"line":26,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":27,"text":"\t{"},{"line":28,"text":"\t\t$entries = $this->finder()"},{"line":29,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":30,"text":"\t\t\t->order(['event_id', 'callback_class', 'callback_method'])->fetch();"},{"line":31,"text":""},{"line":32,"text":"\t\tforeach ($entries AS $entry)"},{"line":33,"text":"\t\t{"},{"line":34,"text":"\t\t\t$node = $container->ownerDocument->createElement($this->getChildTag());"},{"line":35,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":36,"text":"\t\t\t$container->appendChild($node);"},{"line":37,"text":"\t\t}"},{"line":38,"text":""},{"line":39,"text":"\t\treturn $entries->count() ? true : false;"},{"line":40,"text":"\t}"}],"sha256":"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab","start_line":26},"getChildTag":{"ok":true,"value":"listener"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":24,"file":"src/XF/AddOn/DataType/CodeEventListener.php","lines":[{"line":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'listener';"},{"line":24,"text":"\t}"}],"sha256":"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab","start_line":21},"getContainerTag":{"ok":true,"value":"code_event_listeners"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":19,"file":"src/XF/AddOn/DataType/CodeEventListener.php","lines":[{"line":16,"text":"\tpublic function getContainerTag()"},{"line":17,"text":"\t{"},{"line":18,"text":"\t\treturn 'code_event_listeners';"},{"line":19,"text":"\t}"}],"sha256":"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab","start_line":16},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["event_id","execute_order","callback_class","callback_method","active","hint","description"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":138,"file":"src/XF/AddOn/DataType/CodeEventListener.php","lines":[{"line":127,"text":"\tprotected function getMappedAttributes()"},{"line":128,"text":"\t{"},{"line":129,"text":"\t\treturn ["},{"line":130,"text":"\t\t\t'event_id',"},{"line":131,"text":"\t\t\t'execute_order',"},{"line":132,"text":"\t\t\t'callback_class',"},{"line":133,"text":"\t\t\t'callback_method',"},{"line":134,"text":"\t\t\t'active',"},{"line":135,"text":"\t\t\t'hint',"},{"line":136,"text":"\t\t\t'description',"},{"line":137,"text":"\t\t];"},{"line":138,"text":"\t}"}],"sha256":"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab","start_line":127},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":86,"file":"src/XF/AddOn/DataType/CodeEventListener.php","lines":[{"line":42,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":43,"text":"\t{"},{"line":44,"text":"\t\t$startTime = microtime(true);"},{"line":45,"text":""},{"line":46,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":47,"text":"\t\tif (!$entries)"},{"line":48,"text":"\t\t{"},{"line":49,"text":"\t\t\treturn false;"},{"line":50,"text":"\t\t}"},{"line":51,"text":""},{"line":52,"text":"\t\t$existing = [];"},{"line":53,"text":"\t\tforeach ($this->findAllForType($addOnId)->fetch() AS $listener)"},{"line":54,"text":"\t\t{"},{"line":55,"text":"\t\t\t$existing[$listener->getAddOnUniqueKey()] = $listener;"},{"line":56,"text":"\t\t}"},{"line":57,"text":""},{"line":58,"text":"\t\t$i = 0;"},{"line":59,"text":"\t\t$last = 0;"},{"line":60,"text":"\t\tforeach ($entries AS $entry)"},{"line":61,"text":"\t\t{"},{"line":62,"text":"\t\t\t$i++;"},{"line":63,"text":""},{"line":64,"text":"\t\t\tif ($i <= $start)"},{"line":65,"text":"\t\t\t{"},{"line":66,"text":"\t\t\t\tcontinue;"},{"line":67,"text":"\t\t\t}"},{"line":68,"text":""},{"line":69,"text":"\t\t\t$key = $this->getAddOnUniqueKeyFromXml($entry);"},{"line":70,"text":"\t\t\t$entity = $existing[$key] ?? $this->create();"},{"line":71,"text":""},{"line":72,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":73,"text":"\t\t\t$entity->setOption('check_duplicate', false);"},{"line":74,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":75,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":76,"text":""},{"line":77,"text":"\t\t\t$entity->save(true, false);"},{"line":78,"text":""},{"line":79,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":80,"text":"\t\t\t{"},{"line":81,"text":"\t\t\t\t$last = $i;"},{"line":82,"text":"\t\t\t\tbreak;"},{"line":83,"text":"\t\t\t}"},{"line":84,"text":"\t\t}"},{"line":85,"text":"\t\treturn ($last ?: false);"},{"line":86,"text":"\t}"}],"sha256":"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab","start_line":42}},"content_type_fields.xml":{"class":"XF\\AddOn\\DataType\\ContentTypeField","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":45,"file":"src/XF/AddOn/DataType/ContentTypeField.php","lines":[{"line":26,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":27,"text":"\t{"},{"line":28,"text":"\t\t$entries = $this->finder()"},{"line":29,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":30,"text":"\t\t\t->order(['content_type', 'field_name'])->fetch();"},{"line":31,"text":""},{"line":32,"text":"\t\t$doc = $container->ownerDocument;"},{"line":33,"text":""},{"line":34,"text":"\t\tforeach ($entries AS $entry)"},{"line":35,"text":"\t\t{"},{"line":36,"text":"\t\t\t$node = $doc->createElement($this->getChildTag());"},{"line":37,"text":""},{"line":38,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":39,"text":"\t\t\t$node->appendChild($doc->createTextNode($entry->field_value));"},{"line":40,"text":""},{"line":41,"text":"\t\t\t$container->appendChild($node);"},{"line":42,"text":"\t\t}"},{"line":43,"text":""},{"line":44,"text":"\t\treturn $entries->count() ? true : false;"},{"line":45,"text":"\t}"}],"sha256":"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594","start_line":26},"getChildTag":{"ok":true,"value":"field"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":24,"file":"src/XF/AddOn/DataType/ContentTypeField.php","lines":[{"line":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'field';"},{"line":24,"text":"\t}"}],"sha256":"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594","start_line":21},"getContainerTag":{"ok":true,"value":"content_type_fields"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":19,"file":"src/XF/AddOn/DataType/ContentTypeField.php","lines":[{"line":16,"text":"\tpublic function getContainerTag()"},{"line":17,"text":"\t{"},{"line":18,"text":"\t\treturn 'content_type_fields';"},{"line":19,"text":"\t}"}],"sha256":"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594","start_line":16},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["content_type","field_name"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":138,"file":"src/XF/AddOn/DataType/ContentTypeField.php","lines":[{"line":132,"text":"\tprotected function getMappedAttributes()"},{"line":133,"text":"\t{"},{"line":134,"text":"\t\treturn ["},{"line":135,"text":"\t\t\t'content_type',"},{"line":136,"text":"\t\t\t'field_name',"},{"line":137,"text":"\t\t];"},{"line":138,"text":"\t}"}],"sha256":"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594","start_line":132},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":88,"file":"src/XF/AddOn/DataType/ContentTypeField.php","lines":[{"line":47,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":48,"text":"\t{"},{"line":49,"text":"\t\t$startTime = microtime(true);"},{"line":50,"text":""},{"line":51,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":52,"text":"\t\tif (!$entries)"},{"line":53,"text":"\t\t{"},{"line":54,"text":"\t\t\treturn false;"},{"line":55,"text":"\t\t}"},{"line":56,"text":""},{"line":57,"text":"\t\t$existing = $this->finder()->fetch()->groupBy('content_type', 'field_name');"},{"line":58,"text":""},{"line":59,"text":"\t\t$i = 0;"},{"line":60,"text":"\t\t$last = 0;"},{"line":61,"text":"\t\tforeach ($entries AS $entry)"},{"line":62,"text":"\t\t{"},{"line":63,"text":"\t\t\t$i++;"},{"line":64,"text":""},{"line":65,"text":"\t\t\tif ($i <= $start)"},{"line":66,"text":"\t\t\t{"},{"line":67,"text":"\t\t\t\tcontinue;"},{"line":68,"text":"\t\t\t}"},{"line":69,"text":""},{"line":70,"text":"\t\t\t$type = (string) $entry['content_type'];"},{"line":71,"text":"\t\t\t$name = (string) $entry['field_name'];"},{"line":72,"text":"\t\t\t$entity = $existing[$type][$name] ?? $this->create();"},{"line":73,"text":""},{"line":74,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":75,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":76,"text":"\t\t\t$entity->field_value = (string) $entry;"},{"line":77,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":78,"text":""},{"line":79,"text":"\t\t\t$entity->save(true, false);"},{"line":80,"text":""},{"line":81,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":82,"text":"\t\t\t{"},{"line":83,"text":"\t\t\t\t$last = $i;"},{"line":84,"text":"\t\t\t\tbreak;"},{"line":85,"text":"\t\t\t}"},{"line":86,"text":"\t\t}"},{"line":87,"text":"\t\treturn ($last ?: false);"},{"line":88,"text":"\t}"}],"sha256":"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594","start_line":47}},"option_groups.xml":{"class":"XF\\AddOn\\DataType\\OptionGroup","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":40,"file":"src/XF/AddOn/DataType/OptionGroup.php","lines":[{"line":24,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":25,"text":"\t{"},{"line":26,"text":"\t\t$entries = $this->finder()"},{"line":27,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":28,"text":"\t\t\t->order('group_id')->fetch();"},{"line":29,"text":""},{"line":30,"text":"\t\tforeach ($entries AS $entry)"},{"line":31,"text":"\t\t{"},{"line":32,"text":"\t\t\t$node = $container->ownerDocument->createElement($this->getChildTag());"},{"line":33,"text":""},{"line":34,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":35,"text":""},{"line":36,"text":"\t\t\t$container->appendChild($node);"},{"line":37,"text":"\t\t}"},{"line":38,"text":""},{"line":39,"text":"\t\treturn $entries->count() ? true : false;"},{"line":40,"text":"\t}"}],"sha256":"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da","start_line":24},"getChildTag":{"ok":true,"value":"group"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":22,"file":"src/XF/AddOn/DataType/OptionGroup.php","lines":[{"line":19,"text":"\tpublic function getChildTag()"},{"line":20,"text":"\t{"},{"line":21,"text":"\t\treturn 'group';"},{"line":22,"text":"\t}"}],"sha256":"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da","start_line":19},"getContainerTag":{"ok":true,"value":"option_groups"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":17,"file":"src/XF/AddOn/DataType/OptionGroup.php","lines":[{"line":14,"text":"\tpublic function getContainerTag()"},{"line":15,"text":"\t{"},{"line":16,"text":"\t\treturn 'option_groups';"},{"line":17,"text":"\t}"}],"sha256":"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da","start_line":14},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["group_id","icon","display_order","debug_only"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":96,"file":"src/XF/AddOn/DataType/OptionGroup.php","lines":[{"line":88,"text":"\tprotected function getMappedAttributes()"},{"line":89,"text":"\t{"},{"line":90,"text":"\t\treturn ["},{"line":91,"text":"\t\t\t'group_id',"},{"line":92,"text":"\t\t\t'icon',"},{"line":93,"text":"\t\t\t'display_order',"},{"line":94,"text":"\t\t\t'debug_only',"},{"line":95,"text":"\t\t];"},{"line":96,"text":"\t}"}],"sha256":"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da","start_line":88},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":81,"file":"src/XF/AddOn/DataType/OptionGroup.php","lines":[{"line":42,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":43,"text":"\t{"},{"line":44,"text":"\t\t$startTime = microtime(true);"},{"line":45,"text":""},{"line":46,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":47,"text":"\t\tif (!$entries)"},{"line":48,"text":"\t\t{"},{"line":49,"text":"\t\t\treturn false;"},{"line":50,"text":"\t\t}"},{"line":51,"text":""},{"line":52,"text":"\t\t$ids = $this->pluckXmlAttribute($entries, 'group_id');"},{"line":53,"text":"\t\t$existing = $this->findByIds($ids);"},{"line":54,"text":""},{"line":55,"text":"\t\t$i = 0;"},{"line":56,"text":"\t\t$last = 0;"},{"line":57,"text":"\t\tforeach ($entries AS $entry)"},{"line":58,"text":"\t\t{"},{"line":59,"text":"\t\t\t$id = $ids[$i++];"},{"line":60,"text":""},{"line":61,"text":"\t\t\tif ($i <= $start)"},{"line":62,"text":"\t\t\t{"},{"line":63,"text":"\t\t\t\tcontinue;"},{"line":64,"text":"\t\t\t}"},{"line":65,"text":""},{"line":66,"text":"\t\t\t$entity = $existing[$id] ?? $this->create();"},{"line":67,"text":""},{"line":68,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":69,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":70,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":71,"text":""},{"line":72,"text":"\t\t\t$entity->save(true, false);"},{"line":73,"text":""},{"line":74,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":75,"text":"\t\t\t{"},{"line":76,"text":"\t\t\t\t$last = $i;"},{"line":77,"text":"\t\t\t\tbreak;"},{"line":78,"text":"\t\t\t}"},{"line":79,"text":"\t\t}"},{"line":80,"text":"\t\treturn ($last ?: false);"},{"line":81,"text":"\t}"}],"sha256":"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da","start_line":42}},"options.xml":{"class":"XF\\AddOn\\DataType\\Option","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":62,"file":"src/XF/AddOn/DataType/Option.php","lines":[{"line":27,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":28,"text":"\t{"},{"line":29,"text":"\t\t$entries = $this->finder()"},{"line":30,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":31,"text":"\t\t\t->order('option_id')->fetch();"},{"line":32,"text":""},{"line":33,"text":"\t\t$doc = $container->ownerDocument;"},{"line":34,"text":""},{"line":35,"text":"\t\tforeach ($entries AS $entry)"},{"line":36,"text":"\t\t{"},{"line":37,"text":"\t\t\t$node = $doc->createElement($this->getChildTag());"},{"line":38,"text":""},{"line":39,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":40,"text":"\t\t\t$node->appendChild(Xml::createDomElement($doc, 'default_value', $entry->getValue('default_value')));"},{"line":41,"text":"\t\t\tif ($entry->edit_format_params !== '')"},{"line":42,"text":"\t\t\t{"},{"line":43,"text":"\t\t\t\t$node->appendChild(Xml::createDomElement($doc, 'edit_format_params', $entry->edit_format_params));"},{"line":44,"text":"\t\t\t}"},{"line":45,"text":"\t\t\tif ($entry->sub_options)"},{"line":46,"text":"\t\t\t{"},{"line":47,"text":"\t\t\t\t$node->appendChild(Xml::createDomElement($doc, 'sub_options', implode(\"\\n\", $entry->sub_options)));"},{"line":48,"text":"\t\t\t}"},{"line":49,"text":""},{"line":50,"text":"\t\t\tforeach ($entry->Relations AS $relation)"},{"line":51,"text":"\t\t\t{"},{"line":52,"text":"\t\t\t\t$relationNode = $doc->createElement('relation');"},{"line":53,"text":"\t\t\t\t$relationNode->setAttribute('group_id', $relation->group_id);"},{"line":54,"text":"\t\t\t\t$relationNode->setAttribute('display_order', $relation->display_order);"},{"line":55,"text":"\t\t\t\t$node->appendChild($relationNode);"},{"line":56,"text":"\t\t\t}"},{"line":57,"text":""},{"line":58,"text":"\t\t\t$container->appendChild($node);"},{"line":59,"text":"\t\t}"},{"line":60,"text":""},{"line":61,"text":"\t\treturn $entries->count() ? true : false;"},{"line":62,"text":"\t}"}],"sha256":"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60","start_line":27},"getChildTag":{"ok":true,"value":"option"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":25,"file":"src/XF/AddOn/DataType/Option.php","lines":[{"line":22,"text":"\tpublic function getChildTag()"},{"line":23,"text":"\t{"},{"line":24,"text":"\t\treturn 'option';"},{"line":25,"text":"\t}"}],"sha256":"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60","start_line":22},"getContainerTag":{"ok":true,"value":"options"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":20,"file":"src/XF/AddOn/DataType/Option.php","lines":[{"line":17,"text":"\tpublic function getContainerTag()"},{"line":18,"text":"\t{"},{"line":19,"text":"\t\treturn 'options';"},{"line":20,"text":"\t}"}],"sha256":"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60","start_line":17},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["option_id","edit_format","data_type","validation_class","validation_method","advanced"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":138,"file":"src/XF/AddOn/DataType/Option.php","lines":[{"line":128,"text":"\tprotected function getMappedAttributes()"},{"line":129,"text":"\t{"},{"line":130,"text":"\t\treturn ["},{"line":131,"text":"\t\t\t'option_id',"},{"line":132,"text":"\t\t\t'edit_format',"},{"line":133,"text":"\t\t\t'data_type',"},{"line":134,"text":"\t\t\t'validation_class',"},{"line":135,"text":"\t\t\t'validation_method',"},{"line":136,"text":"\t\t\t'advanced',"},{"line":137,"text":"\t\t];"},{"line":138,"text":"\t}"}],"sha256":"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60","start_line":128},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":121,"file":"src/XF/AddOn/DataType/Option.php","lines":[{"line":64,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":65,"text":"\t{"},{"line":66,"text":"\t\t$startTime = microtime(true);"},{"line":67,"text":""},{"line":68,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":69,"text":"\t\tif (!$entries)"},{"line":70,"text":"\t\t{"},{"line":71,"text":"\t\t\treturn false;"},{"line":72,"text":"\t\t}"},{"line":73,"text":""},{"line":74,"text":"\t\t$ids = $this->pluckXmlAttribute($entries, 'option_id');"},{"line":75,"text":"\t\t$existing = $this->findByIds($ids);"},{"line":76,"text":""},{"line":77,"text":"\t\t$i = 0;"},{"line":78,"text":"\t\t$last = 0;"},{"line":79,"text":"\t\tforeach ($entries AS $entry)"},{"line":80,"text":"\t\t{"},{"line":81,"text":"\t\t\t$id = $ids[$i++];"},{"line":82,"text":""},{"line":83,"text":"\t\t\tif ($i <= $start)"},{"line":84,"text":"\t\t\t{"},{"line":85,"text":"\t\t\t\tcontinue;"},{"line":86,"text":"\t\t\t}"},{"line":87,"text":""},{"line":88,"text":"\t\t\t/** @var \\XF\\Entity\\Option $entity */"},{"line":89,"text":"\t\t\t$entity = $existing[$id] ?? $this->create();"},{"line":90,"text":""},{"line":91,"text":"\t\t\t$entity->setOptions(["},{"line":92,"text":"\t\t\t\t'verify_validation_callback' => false,"},{"line":93,"text":"\t\t\t\t'verify_value' => false,"},{"line":94,"text":"\t\t\t]);"},{"line":95,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":96,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":97,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":98,"text":"\t\t\t$entity->default_value = (string) $entry->default_value;"},{"line":99,"text":"\t\t\t$entity->edit_format_params = (string) $entry->edit_format_params;"},{"line":100,"text":""},{"line":101,"text":"\t\t\t$subOptions = (string) $entry->sub_options;"},{"line":102,"text":"\t\t\t$entity->sub_options = strlen($subOptions) ? explode(\"\\n\", $subOptions) : [];"},{"line":103,"text":""},{"line":104,"text":"\t\t\t$entity->save(true, false);"},{"line":105,"text":""},{"line":106,"text":"\t\t\t$relations = [];"},{"line":107,"text":"\t\t\tforeach ($entry->relation AS $relation)"},{"line":108,"text":"\t\t\t{"},{"line":109,"text":"\t\t\t\t$relations[(string) $relation['group_id']] = (string) $relation['display_order'];"},{"line":110,"text":"\t\t\t}"},{"line":111,"text":""},{"line":112,"text":"\t\t\t$entity->updateRelations($relations);"},{"line":113,"text":""},{"line":114,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":115,"text":"\t\t\t{"},{"line":116,"text":"\t\t\t\t$last = $i;"},{"line":117,"text":"\t\t\t\tbreak;"},{"line":118,"text":"\t\t\t}"},{"line":119,"text":"\t\t}"},{"line":120,"text":"\t\treturn ($last ?: false);"},{"line":121,"text":"\t}"}],"sha256":"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60","start_line":64}},"permission_interface_groups.xml":{"class":"XF\\AddOn\\DataType\\PermissionInterfaceGroup","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":41,"file":"src/XF/AddOn/DataType/PermissionInterfaceGroup.php","lines":[{"line":25,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":26,"text":"\t{"},{"line":27,"text":"\t\t$entries = $this->finder()"},{"line":28,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":29,"text":"\t\t\t->order('interface_group_id')->fetch();"},{"line":30,"text":""},{"line":31,"text":"\t\tforeach ($entries AS $entry)"},{"line":32,"text":"\t\t{"},{"line":33,"text":"\t\t\t$node = $container->ownerDocument->createElement($this->getChildTag());"},{"line":34,"text":""},{"line":35,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":36,"text":""},{"line":37,"text":"\t\t\t$container->appendChild($node);"},{"line":38,"text":"\t\t}"},{"line":39,"text":""},{"line":40,"text":"\t\treturn $entries->count() ? true : false;"},{"line":41,"text":"\t}"}],"sha256":"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6","start_line":25},"getChildTag":{"ok":true,"value":"interface_group"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":23,"file":"src/XF/AddOn/DataType/PermissionInterfaceGroup.php","lines":[{"line":20,"text":"\tpublic function getChildTag()"},{"line":21,"text":"\t{"},{"line":22,"text":"\t\treturn 'interface_group';"},{"line":23,"text":"\t}"}],"sha256":"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6","start_line":20},"getContainerTag":{"ok":true,"value":"permission_interface_groups"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":18,"file":"src/XF/AddOn/DataType/PermissionInterfaceGroup.php","lines":[{"line":15,"text":"\tpublic function getContainerTag()"},{"line":16,"text":"\t{"},{"line":17,"text":"\t\treturn 'permission_interface_groups';"},{"line":18,"text":"\t}"}],"sha256":"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6","start_line":15},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["interface_group_id","display_order","is_moderator"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":102,"file":"src/XF/AddOn/DataType/PermissionInterfaceGroup.php","lines":[{"line":95,"text":"\tprotected function getMappedAttributes()"},{"line":96,"text":"\t{"},{"line":97,"text":"\t\treturn ["},{"line":98,"text":"\t\t\t'interface_group_id',"},{"line":99,"text":"\t\t\t'display_order',"},{"line":100,"text":"\t\t\t'is_moderator',"},{"line":101,"text":"\t\t];"},{"line":102,"text":"\t}"}],"sha256":"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6","start_line":95},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":82,"file":"src/XF/AddOn/DataType/PermissionInterfaceGroup.php","lines":[{"line":43,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":44,"text":"\t{"},{"line":45,"text":"\t\t$startTime = microtime(true);"},{"line":46,"text":""},{"line":47,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":48,"text":"\t\tif (!$entries)"},{"line":49,"text":"\t\t{"},{"line":50,"text":"\t\t\treturn false;"},{"line":51,"text":"\t\t}"},{"line":52,"text":""},{"line":53,"text":"\t\t$ids = $this->pluckXmlAttribute($entries, 'interface_group_id');"},{"line":54,"text":"\t\t$existing = $this->findByIds($ids);"},{"line":55,"text":""},{"line":56,"text":"\t\t$i = 0;"},{"line":57,"text":"\t\t$last = 0;"},{"line":58,"text":"\t\tforeach ($entries AS $entry)"},{"line":59,"text":"\t\t{"},{"line":60,"text":"\t\t\t$id = $ids[$i++];"},{"line":61,"text":""},{"line":62,"text":"\t\t\tif ($i <= $start)"},{"line":63,"text":"\t\t\t{"},{"line":64,"text":"\t\t\t\tcontinue;"},{"line":65,"text":"\t\t\t}"},{"line":66,"text":""},{"line":67,"text":"\t\t\t$entity = $existing[$id] ?? $this->create();"},{"line":68,"text":""},{"line":69,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":70,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":71,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":72,"text":""},{"line":73,"text":"\t\t\t$entity->save(true, false);"},{"line":74,"text":""},{"line":75,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":76,"text":"\t\t\t{"},{"line":77,"text":"\t\t\t\t$last = $i;"},{"line":78,"text":"\t\t\t\tbreak;"},{"line":79,"text":"\t\t\t}"},{"line":80,"text":"\t\t}"},{"line":81,"text":"\t\treturn ($last ?: false);"},{"line":82,"text":"\t}"}],"sha256":"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6","start_line":43}},"permissions.xml":{"class":"XF\\AddOn\\DataType\\Permission","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":44,"file":"src/XF/AddOn/DataType/Permission.php","lines":[{"line":28,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":29,"text":"\t{"},{"line":30,"text":"\t\t$entries = $this->finder()"},{"line":31,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":32,"text":"\t\t\t->order(['permission_group_id', 'permission_id'])->fetch();"},{"line":33,"text":""},{"line":34,"text":"\t\tforeach ($entries AS $entry)"},{"line":35,"text":"\t\t{"},{"line":36,"text":"\t\t\t$node = $container->ownerDocument->createElement($this->getChildTag());"},{"line":37,"text":""},{"line":38,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":39,"text":""},{"line":40,"text":"\t\t\t$container->appendChild($node);"},{"line":41,"text":"\t\t}"},{"line":42,"text":""},{"line":43,"text":"\t\treturn $entries->count() ? true : false;"},{"line":44,"text":"\t}"}],"sha256":"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477","start_line":28},"getChildTag":{"ok":true,"value":"permission"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":26,"file":"src/XF/AddOn/DataType/Permission.php","lines":[{"line":23,"text":"\tpublic function getChildTag()"},{"line":24,"text":"\t{"},{"line":25,"text":"\t\treturn 'permission';"},{"line":26,"text":"\t}"}],"sha256":"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477","start_line":23},"getContainerTag":{"ok":true,"value":"permissions"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":21,"file":"src/XF/AddOn/DataType/Permission.php","lines":[{"line":18,"text":"\tpublic function getContainerTag()"},{"line":19,"text":"\t{"},{"line":20,"text":"\t\treturn 'permissions';"},{"line":21,"text":"\t}"}],"sha256":"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477","start_line":18},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["permission_group_id","permission_id","permission_type","depend_permission_id","interface_group_id","display_order"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":159,"file":"src/XF/AddOn/DataType/Permission.php","lines":[{"line":149,"text":"\tprotected function getMappedAttributes()"},{"line":150,"text":"\t{"},{"line":151,"text":"\t\treturn ["},{"line":152,"text":"\t\t\t'permission_group_id',"},{"line":153,"text":"\t\t\t'permission_id',"},{"line":154,"text":"\t\t\t'permission_type',"},{"line":155,"text":"\t\t\t'depend_permission_id',"},{"line":156,"text":"\t\t\t'interface_group_id',"},{"line":157,"text":"\t\t\t'display_order',"},{"line":158,"text":"\t\t];"},{"line":159,"text":"\t}"}],"sha256":"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477","start_line":149},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":102,"file":"src/XF/AddOn/DataType/Permission.php","lines":[{"line":46,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":47,"text":"\t{"},{"line":48,"text":"\t\t$startTime = microtime(true);"},{"line":49,"text":""},{"line":50,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":51,"text":"\t\tif (!$entries)"},{"line":52,"text":"\t\t{"},{"line":53,"text":"\t\t\treturn false;"},{"line":54,"text":"\t\t}"},{"line":55,"text":""},{"line":56,"text":"\t\t$conditions = [];"},{"line":57,"text":"\t\tforeach ($entries AS $entry)"},{"line":58,"text":"\t\t{"},{"line":59,"text":"\t\t\t$conditions[] = ["},{"line":60,"text":"\t\t\t\t'permission_group_id' => (string) $entry['permission_group_id'],"},{"line":61,"text":"\t\t\t\t'permission_id' => (string) $entry['permission_id'],"},{"line":62,"text":"\t\t\t];"},{"line":63,"text":"\t\t}"},{"line":64,"text":"\t\tif ($conditions)"},{"line":65,"text":"\t\t{"},{"line":66,"text":"\t\t\t$existing = $this->finder()->whereOr($conditions)->fetch()->groupBy('permission_group_id', 'permission_id');"},{"line":67,"text":"\t\t}"},{"line":68,"text":"\t\telse"},{"line":69,"text":"\t\t{"},{"line":70,"text":"\t\t\t$existing = [];"},{"line":71,"text":"\t\t}"},{"line":72,"text":""},{"line":73,"text":"\t\t$i = 0;"},{"line":74,"text":"\t\t$last = 0;"},{"line":75,"text":"\t\tforeach ($entries AS $entry)"},{"line":76,"text":"\t\t{"},{"line":77,"text":"\t\t\t$i++;"},{"line":78,"text":""},{"line":79,"text":"\t\t\tif ($i <= $start)"},{"line":80,"text":"\t\t\t{"},{"line":81,"text":"\t\t\t\tcontinue;"},{"line":82,"text":"\t\t\t}"},{"line":83,"text":""},{"line":84,"text":"\t\t\t$groupId = (string) $entry['permission_group_id'];"},{"line":85,"text":"\t\t\t$permissionId = (string) $entry['permission_id'];"},{"line":86,"text":"\t\t\t$entity = $existing[$groupId][$permissionId] ?? $this->create();"},{"line":87,"text":""},{"line":88,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":89,"text":"\t\t\t$entity->setOption('dependent_check', false);"},{"line":90,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":91,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":92,"text":""},{"line":93,"text":"\t\t\t$entity->save(true, false);"},{"line":94,"text":""},{"line":95,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":96,"text":"\t\t\t{"},{"line":97,"text":"\t\t\t\t$last = $i;"},{"line":98,"text":"\t\t\t\tbreak;"},{"line":99,"text":"\t\t\t}"},{"line":100,"text":"\t\t}"},{"line":101,"text":"\t\treturn ($last ?: false);"},{"line":102,"text":"\t}"}],"sha256":"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477","start_line":46}},"phrases.xml":{"class":"XF\\AddOn\\DataType\\Phrase","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":47,"file":"src/XF/AddOn/DataType/Phrase.php","lines":[{"line":26,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":27,"text":"\t{"},{"line":28,"text":"\t\t$entries = $this->finder()"},{"line":29,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":30,"text":"\t\t\t->where('language_id', 0)"},{"line":31,"text":"\t\t\t->order('title')->fetch();"},{"line":32,"text":"\t\tforeach ($entries AS $entry)"},{"line":33,"text":"\t\t{"},{"line":34,"text":"\t\t\t$node = $container->ownerDocument->createElement($this->getChildTag());"},{"line":35,"text":""},{"line":36,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":37,"text":"\t\t\tif ($entry['global_cache'])"},{"line":38,"text":"\t\t\t{"},{"line":39,"text":"\t\t\t\t$node->setAttribute('global_cache', '1');"},{"line":40,"text":"\t\t\t}"},{"line":41,"text":"\t\t\t$this->exportCdata($node, $entry->phrase_text);"},{"line":42,"text":""},{"line":43,"text":"\t\t\t$container->appendChild($node);"},{"line":44,"text":"\t\t}"},{"line":45,"text":""},{"line":46,"text":"\t\treturn $entries->count() ? true : false;"},{"line":47,"text":"\t}"}],"sha256":"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266","start_line":26},"getChildTag":{"ok":true,"value":"phrase"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":24,"file":"src/XF/AddOn/DataType/Phrase.php","lines":[{"line":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'phrase';"},{"line":24,"text":"\t}"}],"sha256":"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266","start_line":21},"getContainerTag":{"ok":true,"value":"phrases"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":19,"file":"src/XF/AddOn/DataType/Phrase.php","lines":[{"line":16,"text":"\tpublic function getContainerTag()"},{"line":17,"text":"\t{"},{"line":18,"text":"\t\treturn 'phrases';"},{"line":19,"text":"\t}"}],"sha256":"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266","start_line":16},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["title","version_id","version_string"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":128,"file":"src/XF/AddOn/DataType/Phrase.php","lines":[{"line":121,"text":"\tprotected function getMappedAttributes()"},{"line":122,"text":"\t{"},{"line":123,"text":"\t\treturn ["},{"line":124,"text":"\t\t\t'title',"},{"line":125,"text":"\t\t\t'version_id',"},{"line":126,"text":"\t\t\t'version_string',"},{"line":127,"text":"\t\t];"},{"line":128,"text":"\t}"}],"sha256":"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266","start_line":121},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":114,"file":"src/XF/AddOn/DataType/Phrase.php","lines":[{"line":49,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":50,"text":"\t{"},{"line":51,"text":"\t\t$startTime = microtime(true);"},{"line":52,"text":""},{"line":53,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":54,"text":"\t\tif (!$entries)"},{"line":55,"text":"\t\t{"},{"line":56,"text":"\t\t\treturn false;"},{"line":57,"text":"\t\t}"},{"line":58,"text":""},{"line":59,"text":"\t\t$ids = $this->pluckXmlAttribute($entries, 'title');"},{"line":60,"text":""},{"line":61,"text":"\t\t// This chucking approach has been taken due to a MariaDB performance regression with large"},{"line":62,"text":"\t\t// IN clauses (see #187523). However, this may have benefits on some slower servers as this"},{"line":63,"text":"\t\t// will reduce the number of times we attempt to instantiate phrase entities that won't be"},{"line":64,"text":"\t\t// processed in this run."},{"line":65,"text":"\t\t$chunkSize = 200;"},{"line":66,"text":"\t\t$nextFetch = null;"},{"line":67,"text":""},{"line":68,"text":"\t\t$i = 0;"},{"line":69,"text":"\t\t$last = 0;"},{"line":70,"text":"\t\tforeach ($entries AS $entry)"},{"line":71,"text":"\t\t{"},{"line":72,"text":"\t\t\t$originalI = $i;"},{"line":73,"text":""},{"line":74,"text":"\t\t\t$id = $ids[$i++];"},{"line":75,"text":""},{"line":76,"text":"\t\t\tif ($i <= $start)"},{"line":77,"text":"\t\t\t{"},{"line":78,"text":"\t\t\t\tcontinue;"},{"line":79,"text":"\t\t\t}"},{"line":80,"text":""},{"line":81,"text":"\t\t\tif ($nextFetch === null || $originalI >= $nextFetch)"},{"line":82,"text":"\t\t\t{"},{"line":83,"text":"\t\t\t\t$slice = array_slice($ids, $originalI, $chunkSize);"},{"line":84,"text":"\t\t\t\t$nextFetch = $originalI + $chunkSize;"},{"line":85,"text":""},{"line":86,"text":"\t\t\t\t$existing = $this->finder()"},{"line":87,"text":"\t\t\t\t\t->where('title', $slice)"},{"line":88,"text":"\t\t\t\t\t->where('language_id', 0)"},{"line":89,"text":"\t\t\t\t\t->keyedBy('title')"},{"line":90,"text":"\t\t\t\t\t->fetch();"},{"line":91,"text":"\t\t\t}"},{"line":92,"text":""},{"line":93,"text":"\t\t\t$entity = $existing[$id] ?? $this->create();"},{"line":94,"text":"\t\t\t$entity->setOption('check_duplicate', false);"},{"line":95,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":96,"text":""},{"line":97,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":98,"text":"\t\t\t$entity->language_id = 0;"},{"line":99,"text":"\t\t\t$entity->global_cache = (int) $entry['global_cache'];"},{"line":100,"text":"\t\t\t$entity->phrase_text = $this->getCdataValue($entry);"},{"line":101,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":102,"text":"\t\t\t$entity->save(true, false);"},{"line":103,"text":""},{"line":104,"text":"\t\t\t\\XF::dequeueRunOnce('styleLastModifiedDate');"},{"line":105,"text":""},{"line":106,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":107,"text":"\t\t\t{"},{"line":108,"text":"\t\t\t\t$last = $i;"},{"line":109,"text":"\t\t\t\tbreak;"},{"line":110,"text":"\t\t\t}"},{"line":111,"text":"\t\t}"},{"line":112,"text":""},{"line":113,"text":"\t\treturn ($last ?: false);"},{"line":114,"text":"\t}"}],"sha256":"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266","start_line":49}},"routes.xml":{"class":"XF\\AddOn\\DataType\\Route","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":41,"file":"src/XF/AddOn/DataType/Route.php","lines":[{"line":26,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":27,"text":"\t{"},{"line":28,"text":"\t\t$entries = $this->finder()"},{"line":29,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":30,"text":"\t\t\t->order(['route_type', 'route_prefix', 'sub_name'])->fetch();"},{"line":31,"text":"\t\tforeach ($entries AS $entry)"},{"line":32,"text":"\t\t{"},{"line":33,"text":"\t\t\t$node = $container->ownerDocument->createElement($this->getChildTag());"},{"line":34,"text":""},{"line":35,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":36,"text":""},{"line":37,"text":"\t\t\t$container->appendChild($node);"},{"line":38,"text":"\t\t}"},{"line":39,"text":""},{"line":40,"text":"\t\treturn $entries->count() ? true : false;"},{"line":41,"text":"\t}"}],"sha256":"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb","start_line":26},"getChildTag":{"ok":true,"value":"route"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":24,"file":"src/XF/AddOn/DataType/Route.php","lines":[{"line":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'route';"},{"line":24,"text":"\t}"}],"sha256":"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb","start_line":21},"getContainerTag":{"ok":true,"value":"routes"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":19,"file":"src/XF/AddOn/DataType/Route.php","lines":[{"line":16,"text":"\tpublic function getContainerTag()"},{"line":17,"text":"\t{"},{"line":18,"text":"\t\treturn 'routes';"},{"line":19,"text":"\t}"}],"sha256":"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb","start_line":16},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["route_type","route_prefix","sub_name","format","build_class","build_method","controller","context","action_prefix"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":167,"file":"src/XF/AddOn/DataType/Route.php","lines":[{"line":154,"text":"\tprotected function getMappedAttributes()"},{"line":155,"text":"\t{"},{"line":156,"text":"\t\treturn ["},{"line":157,"text":"\t\t\t'route_type',"},{"line":158,"text":"\t\t\t'route_prefix',"},{"line":159,"text":"\t\t\t'sub_name',"},{"line":160,"text":"\t\t\t'format',"},{"line":161,"text":"\t\t\t'build_class',"},{"line":162,"text":"\t\t\t'build_method',"},{"line":163,"text":"\t\t\t'controller',"},{"line":164,"text":"\t\t\t'context',"},{"line":165,"text":"\t\t\t'action_prefix',"},{"line":166,"text":"\t\t];"},{"line":167,"text":"\t}"}],"sha256":"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb","start_line":154},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":104,"file":"src/XF/AddOn/DataType/Route.php","lines":[{"line":43,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":44,"text":"\t{"},{"line":45,"text":"\t\t$startTime = microtime(true);"},{"line":46,"text":""},{"line":47,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":48,"text":"\t\tif (!$entries)"},{"line":49,"text":"\t\t{"},{"line":50,"text":"\t\t\treturn false;"},{"line":51,"text":"\t\t}"},{"line":52,"text":""},{"line":53,"text":"\t\t$conditions = [];"},{"line":54,"text":"\t\t$existing = [];"},{"line":55,"text":"\t\tforeach ($entries AS $entry)"},{"line":56,"text":"\t\t{"},{"line":57,"text":"\t\t\t$conditions[] = ["},{"line":58,"text":"\t\t\t\t'route_type' => (string) $entry['route_type'],"},{"line":59,"text":"\t\t\t\t'route_prefix' => (string) $entry['route_prefix'],"},{"line":60,"text":"\t\t\t\t'sub_name' => (string) $entry['sub_name'],"},{"line":61,"text":"\t\t\t];"},{"line":62,"text":"\t\t}"},{"line":63,"text":"\t\tif ($conditions)"},{"line":64,"text":"\t\t{"},{"line":65,"text":"\t\t\tforeach ($this->finder()->whereOr($conditions)->fetch() AS $route)"},{"line":66,"text":"\t\t\t{"},{"line":67,"text":"\t\t\t\t$existing[$route->route_type][$route->route_prefix][$route->sub_name] = $route;"},{"line":68,"text":"\t\t\t}"},{"line":69,"text":"\t\t}"},{"line":70,"text":""},{"line":71,"text":"\t\t$i = 0;"},{"line":72,"text":"\t\t$last = 0;"},{"line":73,"text":"\t\tforeach ($entries AS $entry)"},{"line":74,"text":"\t\t{"},{"line":75,"text":"\t\t\t$i++;"},{"line":76,"text":""},{"line":77,"text":"\t\t\tif ($i <= $start)"},{"line":78,"text":"\t\t\t{"},{"line":79,"text":"\t\t\t\tcontinue;"},{"line":80,"text":"\t\t\t}"},{"line":81,"text":""},{"line":82,"text":"\t\t\t$type = (string) $entry['route_type'];"},{"line":83,"text":"\t\t\t$prefix = (string) $entry['route_prefix'];"},{"line":84,"text":"\t\t\t$subName = (string) $entry['sub_name'];"},{"line":85,"text":"\t\t\t$entity = $existing[$type][$prefix][$subName] ?? $this->create();"},{"line":86,"text":""},{"line":87,"text":"\t\t\t$entity->setOptions(["},{"line":88,"text":"\t\t\t\t'check_duplicate' => false,"},{"line":89,"text":"\t\t\t]);"},{"line":90,"text":""},{"line":91,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":92,"text":""},{"line":93,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":94,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":95,"text":"\t\t\t$entity->save(true, false);"},{"line":96,"text":""},{"line":97,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":98,"text":"\t\t\t{"},{"line":99,"text":"\t\t\t\t$last = $i;"},{"line":100,"text":"\t\t\t\tbreak;"},{"line":101,"text":"\t\t\t}"},{"line":102,"text":"\t\t}"},{"line":103,"text":"\t\treturn ($last ?: false);"},{"line":104,"text":"\t}"}],"sha256":"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb","start_line":43}},"template_modifications.xml":{"class":"XF\\AddOn\\DataType\\TemplateModification","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":46,"file":"src/XF/AddOn/DataType/TemplateModification.php","lines":[{"line":28,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":29,"text":"\t{"},{"line":30,"text":"\t\t$entries = $this->finder()"},{"line":31,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":32,"text":"\t\t\t->order(['template', 'modification_key'])->fetch();"},{"line":33,"text":"\t\tforeach ($entries AS $entry)"},{"line":34,"text":"\t\t{"},{"line":35,"text":"\t\t\t$node = $container->ownerDocument->createElement($this->getChildTag());"},{"line":36,"text":""},{"line":37,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":38,"text":""},{"line":39,"text":"\t\t\t$this->exportCdataToNewNode($node, 'find', $entry);"},{"line":40,"text":"\t\t\t$this->exportCdataToNewNode($node, 'replace', $entry);"},{"line":41,"text":""},{"line":42,"text":"\t\t\t$container->appendChild($node);"},{"line":43,"text":"\t\t}"},{"line":44,"text":""},{"line":45,"text":"\t\treturn $entries->count() ? true : false;"},{"line":46,"text":"\t}"}],"sha256":"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a","start_line":28},"getChildTag":{"ok":true,"value":"modification"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":26,"file":"src/XF/AddOn/DataType/TemplateModification.php","lines":[{"line":23,"text":"\tpublic function getChildTag()"},{"line":24,"text":"\t{"},{"line":25,"text":"\t\treturn 'modification';"},{"line":26,"text":"\t}"}],"sha256":"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a","start_line":23},"getContainerTag":{"ok":true,"value":"template_modifications"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":21,"file":"src/XF/AddOn/DataType/TemplateModification.php","lines":[{"line":18,"text":"\tpublic function getContainerTag()"},{"line":19,"text":"\t{"},{"line":20,"text":"\t\treturn 'template_modifications';"},{"line":21,"text":"\t}"}],"sha256":"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a","start_line":18},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":["enabled"]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":158,"file":"src/XF/AddOn/DataType/TemplateModification.php","lines":[{"line":153,"text":"\tprotected function getMaintainedAttributes()"},{"line":154,"text":"\t{"},{"line":155,"text":"\t\treturn ["},{"line":156,"text":"\t\t\t'enabled',"},{"line":157,"text":"\t\t];"},{"line":158,"text":"\t}"}],"sha256":"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a","start_line":153},"getMappedAttributes":{"ok":true,"value":["type","template","modification_key","description","execution_order","enabled","action"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":151,"file":"src/XF/AddOn/DataType/TemplateModification.php","lines":[{"line":140,"text":"\tprotected function getMappedAttributes()"},{"line":141,"text":"\t{"},{"line":142,"text":"\t\treturn ["},{"line":143,"text":"\t\t\t'type',"},{"line":144,"text":"\t\t\t'template',"},{"line":145,"text":"\t\t\t'modification_key',"},{"line":146,"text":"\t\t\t'description',"},{"line":147,"text":"\t\t\t'execution_order',"},{"line":148,"text":"\t\t\t'enabled',"},{"line":149,"text":"\t\t\t'action',"},{"line":150,"text":"\t\t];"},{"line":151,"text":"\t}"}],"sha256":"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a","start_line":140},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":96,"file":"src/XF/AddOn/DataType/TemplateModification.php","lines":[{"line":48,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":49,"text":"\t{"},{"line":50,"text":"\t\t$startTime = microtime(true);"},{"line":51,"text":""},{"line":52,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":53,"text":"\t\tif (!$entries)"},{"line":54,"text":"\t\t{"},{"line":55,"text":"\t\t\treturn false;"},{"line":56,"text":"\t\t}"},{"line":57,"text":""},{"line":58,"text":"\t\t$keys = $this->pluckXmlAttribute($entries, 'modification_key');"},{"line":59,"text":"\t\t$existing = $this->finder()"},{"line":60,"text":"\t\t\t->where('modification_key', $keys)"},{"line":61,"text":"\t\t\t->keyedBy('modification_key')"},{"line":62,"text":"\t\t\t->fetch();"},{"line":63,"text":""},{"line":64,"text":"\t\t$i = 0;"},{"line":65,"text":"\t\t$last = 0;"},{"line":66,"text":"\t\tforeach ($entries AS $entry)"},{"line":67,"text":"\t\t{"},{"line":68,"text":"\t\t\t$i++;"},{"line":69,"text":""},{"line":70,"text":"\t\t\tif ($i <= $start)"},{"line":71,"text":"\t\t\t{"},{"line":72,"text":"\t\t\t\tcontinue;"},{"line":73,"text":"\t\t\t}"},{"line":74,"text":""},{"line":75,"text":"\t\t\t$entity = $existing[(string) $entry['modification_key']] ?? $this->create();"},{"line":76,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":77,"text":"\t\t\t$entity->setOption('hide_errors', true);"},{"line":78,"text":""},{"line":79,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":80,"text":""},{"line":81,"text":"\t\t\t$entity->find = $this->getCdataValue($entry->find);"},{"line":82,"text":"\t\t\t$entity->replace = $this->getCdataValue($entry->replace);"},{"line":83,"text":""},{"line":84,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":85,"text":"\t\t\t$entity->save(true, false);"},{"line":86,"text":""},{"line":87,"text":"\t\t\t\\XF::dequeueRunOnce('styleLastModifiedDate');"},{"line":88,"text":""},{"line":89,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":90,"text":"\t\t\t{"},{"line":91,"text":"\t\t\t\t$last = $i;"},{"line":92,"text":"\t\t\t\tbreak;"},{"line":93,"text":"\t\t\t}"},{"line":94,"text":"\t\t}"},{"line":95,"text":"\t\treturn ($last ?: false);"},{"line":96,"text":"\t}"}],"sha256":"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a","start_line":48}},"templates.xml":{"class":"XF\\AddOn\\DataType\\Template","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":42,"file":"src/XF/AddOn/DataType/Template.php","lines":[{"line":25,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":26,"text":"\t{"},{"line":27,"text":"\t\t$entries = $this->finder()"},{"line":28,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":29,"text":"\t\t\t->where('style_id', 0)"},{"line":30,"text":"\t\t\t->order(['type', 'title'])->fetch();"},{"line":31,"text":"\t\tforeach ($entries AS $entry)"},{"line":32,"text":"\t\t{"},{"line":33,"text":"\t\t\t$node = $container->ownerDocument->createElement($this->getChildTag());"},{"line":34,"text":""},{"line":35,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":36,"text":"\t\t\t$this->exportCdata($node, $entry->template);"},{"line":37,"text":""},{"line":38,"text":"\t\t\t$container->appendChild($node);"},{"line":39,"text":"\t\t}"},{"line":40,"text":""},{"line":41,"text":"\t\treturn $entries->count() ? true : false;"},{"line":42,"text":"\t}"}],"sha256":"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a","start_line":25},"getChildTag":{"ok":true,"value":"template"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":23,"file":"src/XF/AddOn/DataType/Template.php","lines":[{"line":20,"text":"\tpublic function getChildTag()"},{"line":21,"text":"\t{"},{"line":22,"text":"\t\treturn 'template';"},{"line":23,"text":"\t}"}],"sha256":"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a","start_line":20},"getContainerTag":{"ok":true,"value":"templates"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":18,"file":"src/XF/AddOn/DataType/Template.php","lines":[{"line":15,"text":"\tpublic function getContainerTag()"},{"line":16,"text":"\t{"},{"line":17,"text":"\t\treturn 'templates';"},{"line":18,"text":"\t}"}],"sha256":"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a","start_line":15},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["type","title","version_id","version_string"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":164,"file":"src/XF/AddOn/DataType/Template.php","lines":[{"line":156,"text":"\tprotected function getMappedAttributes()"},{"line":157,"text":"\t{"},{"line":158,"text":"\t\treturn ["},{"line":159,"text":"\t\t\t'type',"},{"line":160,"text":"\t\t\t'title',"},{"line":161,"text":"\t\t\t'version_id',"},{"line":162,"text":"\t\t\t'version_string',"},{"line":163,"text":"\t\t];"},{"line":164,"text":"\t}"}],"sha256":"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a","start_line":156},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":109,"file":"src/XF/AddOn/DataType/Template.php","lines":[{"line":44,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":45,"text":"\t{"},{"line":46,"text":"\t\t$startTime = microtime(true);"},{"line":47,"text":""},{"line":48,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":49,"text":"\t\tif (!$entries)"},{"line":50,"text":"\t\t{"},{"line":51,"text":"\t\t\treturn false;"},{"line":52,"text":"\t\t}"},{"line":53,"text":""},{"line":54,"text":"\t\t$conditions = [];"},{"line":55,"text":"\t\tforeach ($entries AS $entry)"},{"line":56,"text":"\t\t{"},{"line":57,"text":"\t\t\t$conditions[] = ["},{"line":58,"text":"\t\t\t\t'type' => (string) $entry['type'],"},{"line":59,"text":"\t\t\t\t'title' => (string) $entry['title'],"},{"line":60,"text":"\t\t\t];"},{"line":61,"text":"\t\t}"},{"line":62,"text":"\t\tif ($conditions)"},{"line":63,"text":"\t\t{"},{"line":64,"text":"\t\t\t$existing = $this->finder()"},{"line":65,"text":"\t\t\t\t->whereOr($conditions)"},{"line":66,"text":"\t\t\t\t->where('style_id', 0)"},{"line":67,"text":"\t\t\t\t->fetch()"},{"line":68,"text":"\t\t\t\t->groupBy('type', 'title');"},{"line":69,"text":"\t\t}"},{"line":70,"text":"\t\telse"},{"line":71,"text":"\t\t{"},{"line":72,"text":"\t\t\t$existing = [];"},{"line":73,"text":"\t\t}"},{"line":74,"text":""},{"line":75,"text":"\t\t$i = 0;"},{"line":76,"text":"\t\t$last = 0;"},{"line":77,"text":""},{"line":78,"text":"\t\tforeach ($entries AS $entry)"},{"line":79,"text":"\t\t{"},{"line":80,"text":"\t\t\t$i++;"},{"line":81,"text":""},{"line":82,"text":"\t\t\tif ($i <= $start)"},{"line":83,"text":"\t\t\t{"},{"line":84,"text":"\t\t\t\tcontinue;"},{"line":85,"text":"\t\t\t}"},{"line":86,"text":""},{"line":87,"text":"\t\t\t$type = (string) $entry['type'];"},{"line":88,"text":"\t\t\t$title = (string) $entry['title'];"},{"line":89,"text":"\t\t\t$entity = $existing[$type][$title] ?? $this->create();"},{"line":90,"text":"\t\t\t$entity->setOption('check_duplicate', false);"},{"line":91,"text":"\t\t\t$entity->setOption('report_modification_errors', false);"},{"line":92,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":93,"text":""},{"line":94,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":95,"text":"\t\t\t$entity->style_id = 0;"},{"line":96,"text":"\t\t\t$entity->template = $this->getCdataValue($entry);"},{"line":97,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":98,"text":"\t\t\t$entity->save(true, false);"},{"line":99,"text":""},{"line":100,"text":"\t\t\t\\XF::dequeueRunOnce('styleLastModifiedDate');"},{"line":101,"text":""},{"line":102,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":103,"text":"\t\t\t{"},{"line":104,"text":"\t\t\t\t$last = $i;"},{"line":105,"text":"\t\t\t\tbreak;"},{"line":106,"text":"\t\t\t}"},{"line":107,"text":"\t\t}"},{"line":108,"text":"\t\treturn ($last ?: false);"},{"line":109,"text":"\t}"}],"sha256":"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a","start_line":44}}},"xf_version_id":2031270},"guest":"newfi-staging","holds":["DB_NOT_CLEAN"],"scope":"READ_ONLY_NO_MUTATION","status":"HOLD","structural":{"code_event_listeners.xml":{"candidate_attrs":["active","callback_class","callback_method","event_id","execute_order"],"candidate_child_tags":["listener"],"candidate_nested_tags":[],"candidate_root":"code_event_listeners","child_runtime":"listener","children_match":true,"container_match":true,"container_runtime":"code_event_listeners"},"content_type_fields.xml":{"candidate_attrs":["content_type","field_name"],"candidate_child_tags":["field"],"candidate_nested_tags":[],"candidate_root":"content_type_fields","child_runtime":"field","children_match":true,"container_match":true,"container_runtime":"content_type_fields"},"option_groups.xml":{"candidate_attrs":["debug_only","display_order","group_id"],"candidate_child_tags":["group"],"candidate_nested_tags":[],"candidate_root":"option_groups","child_runtime":"group","children_match":true,"container_match":true,"container_runtime":"option_groups"},"options.xml":{"candidate_attrs":["data_type","edit_format","option_id"],"candidate_child_tags":["option"],"candidate_nested_tags":["default_value","relation"],"candidate_root":"options","child_runtime":"option","children_match":true,"container_match":true,"container_runtime":"options"},"permission_interface_groups.xml":{"candidate_attrs":["display_order","interface_group_id","is_moderator"],"candidate_child_tags":["interface_group"],"candidate_nested_tags":[],"candidate_root":"permission_interface_groups","child_runtime":"interface_group","children_match":true,"container_match":true,"container_runtime":"permission_interface_groups"},"permissions.xml":{"candidate_attrs":["display_order","interface_group_id","permission_group_id","permission_id","permission_type"],"candidate_child_tags":["permission"],"candidate_nested_tags":[],"candidate_root":"permissions","child_runtime":"permission","children_match":true,"container_match":true,"container_runtime":"permissions"},"phrases.xml":{"candidate_attrs":["title","version_id","version_string"],"candidate_child_tags":["phrase"],"candidate_nested_tags":[],"candidate_root":"phrases","child_runtime":"phrase","children_match":true,"container_match":true,"container_runtime":"phrases"},"routes.xml":{"candidate_attrs":["action_prefix","context","controller","format","route_prefix","route_type","sub_name"],"candidate_child_tags":["route"],"candidate_nested_tags":[],"candidate_root":"routes","child_runtime":"route","children_match":true,"container_match":true,"container_runtime":"routes"},"template_modifications.xml":{"candidate_attrs":["action","description","enabled","execution_order","modification_key","template","type"],"candidate_child_tags":["modification"],"candidate_nested_tags":["find","replace"],"candidate_root":"template_modifications","child_runtime":"modification","children_match":true,"container_match":true,"container_runtime":"template_modifications"},"templates.xml":{"candidate_attrs":["title","type","version_id","version_string"],"candidate_child_tags":["template"],"candidate_nested_tags":[],"candidate_root":"templates","child_runtime":"template","children_match":true,"container_match":true,"container_runtime":"templates"}}} -SUPPORT046_HOLD=RuntimeError -HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"SUPPORT-260909-GRAM-XF-DATATYPE-EVIDENCE-046","rollback_restored":null,"rollback_started":false,"status":"FAIL","version":1} +GRAM_SUPPORT_WRITER_LOCK=RESPECTED +SERVER_SCOPE=PVE01_GIT_WORKTREE_ONLY +VM210_ACCESS=NONE +VM211_ACCESS=NONE +GRAM_SUPPORT_ACCESS=NONE +NEWFI78_GIT={"branch":"implementation/newfi-closed-mvp-20260906","clean":true,"exact":true,"head":"a1efc08a15ba91971c2297d886b25ca2097e6935","remote_head":"a1efc08a15ba91971c2297d886b25ca2097e6935"} +NEWFI78_SOURCE_FILE={"bytes":363,"matches_expected":true,"rel":"Pub/Controller/Portal.php","sha256":"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d","state":"OK"} +NEWFI78_SOURCE_FILE={"bytes":5213,"matches_expected":true,"rel":"Service/PortalData.php","sha256":"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d","state":"OK"} +NEWFI78_SOURCE_FILE={"bytes":11021,"matches_expected":true,"rel":"_data/templates.xml","sha256":"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28","state":"OK"} +NEWFI78_EXCEPTION=ValueError:SECTION_CARDINALITY:gallery:0 +Traceback (most recent call last): + File "", line 1, in + import base64,zlib;b=zlib.decompress(base64.b64decode("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"));exec(compile(b,"","exec")) + ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 199, in + File "", line 152, in main + File "", line 79, in find_section +ValueError: SECTION_CARDINALITY:gallery:0 OUTPUT_END CHAT_OUTPUT_END