XF 2.1 Недоразумение в создании плагина

Статус
В этой теме нельзя размещать новые ответы.
Версия XenForo
2.1.5a

Katsuro

Проверенные
Сообщения
144
Решения
1
Реакции
47
Баллы
1,730
Хочу написать плагин, который даст возможность определённой группе возможность одобрять пользователей. Написал вроде что-то (читал код Colored username everywhere), но он не хочет работать. Мне кажется, я что-то не так правильно понимаю в создании подобного. Файлы плагина:
Код:
ApprovalForGroups\addon.json
ApprovalForGroups\XF\Entity\User.php
ApprovalForGroups\XF\Pub\Controller\ApprovalQueue.php
Установил его, но он не хочет мутить делишки. ?
User.php:
PHP:
<?php

namespace ApprovalForGroups\XF\Entity;

class User extends AFG_User
{   
    public function canApproveRejectUser()
    {
        return ( $this->is_moderator && $this->hasPermission('general', 'approveRejectUser') ) || ( $this->isMemberOf(8) );
    }
}

ApprovalQueue.php:
PHP:
<?php

namespace ApprovalForGroups\XF\Pub\Controller;

use XF\Mvc\ParameterBag;

class ApprovalQueue extends AFG_Approval
{    
    protected function preDispatchController($action, ParameterBag $params)
    {
    }
}
 
Это что?
Читали про расширения классов в XF?
Увидел подобное в плагине, о котором я написал выше.
Katsuro,

Прочитал о директории _data, добавил туда следующий код:
XML:
<?xml version="1.0" encoding="UTF-8"?>

-<class_extensions>

<extension active="1" execute_order="10" to_class="ApprovalForGroups\XF\Entity\User" from_class="XF\Entity\User"/>

<extension active="1" execute_order="10" to_class="ApprovalForGroups\XF\Pub\Controller\ApprovalQueue" from_class="ApprovalForGroups\XF\Pub\Controller\ApprovalQueue"/>

</class_extensions>

И везде классы поменял на относительно нормальные, это тоже не помогло.
 
Katsuro, вы неправильно расширяете классы, перечитайте мануал)
А в чём прикол, у меня нет раздела разработчика, режим разработчика включён 1575053607123.png

Если перейти в то пишет, что он не включён
1575053893607.png

UPD:
$config['development']['enabled'] = true;
Нужно в теме исправить текст.
 
Последнее редактирование:
Частично разобрался, теперь всё относительно нормально работает.
Только тут есть одно но: не могу создать условие "если пользователь не модератор и не является участником 8 группы)
PHP:
class ApprovalQueue extends XFCP_ApprovalQueue
{   
    protected function preDispatchController($action, ParameterBag $params)
    {
        if (!\XF::visitor()->is_moderator && !\XF::visitor()->isMemberOf(8))
        {
            throw $this->exception($this->noPermission());
        }
    }
}

всё равно сообщает о недоступности раздела
 
Вот тут еще есть полезная штука для теста аддонов
 
UPD:
$config['development']['enabled'] = true;
Нужно в теме исправить текст.
Мануал писался ещё во времена XF 2.0.х, когда появление этого раздела в админке было завязано именно на дебаге. В 2.1.х переделали нормально на девелопменте.
Текст поправил, спасибо за замечание.
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу