use Bitrix\Main\Web\Uri;
IncludeModuleLangFile(__FILE__);
class CFinder
{
public function __construct()
{
}
public static function GetFinderAppearance($arParams, $arPanels)
{
$arResult['PROVIDER'] = CUtil::AddSlashes($arParams['PROVIDER']);
$bselectFirstFilledPanel = true;
foreach($arPanels as $panel)
if (isset($panel['SELECTED']) && ($panel['SELECTED'] == 'Y' || $panel['SELECTED'] == true))
$bselectFirstFilledPanel = false;
$tabs = '';
$elements = '';
$bsearchable = false;
$tabCount = count($arPanels);
foreach($arPanels as $panel)
{
if (!empty($panel['ELEMENTS']) && $bselectFirstFilledPanel)
{
$panel['SELECTED'] = true;
$bselectFirstFilledPanel = false;
}
$bsearch = false;
if (isset($panel['SEARCH']) && ($panel['SEARCH'] == 'Y' || $panel['SEARCH'] == true))
$bsearch = $bsearchable = true;
$bselect = false;
if (isset($panel['SELECTED']) && ($panel['SELECTED'] == 'Y' || $panel['SELECTED'] == true))
$bselect = true;
$panel['NAME'] = htmlspecialcharsEx($panel['NAME']);
if ($tabCount == 1)
{
$tabs .= ''.
$panel['NAME'].
'';
}
else
{
$tabs .= ''.
$panel['NAME'].
'';
}
$elements .= '
'.$panel['ELEMENTS'].'
';
}
$html = ''.
($bsearchable? '
': '').
'
'.$tabs.'
'.
'
'.
'
'.
''.
''.
$elements.
' | '.
'
'.
'
'.
'
'.
'
';
return $html;
}
public static function GetFinderItem($arParams, $arItem)
{
$html = '';
switch ($arParams['TYPE']) {
case 1:
$html = self::GetFinderItemType1($arParams, $arItem);
break;
case 2:
$html = self::GetFinderItemType2($arParams, $arItem);
break;
case 3:
$html = self::GetFinderItemType3($arParams, $arItem);
break;
case 4:
$html = self::GetFinderItemType4($arParams, $arItem);
break;
case 5:
$html = self::GetFinderItemType5($arParams, $arItem);
break;
case 'structure':
$html = self::GetFinderItemStructure($arParams, $arItem);
break;
case 'structure-item':
$html = self::GetFinderItemStructureItem($arParams, $arItem);
break;
case 'text':
$html = self::GetFinderItemText($arParams, $arItem);
break;
}
return $html;
}
private static function GetFinderItemType1($arParams, $arItem)
{
$arResult['PROVIDER'] = CUtil::AddSlashes($arParams['PROVIDER']);
$arResult['ID'] = CUtil::AddSlashes($arItem['ID']);
$arResult['NAME'] = htmlspecialcharsEx($arItem['NAME']);
$html = ''.
''.$arResult['NAME'].'
'.
'';
return $html;
}
private static function GetFinderItemType2($arParams, $arItem)
{
$arResult['PROVIDER'] = CUtil::AddSlashes($arParams['PROVIDER']);
$arResult['ID'] = CUtil::AddSlashes($arItem['ID']);
$arResult['NAME'] = htmlspecialcharsEx($arItem['NAME']);
$html = '
'.$arResult['NAME'].'
';
return $html;
}
private static function GetFinderItemType3($arParams, $arItem)
{
$arResult['PROVIDER'] = CUtil::AddSlashes($arParams['PROVIDER']);
$arResult['ID'] = CUtil::AddSlashes($arItem['ID']);
$arResult['AVATAR'] = CUtil::AddSlashes($arItem['AVATAR'] ?? '');
$arResult['NAME'] = htmlspecialcharsEx($arItem['NAME'] ?? '');
$arResult['DESC'] = htmlspecialcharsEx($arItem['DESC'] ?? '');
if (isset($arItem['SUBMENU']) && !empty($arItem['SUBMENU']))
{
}
$html = '
'.$arResult['NAME'].'
'.$arResult['DESC'].'
';
return $html;
}
private static function GetFinderItemType4($arParams, $arItem)
{
$arResult['PROVIDER'] = CUtil::AddSlashes($arParams['PROVIDER']);
$arResult['ID'] = CUtil::AddSlashes($arItem['ID']);
$arResult['AVATAR'] = CUtil::AddSlashes($arItem['AVATAR']);
$arResult['NAME'] = htmlspecialcharsEx($arItem['NAME']);
$arResult['DESC'] = htmlspecialcharsEx($arItem['DESC']);
$bopened = isset($arItem['OPEN']) && ($arItem['OPEN'] == 'Y' || $arItem['OPEN'] == true)? true: false;
$html = '
'.$arResult['NAME'].'
'.$arResult['DESC'].'
';
foreach($arItem['CHECKBOX'] as $template => $name)
{
$arCheck = Array(
'ID' => str_replace("#ID#", $arResult['ID'], $template),
'NAME' => $name,
'DESC' => $arResult['NAME'].': '.$name,
);
$html .= self::GetFinderItemCheckbox($arParams, $arCheck);
}
$html .= '
';
if ($bopened)
$html .= '';
return $html;
}
private static function GetFinderItemType5($arParams, $arItem)
{
$arResult['PROVIDER'] = CUtil::AddSlashes($arParams['PROVIDER']);
$arResult['ID'] = CUtil::AddSlashes($arItem['ID']);
$arResult['AVATAR'] = CUtil::AddSlashes($arItem['AVATAR']);
$arResult['NAME'] = htmlspecialcharsEx($arItem['NAME']);
$arResult['DESC'] = htmlspecialcharsEx($arItem['DESC']);
$html = '
'.$arResult['NAME'].'
'.$arResult['DESC'].'
';
return $html;
}
private static function GetFinderItemText($arParams, $arItem)
{
$arResult['TEXT'] = htmlspecialcharsEx($arItem['TEXT']);
$html = ''.$arResult['TEXT'].'
';
return $html;
}
private static function GetFinderItemStructure($arParams, $arItem)
{
$html = '';
foreach($arItem as $value)
{
if ($value['TYPE'] == 'category')
{
$html .= self::GetFinderItemStructureCategory($arParams, $value);
$html .= '';
foreach($value['CHECKBOX'] as $template => $name)
{
$arCheck = Array(
'ID' => str_replace("#ID#", $value['ID'], $template),
'NAME' => $name,
'DESC' => $value['NAME'].': '.$name,
);
$html .= self::GetFinderItemCheckbox($arParams, $arCheck);
}
$html .= self::GetFinderItemStructure($arParams, (!empty($value['CHILD'])? $value['CHILD']: Array()));
$html .= '
';
}
}
if (!isset($value['HIDE_ITEM']) || $value['HIDE_ITEM'] == false)
{
$html .= '';
$bEmptyItem = true;
foreach($arItem as $value)
{
if ($value['TYPE'] == 'item')
{
$html .= self::GetFinderItemStructureItem($arParams, $value);
$bEmptyItem = false;
}
}
if ($bEmptyItem)
$html .= '
'.GetMessage('FINDER_PLEASE_WAIT').'
';
$html .= '
';
}
return $html;
}
private static function GetFinderItemStructureCategory($arParams, $arItem)
{
$arResult['PROVIDER'] = CUtil::AddSlashes($arParams['PROVIDER']);
$arResult['ID'] = CUtil::AddSlashes($arItem['ID']);
$arResult['NAME'] = htmlspecialcharsEx($arItem['NAME']);
$bopened = isset($arItem['OPEN']) && ($arItem['OPEN'] == 'Y' || $arItem['OPEN'] == true)? true: false;
$html = '';
if ($bopened)
$html .= '';
return $html;
}
private static function GetFinderItemCheckbox($arParams, $arItem)
{
$arResult['PROVIDER'] = CUtil::AddSlashes($arParams['PROVIDER']);
$arResult['ID'] = CUtil::AddSlashes($arItem['ID']);
$arResult['NAME'] = htmlspecialcharsEx($arItem['NAME']);
$arResult['DESC'] = CUtil::AddSlashes(htmlspecialcharsbx($arItem['DESC']));
$html = '
'.$arResult['NAME'].'
';
return $html;
}
private static function GetFinderItemStructureItem($arParams, $arItem)
{
$arResult['PROVIDER'] = CUtil::AddSlashes($arParams['PROVIDER']);
$arResult['ID'] = CUtil::AddSlashes($arItem['ID']);
$arResult['AVATAR'] = CUtil::AddSlashes($arItem['AVATAR']);
$arResult['NAME'] = htmlspecialcharsEx($arItem['NAME']);
$arResult['DESC'] = empty($arItem['DESC'])? ' ': htmlspecialcharsEx($arItem['DESC']);
$html = '
'.$arResult['NAME'].'
'.$arResult['DESC'].'
';
return $html;
}
}
?>