From 4d48fb90b0c217c8871730b2c8bbdee962072b23 Mon Sep 17 00:00:00 2001 From: homelab-runtime-publisher Date: Wed, 9 Sep 2026 10:35:20 +0000 Subject: [PATCH] runtime: publish SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041 --- ...T-260909-GRAM-XF-STAGING-FORENSIC-041.json | 38 +++++++++++++ ...RT-260909-GRAM-XF-STAGING-FORENSIC-041.txt | 45 ++++++++++++++++ runtime/latest.json | 16 +++--- runtime/latest.txt | 54 +++++-------------- 4 files changed, 105 insertions(+), 48 deletions(-) create mode 100644 runtime/history/SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041.json create mode 100644 runtime/history/SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041.txt diff --git a/runtime/history/SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041.json b/runtime/history/SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041.json new file mode 100644 index 00000000..9e6643df --- /dev/null +++ b/runtime/history/SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "read-only", + "component": "gram-support-vm211-staging-forensic", + "started_at_utc": "2026-09-09T10:35:16Z", + "finished_at_utc": "2026-09-09T10:35:19Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "d31b61b5d80966157f8fd0416a1b84da417446fd716707606be2c40794e947e8", + "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": 0, + "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": "ca9e03a257db6318511bb3fc6ceedcb81edc9ac133b13de2e30f1d49e5091c20", + "sanitized_output_sha256": "ca9e03a257db6318511bb3fc6ceedcb81edc9ac133b13de2e30f1d49e5091c20", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "SUPPORT041_BEGIN\nERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nRUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\nSUPPORT041_SOURCE_POSTROLLBACK={\"source_exists\":false,\"tmp_exists\":false}\nSUPPORT041_QGA_STATE={\"exitcode\":0,\"state\":\"COMPLETE\"}\nSUPPORT041_VM211={\"addon_path\":{\"state\":\"ABSENT\"},\"cli\":{\"commands\":[\"xf:addon-disable\",\"xf:addon-enable\",\"xf:addon-install\",\"xf:addon-list\",\"xf:addon-rebuild\",\"xf:addon-uninstall\",\"xf:addon-upgrade\"],\"help\":{\"xf:addon-disable\":{\"mentions_no_interaction\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"aad85d19723401a92a03a7824069597c7729f537fbba1d9037e5c7ea46e2d057\"},\"xf:addon-enable\":{\"mentions_no_interaction\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"d55071cb0200757dba0a2a8f2c4427f8cf8f525103a9584c61a20d79aea1ca44\"},\"xf:addon-install\":{\"mentions_no_interaction\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"9dac6d249cac5938d1d908affe66cc652d0deaa1b24d9233f7bdebec96151104\"},\"xf:addon-list\":{\"mentions_no_interaction\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"7934a7143d5b6907a69f477063324e9c53e99f7404fd83af0887a828928e6dbe\"},\"xf:addon-rebuild\":{\"mentions_no_interaction\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"36c4af0714bfa9f732f46c004f0bd3ea109340b8b737ba0217dbce50330669c9\"},\"xf:addon-uninstall\":{\"mentions_no_interaction\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"c8f2162162c47f832d6c25822395cd2db42d260774e00ebc3bf765532f12ac97\"},\"xf:addon-upgrade\":{\"mentions_no_interaction\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"834372348cafa33db19e7545b6ae3f9f47d822c8ef3c5cadeb97d0bbbd6a4e40\"}},\"rc\":0},\"collection\":\"COMPLETE\",\"command_id\":\"SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041\",\"datatype_contract\":{\"AbstractDataType.php\":{\"exists\":true,\"sha256\":\"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815\",\"snippets\":[[{\"line\":30,\"text\":\"\\tabstract public function getContainerTag();\"},{\"line\":31,\"text\":\"\"},{\"line\":32,\"text\":\"\\tabstract public function getChildTag();\"},{\"line\":33,\"text\":\"\"},{\"line\":34,\"text\":\"\\tabstract public function exportAddOnData($addOnId, \\\\DOMElement $container);\"},{\"line\":35,\"text\":\"\"},{\"line\":36,\"text\":\"\\tabstract public function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0);\"},{\"line\":37,\"text\":\"\"},{\"line\":38,\"text\":\"\\tabstract public function deleteOrphanedAddOnData($addOnId, \\\\SimpleXMLElement $container);\"},{\"line\":39,\"text\":\"\"},{\"line\":40,\"text\":\"\\tpublic const USE_AUTO_CDATA = false;\"},{\"line\":41,\"text\":\"\"},{\"line\":42,\"text\":\"\\tpublic function __construct(Manager $em)\"},{\"line\":43,\"text\":\"\\t{\"}],[{\"line\":32,\"text\":\"\\tabstract public function getChildTag();\"},{\"line\":33,\"text\":\"\"},{\"line\":34,\"text\":\"\\tabstract public function exportAddOnData($addOnId, \\\\DOMElement $container);\"},{\"line\":35,\"text\":\"\"},{\"line\":36,\"text\":\"\\tabstract public function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0);\"},{\"line\":37,\"text\":\"\"},{\"line\":38,\"text\":\"\\tabstract public function deleteOrphanedAddOnData($addOnId, \\\\SimpleXMLElement $container);\"},{\"line\":39,\"text\":\"\"},{\"line\":40,\"text\":\"\\tpublic const USE_AUTO_CDATA = false;\"},{\"line\":41,\"text\":\"\"},{\"line\":42,\"text\":\"\\tpublic function __construct(Manager $em)\"},{\"line\":43,\"text\":\"\\t{\"},{\"line\":44,\"text\":\"\\t\\t$this->em = $em;\"},{\"line\":45,\"text\":\"\\t\\t$this->structure = $em->getEntityStructure($this->getShortName());\"}],[{\"line\":34,\"text\":\"\\tabstract public function exportAddOnData($addOnId, \\\\DOMElement $container);\"},{\"line\":35,\"text\":\"\"},{\"line\":36,\"text\":\"\\tabstract public function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0);\"},{\"line\":37,\"text\":\"\"},{\"line\":38,\"text\":\"\\tabstract public function deleteOrphanedAddOnData($addOnId, \\\\SimpleXMLElement $container);\"},{\"line\":39,\"text\":\"\"},{\"line\":40,\"text\":\"\\tpublic const USE_AUTO_CDATA = false;\"},{\"line\":41,\"text\":\"\"},{\"line\":42,\"text\":\"\\tpublic function __construct(Manager $em)\"},{\"line\":43,\"text\":\"\\t{\"},{\"line\":44,\"text\":\"\\t\\t$this->em = $em;\"},{\"line\":45,\"text\":\"\\t\\t$this->structure = $em->getEntityStructure($this->getShortName());\"},{\"line\":46,\"text\":\"\\t}\"},{\"line\":47,\"text\":\"\"}],[{\"line\":36,\"text\":\"\\tabstract public function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0);\"},{\"line\":37,\"text\":\"\"},{\"line\":38,\"text\":\"\\tabstract public function deleteOrphanedAddOnData($addOnId, \\\\SimpleXMLElement $container);\"},{\"line\":39,\"text\":\"\"},{\"line\":40,\"text\":\"\\tpublic const USE_AUTO_CDATA = false;\"},{\"line\":41,\"text\":\"\"},{\"line\":42,\"text\":\"\\tpublic function __construct(Manager $em)\"},{\"line\":43,\"text\":\"\\t{\"},{\"line\":44,\"text\":\"\\t\\t$this->em = $em;\"},{\"line\":45,\"text\":\"\\t\\t$this->structure = $em->getEntityStructure($this->getShortName());\"},{\"line\":46,\"text\":\"\\t}\"},{\"line\":47,\"text\":\"\"},{\"line\":48,\"text\":\"\\tpublic function getTypeFileName()\"},{\"line\":49,\"text\":\"\\t{\"}],[{\"line\":174,\"text\":\"\\tprotected function getMappedAttributes()\"},{\"line\":175,\"text\":\"\\t{\"},{\"line\":176,\"text\":\"\\t\\treturn [];\"},{\"line\":177,\"text\":\"\\t}\"},{\"line\":178,\"text\":\"\"},{\"line\":179,\"text\":\"\\tprotected function getMaintainedAttributes()\"},{\"line\":180,\"text\":\"\\t{\"},{\"line\":181,\"text\":\"\\t\\treturn [];\"},{\"line\":182,\"text\":\"\\t}\"},{\"line\":183,\"text\":\"\"},{\"line\":184,\"text\":\"\\tprotected function exportArrayToAttributes(\\\\DOMElement $tag, $attr, Entity $entity)\"},{\"line\":185,\"text\":\"\\t{\"},{\"line\":186,\"text\":\"\\t\\tforeach ($entity->$attr AS $key => $value)\"},{\"line\":187,\"text\":\"\\t\\t{\"}],[{\"line\":184,\"text\":\"\\tprotected function exportArrayToAttributes(\\\\DOMElement $tag, $attr, Entity $entity)\"},{\"line\":185,\"text\":\"\\t{\"},{\"line\":186,\"text\":\"\\t\\tforeach ($entity->$attr AS $key => $value)\"},{\"line\":187,\"text\":\"\\t\\t{\"},{\"line\":188,\"text\":\"\\t\\t\\tif ($value === '')\"},{\"line\":189,\"text\":\"\\t\\t\\t{\"},{\"line\":190,\"text\":\"\\t\\t\\t\\tcontinue;\"},{\"line\":191,\"text\":\"\\t\\t\\t}\"},{\"line\":192,\"text\":\"\\t\\t\\tif (is_bool($value))\"},{\"line\":193,\"text\":\"\\t\\t\\t{\"},{\"line\":194,\"text\":\"\\t\\t\\t\\t$value = $value ? 1 : 0;\"},{\"line\":195,\"text\":\"\\t\\t\\t}\"},{\"line\":196,\"text\":\"\\t\\t\\t$tag->setAttribute($attr . '_' . $key, $value);\"},{\"line\":197,\"text\":\"\\t\\t}\"}],[{\"line\":200,\"text\":\"\\tprotected function exportCdataToNewNode(\\\\DOMElement $tag, $attr, Entity $entity)\"},{\"line\":201,\"text\":\"\\t{\"},{\"line\":202,\"text\":\"\\t\\t$newNode = $tag->ownerDocument->createElement($attr);\"},{\"line\":203,\"text\":\"\\t\\t$this->exportCdata($newNode, $entity->{$attr});\"},{\"line\":204,\"text\":\"\\t\\t$tag->appendChild($newNode);\"},{\"line\":205,\"text\":\"\\t}\"},{\"line\":206,\"text\":\"\"},{\"line\":207,\"text\":\"\\tprotected function exportMappedAttributes(\\\\DOMElement $tag, Entity $entity)\"},{\"line\":208,\"text\":\"\\t{\"},{\"line\":209,\"text\":\"\\t\\tforeach ($this->getMappedAttributes() AS $attr)\"},{\"line\":210,\"text\":\"\\t\\t{\"},{\"line\":211,\"text\":\"\\t\\t\\t$value = $entity->getValue($attr);\"},{\"line\":212,\"text\":\"\"},{\"line\":213,\"text\":\"\\t\\t\\tif ($value !== '')\"}],[{\"line\":207,\"text\":\"\\tprotected function exportMappedAttributes(\\\\DOMElement $tag, Entity $entity)\"},{\"line\":208,\"text\":\"\\t{\"},{\"line\":209,\"text\":\"\\t\\tforeach ($this->getMappedAttributes() AS $attr)\"},{\"line\":210,\"text\":\"\\t\\t{\"},{\"line\":211,\"text\":\"\\t\\t\\t$value = $entity->getValue($attr);\"},{\"line\":212,\"text\":\"\"},{\"line\":213,\"text\":\"\\t\\t\\tif ($value !== '')\"},{\"line\":214,\"text\":\"\\t\\t\\t{\"},{\"line\":215,\"text\":\"\\t\\t\\t\\tif (is_bool($value))\"},{\"line\":216,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":217,\"text\":\"\\t\\t\\t\\t\\t$value = $value ? 1 : 0;\"},{\"line\":218,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":219,\"text\":\"\"},{\"line\":220,\"text\":\"\\t\\t\\t\\t// CURRENTLY NOT USED DUE TO BC ISSUES WITH 2.0.x < 2.0.4\"}]]},\"CodeEventListener.php\":{\"exists\":true,\"sha256\":\"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab\",\"snippets\":[[{\"line\":16,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":17,\"text\":\"\\t{\"},{\"line\":18,\"text\":\"\\t\\treturn 'code_event_listeners';\"},{\"line\":19,\"text\":\"\\t}\"},{\"line\":20,\"text\":\"\"},{\"line\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'listener';\"},{\"line\":24,\"text\":\"\\t}\"},{\"line\":25,\"text\":\"\"},{\"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\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'listener';\"},{\"line\":24,\"text\":\"\\t}\"},{\"line\":25,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":139,\"text\":\"\"},{\"line\":140,\"text\":\"\\tprotected function getAddOnUniqueKeyFromXml(\\\\SimpleXMLElement $entry)\"}]]},\"ContentTypeField.php\":{\"exists\":true,\"sha256\":\"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594\",\"snippets\":[[{\"line\":16,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":17,\"text\":\"\\t{\"},{\"line\":18,\"text\":\"\\t\\treturn 'content_type_fields';\"},{\"line\":19,\"text\":\"\\t}\"},{\"line\":20,\"text\":\"\"},{\"line\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'field';\"},{\"line\":24,\"text\":\"\\t}\"},{\"line\":25,\"text\":\"\"},{\"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\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'field';\"},{\"line\":24,\"text\":\"\\t}\"},{\"line\":25,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":139,\"text\":\"}\"}]]},\"Option.php\":{\"exists\":true,\"sha256\":\"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60\",\"snippets\":[[{\"line\":17,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":18,\"text\":\"\\t{\"},{\"line\":19,\"text\":\"\\t\\treturn 'options';\"},{\"line\":20,\"text\":\"\\t}\"},{\"line\":21,\"text\":\"\"},{\"line\":22,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":23,\"text\":\"\\t{\"},{\"line\":24,\"text\":\"\\t\\treturn 'option';\"},{\"line\":25,\"text\":\"\\t}\"},{\"line\":26,\"text\":\"\"},{\"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\":22,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":23,\"text\":\"\\t{\"},{\"line\":24,\"text\":\"\\t\\treturn 'option';\"},{\"line\":25,\"text\":\"\\t}\"},{\"line\":26,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":139,\"text\":\"}\"}]]},\"OptionGroup.php\":{\"exists\":true,\"sha256\":\"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da\",\"snippets\":[[{\"line\":14,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":15,\"text\":\"\\t{\"},{\"line\":16,\"text\":\"\\t\\treturn 'option_groups';\"},{\"line\":17,\"text\":\"\\t}\"},{\"line\":18,\"text\":\"\"},{\"line\":19,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":20,\"text\":\"\\t{\"},{\"line\":21,\"text\":\"\\t\\treturn 'group';\"},{\"line\":22,\"text\":\"\\t}\"},{\"line\":23,\"text\":\"\"},{\"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\":19,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":20,\"text\":\"\\t{\"},{\"line\":21,\"text\":\"\\t\\treturn 'group';\"},{\"line\":22,\"text\":\"\\t}\"},{\"line\":23,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":97,\"text\":\"}\"}]]},\"Permission.php\":{\"exists\":true,\"sha256\":\"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477\",\"snippets\":[[{\"line\":18,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":19,\"text\":\"\\t{\"},{\"line\":20,\"text\":\"\\t\\treturn 'permissions';\"},{\"line\":21,\"text\":\"\\t}\"},{\"line\":22,\"text\":\"\"},{\"line\":23,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":24,\"text\":\"\\t{\"},{\"line\":25,\"text\":\"\\t\\treturn 'permission';\"},{\"line\":26,\"text\":\"\\t}\"},{\"line\":27,\"text\":\"\"},{\"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\":23,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":24,\"text\":\"\\t{\"},{\"line\":25,\"text\":\"\\t\\treturn 'permission';\"},{\"line\":26,\"text\":\"\\t}\"},{\"line\":27,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":160,\"text\":\"}\"}]]},\"PermissionInterfaceGroup.php\":{\"exists\":true,\"sha256\":\"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6\",\"snippets\":[[{\"line\":15,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":16,\"text\":\"\\t{\"},{\"line\":17,\"text\":\"\\t\\treturn 'permission_interface_groups';\"},{\"line\":18,\"text\":\"\\t}\"},{\"line\":19,\"text\":\"\"},{\"line\":20,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":21,\"text\":\"\\t{\"},{\"line\":22,\"text\":\"\\t\\treturn 'interface_group';\"},{\"line\":23,\"text\":\"\\t}\"},{\"line\":24,\"text\":\"\"},{\"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\":20,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":21,\"text\":\"\\t{\"},{\"line\":22,\"text\":\"\\t\\treturn 'interface_group';\"},{\"line\":23,\"text\":\"\\t}\"},{\"line\":24,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":103,\"text\":\"}\"}]]},\"Phrase.php\":{\"exists\":true,\"sha256\":\"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266\",\"snippets\":[[{\"line\":16,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":17,\"text\":\"\\t{\"},{\"line\":18,\"text\":\"\\t\\treturn 'phrases';\"},{\"line\":19,\"text\":\"\\t}\"},{\"line\":20,\"text\":\"\"},{\"line\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'phrase';\"},{\"line\":24,\"text\":\"\\t}\"},{\"line\":25,\"text\":\"\"},{\"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\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'phrase';\"},{\"line\":24,\"text\":\"\\t}\"},{\"line\":25,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":129,\"text\":\"}\"}]]},\"Route.php\":{\"exists\":true,\"sha256\":\"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb\",\"snippets\":[[{\"line\":16,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":17,\"text\":\"\\t{\"},{\"line\":18,\"text\":\"\\t\\treturn 'routes';\"},{\"line\":19,\"text\":\"\\t}\"},{\"line\":20,\"text\":\"\"},{\"line\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'route';\"},{\"line\":24,\"text\":\"\\t}\"},{\"line\":25,\"text\":\"\"},{\"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\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'route';\"},{\"line\":24,\"text\":\"\\t}\"},{\"line\":25,\"text\":\"\"},{\"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\":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\":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\":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}\"}]]},\"Template.php\":{\"exists\":true,\"sha256\":\"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a\",\"snippets\":[[{\"line\":15,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":16,\"text\":\"\\t{\"},{\"line\":17,\"text\":\"\\t\\treturn 'templates';\"},{\"line\":18,\"text\":\"\\t}\"},{\"line\":19,\"text\":\"\"},{\"line\":20,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":21,\"text\":\"\\t{\"},{\"line\":22,\"text\":\"\\t\\treturn 'template';\"},{\"line\":23,\"text\":\"\\t}\"},{\"line\":24,\"text\":\"\"},{\"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\":20,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":21,\"text\":\"\\t{\"},{\"line\":22,\"text\":\"\\t\\treturn 'template';\"},{\"line\":23,\"text\":\"\\t}\"},{\"line\":24,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":165,\"text\":\"}\"}]]},\"TemplateModification.php\":{\"exists\":true,\"sha256\":\"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a\",\"snippets\":[[{\"line\":18,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":19,\"text\":\"\\t{\"},{\"line\":20,\"text\":\"\\t\\treturn 'template_modifications';\"},{\"line\":21,\"text\":\"\\t}\"},{\"line\":22,\"text\":\"\"},{\"line\":23,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":24,\"text\":\"\\t{\"},{\"line\":25,\"text\":\"\\t\\treturn 'modification';\"},{\"line\":26,\"text\":\"\\t}\"},{\"line\":27,\"text\":\"\"},{\"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\":23,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":24,\"text\":\"\\t{\"},{\"line\":25,\"text\":\"\\t\\treturn 'modification';\"},{\"line\":26,\"text\":\"\\t}\"},{\"line\":27,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":152,\"text\":\"\"},{\"line\":153,\"text\":\"\\tprotected function getMaintainedAttributes()\"}]]}},\"db\":null,\"db_probe\":{\"rc\":0,\"stderr_sha256\":\"\"},\"error_probe\":{\"rc\":0,\"stderr_sha256\":\"\"},\"errors_after_43\":null,\"guest\":\"newfi-staging\",\"identity_ok\":true,\"root\":{\"state\":\"DIR\"},\"runtime\":{\"http_code\":\"503\",\"http_rc\":0,\"services\":{\"mariadb\":{\"rc\":0,\"state\":\"active\"},\"nginx\":{\"rc\":0,\"state\":\"active\"},\"php8.3-fpm\":{\"rc\":0,\"state\":\"active\"}}},\"scope\":\"READ_ONLY_NO_MUTATION\",\"setup_contract\":{\"src/XF/AddOn/AbstractSetup.php\":{\"exists\":true,\"hits\":[{\"line\":25,\"text\":\"abstract public function install(array $stepParams = []);\"},{\"line\":39,\"text\":\"abstract public function uninstall(array $stepParams = []);\"}],\"sha256\":\"6bdd3fe834e15b963a52c9357f54262f2d12f3c7c3686fc31333b549cddf2d88\"},\"src/XF/AddOn/StepRunnerInstallTrait.php\":{\"exists\":true,\"hits\":[{\"line\":17,\"text\":\"public function install(array $stepParams = [])\"},{\"line\":53,\"text\":\"private function installStepRunner($step, array $stepParams)\"}],\"sha256\":\"1f441b8a3101b97009ae04e62c04e79062a89f1e01a08ae9e07c5e629c76d5f2\"},\"src/XF/AddOn/StepRunnerUninstallTrait.php\":{\"exists\":true,\"hits\":[{\"line\":17,\"text\":\"public function uninstall(array $stepParams = [])\"},{\"line\":52,\"text\":\"private function uninstallStepRunner($step, array $stepParams)\"}],\"sha256\":\"e58a9ab9c30e3cf3c41a0be392e8c5ac37f744578f7b91f76d663139649c49a9\"},\"src/XF/Db/Schema/Column.php\":{\"exists\":true,\"hits\":[{\"line\":254,\"text\":\"public function unsigned($unsigned = null)\"},{\"line\":276,\"text\":\"public function setDefault($default)\"},{\"line\":283,\"text\":\"public function autoIncrement($autoIncrement = null, $setAsPrimary = true)\"}],\"sha256\":\"d6749157309835460b98e3e09d33533409850a1fb808417f28e89a97a3775730\"},\"src/XF/Db/Schema/Create.php\":{\"exists\":true,\"hits\":[],\"sha256\":\"4b2f0bf31fc3f133b10577c24024f2883c80296478ee4adf5c91930c6b896ddd\"}},\"stage039\":{\"state\":\"ABSENT\"},\"xml_exemplars\":{\"code_event_listeners.xml\":[],\"content_type_fields.xml\":[],\"option_groups.xml\":[],\"options.xml\":[],\"permission_interface_groups.xml\":[],\"permissions.xml\":[],\"phrases.xml\":[{\"addon\":\"src/addons/Newfi/Portal\",\"child_count\":1,\"first\":[{\"attrs\":{\"title\":\"nav.newfiPortal\",\"version_id\":\"1000010\",\"version_string\":\"1.0.0 Alpha 1\"},\"tag\":\"phrase\",\"text_len\":5,\"text_sha256\":\"661a914783b315dcc04a526122b417b6cfe9b77f351a51c9cab31baf158bdcba\"}],\"root\":\"phrases\",\"root_attrs\":{}}],\"routes.xml\":[{\"addon\":\"src/addons/Newfi/Dogs\",\"child_count\":1,\"first\":[{\"attrs\":{\"controller\":\"Newfi\\\\Dogs:Dogs\",\"route_prefix\":\"dogs\",\"route_type\":\"public\"},\"tag\":\"route\"}],\"root\":\"routes\",\"root_attrs\":{}},{\"addon\":\"src/addons/Newfi/Events\",\"child_count\":1,\"first\":[{\"attrs\":{\"controller\":\"Newfi\\\\Events:Events\",\"route_prefix\":\"events\",\"route_type\":\"public\"},\"tag\":\"route\"}],\"root\":\"routes\",\"root_attrs\":{}}],\"template_modifications.xml\":[],\"templates.xml\":[{\"addon\":\"src/addons/Newfi/Dogs\",\"child_count\":1,\"first\":[{\"attrs\":{\"title\":\"newfi_dogs\",\"type\":\"public\",\"version_id\":\"1000010\",\"version_string\":\"1.0.0 Alpha 1\"},\"tag\":\"template\",\"text_len\":670,\"text_sha256\":\"02296119da34471dde7d4ef03b599fd0338d4fa5853d43e55bb163bb9921a229\"}],\"root\":\"templates\",\"root_attrs\":{}},{\"addon\":\"src/addons/Newfi/Events\",\"child_count\":1,\"first\":[{\"attrs\":{\"title\":\"newfi_events\",\"type\":\"public\",\"version_id\":\"1000010\",\"version_string\":\"1.0.0 Alpha 1\"},\"tag\":\"template\",\"text_len\":590,\"text_sha256\":\"5c6d907b5b263765bf4d1d34f025aaf26cf6a268675028224826ca2882a947e9\"}],\"root\":\"templates\",\"root_attrs\":{}}]}}\nSUPPORT041_RESIDUAL_SUM=0\nSUPPORT041_DECISION=HOLD_POSTROLLBACK_OR_RUNTIME_DRIFT\nSUPPORT041_MUTATION_SCOPE=NONE_READ_ONLY\nHOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\nSUPPORT041_END\n" +} diff --git a/runtime/history/SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041.txt b/runtime/history/SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041.txt new file mode 100644 index 00000000..5e7a4494 --- /dev/null +++ b/runtime/history/SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041.txt @@ -0,0 +1,45 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041 +STATUS=OK +RC=0 +HOST=pve01 +MODE=read-only +COMPONENT=gram-support-vm211-staging-forensic +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=d31b61b5d80966157f8fd0416a1b84da417446fd716707606be2c40794e947e8 +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=false +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=NOT_APPLICABLE +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=0 +CHANGES_MADE=false +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=NO_MUTATION +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=ca9e03a257db6318511bb3fc6ceedcb81edc9ac133b13de2e30f1d49e5091c20 +SANITIZED_OUTPUT_SHA256=ca9e03a257db6318511bb3fc6ceedcb81edc9ac133b13de2e30f1d49e5091c20 +OUTPUT_BEGIN +SUPPORT041_BEGIN +ERROR_REGISTER_CHECK=OK +REFERENCE_CHECK=OK +AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED +RUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d +SUPPORT041_SOURCE_POSTROLLBACK={"source_exists":false,"tmp_exists":false} +SUPPORT041_QGA_STATE={"exitcode":0,"state":"COMPLETE"} +SUPPORT041_VM211={"addon_path":{"state":"ABSENT"},"cli":{"commands":["xf:addon-disable","xf:addon-enable","xf:addon-install","xf:addon-list","xf:addon-rebuild","xf:addon-uninstall","xf:addon-upgrade"],"help":{"xf:addon-disable":{"mentions_no_interaction":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"aad85d19723401a92a03a7824069597c7729f537fbba1d9037e5c7ea46e2d057"},"xf:addon-enable":{"mentions_no_interaction":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"d55071cb0200757dba0a2a8f2c4427f8cf8f525103a9584c61a20d79aea1ca44"},"xf:addon-install":{"mentions_no_interaction":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"9dac6d249cac5938d1d908affe66cc652d0deaa1b24d9233f7bdebec96151104"},"xf:addon-list":{"mentions_no_interaction":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"7934a7143d5b6907a69f477063324e9c53e99f7404fd83af0887a828928e6dbe"},"xf:addon-rebuild":{"mentions_no_interaction":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"36c4af0714bfa9f732f46c004f0bd3ea109340b8b737ba0217dbce50330669c9"},"xf:addon-uninstall":{"mentions_no_interaction":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"c8f2162162c47f832d6c25822395cd2db42d260774e00ebc3bf765532f12ac97"},"xf:addon-upgrade":{"mentions_no_interaction":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"834372348cafa33db19e7545b6ae3f9f47d822c8ef3c5cadeb97d0bbbd6a4e40"}},"rc":0},"collection":"COMPLETE","command_id":"SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041","datatype_contract":{"AbstractDataType.php":{"exists":true,"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","snippets":[[{"line":30,"text":"\tabstract public function getContainerTag();"},{"line":31,"text":""},{"line":32,"text":"\tabstract public function getChildTag();"},{"line":33,"text":""},{"line":34,"text":"\tabstract public function exportAddOnData($addOnId, \\DOMElement $container);"},{"line":35,"text":""},{"line":36,"text":"\tabstract public function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0);"},{"line":37,"text":""},{"line":38,"text":"\tabstract public function deleteOrphanedAddOnData($addOnId, \\SimpleXMLElement $container);"},{"line":39,"text":""},{"line":40,"text":"\tpublic const USE_AUTO_CDATA = false;"},{"line":41,"text":""},{"line":42,"text":"\tpublic function __construct(Manager $em)"},{"line":43,"text":"\t{"}],[{"line":32,"text":"\tabstract public function getChildTag();"},{"line":33,"text":""},{"line":34,"text":"\tabstract public function exportAddOnData($addOnId, \\DOMElement $container);"},{"line":35,"text":""},{"line":36,"text":"\tabstract public function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0);"},{"line":37,"text":""},{"line":38,"text":"\tabstract public function deleteOrphanedAddOnData($addOnId, \\SimpleXMLElement $container);"},{"line":39,"text":""},{"line":40,"text":"\tpublic const USE_AUTO_CDATA = false;"},{"line":41,"text":""},{"line":42,"text":"\tpublic function __construct(Manager $em)"},{"line":43,"text":"\t{"},{"line":44,"text":"\t\t$this->em = $em;"},{"line":45,"text":"\t\t$this->structure = $em->getEntityStructure($this->getShortName());"}],[{"line":34,"text":"\tabstract public function exportAddOnData($addOnId, \\DOMElement $container);"},{"line":35,"text":""},{"line":36,"text":"\tabstract public function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0);"},{"line":37,"text":""},{"line":38,"text":"\tabstract public function deleteOrphanedAddOnData($addOnId, \\SimpleXMLElement $container);"},{"line":39,"text":""},{"line":40,"text":"\tpublic const USE_AUTO_CDATA = false;"},{"line":41,"text":""},{"line":42,"text":"\tpublic function __construct(Manager $em)"},{"line":43,"text":"\t{"},{"line":44,"text":"\t\t$this->em = $em;"},{"line":45,"text":"\t\t$this->structure = $em->getEntityStructure($this->getShortName());"},{"line":46,"text":"\t}"},{"line":47,"text":""}],[{"line":36,"text":"\tabstract public function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0);"},{"line":37,"text":""},{"line":38,"text":"\tabstract public function deleteOrphanedAddOnData($addOnId, \\SimpleXMLElement $container);"},{"line":39,"text":""},{"line":40,"text":"\tpublic const USE_AUTO_CDATA = false;"},{"line":41,"text":""},{"line":42,"text":"\tpublic function __construct(Manager $em)"},{"line":43,"text":"\t{"},{"line":44,"text":"\t\t$this->em = $em;"},{"line":45,"text":"\t\t$this->structure = $em->getEntityStructure($this->getShortName());"},{"line":46,"text":"\t}"},{"line":47,"text":""},{"line":48,"text":"\tpublic function getTypeFileName()"},{"line":49,"text":"\t{"}],[{"line":174,"text":"\tprotected function getMappedAttributes()"},{"line":175,"text":"\t{"},{"line":176,"text":"\t\treturn [];"},{"line":177,"text":"\t}"},{"line":178,"text":""},{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"},{"line":183,"text":""},{"line":184,"text":"\tprotected function exportArrayToAttributes(\\DOMElement $tag, $attr, Entity $entity)"},{"line":185,"text":"\t{"},{"line":186,"text":"\t\tforeach ($entity->$attr AS $key => $value)"},{"line":187,"text":"\t\t{"}],[{"line":184,"text":"\tprotected function exportArrayToAttributes(\\DOMElement $tag, $attr, Entity $entity)"},{"line":185,"text":"\t{"},{"line":186,"text":"\t\tforeach ($entity->$attr AS $key => $value)"},{"line":187,"text":"\t\t{"},{"line":188,"text":"\t\t\tif ($value === '')"},{"line":189,"text":"\t\t\t{"},{"line":190,"text":"\t\t\t\tcontinue;"},{"line":191,"text":"\t\t\t}"},{"line":192,"text":"\t\t\tif (is_bool($value))"},{"line":193,"text":"\t\t\t{"},{"line":194,"text":"\t\t\t\t$value = $value ? 1 : 0;"},{"line":195,"text":"\t\t\t}"},{"line":196,"text":"\t\t\t$tag->setAttribute($attr . '_' . $key, $value);"},{"line":197,"text":"\t\t}"}],[{"line":200,"text":"\tprotected function exportCdataToNewNode(\\DOMElement $tag, $attr, Entity $entity)"},{"line":201,"text":"\t{"},{"line":202,"text":"\t\t$newNode = $tag->ownerDocument->createElement($attr);"},{"line":203,"text":"\t\t$this->exportCdata($newNode, $entity->{$attr});"},{"line":204,"text":"\t\t$tag->appendChild($newNode);"},{"line":205,"text":"\t}"},{"line":206,"text":""},{"line":207,"text":"\tprotected function exportMappedAttributes(\\DOMElement $tag, Entity $entity)"},{"line":208,"text":"\t{"},{"line":209,"text":"\t\tforeach ($this->getMappedAttributes() AS $attr)"},{"line":210,"text":"\t\t{"},{"line":211,"text":"\t\t\t$value = $entity->getValue($attr);"},{"line":212,"text":""},{"line":213,"text":"\t\t\tif ($value !== '')"}],[{"line":207,"text":"\tprotected function exportMappedAttributes(\\DOMElement $tag, Entity $entity)"},{"line":208,"text":"\t{"},{"line":209,"text":"\t\tforeach ($this->getMappedAttributes() AS $attr)"},{"line":210,"text":"\t\t{"},{"line":211,"text":"\t\t\t$value = $entity->getValue($attr);"},{"line":212,"text":""},{"line":213,"text":"\t\t\tif ($value !== '')"},{"line":214,"text":"\t\t\t{"},{"line":215,"text":"\t\t\t\tif (is_bool($value))"},{"line":216,"text":"\t\t\t\t{"},{"line":217,"text":"\t\t\t\t\t$value = $value ? 1 : 0;"},{"line":218,"text":"\t\t\t\t}"},{"line":219,"text":""},{"line":220,"text":"\t\t\t\t// CURRENTLY NOT USED DUE TO BC ISSUES WITH 2.0.x < 2.0.4"}]]},"CodeEventListener.php":{"exists":true,"sha256":"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab","snippets":[[{"line":16,"text":"\tpublic function getContainerTag()"},{"line":17,"text":"\t{"},{"line":18,"text":"\t\treturn 'code_event_listeners';"},{"line":19,"text":"\t}"},{"line":20,"text":""},{"line":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'listener';"},{"line":24,"text":"\t}"},{"line":25,"text":""},{"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":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'listener';"},{"line":24,"text":"\t}"},{"line":25,"text":""},{"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":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":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":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}"},{"line":139,"text":""},{"line":140,"text":"\tprotected function getAddOnUniqueKeyFromXml(\\SimpleXMLElement $entry)"}]]},"ContentTypeField.php":{"exists":true,"sha256":"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594","snippets":[[{"line":16,"text":"\tpublic function getContainerTag()"},{"line":17,"text":"\t{"},{"line":18,"text":"\t\treturn 'content_type_fields';"},{"line":19,"text":"\t}"},{"line":20,"text":""},{"line":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'field';"},{"line":24,"text":"\t}"},{"line":25,"text":""},{"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":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'field';"},{"line":24,"text":"\t}"},{"line":25,"text":""},{"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":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":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":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}"},{"line":139,"text":"}"}]]},"Option.php":{"exists":true,"sha256":"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60","snippets":[[{"line":17,"text":"\tpublic function getContainerTag()"},{"line":18,"text":"\t{"},{"line":19,"text":"\t\treturn 'options';"},{"line":20,"text":"\t}"},{"line":21,"text":""},{"line":22,"text":"\tpublic function getChildTag()"},{"line":23,"text":"\t{"},{"line":24,"text":"\t\treturn 'option';"},{"line":25,"text":"\t}"},{"line":26,"text":""},{"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":22,"text":"\tpublic function getChildTag()"},{"line":23,"text":"\t{"},{"line":24,"text":"\t\treturn 'option';"},{"line":25,"text":"\t}"},{"line":26,"text":""},{"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":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":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":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}"},{"line":139,"text":"}"}]]},"OptionGroup.php":{"exists":true,"sha256":"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da","snippets":[[{"line":14,"text":"\tpublic function getContainerTag()"},{"line":15,"text":"\t{"},{"line":16,"text":"\t\treturn 'option_groups';"},{"line":17,"text":"\t}"},{"line":18,"text":""},{"line":19,"text":"\tpublic function getChildTag()"},{"line":20,"text":"\t{"},{"line":21,"text":"\t\treturn 'group';"},{"line":22,"text":"\t}"},{"line":23,"text":""},{"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":19,"text":"\tpublic function getChildTag()"},{"line":20,"text":"\t{"},{"line":21,"text":"\t\treturn 'group';"},{"line":22,"text":"\t}"},{"line":23,"text":""},{"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":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":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":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}"},{"line":97,"text":"}"}]]},"Permission.php":{"exists":true,"sha256":"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477","snippets":[[{"line":18,"text":"\tpublic function getContainerTag()"},{"line":19,"text":"\t{"},{"line":20,"text":"\t\treturn 'permissions';"},{"line":21,"text":"\t}"},{"line":22,"text":""},{"line":23,"text":"\tpublic function getChildTag()"},{"line":24,"text":"\t{"},{"line":25,"text":"\t\treturn 'permission';"},{"line":26,"text":"\t}"},{"line":27,"text":""},{"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":23,"text":"\tpublic function getChildTag()"},{"line":24,"text":"\t{"},{"line":25,"text":"\t\treturn 'permission';"},{"line":26,"text":"\t}"},{"line":27,"text":""},{"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":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":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":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}"},{"line":160,"text":"}"}]]},"PermissionInterfaceGroup.php":{"exists":true,"sha256":"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6","snippets":[[{"line":15,"text":"\tpublic function getContainerTag()"},{"line":16,"text":"\t{"},{"line":17,"text":"\t\treturn 'permission_interface_groups';"},{"line":18,"text":"\t}"},{"line":19,"text":""},{"line":20,"text":"\tpublic function getChildTag()"},{"line":21,"text":"\t{"},{"line":22,"text":"\t\treturn 'interface_group';"},{"line":23,"text":"\t}"},{"line":24,"text":""},{"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":20,"text":"\tpublic function getChildTag()"},{"line":21,"text":"\t{"},{"line":22,"text":"\t\treturn 'interface_group';"},{"line":23,"text":"\t}"},{"line":24,"text":""},{"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":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":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":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}"},{"line":103,"text":"}"}]]},"Phrase.php":{"exists":true,"sha256":"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266","snippets":[[{"line":16,"text":"\tpublic function getContainerTag()"},{"line":17,"text":"\t{"},{"line":18,"text":"\t\treturn 'phrases';"},{"line":19,"text":"\t}"},{"line":20,"text":""},{"line":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'phrase';"},{"line":24,"text":"\t}"},{"line":25,"text":""},{"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":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'phrase';"},{"line":24,"text":"\t}"},{"line":25,"text":""},{"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":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":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":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}"},{"line":129,"text":"}"}]]},"Route.php":{"exists":true,"sha256":"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb","snippets":[[{"line":16,"text":"\tpublic function getContainerTag()"},{"line":17,"text":"\t{"},{"line":18,"text":"\t\treturn 'routes';"},{"line":19,"text":"\t}"},{"line":20,"text":""},{"line":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'route';"},{"line":24,"text":"\t}"},{"line":25,"text":""},{"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":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'route';"},{"line":24,"text":"\t}"},{"line":25,"text":""},{"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":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":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":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}"}]]},"Template.php":{"exists":true,"sha256":"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a","snippets":[[{"line":15,"text":"\tpublic function getContainerTag()"},{"line":16,"text":"\t{"},{"line":17,"text":"\t\treturn 'templates';"},{"line":18,"text":"\t}"},{"line":19,"text":""},{"line":20,"text":"\tpublic function getChildTag()"},{"line":21,"text":"\t{"},{"line":22,"text":"\t\treturn 'template';"},{"line":23,"text":"\t}"},{"line":24,"text":""},{"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":20,"text":"\tpublic function getChildTag()"},{"line":21,"text":"\t{"},{"line":22,"text":"\t\treturn 'template';"},{"line":23,"text":"\t}"},{"line":24,"text":""},{"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":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":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":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}"},{"line":165,"text":"}"}]]},"TemplateModification.php":{"exists":true,"sha256":"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a","snippets":[[{"line":18,"text":"\tpublic function getContainerTag()"},{"line":19,"text":"\t{"},{"line":20,"text":"\t\treturn 'template_modifications';"},{"line":21,"text":"\t}"},{"line":22,"text":""},{"line":23,"text":"\tpublic function getChildTag()"},{"line":24,"text":"\t{"},{"line":25,"text":"\t\treturn 'modification';"},{"line":26,"text":"\t}"},{"line":27,"text":""},{"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":23,"text":"\tpublic function getChildTag()"},{"line":24,"text":"\t{"},{"line":25,"text":"\t\treturn 'modification';"},{"line":26,"text":"\t}"},{"line":27,"text":""},{"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":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":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":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}"},{"line":152,"text":""},{"line":153,"text":"\tprotected function getMaintainedAttributes()"}]]}},"db":null,"db_probe":{"rc":0,"stderr_sha256":""},"error_probe":{"rc":0,"stderr_sha256":""},"errors_after_43":null,"guest":"newfi-staging","identity_ok":true,"root":{"state":"DIR"},"runtime":{"http_code":"503","http_rc":0,"services":{"mariadb":{"rc":0,"state":"active"},"nginx":{"rc":0,"state":"active"},"php8.3-fpm":{"rc":0,"state":"active"}}},"scope":"READ_ONLY_NO_MUTATION","setup_contract":{"src/XF/AddOn/AbstractSetup.php":{"exists":true,"hits":[{"line":25,"text":"abstract public function install(array $stepParams = []);"},{"line":39,"text":"abstract public function uninstall(array $stepParams = []);"}],"sha256":"6bdd3fe834e15b963a52c9357f54262f2d12f3c7c3686fc31333b549cddf2d88"},"src/XF/AddOn/StepRunnerInstallTrait.php":{"exists":true,"hits":[{"line":17,"text":"public function install(array $stepParams = [])"},{"line":53,"text":"private function installStepRunner($step, array $stepParams)"}],"sha256":"1f441b8a3101b97009ae04e62c04e79062a89f1e01a08ae9e07c5e629c76d5f2"},"src/XF/AddOn/StepRunnerUninstallTrait.php":{"exists":true,"hits":[{"line":17,"text":"public function uninstall(array $stepParams = [])"},{"line":52,"text":"private function uninstallStepRunner($step, array $stepParams)"}],"sha256":"e58a9ab9c30e3cf3c41a0be392e8c5ac37f744578f7b91f76d663139649c49a9"},"src/XF/Db/Schema/Column.php":{"exists":true,"hits":[{"line":254,"text":"public function unsigned($unsigned = null)"},{"line":276,"text":"public function setDefault($default)"},{"line":283,"text":"public function autoIncrement($autoIncrement = null, $setAsPrimary = true)"}],"sha256":"d6749157309835460b98e3e09d33533409850a1fb808417f28e89a97a3775730"},"src/XF/Db/Schema/Create.php":{"exists":true,"hits":[],"sha256":"4b2f0bf31fc3f133b10577c24024f2883c80296478ee4adf5c91930c6b896ddd"}},"stage039":{"state":"ABSENT"},"xml_exemplars":{"code_event_listeners.xml":[],"content_type_fields.xml":[],"option_groups.xml":[],"options.xml":[],"permission_interface_groups.xml":[],"permissions.xml":[],"phrases.xml":[{"addon":"src/addons/Newfi/Portal","child_count":1,"first":[{"attrs":{"title":"nav.newfiPortal","version_id":"1000010","version_string":"1.0.0 Alpha 1"},"tag":"phrase","text_len":5,"text_sha256":"661a914783b315dcc04a526122b417b6cfe9b77f351a51c9cab31baf158bdcba"}],"root":"phrases","root_attrs":{}}],"routes.xml":[{"addon":"src/addons/Newfi/Dogs","child_count":1,"first":[{"attrs":{"controller":"Newfi\\Dogs:Dogs","route_prefix":"dogs","route_type":"public"},"tag":"route"}],"root":"routes","root_attrs":{}},{"addon":"src/addons/Newfi/Events","child_count":1,"first":[{"attrs":{"controller":"Newfi\\Events:Events","route_prefix":"events","route_type":"public"},"tag":"route"}],"root":"routes","root_attrs":{}}],"template_modifications.xml":[],"templates.xml":[{"addon":"src/addons/Newfi/Dogs","child_count":1,"first":[{"attrs":{"title":"newfi_dogs","type":"public","version_id":"1000010","version_string":"1.0.0 Alpha 1"},"tag":"template","text_len":670,"text_sha256":"02296119da34471dde7d4ef03b599fd0338d4fa5853d43e55bb163bb9921a229"}],"root":"templates","root_attrs":{}},{"addon":"src/addons/Newfi/Events","child_count":1,"first":[{"attrs":{"title":"newfi_events","type":"public","version_id":"1000010","version_string":"1.0.0 Alpha 1"},"tag":"template","text_len":590,"text_sha256":"5c6d907b5b263765bf4d1d34f025aaf26cf6a268675028224826ca2882a947e9"}],"root":"templates","root_attrs":{}}]}} +SUPPORT041_RESIDUAL_SUM=0 +SUPPORT041_DECISION=HOLD_POSTROLLBACK_OR_RUNTIME_DRIFT +SUPPORT041_MUTATION_SCOPE=NONE_READ_ONLY +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} +SUPPORT041_END + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 854f7ed2..9e6643df 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "NEWFI-260909-NEWFDOM-PORTAL-ROOT-RCA76", + "command_id": "SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041", "status": "OK", "rc": 0, "host": "pve01", "mode": "read-only", - "component": "newfi-portal-root-identity-rca", - "started_at_utc": "2026-09-09T10:32:13Z", - "finished_at_utc": "2026-09-09T10:32:17Z", + "component": "gram-support-vm211-staging-forensic", + "started_at_utc": "2026-09-09T10:35:16Z", + "finished_at_utc": "2026-09-09T10:35:19Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "963b4db7e6b84abb8fc07710c7836c5a6bc70779bbced81b826e8e66ef49011a", + "command_sha256": "d31b61b5d80966157f8fd0416a1b84da417446fd716707606be2c40794e947e8", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "a7b52eda4c8e9e0bc1a204d06b42c56fffbdf0e460cdfad5593a5325c22fae99", - "sanitized_output_sha256": "a7b52eda4c8e9e0bc1a204d06b42c56fffbdf0e460cdfad5593a5325c22fae99", + "raw_evidence_sha256": "ca9e03a257db6318511bb3fc6ceedcb81edc9ac133b13de2e30f1d49e5091c20", + "sanitized_output_sha256": "ca9e03a257db6318511bb3fc6ceedcb81edc9ac133b13de2e30f1d49e5091c20", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "NEWFI76_BEGIN\nCOMMAND_ID=NEWFI-260909-NEWFDOM-PORTAL-ROOT-RCA76\nERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nRUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\nNEWFI76_GIT={\"branch\":\"implementation/newfi-closed-mvp-20260906\",\"clean\":true,\"exact\":true,\"head\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"remote_head\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\"}\nNEWFI76_GIT_BLOB={\"bytes\":363,\"commit\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"label\":\"Portal200\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\",\"state\":\"OK\"}\nNEWFI76_GIT_BLOB={\"bytes\":5213,\"commit\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"label\":\"Portal200\",\"rel\":\"Service/PortalData.php\",\"sha256\":\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\",\"state\":\"OK\"}\nNEWFI76_GIT_BLOB={\"bytes\":11021,\"commit\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"label\":\"Portal200\",\"rel\":\"_data/templates.xml\",\"sha256\":\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\",\"state\":\"OK\"}\nNEWFI76_GIT_BLOB={\"bytes\":247,\"commit\":\"06bab5acd124e768f70305b3d7eca2f595871890\",\"label\":\"STYLE199B\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\",\"state\":\"OK\"}\nNEWFI76_GIT_BLOB={\"commit\":\"06bab5acd124e768f70305b3d7eca2f595871890\",\"label\":\"STYLE199B\",\"rc\":128,\"rel\":\"Service/PortalData.php\",\"state\":\"ABSENT\"}\nNEWFI76_GIT_BLOB={\"bytes\":1461,\"commit\":\"06bab5acd124e768f70305b3d7eca2f595871890\",\"label\":\"STYLE199B\",\"rel\":\"_data/templates.xml\",\"sha256\":\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\",\"state\":\"OK\"}\nNEWFI76_GIT_BLOB={\"bytes\":247,\"commit\":\"4ade504e649ce35d05322a6b69d758a1ef1803b5\",\"label\":\"BRAND198\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\",\"state\":\"OK\"}\nNEWFI76_GIT_BLOB={\"commit\":\"4ade504e649ce35d05322a6b69d758a1ef1803b5\",\"label\":\"BRAND198\",\"rc\":128,\"rel\":\"Service/PortalData.php\",\"state\":\"ABSENT\"}\nNEWFI76_GIT_BLOB={\"bytes\":1461,\"commit\":\"4ade504e649ce35d05322a6b69d758a1ef1803b5\",\"label\":\"BRAND198\",\"rel\":\"_data/templates.xml\",\"sha256\":\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\",\"state\":\"OK\"}\nNEWFI76_GIT_BLOB={\"bytes\":247,\"commit\":\"9f7e0ca285d8ddfdd97e4539daaa81695272b705\",\"label\":\"PROD195\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\",\"state\":\"OK\"}\nNEWFI76_GIT_BLOB={\"commit\":\"9f7e0ca285d8ddfdd97e4539daaa81695272b705\",\"label\":\"PROD195\",\"rc\":128,\"rel\":\"Service/PortalData.php\",\"state\":\"ABSENT\"}\nNEWFI76_GIT_BLOB={\"bytes\":1461,\"commit\":\"9f7e0ca285d8ddfdd97e4539daaa81695272b705\",\"label\":\"PROD195\",\"rel\":\"_data/templates.xml\",\"sha256\":\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\",\"state\":\"OK\"}\nNEWFI76_GIT_BLOB={\"bytes\":247,\"commit\":\"ca07bfc20953585887f7cc2f1d443cf8313912c8\",\"label\":\"PortalNav\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\",\"state\":\"OK\"}\nNEWFI76_GIT_BLOB={\"commit\":\"ca07bfc20953585887f7cc2f1d443cf8313912c8\",\"label\":\"PortalNav\",\"rc\":128,\"rel\":\"Service/PortalData.php\",\"state\":\"ABSENT\"}\nNEWFI76_GIT_BLOB={\"bytes\":1461,\"commit\":\"ca07bfc20953585887f7cc2f1d443cf8313912c8\",\"label\":\"PortalNav\",\"rel\":\"_data/templates.xml\",\"sha256\":\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\",\"state\":\"OK\"}\nNEWFI76_GIT_BLOB={\"bytes\":247,\"commit\":\"82dd2066df377ba9d904f68f90898e009413eec9\",\"label\":\"PortalInitial\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\",\"state\":\"OK\"}\nNEWFI76_GIT_BLOB={\"commit\":\"82dd2066df377ba9d904f68f90898e009413eec9\",\"label\":\"PortalInitial\",\"rc\":128,\"rel\":\"Service/PortalData.php\",\"state\":\"ABSENT\"}\nNEWFI76_GIT_BLOB={\"bytes\":1362,\"commit\":\"82dd2066df377ba9d904f68f90898e009413eec9\",\"label\":\"PortalInitial\",\"rel\":\"_data/templates.xml\",\"sha256\":\"f9cb47d48418a9eae3e5fc8f9dd2830e0499f62f1b82d574362186e7f78a7eb2\",\"state\":\"OK\"}\nNEWFI76_CLUSTER={\"selected\":{\"210\":{\"name\":\"newfi-prod\",\"node\":\"pve01\",\"status\":\"running\",\"type\":\"qemu\",\"vmid\":210},\"211\":{\"name\":\"newfi-staging\",\"node\":\"pve03\",\"status\":\"running\",\"type\":\"qemu\",\"vmid\":211}},\"state\":\"OK\"}\nNEWFI76_PRODUCTION_QGA={\"state\":\"COMPLETE\"}\nNEWFI76_PRODUCTION_ROOT={\"active_candidate\":false,\"cmd_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"config_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"git_matches\":[],\"matches_current\":false,\"portal_files\":{\"Pub/Controller/Portal.php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"Service/PortalData.php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"_data/templates.xml\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"}},\"rebuild_help\":{\"state\":\"NO_CMD\"},\"root\":\"/var/www/forums/newfi\",\"templates_xml_parse\":\"NOT_AVAILABLE\",\"xf_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"}}\nNEWFI76_PRODUCTION_ROOT={\"active_candidate\":true,\"cmd_php\":{\"bytes\":336,\"mode\":\"0644\",\"sha256\":\"bfb376075435890c11a1e8bc88357d51c60df4b2ac69efda52357ce707ddf52b\",\"state\":\"OK\"},\"config_php\":{\"bytes\":310,\"mode\":\"0640\",\"state\":\"OK\"},\"git_matches\":[{\"commit\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"label\":\"Portal200\"}],\"matches_current\":true,\"portal_files\":{\"Pub/Controller/Portal.php\":{\"bytes\":363,\"mode\":\"0644\",\"sha256\":\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\",\"state\":\"OK\"},\"Service/PortalData.php\":{\"bytes\":5213,\"mode\":\"0644\",\"sha256\":\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\",\"state\":\"OK\"},\"_data/templates.xml\":{\"bytes\":11021,\"mode\":\"0644\",\"sha256\":\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\",\"state\":\"OK\"}},\"rebuild_help\":{\"has_command\":true,\"has_force\":true,\"has_id_argument\":true,\"rc\":0,\"sample\":\"Description: Rebuilds the specified add-on data. Usage: xf:addon-rebuild [options] [--] xf-addon:rebuild Arguments: id Add-On ID Options: -f, --force Skip verifying that the add-on is rebuildable -h, --help Display help for the given command. When no command is given display help for the list command -q, --quiet Do not output any message -V, --version Display this application version --ansi|--no-ansi Force (or disable --no-ansi) ANSI output -n, --no-interaction Do not ask any interactive question -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output an\",\"state\":\"OK\"},\"root\":\"/var/www/forums/newfi/public\",\"templates_xml_parse\":\"OK\",\"xf_php\":{\"bytes\":35406,\"mode\":\"0644\",\"sha256\":\"d0c10d91d743e0a541d9a1b201080491dae0a8b1757866f113ef707b83403219\",\"state\":\"OK\"}}\nNEWFI76_PRODUCTION_ACTIVE_COUNT=1\nNEWFI76_STAGING_QGA={\"state\":\"COMPLETE\"}\nNEWFI76_STAGING_ROOT={\"active_candidate\":false,\"cmd_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"config_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"git_matches\":[],\"matches_current\":false,\"portal_files\":{\"Pub/Controller/Portal.php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"Service/PortalData.php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"_data/templates.xml\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"}},\"rebuild_help\":{\"state\":\"NO_CMD\"},\"root\":\"/var/www/forums/newfi\",\"templates_xml_parse\":\"NOT_AVAILABLE\",\"xf_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"}}\nNEWFI76_STAGING_ROOT={\"active_candidate\":true,\"cmd_php\":{\"bytes\":336,\"mode\":\"0644\",\"sha256\":\"bfb376075435890c11a1e8bc88357d51c60df4b2ac69efda52357ce707ddf52b\",\"state\":\"OK\"},\"config_php\":{\"bytes\":310,\"mode\":\"0640\",\"state\":\"OK\"},\"git_matches\":[{\"commit\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"label\":\"Portal200\"}],\"matches_current\":true,\"portal_files\":{\"Pub/Controller/Portal.php\":{\"bytes\":363,\"mode\":\"0644\",\"sha256\":\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\",\"state\":\"OK\"},\"Service/PortalData.php\":{\"bytes\":5213,\"mode\":\"0644\",\"sha256\":\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\",\"state\":\"OK\"},\"_data/templates.xml\":{\"bytes\":11021,\"mode\":\"0644\",\"sha256\":\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\",\"state\":\"OK\"}},\"rebuild_help\":{\"has_command\":true,\"has_force\":true,\"has_id_argument\":true,\"rc\":0,\"sample\":\"Description: Rebuilds the specified add-on data. Usage: xf:addon-rebuild [options] [--] xf-addon:rebuild Arguments: id Add-On ID Options: -f, --force Skip verifying that the add-on is rebuildable -h, --help Display help for the given command. When no command is given display help for the list command -q, --quiet Do not output any message -V, --version Display this application version --ansi|--no-ansi Force (or disable --no-ansi) ANSI output -n, --no-interaction Do not ask any interactive question -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output an\",\"state\":\"OK\"},\"root\":\"/var/www/forums/newfi/public\",\"templates_xml_parse\":\"OK\",\"xf_php\":{\"bytes\":35406,\"mode\":\"0644\",\"sha256\":\"d0c10d91d743e0a541d9a1b201080491dae0a8b1757866f113ef707b83403219\",\"state\":\"OK\"}}\nNEWFI76_STAGING_ACTIVE_COUNT=1\nNEWFI76_GAPS=[]\nNEWFI76_MUTATION_SCOPE=NONE_READ_ONLY\nNEWFI76_DECISION=PORTAL_ROOT_IDENTITY_PROVEN\nNEWFI76_COLLECTION_COMPLETE=true\nNEWFI76_END\n" + "output": "SUPPORT041_BEGIN\nERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nRUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\nSUPPORT041_SOURCE_POSTROLLBACK={\"source_exists\":false,\"tmp_exists\":false}\nSUPPORT041_QGA_STATE={\"exitcode\":0,\"state\":\"COMPLETE\"}\nSUPPORT041_VM211={\"addon_path\":{\"state\":\"ABSENT\"},\"cli\":{\"commands\":[\"xf:addon-disable\",\"xf:addon-enable\",\"xf:addon-install\",\"xf:addon-list\",\"xf:addon-rebuild\",\"xf:addon-uninstall\",\"xf:addon-upgrade\"],\"help\":{\"xf:addon-disable\":{\"mentions_no_interaction\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"aad85d19723401a92a03a7824069597c7729f537fbba1d9037e5c7ea46e2d057\"},\"xf:addon-enable\":{\"mentions_no_interaction\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"d55071cb0200757dba0a2a8f2c4427f8cf8f525103a9584c61a20d79aea1ca44\"},\"xf:addon-install\":{\"mentions_no_interaction\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"9dac6d249cac5938d1d908affe66cc652d0deaa1b24d9233f7bdebec96151104\"},\"xf:addon-list\":{\"mentions_no_interaction\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"7934a7143d5b6907a69f477063324e9c53e99f7404fd83af0887a828928e6dbe\"},\"xf:addon-rebuild\":{\"mentions_no_interaction\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"36c4af0714bfa9f732f46c004f0bd3ea109340b8b737ba0217dbce50330669c9\"},\"xf:addon-uninstall\":{\"mentions_no_interaction\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"c8f2162162c47f832d6c25822395cd2db42d260774e00ebc3bf765532f12ac97\"},\"xf:addon-upgrade\":{\"mentions_no_interaction\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"834372348cafa33db19e7545b6ae3f9f47d822c8ef3c5cadeb97d0bbbd6a4e40\"}},\"rc\":0},\"collection\":\"COMPLETE\",\"command_id\":\"SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041\",\"datatype_contract\":{\"AbstractDataType.php\":{\"exists\":true,\"sha256\":\"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815\",\"snippets\":[[{\"line\":30,\"text\":\"\\tabstract public function getContainerTag();\"},{\"line\":31,\"text\":\"\"},{\"line\":32,\"text\":\"\\tabstract public function getChildTag();\"},{\"line\":33,\"text\":\"\"},{\"line\":34,\"text\":\"\\tabstract public function exportAddOnData($addOnId, \\\\DOMElement $container);\"},{\"line\":35,\"text\":\"\"},{\"line\":36,\"text\":\"\\tabstract public function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0);\"},{\"line\":37,\"text\":\"\"},{\"line\":38,\"text\":\"\\tabstract public function deleteOrphanedAddOnData($addOnId, \\\\SimpleXMLElement $container);\"},{\"line\":39,\"text\":\"\"},{\"line\":40,\"text\":\"\\tpublic const USE_AUTO_CDATA = false;\"},{\"line\":41,\"text\":\"\"},{\"line\":42,\"text\":\"\\tpublic function __construct(Manager $em)\"},{\"line\":43,\"text\":\"\\t{\"}],[{\"line\":32,\"text\":\"\\tabstract public function getChildTag();\"},{\"line\":33,\"text\":\"\"},{\"line\":34,\"text\":\"\\tabstract public function exportAddOnData($addOnId, \\\\DOMElement $container);\"},{\"line\":35,\"text\":\"\"},{\"line\":36,\"text\":\"\\tabstract public function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0);\"},{\"line\":37,\"text\":\"\"},{\"line\":38,\"text\":\"\\tabstract public function deleteOrphanedAddOnData($addOnId, \\\\SimpleXMLElement $container);\"},{\"line\":39,\"text\":\"\"},{\"line\":40,\"text\":\"\\tpublic const USE_AUTO_CDATA = false;\"},{\"line\":41,\"text\":\"\"},{\"line\":42,\"text\":\"\\tpublic function __construct(Manager $em)\"},{\"line\":43,\"text\":\"\\t{\"},{\"line\":44,\"text\":\"\\t\\t$this->em = $em;\"},{\"line\":45,\"text\":\"\\t\\t$this->structure = $em->getEntityStructure($this->getShortName());\"}],[{\"line\":34,\"text\":\"\\tabstract public function exportAddOnData($addOnId, \\\\DOMElement $container);\"},{\"line\":35,\"text\":\"\"},{\"line\":36,\"text\":\"\\tabstract public function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0);\"},{\"line\":37,\"text\":\"\"},{\"line\":38,\"text\":\"\\tabstract public function deleteOrphanedAddOnData($addOnId, \\\\SimpleXMLElement $container);\"},{\"line\":39,\"text\":\"\"},{\"line\":40,\"text\":\"\\tpublic const USE_AUTO_CDATA = false;\"},{\"line\":41,\"text\":\"\"},{\"line\":42,\"text\":\"\\tpublic function __construct(Manager $em)\"},{\"line\":43,\"text\":\"\\t{\"},{\"line\":44,\"text\":\"\\t\\t$this->em = $em;\"},{\"line\":45,\"text\":\"\\t\\t$this->structure = $em->getEntityStructure($this->getShortName());\"},{\"line\":46,\"text\":\"\\t}\"},{\"line\":47,\"text\":\"\"}],[{\"line\":36,\"text\":\"\\tabstract public function importAddOnData($addOnId, \\\\SimpleXMLElement $container, $start = 0, $maxRunTime = 0);\"},{\"line\":37,\"text\":\"\"},{\"line\":38,\"text\":\"\\tabstract public function deleteOrphanedAddOnData($addOnId, \\\\SimpleXMLElement $container);\"},{\"line\":39,\"text\":\"\"},{\"line\":40,\"text\":\"\\tpublic const USE_AUTO_CDATA = false;\"},{\"line\":41,\"text\":\"\"},{\"line\":42,\"text\":\"\\tpublic function __construct(Manager $em)\"},{\"line\":43,\"text\":\"\\t{\"},{\"line\":44,\"text\":\"\\t\\t$this->em = $em;\"},{\"line\":45,\"text\":\"\\t\\t$this->structure = $em->getEntityStructure($this->getShortName());\"},{\"line\":46,\"text\":\"\\t}\"},{\"line\":47,\"text\":\"\"},{\"line\":48,\"text\":\"\\tpublic function getTypeFileName()\"},{\"line\":49,\"text\":\"\\t{\"}],[{\"line\":174,\"text\":\"\\tprotected function getMappedAttributes()\"},{\"line\":175,\"text\":\"\\t{\"},{\"line\":176,\"text\":\"\\t\\treturn [];\"},{\"line\":177,\"text\":\"\\t}\"},{\"line\":178,\"text\":\"\"},{\"line\":179,\"text\":\"\\tprotected function getMaintainedAttributes()\"},{\"line\":180,\"text\":\"\\t{\"},{\"line\":181,\"text\":\"\\t\\treturn [];\"},{\"line\":182,\"text\":\"\\t}\"},{\"line\":183,\"text\":\"\"},{\"line\":184,\"text\":\"\\tprotected function exportArrayToAttributes(\\\\DOMElement $tag, $attr, Entity $entity)\"},{\"line\":185,\"text\":\"\\t{\"},{\"line\":186,\"text\":\"\\t\\tforeach ($entity->$attr AS $key => $value)\"},{\"line\":187,\"text\":\"\\t\\t{\"}],[{\"line\":184,\"text\":\"\\tprotected function exportArrayToAttributes(\\\\DOMElement $tag, $attr, Entity $entity)\"},{\"line\":185,\"text\":\"\\t{\"},{\"line\":186,\"text\":\"\\t\\tforeach ($entity->$attr AS $key => $value)\"},{\"line\":187,\"text\":\"\\t\\t{\"},{\"line\":188,\"text\":\"\\t\\t\\tif ($value === '')\"},{\"line\":189,\"text\":\"\\t\\t\\t{\"},{\"line\":190,\"text\":\"\\t\\t\\t\\tcontinue;\"},{\"line\":191,\"text\":\"\\t\\t\\t}\"},{\"line\":192,\"text\":\"\\t\\t\\tif (is_bool($value))\"},{\"line\":193,\"text\":\"\\t\\t\\t{\"},{\"line\":194,\"text\":\"\\t\\t\\t\\t$value = $value ? 1 : 0;\"},{\"line\":195,\"text\":\"\\t\\t\\t}\"},{\"line\":196,\"text\":\"\\t\\t\\t$tag->setAttribute($attr . '_' . $key, $value);\"},{\"line\":197,\"text\":\"\\t\\t}\"}],[{\"line\":200,\"text\":\"\\tprotected function exportCdataToNewNode(\\\\DOMElement $tag, $attr, Entity $entity)\"},{\"line\":201,\"text\":\"\\t{\"},{\"line\":202,\"text\":\"\\t\\t$newNode = $tag->ownerDocument->createElement($attr);\"},{\"line\":203,\"text\":\"\\t\\t$this->exportCdata($newNode, $entity->{$attr});\"},{\"line\":204,\"text\":\"\\t\\t$tag->appendChild($newNode);\"},{\"line\":205,\"text\":\"\\t}\"},{\"line\":206,\"text\":\"\"},{\"line\":207,\"text\":\"\\tprotected function exportMappedAttributes(\\\\DOMElement $tag, Entity $entity)\"},{\"line\":208,\"text\":\"\\t{\"},{\"line\":209,\"text\":\"\\t\\tforeach ($this->getMappedAttributes() AS $attr)\"},{\"line\":210,\"text\":\"\\t\\t{\"},{\"line\":211,\"text\":\"\\t\\t\\t$value = $entity->getValue($attr);\"},{\"line\":212,\"text\":\"\"},{\"line\":213,\"text\":\"\\t\\t\\tif ($value !== '')\"}],[{\"line\":207,\"text\":\"\\tprotected function exportMappedAttributes(\\\\DOMElement $tag, Entity $entity)\"},{\"line\":208,\"text\":\"\\t{\"},{\"line\":209,\"text\":\"\\t\\tforeach ($this->getMappedAttributes() AS $attr)\"},{\"line\":210,\"text\":\"\\t\\t{\"},{\"line\":211,\"text\":\"\\t\\t\\t$value = $entity->getValue($attr);\"},{\"line\":212,\"text\":\"\"},{\"line\":213,\"text\":\"\\t\\t\\tif ($value !== '')\"},{\"line\":214,\"text\":\"\\t\\t\\t{\"},{\"line\":215,\"text\":\"\\t\\t\\t\\tif (is_bool($value))\"},{\"line\":216,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":217,\"text\":\"\\t\\t\\t\\t\\t$value = $value ? 1 : 0;\"},{\"line\":218,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":219,\"text\":\"\"},{\"line\":220,\"text\":\"\\t\\t\\t\\t// CURRENTLY NOT USED DUE TO BC ISSUES WITH 2.0.x < 2.0.4\"}]]},\"CodeEventListener.php\":{\"exists\":true,\"sha256\":\"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab\",\"snippets\":[[{\"line\":16,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":17,\"text\":\"\\t{\"},{\"line\":18,\"text\":\"\\t\\treturn 'code_event_listeners';\"},{\"line\":19,\"text\":\"\\t}\"},{\"line\":20,\"text\":\"\"},{\"line\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'listener';\"},{\"line\":24,\"text\":\"\\t}\"},{\"line\":25,\"text\":\"\"},{\"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\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'listener';\"},{\"line\":24,\"text\":\"\\t}\"},{\"line\":25,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":139,\"text\":\"\"},{\"line\":140,\"text\":\"\\tprotected function getAddOnUniqueKeyFromXml(\\\\SimpleXMLElement $entry)\"}]]},\"ContentTypeField.php\":{\"exists\":true,\"sha256\":\"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594\",\"snippets\":[[{\"line\":16,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":17,\"text\":\"\\t{\"},{\"line\":18,\"text\":\"\\t\\treturn 'content_type_fields';\"},{\"line\":19,\"text\":\"\\t}\"},{\"line\":20,\"text\":\"\"},{\"line\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'field';\"},{\"line\":24,\"text\":\"\\t}\"},{\"line\":25,\"text\":\"\"},{\"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\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'field';\"},{\"line\":24,\"text\":\"\\t}\"},{\"line\":25,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":139,\"text\":\"}\"}]]},\"Option.php\":{\"exists\":true,\"sha256\":\"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60\",\"snippets\":[[{\"line\":17,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":18,\"text\":\"\\t{\"},{\"line\":19,\"text\":\"\\t\\treturn 'options';\"},{\"line\":20,\"text\":\"\\t}\"},{\"line\":21,\"text\":\"\"},{\"line\":22,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":23,\"text\":\"\\t{\"},{\"line\":24,\"text\":\"\\t\\treturn 'option';\"},{\"line\":25,\"text\":\"\\t}\"},{\"line\":26,\"text\":\"\"},{\"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\":22,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":23,\"text\":\"\\t{\"},{\"line\":24,\"text\":\"\\t\\treturn 'option';\"},{\"line\":25,\"text\":\"\\t}\"},{\"line\":26,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":139,\"text\":\"}\"}]]},\"OptionGroup.php\":{\"exists\":true,\"sha256\":\"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da\",\"snippets\":[[{\"line\":14,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":15,\"text\":\"\\t{\"},{\"line\":16,\"text\":\"\\t\\treturn 'option_groups';\"},{\"line\":17,\"text\":\"\\t}\"},{\"line\":18,\"text\":\"\"},{\"line\":19,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":20,\"text\":\"\\t{\"},{\"line\":21,\"text\":\"\\t\\treturn 'group';\"},{\"line\":22,\"text\":\"\\t}\"},{\"line\":23,\"text\":\"\"},{\"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\":19,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":20,\"text\":\"\\t{\"},{\"line\":21,\"text\":\"\\t\\treturn 'group';\"},{\"line\":22,\"text\":\"\\t}\"},{\"line\":23,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":97,\"text\":\"}\"}]]},\"Permission.php\":{\"exists\":true,\"sha256\":\"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477\",\"snippets\":[[{\"line\":18,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":19,\"text\":\"\\t{\"},{\"line\":20,\"text\":\"\\t\\treturn 'permissions';\"},{\"line\":21,\"text\":\"\\t}\"},{\"line\":22,\"text\":\"\"},{\"line\":23,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":24,\"text\":\"\\t{\"},{\"line\":25,\"text\":\"\\t\\treturn 'permission';\"},{\"line\":26,\"text\":\"\\t}\"},{\"line\":27,\"text\":\"\"},{\"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\":23,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":24,\"text\":\"\\t{\"},{\"line\":25,\"text\":\"\\t\\treturn 'permission';\"},{\"line\":26,\"text\":\"\\t}\"},{\"line\":27,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":160,\"text\":\"}\"}]]},\"PermissionInterfaceGroup.php\":{\"exists\":true,\"sha256\":\"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6\",\"snippets\":[[{\"line\":15,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":16,\"text\":\"\\t{\"},{\"line\":17,\"text\":\"\\t\\treturn 'permission_interface_groups';\"},{\"line\":18,\"text\":\"\\t}\"},{\"line\":19,\"text\":\"\"},{\"line\":20,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":21,\"text\":\"\\t{\"},{\"line\":22,\"text\":\"\\t\\treturn 'interface_group';\"},{\"line\":23,\"text\":\"\\t}\"},{\"line\":24,\"text\":\"\"},{\"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\":20,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":21,\"text\":\"\\t{\"},{\"line\":22,\"text\":\"\\t\\treturn 'interface_group';\"},{\"line\":23,\"text\":\"\\t}\"},{\"line\":24,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":103,\"text\":\"}\"}]]},\"Phrase.php\":{\"exists\":true,\"sha256\":\"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266\",\"snippets\":[[{\"line\":16,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":17,\"text\":\"\\t{\"},{\"line\":18,\"text\":\"\\t\\treturn 'phrases';\"},{\"line\":19,\"text\":\"\\t}\"},{\"line\":20,\"text\":\"\"},{\"line\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'phrase';\"},{\"line\":24,\"text\":\"\\t}\"},{\"line\":25,\"text\":\"\"},{\"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\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'phrase';\"},{\"line\":24,\"text\":\"\\t}\"},{\"line\":25,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":129,\"text\":\"}\"}]]},\"Route.php\":{\"exists\":true,\"sha256\":\"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb\",\"snippets\":[[{\"line\":16,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":17,\"text\":\"\\t{\"},{\"line\":18,\"text\":\"\\t\\treturn 'routes';\"},{\"line\":19,\"text\":\"\\t}\"},{\"line\":20,\"text\":\"\"},{\"line\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'route';\"},{\"line\":24,\"text\":\"\\t}\"},{\"line\":25,\"text\":\"\"},{\"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\":21,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":22,\"text\":\"\\t{\"},{\"line\":23,\"text\":\"\\t\\treturn 'route';\"},{\"line\":24,\"text\":\"\\t}\"},{\"line\":25,\"text\":\"\"},{\"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\":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\":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\":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}\"}]]},\"Template.php\":{\"exists\":true,\"sha256\":\"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a\",\"snippets\":[[{\"line\":15,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":16,\"text\":\"\\t{\"},{\"line\":17,\"text\":\"\\t\\treturn 'templates';\"},{\"line\":18,\"text\":\"\\t}\"},{\"line\":19,\"text\":\"\"},{\"line\":20,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":21,\"text\":\"\\t{\"},{\"line\":22,\"text\":\"\\t\\treturn 'template';\"},{\"line\":23,\"text\":\"\\t}\"},{\"line\":24,\"text\":\"\"},{\"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\":20,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":21,\"text\":\"\\t{\"},{\"line\":22,\"text\":\"\\t\\treturn 'template';\"},{\"line\":23,\"text\":\"\\t}\"},{\"line\":24,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":165,\"text\":\"}\"}]]},\"TemplateModification.php\":{\"exists\":true,\"sha256\":\"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a\",\"snippets\":[[{\"line\":18,\"text\":\"\\tpublic function getContainerTag()\"},{\"line\":19,\"text\":\"\\t{\"},{\"line\":20,\"text\":\"\\t\\treturn 'template_modifications';\"},{\"line\":21,\"text\":\"\\t}\"},{\"line\":22,\"text\":\"\"},{\"line\":23,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":24,\"text\":\"\\t{\"},{\"line\":25,\"text\":\"\\t\\treturn 'modification';\"},{\"line\":26,\"text\":\"\\t}\"},{\"line\":27,\"text\":\"\"},{\"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\":23,\"text\":\"\\tpublic function getChildTag()\"},{\"line\":24,\"text\":\"\\t{\"},{\"line\":25,\"text\":\"\\t\\treturn 'modification';\"},{\"line\":26,\"text\":\"\\t}\"},{\"line\":27,\"text\":\"\"},{\"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\":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\":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\":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}\"},{\"line\":152,\"text\":\"\"},{\"line\":153,\"text\":\"\\tprotected function getMaintainedAttributes()\"}]]}},\"db\":null,\"db_probe\":{\"rc\":0,\"stderr_sha256\":\"\"},\"error_probe\":{\"rc\":0,\"stderr_sha256\":\"\"},\"errors_after_43\":null,\"guest\":\"newfi-staging\",\"identity_ok\":true,\"root\":{\"state\":\"DIR\"},\"runtime\":{\"http_code\":\"503\",\"http_rc\":0,\"services\":{\"mariadb\":{\"rc\":0,\"state\":\"active\"},\"nginx\":{\"rc\":0,\"state\":\"active\"},\"php8.3-fpm\":{\"rc\":0,\"state\":\"active\"}}},\"scope\":\"READ_ONLY_NO_MUTATION\",\"setup_contract\":{\"src/XF/AddOn/AbstractSetup.php\":{\"exists\":true,\"hits\":[{\"line\":25,\"text\":\"abstract public function install(array $stepParams = []);\"},{\"line\":39,\"text\":\"abstract public function uninstall(array $stepParams = []);\"}],\"sha256\":\"6bdd3fe834e15b963a52c9357f54262f2d12f3c7c3686fc31333b549cddf2d88\"},\"src/XF/AddOn/StepRunnerInstallTrait.php\":{\"exists\":true,\"hits\":[{\"line\":17,\"text\":\"public function install(array $stepParams = [])\"},{\"line\":53,\"text\":\"private function installStepRunner($step, array $stepParams)\"}],\"sha256\":\"1f441b8a3101b97009ae04e62c04e79062a89f1e01a08ae9e07c5e629c76d5f2\"},\"src/XF/AddOn/StepRunnerUninstallTrait.php\":{\"exists\":true,\"hits\":[{\"line\":17,\"text\":\"public function uninstall(array $stepParams = [])\"},{\"line\":52,\"text\":\"private function uninstallStepRunner($step, array $stepParams)\"}],\"sha256\":\"e58a9ab9c30e3cf3c41a0be392e8c5ac37f744578f7b91f76d663139649c49a9\"},\"src/XF/Db/Schema/Column.php\":{\"exists\":true,\"hits\":[{\"line\":254,\"text\":\"public function unsigned($unsigned = null)\"},{\"line\":276,\"text\":\"public function setDefault($default)\"},{\"line\":283,\"text\":\"public function autoIncrement($autoIncrement = null, $setAsPrimary = true)\"}],\"sha256\":\"d6749157309835460b98e3e09d33533409850a1fb808417f28e89a97a3775730\"},\"src/XF/Db/Schema/Create.php\":{\"exists\":true,\"hits\":[],\"sha256\":\"4b2f0bf31fc3f133b10577c24024f2883c80296478ee4adf5c91930c6b896ddd\"}},\"stage039\":{\"state\":\"ABSENT\"},\"xml_exemplars\":{\"code_event_listeners.xml\":[],\"content_type_fields.xml\":[],\"option_groups.xml\":[],\"options.xml\":[],\"permission_interface_groups.xml\":[],\"permissions.xml\":[],\"phrases.xml\":[{\"addon\":\"src/addons/Newfi/Portal\",\"child_count\":1,\"first\":[{\"attrs\":{\"title\":\"nav.newfiPortal\",\"version_id\":\"1000010\",\"version_string\":\"1.0.0 Alpha 1\"},\"tag\":\"phrase\",\"text_len\":5,\"text_sha256\":\"661a914783b315dcc04a526122b417b6cfe9b77f351a51c9cab31baf158bdcba\"}],\"root\":\"phrases\",\"root_attrs\":{}}],\"routes.xml\":[{\"addon\":\"src/addons/Newfi/Dogs\",\"child_count\":1,\"first\":[{\"attrs\":{\"controller\":\"Newfi\\\\Dogs:Dogs\",\"route_prefix\":\"dogs\",\"route_type\":\"public\"},\"tag\":\"route\"}],\"root\":\"routes\",\"root_attrs\":{}},{\"addon\":\"src/addons/Newfi/Events\",\"child_count\":1,\"first\":[{\"attrs\":{\"controller\":\"Newfi\\\\Events:Events\",\"route_prefix\":\"events\",\"route_type\":\"public\"},\"tag\":\"route\"}],\"root\":\"routes\",\"root_attrs\":{}}],\"template_modifications.xml\":[],\"templates.xml\":[{\"addon\":\"src/addons/Newfi/Dogs\",\"child_count\":1,\"first\":[{\"attrs\":{\"title\":\"newfi_dogs\",\"type\":\"public\",\"version_id\":\"1000010\",\"version_string\":\"1.0.0 Alpha 1\"},\"tag\":\"template\",\"text_len\":670,\"text_sha256\":\"02296119da34471dde7d4ef03b599fd0338d4fa5853d43e55bb163bb9921a229\"}],\"root\":\"templates\",\"root_attrs\":{}},{\"addon\":\"src/addons/Newfi/Events\",\"child_count\":1,\"first\":[{\"attrs\":{\"title\":\"newfi_events\",\"type\":\"public\",\"version_id\":\"1000010\",\"version_string\":\"1.0.0 Alpha 1\"},\"tag\":\"template\",\"text_len\":590,\"text_sha256\":\"5c6d907b5b263765bf4d1d34f025aaf26cf6a268675028224826ca2882a947e9\"}],\"root\":\"templates\",\"root_attrs\":{}}]}}\nSUPPORT041_RESIDUAL_SUM=0\nSUPPORT041_DECISION=HOLD_POSTROLLBACK_OR_RUNTIME_DRIFT\nSUPPORT041_MUTATION_SCOPE=NONE_READ_ONLY\nHOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\nSUPPORT041_END\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 54c3cc00..5e7a4494 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,15 +1,15 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=NEWFI-260909-NEWFDOM-PORTAL-ROOT-RCA76 +COMMAND_ID=SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041 STATUS=OK RC=0 HOST=pve01 MODE=read-only -COMPONENT=newfi-portal-root-identity-rca +COMPONENT=gram-support-vm211-staging-forensic REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 -COMMAND_SHA256=963b4db7e6b84abb8fc07710c7836c5a6bc70779bbced81b826e8e66ef49011a +COMMAND_SHA256=d31b61b5d80966157f8fd0416a1b84da417446fd716707606be2c40794e947e8 DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true CHANGE_DECLARED=false @@ -24,48 +24,22 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=a7b52eda4c8e9e0bc1a204d06b42c56fffbdf0e460cdfad5593a5325c22fae99 -SANITIZED_OUTPUT_SHA256=a7b52eda4c8e9e0bc1a204d06b42c56fffbdf0e460cdfad5593a5325c22fae99 +RAW_EVIDENCE_SHA256=ca9e03a257db6318511bb3fc6ceedcb81edc9ac133b13de2e30f1d49e5091c20 +SANITIZED_OUTPUT_SHA256=ca9e03a257db6318511bb3fc6ceedcb81edc9ac133b13de2e30f1d49e5091c20 OUTPUT_BEGIN -NEWFI76_BEGIN -COMMAND_ID=NEWFI-260909-NEWFDOM-PORTAL-ROOT-RCA76 +SUPPORT041_BEGIN ERROR_REGISTER_CHECK=OK REFERENCE_CHECK=OK AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED RUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d -NEWFI76_GIT={"branch":"implementation/newfi-closed-mvp-20260906","clean":true,"exact":true,"head":"a1efc08a15ba91971c2297d886b25ca2097e6935","remote_head":"a1efc08a15ba91971c2297d886b25ca2097e6935"} -NEWFI76_GIT_BLOB={"bytes":363,"commit":"a1efc08a15ba91971c2297d886b25ca2097e6935","label":"Portal200","rel":"Pub/Controller/Portal.php","sha256":"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d","state":"OK"} -NEWFI76_GIT_BLOB={"bytes":5213,"commit":"a1efc08a15ba91971c2297d886b25ca2097e6935","label":"Portal200","rel":"Service/PortalData.php","sha256":"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d","state":"OK"} -NEWFI76_GIT_BLOB={"bytes":11021,"commit":"a1efc08a15ba91971c2297d886b25ca2097e6935","label":"Portal200","rel":"_data/templates.xml","sha256":"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28","state":"OK"} -NEWFI76_GIT_BLOB={"bytes":247,"commit":"06bab5acd124e768f70305b3d7eca2f595871890","label":"STYLE199B","rel":"Pub/Controller/Portal.php","sha256":"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3","state":"OK"} -NEWFI76_GIT_BLOB={"commit":"06bab5acd124e768f70305b3d7eca2f595871890","label":"STYLE199B","rc":128,"rel":"Service/PortalData.php","state":"ABSENT"} -NEWFI76_GIT_BLOB={"bytes":1461,"commit":"06bab5acd124e768f70305b3d7eca2f595871890","label":"STYLE199B","rel":"_data/templates.xml","sha256":"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf","state":"OK"} -NEWFI76_GIT_BLOB={"bytes":247,"commit":"4ade504e649ce35d05322a6b69d758a1ef1803b5","label":"BRAND198","rel":"Pub/Controller/Portal.php","sha256":"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3","state":"OK"} -NEWFI76_GIT_BLOB={"commit":"4ade504e649ce35d05322a6b69d758a1ef1803b5","label":"BRAND198","rc":128,"rel":"Service/PortalData.php","state":"ABSENT"} -NEWFI76_GIT_BLOB={"bytes":1461,"commit":"4ade504e649ce35d05322a6b69d758a1ef1803b5","label":"BRAND198","rel":"_data/templates.xml","sha256":"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf","state":"OK"} -NEWFI76_GIT_BLOB={"bytes":247,"commit":"9f7e0ca285d8ddfdd97e4539daaa81695272b705","label":"PROD195","rel":"Pub/Controller/Portal.php","sha256":"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3","state":"OK"} -NEWFI76_GIT_BLOB={"commit":"9f7e0ca285d8ddfdd97e4539daaa81695272b705","label":"PROD195","rc":128,"rel":"Service/PortalData.php","state":"ABSENT"} -NEWFI76_GIT_BLOB={"bytes":1461,"commit":"9f7e0ca285d8ddfdd97e4539daaa81695272b705","label":"PROD195","rel":"_data/templates.xml","sha256":"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf","state":"OK"} -NEWFI76_GIT_BLOB={"bytes":247,"commit":"ca07bfc20953585887f7cc2f1d443cf8313912c8","label":"PortalNav","rel":"Pub/Controller/Portal.php","sha256":"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3","state":"OK"} -NEWFI76_GIT_BLOB={"commit":"ca07bfc20953585887f7cc2f1d443cf8313912c8","label":"PortalNav","rc":128,"rel":"Service/PortalData.php","state":"ABSENT"} -NEWFI76_GIT_BLOB={"bytes":1461,"commit":"ca07bfc20953585887f7cc2f1d443cf8313912c8","label":"PortalNav","rel":"_data/templates.xml","sha256":"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf","state":"OK"} -NEWFI76_GIT_BLOB={"bytes":247,"commit":"82dd2066df377ba9d904f68f90898e009413eec9","label":"PortalInitial","rel":"Pub/Controller/Portal.php","sha256":"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3","state":"OK"} -NEWFI76_GIT_BLOB={"commit":"82dd2066df377ba9d904f68f90898e009413eec9","label":"PortalInitial","rc":128,"rel":"Service/PortalData.php","state":"ABSENT"} -NEWFI76_GIT_BLOB={"bytes":1362,"commit":"82dd2066df377ba9d904f68f90898e009413eec9","label":"PortalInitial","rel":"_data/templates.xml","sha256":"f9cb47d48418a9eae3e5fc8f9dd2830e0499f62f1b82d574362186e7f78a7eb2","state":"OK"} -NEWFI76_CLUSTER={"selected":{"210":{"name":"newfi-prod","node":"pve01","status":"running","type":"qemu","vmid":210},"211":{"name":"newfi-staging","node":"pve03","status":"running","type":"qemu","vmid":211}},"state":"OK"} -NEWFI76_PRODUCTION_QGA={"state":"COMPLETE"} -NEWFI76_PRODUCTION_ROOT={"active_candidate":false,"cmd_php":{"error":"FileNotFoundError","state":"MISSING"},"config_php":{"error":"FileNotFoundError","state":"MISSING"},"git_matches":[],"matches_current":false,"portal_files":{"Pub/Controller/Portal.php":{"error":"FileNotFoundError","state":"MISSING"},"Service/PortalData.php":{"error":"FileNotFoundError","state":"MISSING"},"_data/templates.xml":{"error":"FileNotFoundError","state":"MISSING"}},"rebuild_help":{"state":"NO_CMD"},"root":"/var/www/forums/newfi","templates_xml_parse":"NOT_AVAILABLE","xf_php":{"error":"FileNotFoundError","state":"MISSING"}} -NEWFI76_PRODUCTION_ROOT={"active_candidate":true,"cmd_php":{"bytes":336,"mode":"0644","sha256":"bfb376075435890c11a1e8bc88357d51c60df4b2ac69efda52357ce707ddf52b","state":"OK"},"config_php":{"bytes":310,"mode":"0640","state":"OK"},"git_matches":[{"commit":"a1efc08a15ba91971c2297d886b25ca2097e6935","label":"Portal200"}],"matches_current":true,"portal_files":{"Pub/Controller/Portal.php":{"bytes":363,"mode":"0644","sha256":"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d","state":"OK"},"Service/PortalData.php":{"bytes":5213,"mode":"0644","sha256":"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d","state":"OK"},"_data/templates.xml":{"bytes":11021,"mode":"0644","sha256":"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28","state":"OK"}},"rebuild_help":{"has_command":true,"has_force":true,"has_id_argument":true,"rc":0,"sample":"Description: Rebuilds the specified add-on data. Usage: xf:addon-rebuild [options] [--] xf-addon:rebuild Arguments: id Add-On ID Options: -f, --force Skip verifying that the add-on is rebuildable -h, --help Display help for the given command. When no command is given display help for the list command -q, --quiet Do not output any message -V, --version Display this application version --ansi|--no-ansi Force (or disable --no-ansi) ANSI output -n, --no-interaction Do not ask any interactive question -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output an","state":"OK"},"root":"/var/www/forums/newfi/public","templates_xml_parse":"OK","xf_php":{"bytes":35406,"mode":"0644","sha256":"d0c10d91d743e0a541d9a1b201080491dae0a8b1757866f113ef707b83403219","state":"OK"}} -NEWFI76_PRODUCTION_ACTIVE_COUNT=1 -NEWFI76_STAGING_QGA={"state":"COMPLETE"} -NEWFI76_STAGING_ROOT={"active_candidate":false,"cmd_php":{"error":"FileNotFoundError","state":"MISSING"},"config_php":{"error":"FileNotFoundError","state":"MISSING"},"git_matches":[],"matches_current":false,"portal_files":{"Pub/Controller/Portal.php":{"error":"FileNotFoundError","state":"MISSING"},"Service/PortalData.php":{"error":"FileNotFoundError","state":"MISSING"},"_data/templates.xml":{"error":"FileNotFoundError","state":"MISSING"}},"rebuild_help":{"state":"NO_CMD"},"root":"/var/www/forums/newfi","templates_xml_parse":"NOT_AVAILABLE","xf_php":{"error":"FileNotFoundError","state":"MISSING"}} -NEWFI76_STAGING_ROOT={"active_candidate":true,"cmd_php":{"bytes":336,"mode":"0644","sha256":"bfb376075435890c11a1e8bc88357d51c60df4b2ac69efda52357ce707ddf52b","state":"OK"},"config_php":{"bytes":310,"mode":"0640","state":"OK"},"git_matches":[{"commit":"a1efc08a15ba91971c2297d886b25ca2097e6935","label":"Portal200"}],"matches_current":true,"portal_files":{"Pub/Controller/Portal.php":{"bytes":363,"mode":"0644","sha256":"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d","state":"OK"},"Service/PortalData.php":{"bytes":5213,"mode":"0644","sha256":"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d","state":"OK"},"_data/templates.xml":{"bytes":11021,"mode":"0644","sha256":"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28","state":"OK"}},"rebuild_help":{"has_command":true,"has_force":true,"has_id_argument":true,"rc":0,"sample":"Description: Rebuilds the specified add-on data. Usage: xf:addon-rebuild [options] [--] xf-addon:rebuild Arguments: id Add-On ID Options: -f, --force Skip verifying that the add-on is rebuildable -h, --help Display help for the given command. When no command is given display help for the list command -q, --quiet Do not output any message -V, --version Display this application version --ansi|--no-ansi Force (or disable --no-ansi) ANSI output -n, --no-interaction Do not ask any interactive question -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output an","state":"OK"},"root":"/var/www/forums/newfi/public","templates_xml_parse":"OK","xf_php":{"bytes":35406,"mode":"0644","sha256":"d0c10d91d743e0a541d9a1b201080491dae0a8b1757866f113ef707b83403219","state":"OK"}} -NEWFI76_STAGING_ACTIVE_COUNT=1 -NEWFI76_GAPS=[] -NEWFI76_MUTATION_SCOPE=NONE_READ_ONLY -NEWFI76_DECISION=PORTAL_ROOT_IDENTITY_PROVEN -NEWFI76_COLLECTION_COMPLETE=true -NEWFI76_END +SUPPORT041_SOURCE_POSTROLLBACK={"source_exists":false,"tmp_exists":false} +SUPPORT041_QGA_STATE={"exitcode":0,"state":"COMPLETE"} +SUPPORT041_VM211={"addon_path":{"state":"ABSENT"},"cli":{"commands":["xf:addon-disable","xf:addon-enable","xf:addon-install","xf:addon-list","xf:addon-rebuild","xf:addon-uninstall","xf:addon-upgrade"],"help":{"xf:addon-disable":{"mentions_no_interaction":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"aad85d19723401a92a03a7824069597c7729f537fbba1d9037e5c7ea46e2d057"},"xf:addon-enable":{"mentions_no_interaction":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"d55071cb0200757dba0a2a8f2c4427f8cf8f525103a9584c61a20d79aea1ca44"},"xf:addon-install":{"mentions_no_interaction":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"9dac6d249cac5938d1d908affe66cc652d0deaa1b24d9233f7bdebec96151104"},"xf:addon-list":{"mentions_no_interaction":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"7934a7143d5b6907a69f477063324e9c53e99f7404fd83af0887a828928e6dbe"},"xf:addon-rebuild":{"mentions_no_interaction":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"36c4af0714bfa9f732f46c004f0bd3ea109340b8b737ba0217dbce50330669c9"},"xf:addon-uninstall":{"mentions_no_interaction":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"c8f2162162c47f832d6c25822395cd2db42d260774e00ebc3bf765532f12ac97"},"xf:addon-upgrade":{"mentions_no_interaction":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"834372348cafa33db19e7545b6ae3f9f47d822c8ef3c5cadeb97d0bbbd6a4e40"}},"rc":0},"collection":"COMPLETE","command_id":"SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041","datatype_contract":{"AbstractDataType.php":{"exists":true,"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","snippets":[[{"line":30,"text":"\tabstract public function getContainerTag();"},{"line":31,"text":""},{"line":32,"text":"\tabstract public function getChildTag();"},{"line":33,"text":""},{"line":34,"text":"\tabstract public function exportAddOnData($addOnId, \\DOMElement $container);"},{"line":35,"text":""},{"line":36,"text":"\tabstract public function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0);"},{"line":37,"text":""},{"line":38,"text":"\tabstract public function deleteOrphanedAddOnData($addOnId, \\SimpleXMLElement $container);"},{"line":39,"text":""},{"line":40,"text":"\tpublic const USE_AUTO_CDATA = false;"},{"line":41,"text":""},{"line":42,"text":"\tpublic function __construct(Manager $em)"},{"line":43,"text":"\t{"}],[{"line":32,"text":"\tabstract public function getChildTag();"},{"line":33,"text":""},{"line":34,"text":"\tabstract public function exportAddOnData($addOnId, \\DOMElement $container);"},{"line":35,"text":""},{"line":36,"text":"\tabstract public function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0);"},{"line":37,"text":""},{"line":38,"text":"\tabstract public function deleteOrphanedAddOnData($addOnId, \\SimpleXMLElement $container);"},{"line":39,"text":""},{"line":40,"text":"\tpublic const USE_AUTO_CDATA = false;"},{"line":41,"text":""},{"line":42,"text":"\tpublic function __construct(Manager $em)"},{"line":43,"text":"\t{"},{"line":44,"text":"\t\t$this->em = $em;"},{"line":45,"text":"\t\t$this->structure = $em->getEntityStructure($this->getShortName());"}],[{"line":34,"text":"\tabstract public function exportAddOnData($addOnId, \\DOMElement $container);"},{"line":35,"text":""},{"line":36,"text":"\tabstract public function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0);"},{"line":37,"text":""},{"line":38,"text":"\tabstract public function deleteOrphanedAddOnData($addOnId, \\SimpleXMLElement $container);"},{"line":39,"text":""},{"line":40,"text":"\tpublic const USE_AUTO_CDATA = false;"},{"line":41,"text":""},{"line":42,"text":"\tpublic function __construct(Manager $em)"},{"line":43,"text":"\t{"},{"line":44,"text":"\t\t$this->em = $em;"},{"line":45,"text":"\t\t$this->structure = $em->getEntityStructure($this->getShortName());"},{"line":46,"text":"\t}"},{"line":47,"text":""}],[{"line":36,"text":"\tabstract public function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0);"},{"line":37,"text":""},{"line":38,"text":"\tabstract public function deleteOrphanedAddOnData($addOnId, \\SimpleXMLElement $container);"},{"line":39,"text":""},{"line":40,"text":"\tpublic const USE_AUTO_CDATA = false;"},{"line":41,"text":""},{"line":42,"text":"\tpublic function __construct(Manager $em)"},{"line":43,"text":"\t{"},{"line":44,"text":"\t\t$this->em = $em;"},{"line":45,"text":"\t\t$this->structure = $em->getEntityStructure($this->getShortName());"},{"line":46,"text":"\t}"},{"line":47,"text":""},{"line":48,"text":"\tpublic function getTypeFileName()"},{"line":49,"text":"\t{"}],[{"line":174,"text":"\tprotected function getMappedAttributes()"},{"line":175,"text":"\t{"},{"line":176,"text":"\t\treturn [];"},{"line":177,"text":"\t}"},{"line":178,"text":""},{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"},{"line":183,"text":""},{"line":184,"text":"\tprotected function exportArrayToAttributes(\\DOMElement $tag, $attr, Entity $entity)"},{"line":185,"text":"\t{"},{"line":186,"text":"\t\tforeach ($entity->$attr AS $key => $value)"},{"line":187,"text":"\t\t{"}],[{"line":184,"text":"\tprotected function exportArrayToAttributes(\\DOMElement $tag, $attr, Entity $entity)"},{"line":185,"text":"\t{"},{"line":186,"text":"\t\tforeach ($entity->$attr AS $key => $value)"},{"line":187,"text":"\t\t{"},{"line":188,"text":"\t\t\tif ($value === '')"},{"line":189,"text":"\t\t\t{"},{"line":190,"text":"\t\t\t\tcontinue;"},{"line":191,"text":"\t\t\t}"},{"line":192,"text":"\t\t\tif (is_bool($value))"},{"line":193,"text":"\t\t\t{"},{"line":194,"text":"\t\t\t\t$value = $value ? 1 : 0;"},{"line":195,"text":"\t\t\t}"},{"line":196,"text":"\t\t\t$tag->setAttribute($attr . '_' . $key, $value);"},{"line":197,"text":"\t\t}"}],[{"line":200,"text":"\tprotected function exportCdataToNewNode(\\DOMElement $tag, $attr, Entity $entity)"},{"line":201,"text":"\t{"},{"line":202,"text":"\t\t$newNode = $tag->ownerDocument->createElement($attr);"},{"line":203,"text":"\t\t$this->exportCdata($newNode, $entity->{$attr});"},{"line":204,"text":"\t\t$tag->appendChild($newNode);"},{"line":205,"text":"\t}"},{"line":206,"text":""},{"line":207,"text":"\tprotected function exportMappedAttributes(\\DOMElement $tag, Entity $entity)"},{"line":208,"text":"\t{"},{"line":209,"text":"\t\tforeach ($this->getMappedAttributes() AS $attr)"},{"line":210,"text":"\t\t{"},{"line":211,"text":"\t\t\t$value = $entity->getValue($attr);"},{"line":212,"text":""},{"line":213,"text":"\t\t\tif ($value !== '')"}],[{"line":207,"text":"\tprotected function exportMappedAttributes(\\DOMElement $tag, Entity $entity)"},{"line":208,"text":"\t{"},{"line":209,"text":"\t\tforeach ($this->getMappedAttributes() AS $attr)"},{"line":210,"text":"\t\t{"},{"line":211,"text":"\t\t\t$value = $entity->getValue($attr);"},{"line":212,"text":""},{"line":213,"text":"\t\t\tif ($value !== '')"},{"line":214,"text":"\t\t\t{"},{"line":215,"text":"\t\t\t\tif (is_bool($value))"},{"line":216,"text":"\t\t\t\t{"},{"line":217,"text":"\t\t\t\t\t$value = $value ? 1 : 0;"},{"line":218,"text":"\t\t\t\t}"},{"line":219,"text":""},{"line":220,"text":"\t\t\t\t// CURRENTLY NOT USED DUE TO BC ISSUES WITH 2.0.x < 2.0.4"}]]},"CodeEventListener.php":{"exists":true,"sha256":"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab","snippets":[[{"line":16,"text":"\tpublic function getContainerTag()"},{"line":17,"text":"\t{"},{"line":18,"text":"\t\treturn 'code_event_listeners';"},{"line":19,"text":"\t}"},{"line":20,"text":""},{"line":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'listener';"},{"line":24,"text":"\t}"},{"line":25,"text":""},{"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":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'listener';"},{"line":24,"text":"\t}"},{"line":25,"text":""},{"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":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":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":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}"},{"line":139,"text":""},{"line":140,"text":"\tprotected function getAddOnUniqueKeyFromXml(\\SimpleXMLElement $entry)"}]]},"ContentTypeField.php":{"exists":true,"sha256":"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594","snippets":[[{"line":16,"text":"\tpublic function getContainerTag()"},{"line":17,"text":"\t{"},{"line":18,"text":"\t\treturn 'content_type_fields';"},{"line":19,"text":"\t}"},{"line":20,"text":""},{"line":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'field';"},{"line":24,"text":"\t}"},{"line":25,"text":""},{"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":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'field';"},{"line":24,"text":"\t}"},{"line":25,"text":""},{"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":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":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":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}"},{"line":139,"text":"}"}]]},"Option.php":{"exists":true,"sha256":"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60","snippets":[[{"line":17,"text":"\tpublic function getContainerTag()"},{"line":18,"text":"\t{"},{"line":19,"text":"\t\treturn 'options';"},{"line":20,"text":"\t}"},{"line":21,"text":""},{"line":22,"text":"\tpublic function getChildTag()"},{"line":23,"text":"\t{"},{"line":24,"text":"\t\treturn 'option';"},{"line":25,"text":"\t}"},{"line":26,"text":""},{"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":22,"text":"\tpublic function getChildTag()"},{"line":23,"text":"\t{"},{"line":24,"text":"\t\treturn 'option';"},{"line":25,"text":"\t}"},{"line":26,"text":""},{"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":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":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":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}"},{"line":139,"text":"}"}]]},"OptionGroup.php":{"exists":true,"sha256":"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da","snippets":[[{"line":14,"text":"\tpublic function getContainerTag()"},{"line":15,"text":"\t{"},{"line":16,"text":"\t\treturn 'option_groups';"},{"line":17,"text":"\t}"},{"line":18,"text":""},{"line":19,"text":"\tpublic function getChildTag()"},{"line":20,"text":"\t{"},{"line":21,"text":"\t\treturn 'group';"},{"line":22,"text":"\t}"},{"line":23,"text":""},{"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":19,"text":"\tpublic function getChildTag()"},{"line":20,"text":"\t{"},{"line":21,"text":"\t\treturn 'group';"},{"line":22,"text":"\t}"},{"line":23,"text":""},{"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":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":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":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}"},{"line":97,"text":"}"}]]},"Permission.php":{"exists":true,"sha256":"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477","snippets":[[{"line":18,"text":"\tpublic function getContainerTag()"},{"line":19,"text":"\t{"},{"line":20,"text":"\t\treturn 'permissions';"},{"line":21,"text":"\t}"},{"line":22,"text":""},{"line":23,"text":"\tpublic function getChildTag()"},{"line":24,"text":"\t{"},{"line":25,"text":"\t\treturn 'permission';"},{"line":26,"text":"\t}"},{"line":27,"text":""},{"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":23,"text":"\tpublic function getChildTag()"},{"line":24,"text":"\t{"},{"line":25,"text":"\t\treturn 'permission';"},{"line":26,"text":"\t}"},{"line":27,"text":""},{"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":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":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":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}"},{"line":160,"text":"}"}]]},"PermissionInterfaceGroup.php":{"exists":true,"sha256":"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6","snippets":[[{"line":15,"text":"\tpublic function getContainerTag()"},{"line":16,"text":"\t{"},{"line":17,"text":"\t\treturn 'permission_interface_groups';"},{"line":18,"text":"\t}"},{"line":19,"text":""},{"line":20,"text":"\tpublic function getChildTag()"},{"line":21,"text":"\t{"},{"line":22,"text":"\t\treturn 'interface_group';"},{"line":23,"text":"\t}"},{"line":24,"text":""},{"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":20,"text":"\tpublic function getChildTag()"},{"line":21,"text":"\t{"},{"line":22,"text":"\t\treturn 'interface_group';"},{"line":23,"text":"\t}"},{"line":24,"text":""},{"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":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":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":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}"},{"line":103,"text":"}"}]]},"Phrase.php":{"exists":true,"sha256":"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266","snippets":[[{"line":16,"text":"\tpublic function getContainerTag()"},{"line":17,"text":"\t{"},{"line":18,"text":"\t\treturn 'phrases';"},{"line":19,"text":"\t}"},{"line":20,"text":""},{"line":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'phrase';"},{"line":24,"text":"\t}"},{"line":25,"text":""},{"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":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'phrase';"},{"line":24,"text":"\t}"},{"line":25,"text":""},{"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":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":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":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}"},{"line":129,"text":"}"}]]},"Route.php":{"exists":true,"sha256":"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb","snippets":[[{"line":16,"text":"\tpublic function getContainerTag()"},{"line":17,"text":"\t{"},{"line":18,"text":"\t\treturn 'routes';"},{"line":19,"text":"\t}"},{"line":20,"text":""},{"line":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'route';"},{"line":24,"text":"\t}"},{"line":25,"text":""},{"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":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'route';"},{"line":24,"text":"\t}"},{"line":25,"text":""},{"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":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":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":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}"}]]},"Template.php":{"exists":true,"sha256":"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a","snippets":[[{"line":15,"text":"\tpublic function getContainerTag()"},{"line":16,"text":"\t{"},{"line":17,"text":"\t\treturn 'templates';"},{"line":18,"text":"\t}"},{"line":19,"text":""},{"line":20,"text":"\tpublic function getChildTag()"},{"line":21,"text":"\t{"},{"line":22,"text":"\t\treturn 'template';"},{"line":23,"text":"\t}"},{"line":24,"text":""},{"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":20,"text":"\tpublic function getChildTag()"},{"line":21,"text":"\t{"},{"line":22,"text":"\t\treturn 'template';"},{"line":23,"text":"\t}"},{"line":24,"text":""},{"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":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":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":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}"},{"line":165,"text":"}"}]]},"TemplateModification.php":{"exists":true,"sha256":"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a","snippets":[[{"line":18,"text":"\tpublic function getContainerTag()"},{"line":19,"text":"\t{"},{"line":20,"text":"\t\treturn 'template_modifications';"},{"line":21,"text":"\t}"},{"line":22,"text":""},{"line":23,"text":"\tpublic function getChildTag()"},{"line":24,"text":"\t{"},{"line":25,"text":"\t\treturn 'modification';"},{"line":26,"text":"\t}"},{"line":27,"text":""},{"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":23,"text":"\tpublic function getChildTag()"},{"line":24,"text":"\t{"},{"line":25,"text":"\t\treturn 'modification';"},{"line":26,"text":"\t}"},{"line":27,"text":""},{"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":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":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":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}"},{"line":152,"text":""},{"line":153,"text":"\tprotected function getMaintainedAttributes()"}]]}},"db":null,"db_probe":{"rc":0,"stderr_sha256":""},"error_probe":{"rc":0,"stderr_sha256":""},"errors_after_43":null,"guest":"newfi-staging","identity_ok":true,"root":{"state":"DIR"},"runtime":{"http_code":"503","http_rc":0,"services":{"mariadb":{"rc":0,"state":"active"},"nginx":{"rc":0,"state":"active"},"php8.3-fpm":{"rc":0,"state":"active"}}},"scope":"READ_ONLY_NO_MUTATION","setup_contract":{"src/XF/AddOn/AbstractSetup.php":{"exists":true,"hits":[{"line":25,"text":"abstract public function install(array $stepParams = []);"},{"line":39,"text":"abstract public function uninstall(array $stepParams = []);"}],"sha256":"6bdd3fe834e15b963a52c9357f54262f2d12f3c7c3686fc31333b549cddf2d88"},"src/XF/AddOn/StepRunnerInstallTrait.php":{"exists":true,"hits":[{"line":17,"text":"public function install(array $stepParams = [])"},{"line":53,"text":"private function installStepRunner($step, array $stepParams)"}],"sha256":"1f441b8a3101b97009ae04e62c04e79062a89f1e01a08ae9e07c5e629c76d5f2"},"src/XF/AddOn/StepRunnerUninstallTrait.php":{"exists":true,"hits":[{"line":17,"text":"public function uninstall(array $stepParams = [])"},{"line":52,"text":"private function uninstallStepRunner($step, array $stepParams)"}],"sha256":"e58a9ab9c30e3cf3c41a0be392e8c5ac37f744578f7b91f76d663139649c49a9"},"src/XF/Db/Schema/Column.php":{"exists":true,"hits":[{"line":254,"text":"public function unsigned($unsigned = null)"},{"line":276,"text":"public function setDefault($default)"},{"line":283,"text":"public function autoIncrement($autoIncrement = null, $setAsPrimary = true)"}],"sha256":"d6749157309835460b98e3e09d33533409850a1fb808417f28e89a97a3775730"},"src/XF/Db/Schema/Create.php":{"exists":true,"hits":[],"sha256":"4b2f0bf31fc3f133b10577c24024f2883c80296478ee4adf5c91930c6b896ddd"}},"stage039":{"state":"ABSENT"},"xml_exemplars":{"code_event_listeners.xml":[],"content_type_fields.xml":[],"option_groups.xml":[],"options.xml":[],"permission_interface_groups.xml":[],"permissions.xml":[],"phrases.xml":[{"addon":"src/addons/Newfi/Portal","child_count":1,"first":[{"attrs":{"title":"nav.newfiPortal","version_id":"1000010","version_string":"1.0.0 Alpha 1"},"tag":"phrase","text_len":5,"text_sha256":"661a914783b315dcc04a526122b417b6cfe9b77f351a51c9cab31baf158bdcba"}],"root":"phrases","root_attrs":{}}],"routes.xml":[{"addon":"src/addons/Newfi/Dogs","child_count":1,"first":[{"attrs":{"controller":"Newfi\\Dogs:Dogs","route_prefix":"dogs","route_type":"public"},"tag":"route"}],"root":"routes","root_attrs":{}},{"addon":"src/addons/Newfi/Events","child_count":1,"first":[{"attrs":{"controller":"Newfi\\Events:Events","route_prefix":"events","route_type":"public"},"tag":"route"}],"root":"routes","root_attrs":{}}],"template_modifications.xml":[],"templates.xml":[{"addon":"src/addons/Newfi/Dogs","child_count":1,"first":[{"attrs":{"title":"newfi_dogs","type":"public","version_id":"1000010","version_string":"1.0.0 Alpha 1"},"tag":"template","text_len":670,"text_sha256":"02296119da34471dde7d4ef03b599fd0338d4fa5853d43e55bb163bb9921a229"}],"root":"templates","root_attrs":{}},{"addon":"src/addons/Newfi/Events","child_count":1,"first":[{"attrs":{"title":"newfi_events","type":"public","version_id":"1000010","version_string":"1.0.0 Alpha 1"},"tag":"template","text_len":590,"text_sha256":"5c6d907b5b263765bf4d1d34f025aaf26cf6a268675028224826ca2882a947e9"}],"root":"templates","root_attrs":{}}]}} +SUPPORT041_RESIDUAL_SUM=0 +SUPPORT041_DECISION=HOLD_POSTROLLBACK_OR_RUNTIME_DRIFT +SUPPORT041_MUTATION_SCOPE=NONE_READ_ONLY +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"SUPPORT-260909-GRAM-XF-STAGING-FORENSIC-041","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} +SUPPORT041_END OUTPUT_END CHAT_OUTPUT_END