XF 2.0 Использование данных из mysql на форуме xenforo?

Версия XenForo
2.x

wenstony

Проверенные
Сообщения
37
Решения
1
Реакции
1
Баллы
705
Есть ли готовое решение для создания xenforo entity из бд?
Создав дополнительное поле в таблице mysql или полностью новую таблицу использовать их в шаблонах форума?

Может есть какой-то плагин, я пытался читать документацию, но если есть решение проще, то я лучше воспользуюсь им, чем потрачу 2 года на её разбор
 
Может есть какой-то плагин, я пытался читать документацию, но если есть решение проще, то я лучше воспользуюсь им, чем потрачу 2 года на её разбор
Вы сначала изложите детально свои мысли. В том числе конкретно напишите, что у вас есть и чего вы хотите добиться
 
Вы сначала изложите детально свои мысли. В том числе конкретно напишите, что у вас есть и чего вы хотите добиться
Мне нужно использовать свои данные из базы данных. Например, в столбце xf_user создаю новую ячейку и использую её на форуме в шаблонах.

dbtech credits может создавать новые колонки в таблицах и использовать их, при этом название колонки можно менять. Может можно как-то создавать так-же просто колонки в нужных таблицах и использовать их
1725210345933.png
 
Например, в столбце xf_user создаю новую ячейку и использую её на форуме в шаблонах.
Через систему обработчиков событий, если без доп логики и самое простое решение.
Но я бы лучше посмотрел в другую сторону. Дополнительные поля например.
 
Может можно как-то создавать так-же просто колонки в нужных таблицах и использовать их
Если вы думаете, что там это просто сделано, то вы заблуждаетесь. Мягко говоря, это ебейший костыль в костыле

Дополнительные поля использовать посложнее, если нужно взаимодействие с БД напрямую откуда-то извне. А так, расширить класс User и на это все. В доке есть описание расширения классов и пример. Да и можно взять любой плагин, посмотреть как в нем происходит расширение класса User и сделать по аналогии
 
правильнее всего сделать свой аддон, полностью можно
вот мои краткие заметки для твоей задачи
Код:
php cmd.php xf-addon:create
(убедись что Demo\Portal в моих заметках, будет изменено на add-on id который ты ввел в предыдущем шаге)

Код:
$config['development']['enabled'] = true;
$config['development']['defaultAddOn'] = 'Demo\Portal';

Код:
<?php

namespace Demo\Portal;

use XF\AddOn\AbstractSetup;
use XF\AddOn\StepRunnerInstallTrait;
use XF\AddOn\StepRunnerUninstallTrait;
use XF\AddOn\StepRunnerUpgradeTrait;

class Setup extends AbstractSetup
{
       use StepRunnerInstallTrait;
       use StepRunnerUpgradeTrait;
       use StepRunnerUninstallTrait;

       public function installStep1()
       {
           
              $this->alterTable('xf_user', function (Alter $table)
              {
                     $table->addColumn('coins', 'int')->setDefault(0)->after('is_banned');
              });
       }
}

Код:
<?php
namespace Demo\Portal;
use XF\Mvc\Entity\Entity;

class Listener
{
       public static function userEntityStructure(\XF\Mvc\Entity\Manager $em, \XF\Mvc\Entity\Structure &$structure)
       {
              $structure->columns['coins'] = ['type' => Entity::INT, 'default' => 0];
       }
}

Код:
Listen to event: entity_structure
Event hint: XF\Entity\User
Execute callback: \Demo\Portal\Listener :: userEntityStructure
Description: XF\Entity\User

Код:
php cmd.php xf-addon:build-release Demo/Portal
(все готово, теперь ты можешь использовать свою новую колонку в шаблонах или плагинах)
{$xf.visitor.coins}
\XF::visitor()->coins;

это вовсе не сложно, разобравшись один раз потом будет гораздо легче. надеюсь я смог помочь.
 
Последнее редактирование:
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу