1
0
Files
homelab-public-context/runtime/history/NEWFI-260919-NEWFDOM-EVENTS208-AUDIT122R1.txt
T
2026-09-18 23:47:37 +00:00

43 lines
76 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
CHAT_OUTPUT_BEGIN
COMMAND_ID=NEWFI-260919-NEWFDOM-EVENTS208-AUDIT122R1
STATUS=OK
RC=0
HOST=pve01
MODE=read-only
COMPONENT=newfi-newfdom-events208-full-ui-foundation-audit-readonly-r1-php-linted
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
COMMAND_SHA256=0c8ad785f454cccfac01e122c4b6dd81990c193c83ad7d8708f218a016ff4ed6
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=c800ad649ac6a001b861be0203acfcfb6558111d2c948e8d49459be102da8282
SANITIZED_OUTPUT_SHA256=c800ad649ac6a001b861be0203acfcfb6558111d2c948e8d49459be102da8282
OUTPUT_BEGIN
NEWFI122R1_BEGIN
COMMAND_ID=NEWFI-260919-NEWFDOM-EVENTS208-AUDIT122R1
NEWFI122R1_GIT={"branch":"implementation/newfi-closed-mvp-20260906","clean":true,"head":"a13361297ba22f9745bb64aac4ed90849242955a","remotes":[{"head":"a13361297ba22f9745bb64aac4ed90849242955a","remote":"origin"}]}
NEWFI122R1_WORKTREE_FILES=[{"bytes":1131,"rel":"Entity/Event.php","sha256":"c6b81864e2029f0094864573d31fdfc4280140b900da411f14282061b84ba891"},{"bytes":777,"rel":"Entity/EventChange.php","sha256":"c9743f22eedbd43a2a6231b34301d43d42fefbca9ce4898ee0d2a59eb455e602"},{"bytes":775,"rel":"Entity/EventSource.php","sha256":"07541d087caf9668a2a2d80bb8cd81e9471095ce36260f1cc12ec81eb0460187"},{"bytes":494,"rel":"Pub/Controller/Events.php","sha256":"9dbbc3588b4d308b60fe1ab52daad7d88e0c0461820f6244f64a074fd686a57b"},{"bytes":79,"rel":"Pub/View/Events.php","sha256":"dabbfabaa95bfb8105cea2123827f3433a29f618347dd8f1551124ccaea2a0b2"},{"bytes":2129,"rel":"Setup.php","sha256":"3deab1d6e74661131a19e50ac151a9442b9612916e65963b675247f6d3280a5b"},{"bytes":144,"rel":"_data/routes.xml","sha256":"7fefbb03c4c8b0bcd3e1dc1cd8f3f0e44460aa3b1fc09f5e63ee394e56c61309"},{"bytes":830,"rel":"_data/templates.xml","sha256":"bb1e0ff32036a9606b60b76e63c4a0e40e05cd3dc4f64a5fcb8bf43f47e2367c"},{"bytes":397,"rel":"addon.json","sha256":"cc60d5f949db176004f603e42cfb160aefd7ed4d8d7fff30101f4ebb2c502dc3"}]
NEWFI122R1_STAGING={"files":[{"bytes":1131,"matches":[{"line":1,"text":"<?php"},{"line":2,"text":""},{"line":3,"text":"namespace Newfi\\Events\\Entity;"},{"line":4,"text":""},{"line":5,"text":"use XF\\Mvc\\Entity\\Entity;"},{"line":6,"text":"use XF\\Mvc\\Entity\\Structure;"},{"line":7,"text":""},{"line":8,"text":"class Event extends Entity"},{"line":9,"text":"{"},{"line":10,"text":" public static function getStructure(Structure $structure)"},{"line":11,"text":" {"},{"line":12,"text":" $structure->table = 'xf_newfi_event';"},{"line":13,"text":" $structure->shortName = 'Newfi\\Events:Event';"},{"line":14,"text":" $structure->primaryKey = 'event_id';"},{"line":15,"text":" $structure->columns = ["},{"line":16,"text":" 'event_id' => ['type' => self::UINT, 'autoIncrement' => true, 'nullable' => true],"},{"line":17,"text":" 'title' => ['type' => self::STR, 'maxLength' => 100, 'required' => true],"},{"line":18,"text":" 'starts_at' => ['type' => self::UINT, 'required' => true],"},{"line":19,"text":" 'state' => ["},{"line":20,"text":" 'type' => self::STR,"},{"line":27,"text":" 'updated_at' => ['type' => self::UINT, 'required' => true]"},{"line":28,"text":" ];"},{"line":29,"text":" return $structure;"},{"line":30,"text":" }"},{"line":31,"text":"}"}],"rel":"Entity/Event.php","sha256":"c6b81864e2029f0094864573d31fdfc4280140b900da411f14282061b84ba891"},{"bytes":777,"matches":[{"line":1,"text":"<?php"},{"line":2,"text":""},{"line":3,"text":"namespace Newfi\\Events\\Entity;"},{"line":4,"text":""},{"line":5,"text":"use XF\\Mvc\\Entity\\Entity;"},{"line":6,"text":"use XF\\Mvc\\Entity\\Structure;"},{"line":7,"text":""},{"line":8,"text":"class EventChange extends Entity"},{"line":9,"text":"{"},{"line":10,"text":" public static function getStructure(Structure $structure)"},{"line":11,"text":" {"},{"line":12,"text":" $structure->table = 'xf_newfi_event_change';"},{"line":13,"text":" $structure->shortName = 'Newfi\\Events:EventChange';"},{"line":14,"text":" $structure->primaryKey = 'event_change_id';"},{"line":15,"text":" $structure->columns = ["},{"line":16,"text":" 'event_change_id' => ['type' => self::UINT, 'autoIncrement' => true, 'nullable' => true],"},{"line":17,"text":" 'event_id' => ['type' => self::UINT, 'required' => true],"},{"line":18,"text":" 'changed_at' => ['type' => self::UINT, 'required' => true],"},{"line":19,"text":" 'change_note' => ['type' => self::STR, 'maxLength' => 1000, 'required' => true]"},{"line":20,"text":" ];"},{"line":21,"text":" return $structure;"},{"line":22,"text":" }"},{"line":23,"text":"}"}],"rel":"Entity/EventChange.php","sha256":"c9743f22eedbd43a2a6231b34301d43d42fefbca9ce4898ee0d2a59eb455e602"},{"bytes":775,"matches":[{"line":1,"text":"<?php"},{"line":2,"text":""},{"line":3,"text":"namespace Newfi\\Events\\Entity;"},{"line":4,"text":""},{"line":5,"text":"use XF\\Mvc\\Entity\\Entity;"},{"line":6,"text":"use XF\\Mvc\\Entity\\Structure;"},{"line":7,"text":""},{"line":8,"text":"class EventSource extends Entity"},{"line":9,"text":"{"},{"line":10,"text":" public static function getStructure(Structure $structure)"},{"line":11,"text":" {"},{"line":12,"text":" $structure->table = 'xf_newfi_event_source';"},{"line":13,"text":" $structure->shortName = 'Newfi\\Events:EventSource';"},{"line":14,"text":" $structure->primaryKey = 'event_source_id';"},{"line":15,"text":" $structure->columns = ["},{"line":16,"text":" 'event_source_id' => ['type' => self::UINT, 'autoIncrement' => true, 'nullable' => true],"},{"line":17,"text":" 'event_id' => ['type' => self::UINT, 'required' => true],"},{"line":18,"text":" 'source_url' => ['type' => self::STR, 'maxLength' => 500, 'required' => true],"},{"line":19,"text":" 'checked_at' => ['type' => self::UINT, 'required' => true]"},{"line":20,"text":" ];"},{"line":21,"text":" return $structure;"},{"line":22,"text":" }"},{"line":23,"text":"}"}],"rel":"Entity/EventSource.php","sha256":"07541d087caf9668a2a2d80bb8cd81e9471095ce36260f1cc12ec81eb0460187"},{"bytes":494,"matches":[{"line":1,"text":"<?php"},{"line":2,"text":""},{"line":3,"text":"namespace Newfi\\Events\\Pub\\Controller;"},{"line":4,"text":""},{"line":5,"text":"use XF\\Pub\\Controller\\AbstractController;"},{"line":6,"text":""},{"line":7,"text":"class Events extends AbstractController"},{"line":8,"text":"{"},{"line":9,"text":" public function actionIndex()"},{"line":10,"text":" {"},{"line":11,"text":" $events = $this->finder('Newfi\\Events:Event')"},{"line":12,"text":" ->where('state', 'published')"},{"line":13,"text":" ->order('starts_at', 'ASC')"},{"line":14,"text":" ->order('event_id', 'ASC')"},{"line":15,"text":" ->fetch(100);"},{"line":16,"text":""},{"line":17,"text":" return $this->view('Newfi\\Events:Events', 'newfi_events', ["},{"line":18,"text":" 'events' => $events"},{"line":19,"text":" ]);"},{"line":20,"text":" }"}],"rel":"Pub/Controller/Events.php","sha256":"9dbbc3588b4d308b60fe1ab52daad7d88e0c0461820f6244f64a074fd686a57b"},{"bytes":79,"matches":[{"line":1,"text":"<?php"},{"line":2,"text":""},{"line":3,"text":"namespace Newfi\\Events\\Pub\\View;"},{"line":4,"text":""},{"line":5,"text":"class Events extends \\XF\\Mvc\\View"},{"line":6,"text":"{"},{"line":7,"text":"}"}],"rel":"Pub/View/Events.php","sha256":"dabbfabaa95bfb8105cea2123827f3433a29f618347dd8f1551124ccaea2a0b2"},{"bytes":2129,"matches":[{"line":1,"text":"<?php"},{"line":2,"text":""},{"line":3,"text":"namespace Newfi\\Events;"},{"line":4,"text":""},{"line":5,"text":"use XF\\AddOn\\AbstractSetup;"},{"line":6,"text":"use XF\\Db\\Schema\\Create;"},{"line":7,"text":""},{"line":8,"text":"class Setup extends AbstractSetup"},{"line":9,"text":"{"},{"line":10,"text":" public function install(array $stepParams = [])"},{"line":12,"text":" $sm = $this->schemaManager();"},{"line":13,"text":""},{"line":14,"text":" $sm->createTable('xf_newfi_event', function (Create $table)"},{"line":15,"text":" {"},{"line":16,"text":" $table->addColumn('event_id', 'int')->autoIncrement();"},{"line":17,"text":" $table->addColumn('title', 'varchar', 100);"},{"line":18,"text":" $table->addColumn('starts_at', 'int');"},{"line":19,"text":" $table->addColumn('state', 'varbinary', 25)->setDefault('draft');"},{"line":20,"text":" $table->addColumn('fingerprint', 'varbinary', 64);"},{"line":21,"text":" $table->addColumn('created_at', 'int');"},{"line":22,"text":" $table->addColumn('updated_at', 'int');"},{"line":23,"text":" $table->addPrimaryKey('event_id');"},{"line":24,"text":" $table->addKey('starts_at');"},{"line":25,"text":" $table->addKey('state');"},{"line":26,"text":" $table->addKey('fingerprint');"},{"line":27,"text":" });"},{"line":28,"text":""},{"line":29,"text":" $sm->createTable('xf_newfi_event_source', function (Create $table)"},{"line":30,"text":" {"},{"line":31,"text":" $table->addColumn('event_source_id', 'int')->autoIncrement();"},{"line":32,"text":" $table->addColumn('event_id', 'int');"},{"line":33,"text":" $table->addColumn('source_url', 'varchar', 500);"},{"line":34,"text":" $table->addColumn('checked_at', 'int');"},{"line":35,"text":" $table->addPrimaryKey('event_source_id');"},{"line":36,"text":" $table->addKey('event_id');"},{"line":37,"text":" });"},{"line":38,"text":""},{"line":39,"text":" $sm->createTable('xf_newfi_event_change', function (Create $table)"},{"line":40,"text":" {"},{"line":41,"text":" $table->addColumn('event_change_id', 'int')->autoIncrement();"},{"line":42,"text":" $table->addColumn('event_id', 'int');"},{"line":43,"text":" $table->addColumn('changed_at', 'int');"},{"line":44,"text":" $table->addColumn('change_note', 'text');"},{"line":45,"text":" $table->addPrimaryKey('event_change_id');"},{"line":46,"text":" $table->addKey('event_id');"},{"line":47,"text":" });"},{"line":48,"text":""},{"line":58,"text":" {"},{"line":59,"text":" $sm = $this->schemaManager();"},{"line":60,"text":" $sm->dropTable('xf_newfi_event_change');"},{"line":61,"text":" $sm->dropTable('xf_newfi_event_source');"},{"line":62,"text":" $sm->dropTable('xf_newfi_event');"},{"line":63,"text":" return null;"},{"line":64,"text":" }"}],"rel":"Setup.php","sha256":"3deab1d6e74661131a19e50ac151a9442b9612916e65963b675247f6d3280a5b"},{"bytes":144,"matches":[{"line":1,"text":"<?xml version=\"1.0\" encoding=\"utf-8\"?>"},{"line":2,"text":"<routes>"},{"line":3,"text":" <route route_type=\"public\" route_prefix=\"events\" controller=\"Newfi\\Events:Events\"/>"},{"line":4,"text":"</routes>"}],"rel":"_data/routes.xml","sha256":"7fefbb03c4c8b0bcd3e1dc1cd8f3f0e44460aa3b1fc09f5e63ee394e56c61309"},{"bytes":830,"matches":[{"line":1,"text":"<?xml version=\"1.0\" encoding=\"utf-8\"?>"},{"line":2,"text":"<templates>"},{"line":3,"text":" <template type=\"public\" title=\"newfi_events\" version_id=\"1000010\" version_string=\"1.0.0 Alpha 1\"><![CDATA["},{"line":4,"text":"<xf:title>События</xf:title>"},{"line":5,"text":""},{"line":8,"text":" <div class=\"block-header\">Календарь событий</div>"},{"line":9,"text":" <div class=\"block-body\">"},{"line":10,"text":" <xf:if is=\"$events\">"},{"line":11,"text":" <xf:foreach loop=\"$events\" value=\"$event\">"},{"line":12,"text":" <div class=\"block-row\">"},{"line":13,"text":" <h3 class=\"contentRow-title\">{$event.title}</h3>"},{"line":14,"text":" <div class=\"contentRow-minor\"><xf:date time=\"$event.starts_at\" /></div>"},{"line":15,"text":" </div>"},{"line":16,"text":" </xf:foreach>"},{"line":21,"text":" </div>"},{"line":22,"text":"</div>"},{"line":23,"text":"]]></template>"},{"line":24,"text":"</templates>"}],"rel":"_data/templates.xml","sha256":"bb1e0ff32036a9606b60b76e63c4a0e40e05cd3dc4f64a5fcb8bf43f47e2367c"},{"bytes":397,"matches":[{"line":1,"text":"{"},{"line":2,"text":" \"title\": \"Newfi Events\","},{"line":3,"text":" \"description\": \"Minimal private-staging events/calendar component for the Newfi closed MVP.\","},{"line":4,"text":" \"version_id\": 1000010,"},{"line":5,"text":" \"version_string\": \"1.0.0 Alpha 1\","}],"rel":"addon.json","sha256":"cc60d5f949db176004f603e42cfb160aefd7ed4d8d7fff30101f4ebb2c502dc3"}],"ok":true,"role":"staging","state":{"addon":{"active":1,"addon_id":"Newfi/Events","json_hash":"cc60d5f949db176004f603e42cfb160aefd7ed4d8d7fff30101f4ebb2c502dc3","title":"Newfi Events","version_id":1000010,"version_string":"1.0.0 Alpha 1"},"app_counts":{"drafts":0,"resources":13,"tag_content":39,"tags":33,"updates":13,"versions":13},"board":"0","counts":{"xf_newfi_event":0,"xf_newfi_event_change":0,"xf_newfi_event_source":0},"errors":{"ids":[33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],"old_fp":"e739c2c309539a508e20eba89b0ebc688640ef6ff9f919bbb419b2faad819f80","rows":[{"error_id":33,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:variations.less: ParseError: Unexpected input in public:variations.less on line 849, column 34 (on or near line 849)"},{"error_id":34,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:core.less: ParseError: Unexpected input in public:core.less on line 849, column 34 (on or near line 849)"},{"error_id":35,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:app.less: ParseError: Unexpected input in public:app.less on line 849, column 34 (on or near line 849)"},{"error_id":36,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:extra.less: ParseError: Unexpected input in public:extra.less on line 849, column 34 (on or near line 849)"},{"error_id":37,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:variations.less: ParseError: Unexpected input in public:variations.less on line 849, column 34 (on or near line 849)"},{"error_id":38,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:core.less: ParseError: Unexpected input in public:core.less on line 849, column 34 (on or near line 849)"},{"error_id":39,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:app.less: ParseError: Unexpected input in public:app.less on line 849, column 34 (on or near line 849)"},{"error_id":40,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:extra.less: ParseError: Unexpected input in public:extra.less on line 849, column 34 (on or near line 849)"},{"error_id":41,"exception_type":"XF\\PrintableException","filename":"src/XF/Mvc/Entity/Entity.php","line":1276,"message":"Строка 111: Ошибка синтаксиса - Название шаблона: public:newfi_portal"},{"error_id":42,"exception_type":"LogicException","filename":"src/XF/Mvc/Entity/Entity.php","line":645,"message":"Attempted to set 'type' while a save was pending without forceSet"},{"error_id":43,"exception_type":"ErrorException","filename":"src/XF/Mvc/Entity/Entity.php","line":1276,"message":"Fatal Error: Uncaught XF\\PrintableException: Строка 111: Ошибка синтаксиса - Название шаблона: public:newfi_portal in /var/www/forums/newfi/public/src/XF/Mvc/Entity/Entity.php:1276 Stack trace: #0 Command line code(31): XF\\Mvc\\Entity\\Entity->save(true, false) #1 {main} thrown"},{"error_id":44,"exception_type":"ErrorException","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"Fatal Error: Uncaught XF\\Db\\InvalidQueryException: MySQL statement prepare error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '\\'Gram/Support\\'' at line 1 in /var/www/forums/newfi/public/src/XF/Db/AbstractStatement.php:225 Stack trace: #0 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(207): XF\\Db\\AbstractStatement->getException('...', 1064, '...') #1 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(43): XF\\Db\\Mysqli\\Statement->getException('...', 1064, '...') #2 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(61): XF\\Db\\Mysqli\\Statement->prepare() #3 /var/www/forums/newfi/public/src/XF/Db/AbstractAdapter.php(96): XF\\Db\\Mysqli\\Statement->execute() #4 /var/www/forums/newfi/public/src/XF/Db/AbstractAdapter.php(152): XF\\Db\\AbstractAdapter->query('...', Array) #5 Command line code(1): XF\\Db\\AbstractAdapter->fetchOne('...') #6 {main} thrown"},{"error_id":45,"exception_type":"XF\\PrintableException","filename":"src/XF/Mvc/Entity/Entity.php","line":1276,"message":"Пожалуйста, введите корректный префикс роутинга."},{"error_id":46,"exception_type":"ErrorException","filename":"Command line code","line":5,"message":"Fatal Error: Uncaught ReflectionException: Method XF\\AddOn\\AbstractSetup::applyGlobalPermissionByGroup() does not exist in Command line code:5 Stack trace: #0 Command line code(5): ReflectionMethod->__construct('...', '...') #1 {main} thrown"},{"error_id":47,"exception_type":"XF\\Db\\InvalidQueryException","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"MySQL statement prepare error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'enabled FROM xf_template_modification WHERE addon_id = ? ORDER BY modificatio...' at line 1"},{"error_id":48,"exception_type":"XF\\Db\\InvalidQueryException","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"MySQL statement prepare error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'enabled FROM xf_template_modification WHERE addon_id = ? ORDER BY modificatio...' at line 1"},{"error_id":49,"exception_type":"XF\\Db\\Exception","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"MySQL statement prepare error [1054]: Unknown column 'sub_name_format' in 'SELECT'"},{"error_id":50,"exception_type":"XF\\Db\\Exception","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"MySQL statement prepare error [1054]: Unknown column 'display_in_list' in 'SELECT'"},{"error_id":51,"exception_type":"ErrorException","filename":"Command line code","line":32,"message":"Fatal Error: Uncaught ErrorException: [E_WARNING] Trying to access array offset on false in Command line code:32 Stack trace: #0 Command line code(32): XF::handlePhpError(2, '...', '...', 32) #1 {main} thrown"},{"error_id":52,"exception_type":"ErrorException","filename":"Command line code","line":16,"message":"Fatal Error: Uncaught ErrorException: [E_WARNING] Trying to access array offset on false in Command line code:16 Stack trace: #0 Command line code(16): XF::handlePhpError(2, '...', '...', 16) #1 {main} thrown"},{"error_id":53,"exception_type":"ErrorException","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"Fatal Error: Uncaught XF\\Db\\Exception: MySQL statement prepare error [1054]: Unknown column 'display_in_list' in 'SELECT' in /var/www/forums/newfi/public/src/XF/Db/AbstractStatement.php:225 Stack trace: #0 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(207): XF\\Db\\AbstractStatement->getException('...', 1054, '...') #1 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(43): XF\\Db\\Mysqli\\Statement->getException('...', 1054, '...') #2 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(61): XF\\Db\\Mysqli\\Statement->prepare() #3 /var/www/forums/newfi/public/src/XF/Db/AbstractAdapter.php(96): XF\\Db\\Mysqli\\Statement->execute() #4 /var/www/forums/newfi/public/src/XF/Db/AbstractAdapter.php(157): XF\\Db\\AbstractAdapter->query('...', Array) #5 Command line code(11): XF\\Db\\AbstractAdapter->fetchAll('...') #6 {main} thrown"},{"error_id":54,"exception_type":"ErrorException","filename":"src/XF/Service/ValidateAndSavableTrait.php","line":36,"message":"Fatal Error: Uncaught LogicException: Cannot save with validation errors. Use validate() to ensure there are no errors. (First error: Пожалуйста, укажите корректную версию.) in /var/www/forums/newfi/public/src/XF/Service/ValidateAndSavableTrait.php:36 Stack trace: #0 Command line code(4): XFRM\\Service\\ResourceItem\\Create->save() #1 /var/www/forums/newfi/public/src/XF.php(950): {closure}() #2 Command line code(4): XF::asVisitor(Object(XFRM\\XF\\Entity\\User), Object(Closure)) #3 {main} thrown"},{"error_id":55,"exception_type":"ErrorException","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"Fatal Error: Uncaught XF\\Db\\Exception: MySQL statement prepare error [1054]: Unknown column 'r.category_id' in 'SELECT' in /var/www/forums/newfi/public/src/XF/Db/AbstractStatement.php:225 Stack trace: #0 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(207): XF\\Db\\AbstractStatement->getException('...', 1054, '...') #1 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(43): XF\\Db\\Mysqli\\Statement->getException('...', 1054, '...') #2 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(61): XF\\Db\\Mysqli\\Statement->prepare() #3 /var/www/forums/newfi/public/src/XF/Db/AbstractAdapter.php(96): XF\\Db\\Mysqli\\Statement->execute() #4 /var/www/forums/newfi/public/src/XF/Db/AbstractAdapter.php(157): XF\\Db\\AbstractAdapter->query('...', Array) #5 Command line code(3): XF\\Db\\AbstractAdapter->fetchAll('...') #6 {main} thrown"}]},"event_templates":[{"bytes":643,"matches":[{"line":6,"text":" <div class=\"block-header\">Календарь событий</div>"},{"line":7,"text":" <div class=\"block-body\">"},{"line":8,"text":" <xf:if is=\"$events\">"},{"line":9,"text":" <xf:foreach loop=\"$events\" value=\"$event\">"},{"line":10,"text":" <div class=\"block-row\">"},{"line":11,"text":" <h3 class=\"contentRow-title\">{$event.title}</h3>"},{"line":12,"text":" <div class=\"contentRow-minor\"><xf:date time=\"$event.starts_at\" /></div>"},{"line":13,"text":" </div>"},{"line":14,"text":" </xf:foreach>"},{"line":15,"text":" <xf:else />"}],"sha256":"514dffc791acf6b30e0c2bda235e571e62ccc5752b72b31449beb8d2b34e4543","style_id":0,"template_id":1612,"title":"newfi_events"}],"jobs":[],"navigation_tables":{"xf_navigation":{"count":56,"create":"CREATE TABLE `xf_navigation` (\n `navigation_id` varbinary(50) NOT NULL,\n `parent_navigation_id` varbinary(50) NOT NULL,\n `display_order` int(10) unsigned NOT NULL DEFAULT 0,\n `navigation_type_id` varbinary(25) NOT NULL,\n `type_config` mediumtext NOT NULL,\n `condition_expression` mediumblob NOT NULL,\n `condition_setup` mediumblob NOT NULL,\n `data_expression` mediumblob NOT NULL,\n `data_setup` mediumblob NOT NULL,\n `global_setup` mediumblob NOT NULL,\n `enabled` tinyint(3) unsigned NOT NULL DEFAULT 0,\n `is_customized` tinyint(3) unsigned NOT NULL DEFAULT 0,\n `default_value` mediumblob NOT NULL,\n `addon_id` varbinary(50) NOT NULL DEFAULT '',\n PRIMARY KEY (`navigation_id`),\n KEY `parent_navigation_id_display_order` (`parent_navigation_id`,`display_order`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci"},"xf_navigation_type":{"count":3,"create":"CREATE TABLE `xf_navigation_type` (\n `navigation_type_id` varbinary(25) NOT NULL,\n `handler_class` varchar(100) NOT NULL,\n `display_order` int(10) unsigned NOT NULL DEFAULT 0,\n PRIMARY KEY (`navigation_type_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci"}},"portal_template":{"bytes":8623,"matches":[{"line":6,"text":" <section class=\"newfiPortal-hero\">"},{"line":7,"text":" <div class=\"newfiPortal-heroCopy\">"},{"line":8,"text":" <div class=\"newfiPortal-kicker\">Ньюфаундленды · знания · люди</div>"},{"line":9,"text":" <h1>Дом сообщества ньюфаундлендов</h1>"},{"line":10,"text":" <p>Обсуждения, практические материалы, события, фотографии и собаки сообщества — в одной точке входа.</p>"},{"line":11,"text":""},{"line":12,"text":" <div class=\"newfiPortal-actions\">"},{"line":13,"text":" <a class=\"button button--primary\" href=\"{{ link('forums') }}\">К обсуждениям</a>"},{"line":14,"text":" <a class=\"button\" href=\"{{ link('events') }}\">События</a>"},{"line":15,"text":" <a class=\"button\" href=\"{{ link('dogs') }}\">Собаки</a>"},{"line":16,"text":" </div>"},{"line":17,"text":" </div>"},{"line":18,"text":" </section>"},{"line":19,"text":""},{"line":20,"text":" <div class=\"newfiPortal-grid\">"},{"line":21,"text":" <xf:if is=\"$portal.forums.hasItems\"><section class=\"newfiPortal-card newfiPortal-card--wide\" data-portal-section=\"forums\">"},{"line":22,"text":" <header class=\"newfiPortal-cardHeader\">"},{"line":23,"text":" <div>"},{"line":24,"text":" <span class=\"newfiPortal-eyebrow\">Сообщество</span>"},{"line":25,"text":" <h2>Последние обсуждения</h2>"},{"line":26,"text":" </div>"},{"line":27,"text":" <a href=\"{{ link('forums') }}\">Все разделы</a>"},{"line":28,"text":" </header>"},{"line":29,"text":""},{"line":30,"text":" "},{"line":31,"text":" <div class=\"newfiPortal-list\">"},{"line":32,"text":" <xf:foreach loop=\"$portal.forums.items\" value=\"$thread\">"},{"line":33,"text":" <a class=\"newfiPortal-listItem\" href=\"{{ link('threads', $thread) }}\">"},{"line":34,"text":" <strong>{$thread.title}</strong>"},{"line":35,"text":" <span>{$thread.Forum.Node.title}</span>"},{"line":36,"text":" <small><xf:date time=\"$thread.last_post_date\" /></small>"},{"line":37,"text":" </a>"},{"line":38,"text":" </xf:foreach>"},{"line":39,"text":" </div>"},{"line":40,"text":" "},{"line":41,"text":" </section></xf:if>"},{"line":75,"text":"<xf:if is=\"$portal.resources.available\">"},{"line":76,"text":" <xf:if is=\"$portal.resources.hasItems\">"},{"line":77,"text":" <div class=\"newfiPortal-list\">"},{"line":78,"text":" <xf:foreach loop=\"$portal.resources.items\" value=\"$resource\">"},{"line":79,"text":" <a class=\"newfiPortal-listItem\" href=\"{{ link('resources', $resource) }}\">"},{"line":80,"text":" <strong>{$resource.title}</strong>"},{"line":81,"text":" <span>{$resource.tag_line}</span>"},{"line":82,"text":" <small><xf:date time=\"$resource.last_update\" /></small>"},{"line":83,"text":" </a>"},{"line":84,"text":" </xf:foreach>"},{"line":85,"text":" </div>"},{"line":86,"text":" <xf:else />"},{"line":87,"text":" <div class=\"newfiPortal-empty\">Проверенные материалы появятся здесь после публикации.</div>"},{"line":88,"text":" </xf:if>"},{"line":89,"text":" <a class=\"newfiPortal-textLink\" href=\"{{ link('resources') }}\">Открыть базу знаний</a>"},{"line":90,"text":" <xf:else />"},{"line":91,"text":" <div class=\"newfiPortal-locked\" data-portal-locked=\"resources\">"},{"line":92,"text":" База знаний доступна участникам с соответствующими правами."},{"line":93,"text":" </div>"},{"line":94,"text":" </xf:if>"},{"line":95,"text":" </section>"},{"line":96,"text":""},{"line":97,"text":" <xf:if is=\"$portal.events.hasItems\"><section class=\"newfiPortal-card\" data-portal-section=\"events\">"},{"line":98,"text":" <header class=\"newfiPortal-cardHeader\">"},{"line":99,"text":" <div>"},{"line":100,"text":" <span class=\"newfiPortal-eyebrow\">Календарь</span>"},{"line":101,"text":" <h2>Ближайшие события</h2>"},{"line":102,"text":" </div>"},{"line":103,"text":" <a href=\"{{ link('events') }}\">Все события</a>"},{"line":104,"text":" </header>"},{"line":105,"text":""},{"line":106,"text":" "},{"line":107,"text":" <div class=\"newfiPortal-list\">"},{"line":108,"text":" <xf:foreach loop=\"$portal.events.items\" value=\"$event\">"},{"line":109,"text":" <div class=\"newfiPortal-listItem newfiPortal-listItem--static\">"},{"line":110,"text":" <strong>{$event.title}</strong>"},{"line":111,"text":" <small><xf:date time=\"$event.starts_at\" /></small>"},{"line":112,"text":" </div>"},{"line":113,"text":" </xf:foreach>"},{"line":114,"text":" </div>"},{"line":115,"text":" "},{"line":116,"text":" </section></xf:if>"},{"line":120,"text":" <div>"},{"line":121,"text":" <span class=\"newfiPortal-eyebrow\">Сообщество</span>"},{"line":122,"text":" <h2>Наши собаки</h2>"},{"line":123,"text":" </div>"},{"line":124,"text":" <a href=\"{{ link('dogs') }}\">Все собаки</a>"},{"line":125,"text":" </header>"},{"line":126,"text":""},{"line":127,"text":" "},{"line":128,"text":" <div class=\"newfiPortal-list\">"},{"line":129,"text":" <xf:foreach loop=\"$portal.dogs.items\" value=\"$dog\">"},{"line":130,"text":" <div class=\"newfiPortal-listItem newfiPortal-listItem--static\">"},{"line":131,"text":" <strong><xf:if is=\"$dog.full_name\">{$dog.full_name}<xf:else />{$dog.name}</xf:if></strong>"},{"line":132,"text":" <xf:if is=\"$dog.city\"><span>{$dog.city}</span></xf:if>"},{"line":147,"text":" <xf:if is=\"$portal.media.available\">"},{"line":148,"text":" <xf:if is=\"$portal.media.hasItems\">"},{"line":149,"text":" <div class=\"newfiPortal-mediaList\">"},{"line":150,"text":" <xf:foreach loop=\"$portal.media.items\" value=\"$media\">"},{"line":151,"text":" <a class=\"newfiPortal-mediaItem\" href=\"{{ link('media', $media) }}\">"},{"line":152,"text":" <strong>{$media.title}</strong>"},{"line":153,"text":" <span>{$media.username}</span>"},{"line":154,"text":" <small><xf:date time=\"$media.media_date\" /></small>"},{"line":155,"text":" </a>"},{"line":156,"text":" </xf:foreach>"},{"line":157,"text":" </div>"},{"line":158,"text":" <xf:else />"},{"line":159,"text":" <div class=\"newfiPortal-empty\">Фотографии появятся здесь после публикации в галерее.</div>"},{"line":160,"text":" </xf:if>"},{"line":161,"text":" <a class=\"newfiPortal-textLink\" href=\"{{ link('media') }}\">Открыть галерею</a>"},{"line":162,"text":" <xf:else />"},{"line":163,"text":" <div class=\"newfiPortal-locked\" data-portal-locked=\"media\">"},{"line":164,"text":" Галерея доступна участникам с соответствующими правами."},{"line":165,"text":" </div>"},{"line":166,"text":" </xf:if>"},{"line":167,"text":" </section>"},{"line":168,"text":" </div>"},{"line":169,"text":""},{"line":172,"text":" <span class=\"newfiPortal-eyebrow\">НьюфДом</span>"},{"line":173,"text":" <h2>Полезное начинается с живого сообщества</h2>"},{"line":174,"text":" <p>Задайте вопрос, поделитесь опытом или добавьте материал в подходящий раздел.</p>"},{"line":175,"text":" </div>"},{"line":176,"text":" <a class=\"button button--primary\" href=\"{{ link('forums') }}\">Перейти к форуму</a>"},{"line":177,"text":" </section>"},{"line":178,"text":"</div>"},{"line":179,"text":""}],"sha256":"31100610adcf19b8a5df5eac88cc3ea1eed1e642ccd9232be082343af018e669","style_id":0,"template_id":1610},"schemas":{"xf_newfi_event":{"columns":[{"Collation":null,"Comment":"","Default":null,"Extra":"auto_increment","Field":"event_id","Key":"PRI","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"},{"Collation":"utf8mb4_general_ci","Comment":"","Default":null,"Extra":"","Field":"title","Key":"","Null":"NO","Privileges":"select,insert,update,references","Type":"varchar(100)"},{"Collation":null,"Comment":"","Default":null,"Extra":"","Field":"starts_at","Key":"MUL","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"},{"Collation":null,"Comment":"","Default":"draft","Extra":"","Field":"state","Key":"MUL","Null":"NO","Privileges":"select,insert,update,references","Type":"varbinary(25)"},{"Collation":null,"Comment":"","Default":null,"Extra":"","Field":"fingerprint","Key":"MUL","Null":"NO","Privileges":"select,insert,update,references","Type":"varbinary(64)"},{"Collation":null,"Comment":"","Default":null,"Extra":"","Field":"created_at","Key":"","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"},{"Collation":null,"Comment":"","Default":null,"Extra":"","Field":"updated_at","Key":"","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"}],"create":"CREATE TABLE `xf_newfi_event` (\n `event_id` int(10) unsigned NOT NULL AUTO_INCREMENT,\n `title` varchar(100) NOT NULL,\n `starts_at` int(10) unsigned NOT NULL,\n `state` varbinary(25) NOT NULL DEFAULT 'draft',\n `fingerprint` varbinary(64) NOT NULL,\n `created_at` int(10) unsigned NOT NULL,\n `updated_at` int(10) unsigned NOT NULL,\n PRIMARY KEY (`event_id`),\n KEY `starts_at` (`starts_at`),\n KEY `state` (`state`),\n KEY `fingerprint` (`fingerprint`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci","indexes":[{"Cardinality":0,"Collation":"A","Column_name":"event_id","Comment":"","Ignored":"NO","Index_comment":"","Index_type":"BTREE","Key_name":"PRIMARY","Non_unique":0,"Null":"","Packed":null,"Seq_in_index":1,"Sub_part":null,"Table":"xf_newfi_event"},{"Cardinality":0,"Collation":"A","Column_name":"starts_at","Comment":"","Ignored":"NO","Index_comment":"","Index_type":"BTREE","Key_name":"starts_at","Non_unique":1,"Null":"","Packed":null,"Seq_in_index":1,"Sub_part":null,"Table":"xf_newfi_event"},{"Cardinality":0,"Collation":"A","Column_name":"state","Comment":"","Ignored":"NO","Index_comment":"","Index_type":"BTREE","Key_name":"state","Non_unique":1,"Null":"","Packed":null,"Seq_in_index":1,"Sub_part":null,"Table":"xf_newfi_event"},{"Cardinality":0,"Collation":"A","Column_name":"fingerprint","Comment":"","Ignored":"NO","Index_comment":"","Index_type":"BTREE","Key_name":"fingerprint","Non_unique":1,"Null":"","Packed":null,"Seq_in_index":1,"Sub_part":null,"Table":"xf_newfi_event"}]},"xf_newfi_event_change":{"columns":[{"Collation":null,"Comment":"","Default":null,"Extra":"auto_increment","Field":"event_change_id","Key":"PRI","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"},{"Collation":null,"Comment":"","Default":null,"Extra":"","Field":"event_id","Key":"MUL","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"},{"Collation":null,"Comment":"","Default":null,"Extra":"","Field":"changed_at","Key":"","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"},{"Collation":"utf8mb4_general_ci","Comment":"","Default":null,"Extra":"","Field":"change_note","Key":"","Null":"NO","Privileges":"select,insert,update,references","Type":"text"}],"create":"CREATE TABLE `xf_newfi_event_change` (\n `event_change_id` int(10) unsigned NOT NULL AUTO_INCREMENT,\n `event_id` int(10) unsigned NOT NULL,\n `changed_at` int(10) unsigned NOT NULL,\n `change_note` text NOT NULL,\n PRIMARY KEY (`event_change_id`),\n KEY `event_id` (`event_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci","indexes":[{"Cardinality":0,"Collation":"A","Column_name":"event_change_id","Comment":"","Ignored":"NO","Index_comment":"","Index_type":"BTREE","Key_name":"PRIMARY","Non_unique":0,"Null":"","Packed":null,"Seq_in_index":1,"Sub_part":null,"Table":"xf_newfi_event_change"},{"Cardinality":0,"Collation":"A","Column_name":"event_id","Comment":"","Ignored":"NO","Index_comment":"","Index_type":"BTREE","Key_name":"event_id","Non_unique":1,"Null":"","Packed":null,"Seq_in_index":1,"Sub_part":null,"Table":"xf_newfi_event_change"}]},"xf_newfi_event_source":{"columns":[{"Collation":null,"Comment":"","Default":null,"Extra":"auto_increment","Field":"event_source_id","Key":"PRI","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"},{"Collation":null,"Comment":"","Default":null,"Extra":"","Field":"event_id","Key":"MUL","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"},{"Collation":"utf8mb4_general_ci","Comment":"","Default":null,"Extra":"","Field":"source_url","Key":"","Null":"NO","Privileges":"select,insert,update,references","Type":"varchar(500)"},{"Collation":null,"Comment":"","Default":null,"Extra":"","Field":"checked_at","Key":"","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"}],"create":"CREATE TABLE `xf_newfi_event_source` (\n `event_source_id` int(10) unsigned NOT NULL AUTO_INCREMENT,\n `event_id` int(10) unsigned NOT NULL,\n `source_url` varchar(500) NOT NULL,\n `checked_at` int(10) unsigned NOT NULL,\n PRIMARY KEY (`event_source_id`),\n KEY `event_id` (`event_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci","indexes":[{"Cardinality":0,"Collation":"A","Column_name":"event_source_id","Comment":"","Ignored":"NO","Index_comment":"","Index_type":"BTREE","Key_name":"PRIMARY","Non_unique":0,"Null":"","Packed":null,"Seq_in_index":1,"Sub_part":null,"Table":"xf_newfi_event_source"},{"Cardinality":0,"Collation":"A","Column_name":"event_id","Comment":"","Ignored":"NO","Index_comment":"","Index_type":"BTREE","Key_name":"event_id","Non_unique":1,"Null":"","Packed":null,"Seq_in_index":1,"Sub_part":null,"Table":"xf_newfi_event_source"}]}}}}
NEWFI122R1_PRODUCTION={"files":[{"bytes":1131,"matches":[{"line":1,"text":"<?php"},{"line":2,"text":""},{"line":3,"text":"namespace Newfi\\Events\\Entity;"},{"line":4,"text":""},{"line":5,"text":"use XF\\Mvc\\Entity\\Entity;"},{"line":6,"text":"use XF\\Mvc\\Entity\\Structure;"},{"line":7,"text":""},{"line":8,"text":"class Event extends Entity"},{"line":9,"text":"{"},{"line":10,"text":" public static function getStructure(Structure $structure)"},{"line":11,"text":" {"},{"line":12,"text":" $structure->table = 'xf_newfi_event';"},{"line":13,"text":" $structure->shortName = 'Newfi\\Events:Event';"},{"line":14,"text":" $structure->primaryKey = 'event_id';"},{"line":15,"text":" $structure->columns = ["},{"line":16,"text":" 'event_id' => ['type' => self::UINT, 'autoIncrement' => true, 'nullable' => true],"},{"line":17,"text":" 'title' => ['type' => self::STR, 'maxLength' => 100, 'required' => true],"},{"line":18,"text":" 'starts_at' => ['type' => self::UINT, 'required' => true],"},{"line":19,"text":" 'state' => ["},{"line":20,"text":" 'type' => self::STR,"},{"line":27,"text":" 'updated_at' => ['type' => self::UINT, 'required' => true]"},{"line":28,"text":" ];"},{"line":29,"text":" return $structure;"},{"line":30,"text":" }"},{"line":31,"text":"}"}],"rel":"Entity/Event.php","sha256":"c6b81864e2029f0094864573d31fdfc4280140b900da411f14282061b84ba891"},{"bytes":777,"matches":[{"line":1,"text":"<?php"},{"line":2,"text":""},{"line":3,"text":"namespace Newfi\\Events\\Entity;"},{"line":4,"text":""},{"line":5,"text":"use XF\\Mvc\\Entity\\Entity;"},{"line":6,"text":"use XF\\Mvc\\Entity\\Structure;"},{"line":7,"text":""},{"line":8,"text":"class EventChange extends Entity"},{"line":9,"text":"{"},{"line":10,"text":" public static function getStructure(Structure $structure)"},{"line":11,"text":" {"},{"line":12,"text":" $structure->table = 'xf_newfi_event_change';"},{"line":13,"text":" $structure->shortName = 'Newfi\\Events:EventChange';"},{"line":14,"text":" $structure->primaryKey = 'event_change_id';"},{"line":15,"text":" $structure->columns = ["},{"line":16,"text":" 'event_change_id' => ['type' => self::UINT, 'autoIncrement' => true, 'nullable' => true],"},{"line":17,"text":" 'event_id' => ['type' => self::UINT, 'required' => true],"},{"line":18,"text":" 'changed_at' => ['type' => self::UINT, 'required' => true],"},{"line":19,"text":" 'change_note' => ['type' => self::STR, 'maxLength' => 1000, 'required' => true]"},{"line":20,"text":" ];"},{"line":21,"text":" return $structure;"},{"line":22,"text":" }"},{"line":23,"text":"}"}],"rel":"Entity/EventChange.php","sha256":"c9743f22eedbd43a2a6231b34301d43d42fefbca9ce4898ee0d2a59eb455e602"},{"bytes":775,"matches":[{"line":1,"text":"<?php"},{"line":2,"text":""},{"line":3,"text":"namespace Newfi\\Events\\Entity;"},{"line":4,"text":""},{"line":5,"text":"use XF\\Mvc\\Entity\\Entity;"},{"line":6,"text":"use XF\\Mvc\\Entity\\Structure;"},{"line":7,"text":""},{"line":8,"text":"class EventSource extends Entity"},{"line":9,"text":"{"},{"line":10,"text":" public static function getStructure(Structure $structure)"},{"line":11,"text":" {"},{"line":12,"text":" $structure->table = 'xf_newfi_event_source';"},{"line":13,"text":" $structure->shortName = 'Newfi\\Events:EventSource';"},{"line":14,"text":" $structure->primaryKey = 'event_source_id';"},{"line":15,"text":" $structure->columns = ["},{"line":16,"text":" 'event_source_id' => ['type' => self::UINT, 'autoIncrement' => true, 'nullable' => true],"},{"line":17,"text":" 'event_id' => ['type' => self::UINT, 'required' => true],"},{"line":18,"text":" 'source_url' => ['type' => self::STR, 'maxLength' => 500, 'required' => true],"},{"line":19,"text":" 'checked_at' => ['type' => self::UINT, 'required' => true]"},{"line":20,"text":" ];"},{"line":21,"text":" return $structure;"},{"line":22,"text":" }"},{"line":23,"text":"}"}],"rel":"Entity/EventSource.php","sha256":"07541d087caf9668a2a2d80bb8cd81e9471095ce36260f1cc12ec81eb0460187"},{"bytes":494,"matches":[{"line":1,"text":"<?php"},{"line":2,"text":""},{"line":3,"text":"namespace Newfi\\Events\\Pub\\Controller;"},{"line":4,"text":""},{"line":5,"text":"use XF\\Pub\\Controller\\AbstractController;"},{"line":6,"text":""},{"line":7,"text":"class Events extends AbstractController"},{"line":8,"text":"{"},{"line":9,"text":" public function actionIndex()"},{"line":10,"text":" {"},{"line":11,"text":" $events = $this->finder('Newfi\\Events:Event')"},{"line":12,"text":" ->where('state', 'published')"},{"line":13,"text":" ->order('starts_at', 'ASC')"},{"line":14,"text":" ->order('event_id', 'ASC')"},{"line":15,"text":" ->fetch(100);"},{"line":16,"text":""},{"line":17,"text":" return $this->view('Newfi\\Events:Events', 'newfi_events', ["},{"line":18,"text":" 'events' => $events"},{"line":19,"text":" ]);"},{"line":20,"text":" }"}],"rel":"Pub/Controller/Events.php","sha256":"9dbbc3588b4d308b60fe1ab52daad7d88e0c0461820f6244f64a074fd686a57b"},{"bytes":79,"matches":[{"line":1,"text":"<?php"},{"line":2,"text":""},{"line":3,"text":"namespace Newfi\\Events\\Pub\\View;"},{"line":4,"text":""},{"line":5,"text":"class Events extends \\XF\\Mvc\\View"},{"line":6,"text":"{"},{"line":7,"text":"}"}],"rel":"Pub/View/Events.php","sha256":"dabbfabaa95bfb8105cea2123827f3433a29f618347dd8f1551124ccaea2a0b2"},{"bytes":2129,"matches":[{"line":1,"text":"<?php"},{"line":2,"text":""},{"line":3,"text":"namespace Newfi\\Events;"},{"line":4,"text":""},{"line":5,"text":"use XF\\AddOn\\AbstractSetup;"},{"line":6,"text":"use XF\\Db\\Schema\\Create;"},{"line":7,"text":""},{"line":8,"text":"class Setup extends AbstractSetup"},{"line":9,"text":"{"},{"line":10,"text":" public function install(array $stepParams = [])"},{"line":12,"text":" $sm = $this->schemaManager();"},{"line":13,"text":""},{"line":14,"text":" $sm->createTable('xf_newfi_event', function (Create $table)"},{"line":15,"text":" {"},{"line":16,"text":" $table->addColumn('event_id', 'int')->autoIncrement();"},{"line":17,"text":" $table->addColumn('title', 'varchar', 100);"},{"line":18,"text":" $table->addColumn('starts_at', 'int');"},{"line":19,"text":" $table->addColumn('state', 'varbinary', 25)->setDefault('draft');"},{"line":20,"text":" $table->addColumn('fingerprint', 'varbinary', 64);"},{"line":21,"text":" $table->addColumn('created_at', 'int');"},{"line":22,"text":" $table->addColumn('updated_at', 'int');"},{"line":23,"text":" $table->addPrimaryKey('event_id');"},{"line":24,"text":" $table->addKey('starts_at');"},{"line":25,"text":" $table->addKey('state');"},{"line":26,"text":" $table->addKey('fingerprint');"},{"line":27,"text":" });"},{"line":28,"text":""},{"line":29,"text":" $sm->createTable('xf_newfi_event_source', function (Create $table)"},{"line":30,"text":" {"},{"line":31,"text":" $table->addColumn('event_source_id', 'int')->autoIncrement();"},{"line":32,"text":" $table->addColumn('event_id', 'int');"},{"line":33,"text":" $table->addColumn('source_url', 'varchar', 500);"},{"line":34,"text":" $table->addColumn('checked_at', 'int');"},{"line":35,"text":" $table->addPrimaryKey('event_source_id');"},{"line":36,"text":" $table->addKey('event_id');"},{"line":37,"text":" });"},{"line":38,"text":""},{"line":39,"text":" $sm->createTable('xf_newfi_event_change', function (Create $table)"},{"line":40,"text":" {"},{"line":41,"text":" $table->addColumn('event_change_id', 'int')->autoIncrement();"},{"line":42,"text":" $table->addColumn('event_id', 'int');"},{"line":43,"text":" $table->addColumn('changed_at', 'int');"},{"line":44,"text":" $table->addColumn('change_note', 'text');"},{"line":45,"text":" $table->addPrimaryKey('event_change_id');"},{"line":46,"text":" $table->addKey('event_id');"},{"line":47,"text":" });"},{"line":48,"text":""},{"line":58,"text":" {"},{"line":59,"text":" $sm = $this->schemaManager();"},{"line":60,"text":" $sm->dropTable('xf_newfi_event_change');"},{"line":61,"text":" $sm->dropTable('xf_newfi_event_source');"},{"line":62,"text":" $sm->dropTable('xf_newfi_event');"},{"line":63,"text":" return null;"},{"line":64,"text":" }"}],"rel":"Setup.php","sha256":"3deab1d6e74661131a19e50ac151a9442b9612916e65963b675247f6d3280a5b"},{"bytes":144,"matches":[{"line":1,"text":"<?xml version=\"1.0\" encoding=\"utf-8\"?>"},{"line":2,"text":"<routes>"},{"line":3,"text":" <route route_type=\"public\" route_prefix=\"events\" controller=\"Newfi\\Events:Events\"/>"},{"line":4,"text":"</routes>"}],"rel":"_data/routes.xml","sha256":"7fefbb03c4c8b0bcd3e1dc1cd8f3f0e44460aa3b1fc09f5e63ee394e56c61309"},{"bytes":830,"matches":[{"line":1,"text":"<?xml version=\"1.0\" encoding=\"utf-8\"?>"},{"line":2,"text":"<templates>"},{"line":3,"text":" <template type=\"public\" title=\"newfi_events\" version_id=\"1000010\" version_string=\"1.0.0 Alpha 1\"><![CDATA["},{"line":4,"text":"<xf:title>События</xf:title>"},{"line":5,"text":""},{"line":8,"text":" <div class=\"block-header\">Календарь событий</div>"},{"line":9,"text":" <div class=\"block-body\">"},{"line":10,"text":" <xf:if is=\"$events\">"},{"line":11,"text":" <xf:foreach loop=\"$events\" value=\"$event\">"},{"line":12,"text":" <div class=\"block-row\">"},{"line":13,"text":" <h3 class=\"contentRow-title\">{$event.title}</h3>"},{"line":14,"text":" <div class=\"contentRow-minor\"><xf:date time=\"$event.starts_at\" /></div>"},{"line":15,"text":" </div>"},{"line":16,"text":" </xf:foreach>"},{"line":21,"text":" </div>"},{"line":22,"text":"</div>"},{"line":23,"text":"]]></template>"},{"line":24,"text":"</templates>"}],"rel":"_data/templates.xml","sha256":"bb1e0ff32036a9606b60b76e63c4a0e40e05cd3dc4f64a5fcb8bf43f47e2367c"},{"bytes":397,"matches":[{"line":1,"text":"{"},{"line":2,"text":" \"title\": \"Newfi Events\","},{"line":3,"text":" \"description\": \"Minimal private-staging events/calendar component for the Newfi closed MVP.\","},{"line":4,"text":" \"version_id\": 1000010,"},{"line":5,"text":" \"version_string\": \"1.0.0 Alpha 1\","}],"rel":"addon.json","sha256":"cc60d5f949db176004f603e42cfb160aefd7ed4d8d7fff30101f4ebb2c502dc3"}],"ok":true,"role":"production","state":{"addon":{"active":1,"addon_id":"Newfi/Events","json_hash":"cc60d5f949db176004f603e42cfb160aefd7ed4d8d7fff30101f4ebb2c502dc3","title":"Newfi Events","version_id":1000010,"version_string":"1.0.0 Alpha 1"},"app_counts":{"drafts":0,"resources":13,"tag_content":39,"tags":33,"updates":13,"versions":13},"board":"1","counts":{"xf_newfi_event":0,"xf_newfi_event_change":0,"xf_newfi_event_source":0},"errors":{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"old_fp":"737935e0f156defd5fcd89c9e05899bb3577964371bc436e65db7c7e461be69b","rows":[{"error_id":1,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":2,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":3,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":4,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":5,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":6,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":7,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":8,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":9,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":10,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":11,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":12,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":13,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":14,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":15,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":16,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":17,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":18,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":19,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":20,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":21,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":22,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":23,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":24,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":25,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":26,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":27,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":28,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":29,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":30,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":31,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":32,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":33,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":34,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":35,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":36,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":37,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":38,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":39,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":40,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"}]},"event_templates":[{"bytes":643,"matches":[{"line":6,"text":" <div class=\"block-header\">Календарь событий</div>"},{"line":7,"text":" <div class=\"block-body\">"},{"line":8,"text":" <xf:if is=\"$events\">"},{"line":9,"text":" <xf:foreach loop=\"$events\" value=\"$event\">"},{"line":10,"text":" <div class=\"block-row\">"},{"line":11,"text":" <h3 class=\"contentRow-title\">{$event.title}</h3>"},{"line":12,"text":" <div class=\"contentRow-minor\"><xf:date time=\"$event.starts_at\" /></div>"},{"line":13,"text":" </div>"},{"line":14,"text":" </xf:foreach>"},{"line":15,"text":" <xf:else />"}],"sha256":"514dffc791acf6b30e0c2bda235e571e62ccc5752b72b31449beb8d2b34e4543","style_id":0,"template_id":1612,"title":"newfi_events"}],"jobs":[],"navigation_tables":{"xf_navigation":{"count":56,"create":"CREATE TABLE `xf_navigation` (\n `navigation_id` varbinary(50) NOT NULL,\n `parent_navigation_id` varbinary(50) NOT NULL,\n `display_order` int(10) unsigned NOT NULL DEFAULT 0,\n `navigation_type_id` varbinary(25) NOT NULL,\n `type_config` mediumtext NOT NULL,\n `condition_expression` mediumblob NOT NULL,\n `condition_setup` mediumblob NOT NULL,\n `data_expression` mediumblob NOT NULL,\n `data_setup` mediumblob NOT NULL,\n `global_setup` mediumblob NOT NULL,\n `enabled` tinyint(3) unsigned NOT NULL DEFAULT 0,\n `is_customized` tinyint(3) unsigned NOT NULL DEFAULT 0,\n `default_value` mediumblob NOT NULL,\n `addon_id` varbinary(50) NOT NULL DEFAULT '',\n PRIMARY KEY (`navigation_id`),\n KEY `parent_navigation_id_display_order` (`parent_navigation_id`,`display_order`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci"},"xf_navigation_type":{"count":3,"create":"CREATE TABLE `xf_navigation_type` (\n `navigation_type_id` varbinary(25) NOT NULL,\n `handler_class` varchar(100) NOT NULL,\n `display_order` int(10) unsigned NOT NULL DEFAULT 0,\n PRIMARY KEY (`navigation_type_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci"}},"portal_template":{"bytes":8623,"matches":[{"line":6,"text":" <section class=\"newfiPortal-hero\">"},{"line":7,"text":" <div class=\"newfiPortal-heroCopy\">"},{"line":8,"text":" <div class=\"newfiPortal-kicker\">Ньюфаундленды · знания · люди</div>"},{"line":9,"text":" <h1>Дом сообщества ньюфаундлендов</h1>"},{"line":10,"text":" <p>Обсуждения, практические материалы, события, фотографии и собаки сообщества — в одной точке входа.</p>"},{"line":11,"text":""},{"line":12,"text":" <div class=\"newfiPortal-actions\">"},{"line":13,"text":" <a class=\"button button--primary\" href=\"{{ link('forums') }}\">К обсуждениям</a>"},{"line":14,"text":" <a class=\"button\" href=\"{{ link('events') }}\">События</a>"},{"line":15,"text":" <a class=\"button\" href=\"{{ link('dogs') }}\">Собаки</a>"},{"line":16,"text":" </div>"},{"line":17,"text":" </div>"},{"line":18,"text":" </section>"},{"line":19,"text":""},{"line":20,"text":" <div class=\"newfiPortal-grid\">"},{"line":21,"text":" <xf:if is=\"$portal.forums.hasItems\"><section class=\"newfiPortal-card newfiPortal-card--wide\" data-portal-section=\"forums\">"},{"line":22,"text":" <header class=\"newfiPortal-cardHeader\">"},{"line":23,"text":" <div>"},{"line":24,"text":" <span class=\"newfiPortal-eyebrow\">Сообщество</span>"},{"line":25,"text":" <h2>Последние обсуждения</h2>"},{"line":26,"text":" </div>"},{"line":27,"text":" <a href=\"{{ link('forums') }}\">Все разделы</a>"},{"line":28,"text":" </header>"},{"line":29,"text":""},{"line":30,"text":" "},{"line":31,"text":" <div class=\"newfiPortal-list\">"},{"line":32,"text":" <xf:foreach loop=\"$portal.forums.items\" value=\"$thread\">"},{"line":33,"text":" <a class=\"newfiPortal-listItem\" href=\"{{ link('threads', $thread) }}\">"},{"line":34,"text":" <strong>{$thread.title}</strong>"},{"line":35,"text":" <span>{$thread.Forum.Node.title}</span>"},{"line":36,"text":" <small><xf:date time=\"$thread.last_post_date\" /></small>"},{"line":37,"text":" </a>"},{"line":38,"text":" </xf:foreach>"},{"line":39,"text":" </div>"},{"line":40,"text":" "},{"line":41,"text":" </section></xf:if>"},{"line":75,"text":"<xf:if is=\"$portal.resources.available\">"},{"line":76,"text":" <xf:if is=\"$portal.resources.hasItems\">"},{"line":77,"text":" <div class=\"newfiPortal-list\">"},{"line":78,"text":" <xf:foreach loop=\"$portal.resources.items\" value=\"$resource\">"},{"line":79,"text":" <a class=\"newfiPortal-listItem\" href=\"{{ link('resources', $resource) }}\">"},{"line":80,"text":" <strong>{$resource.title}</strong>"},{"line":81,"text":" <span>{$resource.tag_line}</span>"},{"line":82,"text":" <small><xf:date time=\"$resource.last_update\" /></small>"},{"line":83,"text":" </a>"},{"line":84,"text":" </xf:foreach>"},{"line":85,"text":" </div>"},{"line":86,"text":" <xf:else />"},{"line":87,"text":" <div class=\"newfiPortal-empty\">Проверенные материалы появятся здесь после публикации.</div>"},{"line":88,"text":" </xf:if>"},{"line":89,"text":" <a class=\"newfiPortal-textLink\" href=\"{{ link('resources') }}\">Открыть базу знаний</a>"},{"line":90,"text":" <xf:else />"},{"line":91,"text":" <div class=\"newfiPortal-locked\" data-portal-locked=\"resources\">"},{"line":92,"text":" База знаний доступна участникам с соответствующими правами."},{"line":93,"text":" </div>"},{"line":94,"text":" </xf:if>"},{"line":95,"text":" </section>"},{"line":96,"text":""},{"line":97,"text":" <xf:if is=\"$portal.events.hasItems\"><section class=\"newfiPortal-card\" data-portal-section=\"events\">"},{"line":98,"text":" <header class=\"newfiPortal-cardHeader\">"},{"line":99,"text":" <div>"},{"line":100,"text":" <span class=\"newfiPortal-eyebrow\">Календарь</span>"},{"line":101,"text":" <h2>Ближайшие события</h2>"},{"line":102,"text":" </div>"},{"line":103,"text":" <a href=\"{{ link('events') }}\">Все события</a>"},{"line":104,"text":" </header>"},{"line":105,"text":""},{"line":106,"text":" "},{"line":107,"text":" <div class=\"newfiPortal-list\">"},{"line":108,"text":" <xf:foreach loop=\"$portal.events.items\" value=\"$event\">"},{"line":109,"text":" <div class=\"newfiPortal-listItem newfiPortal-listItem--static\">"},{"line":110,"text":" <strong>{$event.title}</strong>"},{"line":111,"text":" <small><xf:date time=\"$event.starts_at\" /></small>"},{"line":112,"text":" </div>"},{"line":113,"text":" </xf:foreach>"},{"line":114,"text":" </div>"},{"line":115,"text":" "},{"line":116,"text":" </section></xf:if>"},{"line":120,"text":" <div>"},{"line":121,"text":" <span class=\"newfiPortal-eyebrow\">Сообщество</span>"},{"line":122,"text":" <h2>Наши собаки</h2>"},{"line":123,"text":" </div>"},{"line":124,"text":" <a href=\"{{ link('dogs') }}\">Все собаки</a>"},{"line":125,"text":" </header>"},{"line":126,"text":""},{"line":127,"text":" "},{"line":128,"text":" <div class=\"newfiPortal-list\">"},{"line":129,"text":" <xf:foreach loop=\"$portal.dogs.items\" value=\"$dog\">"},{"line":130,"text":" <div class=\"newfiPortal-listItem newfiPortal-listItem--static\">"},{"line":131,"text":" <strong><xf:if is=\"$dog.full_name\">{$dog.full_name}<xf:else />{$dog.name}</xf:if></strong>"},{"line":132,"text":" <xf:if is=\"$dog.city\"><span>{$dog.city}</span></xf:if>"},{"line":147,"text":" <xf:if is=\"$portal.media.available\">"},{"line":148,"text":" <xf:if is=\"$portal.media.hasItems\">"},{"line":149,"text":" <div class=\"newfiPortal-mediaList\">"},{"line":150,"text":" <xf:foreach loop=\"$portal.media.items\" value=\"$media\">"},{"line":151,"text":" <a class=\"newfiPortal-mediaItem\" href=\"{{ link('media', $media) }}\">"},{"line":152,"text":" <strong>{$media.title}</strong>"},{"line":153,"text":" <span>{$media.username}</span>"},{"line":154,"text":" <small><xf:date time=\"$media.media_date\" /></small>"},{"line":155,"text":" </a>"},{"line":156,"text":" </xf:foreach>"},{"line":157,"text":" </div>"},{"line":158,"text":" <xf:else />"},{"line":159,"text":" <div class=\"newfiPortal-empty\">Фотографии появятся здесь после публикации в галерее.</div>"},{"line":160,"text":" </xf:if>"},{"line":161,"text":" <a class=\"newfiPortal-textLink\" href=\"{{ link('media') }}\">Открыть галерею</a>"},{"line":162,"text":" <xf:else />"},{"line":163,"text":" <div class=\"newfiPortal-locked\" data-portal-locked=\"media\">"},{"line":164,"text":" Галерея доступна участникам с соответствующими правами."},{"line":165,"text":" </div>"},{"line":166,"text":" </xf:if>"},{"line":167,"text":" </section>"},{"line":168,"text":" </div>"},{"line":169,"text":""},{"line":172,"text":" <span class=\"newfiPortal-eyebrow\">НьюфДом</span>"},{"line":173,"text":" <h2>Полезное начинается с живого сообщества</h2>"},{"line":174,"text":" <p>Задайте вопрос, поделитесь опытом или добавьте материал в подходящий раздел.</p>"},{"line":175,"text":" </div>"},{"line":176,"text":" <a class=\"button button--primary\" href=\"{{ link('forums') }}\">Перейти к форуму</a>"},{"line":177,"text":" </section>"},{"line":178,"text":"</div>"},{"line":179,"text":""}],"sha256":"31100610adcf19b8a5df5eac88cc3ea1eed1e642ccd9232be082343af018e669","style_id":0,"template_id":1610},"schemas":{"xf_newfi_event":{"columns":[{"Collation":null,"Comment":"","Default":null,"Extra":"auto_increment","Field":"event_id","Key":"PRI","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"},{"Collation":"utf8mb4_general_ci","Comment":"","Default":null,"Extra":"","Field":"title","Key":"","Null":"NO","Privileges":"select,insert,update,references","Type":"varchar(100)"},{"Collation":null,"Comment":"","Default":null,"Extra":"","Field":"starts_at","Key":"MUL","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"},{"Collation":null,"Comment":"","Default":"draft","Extra":"","Field":"state","Key":"MUL","Null":"NO","Privileges":"select,insert,update,references","Type":"varbinary(25)"},{"Collation":null,"Comment":"","Default":null,"Extra":"","Field":"fingerprint","Key":"MUL","Null":"NO","Privileges":"select,insert,update,references","Type":"varbinary(64)"},{"Collation":null,"Comment":"","Default":null,"Extra":"","Field":"created_at","Key":"","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"},{"Collation":null,"Comment":"","Default":null,"Extra":"","Field":"updated_at","Key":"","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"}],"create":"CREATE TABLE `xf_newfi_event` (\n `event_id` int(10) unsigned NOT NULL AUTO_INCREMENT,\n `title` varchar(100) NOT NULL,\n `starts_at` int(10) unsigned NOT NULL,\n `state` varbinary(25) NOT NULL DEFAULT 'draft',\n `fingerprint` varbinary(64) NOT NULL,\n `created_at` int(10) unsigned NOT NULL,\n `updated_at` int(10) unsigned NOT NULL,\n PRIMARY KEY (`event_id`),\n KEY `starts_at` (`starts_at`),\n KEY `state` (`state`),\n KEY `fingerprint` (`fingerprint`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci","indexes":[{"Cardinality":0,"Collation":"A","Column_name":"event_id","Comment":"","Ignored":"NO","Index_comment":"","Index_type":"BTREE","Key_name":"PRIMARY","Non_unique":0,"Null":"","Packed":null,"Seq_in_index":1,"Sub_part":null,"Table":"xf_newfi_event"},{"Cardinality":0,"Collation":"A","Column_name":"starts_at","Comment":"","Ignored":"NO","Index_comment":"","Index_type":"BTREE","Key_name":"starts_at","Non_unique":1,"Null":"","Packed":null,"Seq_in_index":1,"Sub_part":null,"Table":"xf_newfi_event"},{"Cardinality":0,"Collation":"A","Column_name":"state","Comment":"","Ignored":"NO","Index_comment":"","Index_type":"BTREE","Key_name":"state","Non_unique":1,"Null":"","Packed":null,"Seq_in_index":1,"Sub_part":null,"Table":"xf_newfi_event"},{"Cardinality":0,"Collation":"A","Column_name":"fingerprint","Comment":"","Ignored":"NO","Index_comment":"","Index_type":"BTREE","Key_name":"fingerprint","Non_unique":1,"Null":"","Packed":null,"Seq_in_index":1,"Sub_part":null,"Table":"xf_newfi_event"}]},"xf_newfi_event_change":{"columns":[{"Collation":null,"Comment":"","Default":null,"Extra":"auto_increment","Field":"event_change_id","Key":"PRI","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"},{"Collation":null,"Comment":"","Default":null,"Extra":"","Field":"event_id","Key":"MUL","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"},{"Collation":null,"Comment":"","Default":null,"Extra":"","Field":"changed_at","Key":"","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"},{"Collation":"utf8mb4_general_ci","Comment":"","Default":null,"Extra":"","Field":"change_note","Key":"","Null":"NO","Privileges":"select,insert,update,references","Type":"text"}],"create":"CREATE TABLE `xf_newfi_event_change` (\n `event_change_id` int(10) unsigned NOT NULL AUTO_INCREMENT,\n `event_id` int(10) unsigned NOT NULL,\n `changed_at` int(10) unsigned NOT NULL,\n `change_note` text NOT NULL,\n PRIMARY KEY (`event_change_id`),\n KEY `event_id` (`event_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci","indexes":[{"Cardinality":0,"Collation":"A","Column_name":"event_change_id","Comment":"","Ignored":"NO","Index_comment":"","Index_type":"BTREE","Key_name":"PRIMARY","Non_unique":0,"Null":"","Packed":null,"Seq_in_index":1,"Sub_part":null,"Table":"xf_newfi_event_change"},{"Cardinality":0,"Collation":"A","Column_name":"event_id","Comment":"","Ignored":"NO","Index_comment":"","Index_type":"BTREE","Key_name":"event_id","Non_unique":1,"Null":"","Packed":null,"Seq_in_index":1,"Sub_part":null,"Table":"xf_newfi_event_change"}]},"xf_newfi_event_source":{"columns":[{"Collation":null,"Comment":"","Default":null,"Extra":"auto_increment","Field":"event_source_id","Key":"PRI","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"},{"Collation":null,"Comment":"","Default":null,"Extra":"","Field":"event_id","Key":"MUL","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"},{"Collation":"utf8mb4_general_ci","Comment":"","Default":null,"Extra":"","Field":"source_url","Key":"","Null":"NO","Privileges":"select,insert,update,references","Type":"varchar(500)"},{"Collation":null,"Comment":"","Default":null,"Extra":"","Field":"checked_at","Key":"","Null":"NO","Privileges":"select,insert,update,references","Type":"int(10) unsigned"}],"create":"CREATE TABLE `xf_newfi_event_source` (\n `event_source_id` int(10) unsigned NOT NULL AUTO_INCREMENT,\n `event_id` int(10) unsigned NOT NULL,\n `source_url` varchar(500) NOT NULL,\n `checked_at` int(10) unsigned NOT NULL,\n PRIMARY KEY (`event_source_id`),\n KEY `event_id` (`event_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci","indexes":[{"Cardinality":0,"Collation":"A","Column_name":"event_source_id","Comment":"","Ignored":"NO","Index_comment":"","Index_type":"BTREE","Key_name":"PRIMARY","Non_unique":0,"Null":"","Packed":null,"Seq_in_index":1,"Sub_part":null,"Table":"xf_newfi_event_source"},{"Cardinality":0,"Collation":"A","Column_name":"event_id","Comment":"","Ignored":"NO","Index_comment":"","Index_type":"BTREE","Key_name":"event_id","Non_unique":1,"Null":"","Packed":null,"Seq_in_index":1,"Sub_part":null,"Table":"xf_newfi_event_source"}]}}}}
NEWFI122R1_PUBLIC={"events_no_slash":{"http":"200","rc":0,"stderr":"","url":"https://newfi.ru/events"},"events_slash":{"http":"200","rc":0,"stderr":"","url":"https://newfi.ru/events/"},"portal":{"http":"200","rc":0,"stderr":"","url":"https://newfi.ru/"}}
NEWFI122R1_SAFE_REPORT={"changes_made":false,"decision":"PASS_EVENTS208_FOUNDATION_UI_AUDIT_CAPTURED","event_counts":{"xf_newfi_event":0,"xf_newfi_event_change":0,"xf_newfi_event_source":0},"event_templates":1,"git_head":"a13361297ba22f9745bb64aac4ed90849242955a","portal_template_sha":"31100610adcf19b8a5df5eac88cc3ea1eed1e642ccd9232be082343af018e669","public":{"events_no_slash":{"http":"200","rc":0,"stderr":"","url":"https://newfi.ru/events"},"events_slash":{"http":"200","rc":0,"stderr":"","url":"https://newfi.ru/events/"},"portal":{"http":"200","rc":0,"stderr":"","url":"https://newfi.ru/"}},"source_files":9}
NEWFI122R1_DECISION=PASS_EVENTS208_FOUNDATION_UI_AUDIT_CAPTURED
NEWFI122R1_NEXT_GATE=DESIGN_EVENTS208_FULL_UI_FROM_EXACT_SCHEMA
OUTPUT_END
CHAT_OUTPUT_END