View file MMO-Hide-2.3.4/upload/src/addons/MMO/Hide/BbCode/Provider/CustomFunctionProvider.php

File size: 902B
<?php

namespace MMO\Hide\BbCode\Provider;

use Symfony\Component\ExpressionLanguage\ExpressionFunction;
use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface;

class CustomFunctionProvider implements ExpressionFunctionProviderInterface
{
    public function getFunctions(): array
    {
        return [
            $this->isMemberOfFunction(),
            ExpressionFunction::fromPhp('ceil'),
            ExpressionFunction::fromPhp('floor')
        ];
    }

    private function isMemberOfFunction(): ExpressionFunction
    {
        return new ExpressionFunction('isMemberOf', function ($userGroupIds) {
            $groupIds = \implode(',', $userGroupIds);
            return \sprintf('isMemberOf(%s)', $groupIds);
        }, function ($arguments, ...$userGroupId) {
            return \XF::visitor()->isMemberOf($userGroupId);
        });
    }
}