- Модуль: documentgenerator
- Путь к файлу: ~/bitrix/modules/documentgenerator/lib/model/template.php
- Класс: BitrixDocumentGeneratorModelTemplateTable
- Вызов: TemplateTable::prepareClassNameFilter
static function prepareClassNameFilter(
string $className,
?int $userId = null,
$value = ' ',
bool $activeOnly = true
): ConditionTree
{
$filterProvider = $className;
if (is_a($className, Filterable::class, true))
{
/** @var Filterable $provider */
$provider = DataProviderManager::getInstance()->getDataProvider($className, $value, [
'isLightMode' => true,
'noSubstitution' => true,
]);
if ($provider)
{
$filterProvider = $provider->getFilterString();
}
}
$filter = MainEntityQuery::filter()
->where('IS_DELETED', 'N')
;
$filterProvider = mb_strtolower($filterProvider);
if (mb_strpos($filterProvider, '%'))
{
$filterProvider = str_replace('\', '\\', $filterProvider);
$filter->whereLike('PROVIDER.PROVIDER', $filterProvider);
}
else
{
$filter->where('PROVIDER.PROVIDER', $filterProvider);
}
if ($activeOnly)
{
$filter->where('ACTIVE', 'Y');
}
if ($userId > 0)
{
$filter->where(Driver::getInstance()->getUserPermissions($userId)->getFilterForRelatedTemplateList());
}
return $filter;
}