{ "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" }