XF 2.0 Структуры, связи, и передача параметров при расширении класса создания темы

Элионт

Проверенные
Сообщения
36
Реакции
20
Баллы
1,705
Доброе время суток. Собрал учебный плагин согласно руководству.
Попытался доработать чтобы указывалось кто "звезданул" (featured) тему / с какого форума она и столкнулся с проблемой что при создании треда просится указать необходимые параметры. Как их передать креатору?
Код:
class Creator extends XFCP_Creator
{
    protected $featureThread;

    public function setFeatureThread($featureThread)
    {
        $this->featureThread = $featureThread;
    }
    
    protected function _save()
    {
        $thread = parent::_save();

        if ($this->featureThread && $thread->discussion_state == 'visible')
        {
            /** @var \Demo\Portal\Entity\FeaturedThread $featuredThread */
            $featuredThread = $thread->getRelationOrDefault('FeaturedThread');
            $featuredThread->save();

            $thread->fastUpdate('demo_portal_featured', true);
        }     
        
        return $thread;
    }
}
thread_id креатор там уже видимо и так знает, дата имеет значение по умолчанию, а вот как выцепить передать юзера и ноду в этой системе?
В смысле откуда именно приходят данные в креатор чтобы добавить туда эти два.
Код:
class FeaturedThread extends \XF\Mvc\Entity\Entity
{
    public static function getStructure(Structure $structure)
    {
        $structure->table = 'xf_demo_portal_featured_thread';
        $structure->shortName = 'XF:FeaturedThread';
        $structure->primaryKey = 'thread_id';
        $structure->columns = [
            'thread_id' => ['type' => self::UINT, 'required' => true],
            'user_id' => ['type' => self::UINT, 'required' => true],
            'node_id' => ['type' => self::UINT, 'required' => true],
            'featured_date' => ['type' => self::UINT, 'default' => time()]
        ];
        $structure->getters = [];
        $structure->relations = [
            'Thread' => [
                'entity' => 'XF:Thread',
                'type' => self::TO_ONE,
                'conditions' => 'thread_id',
                'primary' => true
            ],
        ];

        return $structure;
    }
}
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу