Kevin RG
Active member
Hello XenForo Community
I would like add reaction system of xenforo into addon Social Group, i have create addon for extend the extension, but i have a problem and i don't see a solution about my error.
I have this error :
I have create the content type :
In spoiler you can see my files Reaction\Group and Extended Entity.
Thanks you in advance for your help !
Best regards,
Kevin
I would like add reaction system of xenforo into addon Social Group, i have create addon for extend the extension, but i have a problem and i don't see a solution about my error.
I have this error :
Code:
LogicException: Unknown relation or alias Reactions accessed on xf_tl_group in src/XF/Mvc/Entity/Finder.php at line 753
XF\Mvc\Entity\Finder->join() in src/XF/Mvc/Entity/Finder.php at line 746
XF\Mvc\Entity\Finder->join() in src/XF/Mvc/Entity/Finder.php at line 644
XF\Mvc\Entity\Finder->with() in src/XF/Mvc/Entity/Manager.php at line 147
XF\Mvc\Entity\Manager->find() in src/addons/Truonglv/Groups/ControllerPlugin/Assertion.php at line 59
Truonglv\Groups\ControllerPlugin\Assertion->assertGroupViewable() in src/addons/Induste/SGEnhencement/XF/Pub/Controller/Group.php at line 43
Induste\SGEnhencement\XF\Pub\Controller\Group->actionReactions() in src/XF/Mvc/Dispatcher.php at line 321
XF\Mvc\Dispatcher->dispatchClass() in src/XF/Mvc/Dispatcher.php at line 248
XF\Mvc\Dispatcher->dispatchFromMatch() in src/XF/Mvc/Dispatcher.php at line 100
XF\Mvc\Dispatcher->dispatchLoop() in src/XF/Mvc/Dispatcher.php at line 50
XF\Mvc\Dispatcher->run() in src/XF/App.php at line 2178
XF\App->run() in src/XF.php at line 390
XF::runApp() in index.php at line 20
I have create the content type :
In spoiler you can see my files Reaction\Group and Extended Entity.
PHP:
<?php
namespace Induste\SGEnhencement\Reaction;
use Truonglv\Groups\App;
use XF\Mvc\Entity\Entity;
use XF\Reaction\AbstractHandler;
class Group extends AbstractHandler
{
public function reactionsCounted(Entity $entity)
{
if (!($entity instanceof \Truonglv\Groups\Entity\Group)) {
return false;
}
return $entity->isVisible();
}
public function getEntityWith()
{
return ['full'];
}
public function getTemplateName()
{
return 'public:tlg_reaction_item_group';
}
}
PHP:
<?php
namespace Induste\SGEnhencement\XF\Entity;
use XF\Mvc\Entity\Structure;
use XF\Entity\ReactionTrait;
class Group extends \Truonglv\Groups\Entity\Group
{
use ReactionTrait;
public static function getStructure(Structure $structure)
{
$structure = parent::getStructure($structure);
$structure->columns['reaction_score'] = ['type' => self::UINT, 'default' => 0];
$structure->columns['reactions'] = ['type' => self::JSON_ARRAY, 'nullable' => true];
$structure->columns['reaction_users'] = ['type' => self::JSON_ARRAY];
$structure->behaviors = [
'XF:Reactable' => ['stateField' => 'state'],
];
$structure->withAliases = [
'full' => [
'User',
'User.Profile',
'User.Privacy',
function () {
if (\XF::options()->showMessageOnlineStatus) {
return 'User.Activity';
}
return null;
},
function () {
$userId = \XF::visitor()->user_id;
if ($userId) {
return [
'Reactions|' . $userId
];
}
return null;
}
],
'api' => [
'User',
'User.api',
'User.Profile'
]
];
return $structure;
}
public function canReact(&$error = null)
{
$visitor = \XF::visitor();
if (!$visitor->user_id) {
return false;
}
if (!$this->getContent()) {
return false;
}
if ($visitor->user_id === $this->user_id) {
$error = \XF::phraseDeferred('reacting_to_your_own_content_is_considered_cheating');
return false;
}
return true;
}
}
?>
Thanks you in advance for your help !
Best regards,
Kevin