Элионт
Проверенные
- Сообщения
- 36
- Реакции
- 20
- Баллы
- 1,705
Доброе время суток. Собрал учебный плагин согласно
Попытался доработать чтобы указывалось кто "звезданул" (featured) тему / с какого форума она и столкнулся с проблемой что при создании треда просится указать необходимые параметры. Как их передать креатору?
thread_id креатор там уже видимо и так знает, дата имеет значение по умолчанию, а вот как выцепить передать юзера и ноду в этой системе?
В смысле откуда именно приходят данные в креатор чтобы добавить туда эти два.
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
руководству.Попытался доработать чтобы указывалось кто "звезданул" (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;
}
}
В смысле откуда именно приходят данные в креатор чтобы добавить туда эти два.
Код:
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;
}
}