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);
});
}
}