- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/classes/general/subelement.php
- Класс: CAdminSubListRow
- Вызов: CAdminSubListRow::Display
public function Display()
{
$sDefAction = $sDefTitle = "";
if (!$this->bEditMode)
{
if (!empty($this->link))
{
if (true == $this->boolBX)
$sDefAction = $this->pList->getRowAction($this->link);
else
$sDefAction = "BX.adminPanel.Redirect([], '".CUtil::JSEscape($this->link)."', event);";
$sDefTitle = $this->title;
}
else
{
foreach ($this->aActions as $action)
if ($action["DEFAULT"] == true)
{
if (true == $this->boolBX)
$sDefAction = $this->pList->getRowAction(CUtil::addslashes($action["ACTION"]));
else
$sDefAction = $action["ACTION"]
? htmlspecialcharsbx($action["ACTION"])
: "BX.adminPanel.Redirect([], '".CUtil::JSEscape($action["LINK"])."', event)"
;
$sDefTitle = (!empty($action["TITLE"])? $action["TITLE"]:$action["TEXT"]);
break;
}
}
$sDefAction = htmlspecialcharsbx($sDefAction);
$sDefTitle = htmlspecialcharsbx($sDefTitle);
}
$sMenuItems = '';
if(!empty($this->aActions))
$sMenuItems = htmlspecialcharsbx(CAdminPopup::PhpToJavaScript($this->aActions));
?>
aFeatures["footer"] == true? ' footer':'')?>=$this->bEditMode?' adm-table-row-active' : ''?>"=($sMenuItems <> "" ? ' oncontextmenu="return '.$sMenuItems.';"':'');?>=($sDefAction <> ""? ' ondblclick="'.$sDefAction.'"'.(!empty($sDefTitle)? ' title="'.GetMessage("admin_lib_list_double_click").' '.$sDefTitle.'"':''):'')?>>
if (!empty($this->pList->arActions) || $this->pList->bCanBeEdited):
$check_id = RandString(5);
?>
id."_".$check_id;?>" value="=$this->id?>" autocomplete="off" title="=GetMessage("admin_lib_list_check")?>"=$this->bReadOnly? ' disabled="disabled"':''?>=$this->bEditMode ? ' checked="checked" disabled="disabled"' : ''?> />
endif;
if($this->pList->bShowActions):
if(!empty($this->aActions)):
?>
">
else:
?>
endif;
endif;
end($this->pList->aVisibleHeaders);
$last_id = key($this->pList->aVisibleHeaders);
reset($this->pList->aVisibleHeaders);
$bVarsFromForm = ($this->bEditMode && is_array($this->pList->arUpdateErrorIDs) && in_array($this->id, $this->pList->arUpdateErrorIDs));
foreach($this->pList->aVisibleHeaders as $id=>$header_props)
{
$field = $this->aFields[$id] ?? [];
if ($this->bEditMode && isset($field["edit"]))
{
if ($bVarsFromForm && isset($_REQUEST["FIELDS"]))
{
$val = $_REQUEST["FIELDS"][$this->id][$id] ?? '';
}
else
{
$val = $this->arRes[$id] ?? '';
}
$val_old = $this->arRes[$id] ?? '';
echo '';
if(is_array($val_old))
{
foreach($val_old as $k=>$v)
echo '';
}
else
{
echo '';
}
switch($field["edit"]["type"])
{
case "checkbox":
echo '';
echo '';
break;
case "select":
echo '';
break;
case "input":
if(!$field["edit"]["attributes"]["size"])
$field["edit"]["attributes"]["size"] = "10";
echo '__AttrGen($field["edit"]["attributes"]).' name="FIELDS['.htmlspecialcharsbx($this->id).']['.htmlspecialcharsbx($id).']" value="'.htmlspecialcharsbx($val).'">';
break;
case "calendar":
if(!$field["edit"]["attributes"]["size"])
$field["edit"]["attributes"]["size"] = "10";
echo '__AttrGen($field["edit"]["attributes"]).' name="FIELDS['.htmlspecialcharsbx($this->id).']['.htmlspecialcharsbx($id).']" value="'.htmlspecialcharsbx($val).'">';
echo CAdminCalendar::Calendar(
'FIELDS['.htmlspecialcharsbx($this->id).']['.htmlspecialcharsbx($id).']',
'',
'',
$field['edit']['useTime']
).'';
break;
case "file":
echo CFileInput::Show(
'FIELDS['.htmlspecialcharsbx($this->id).']['.htmlspecialcharsbx($id).']',
$val,
$field["edit"]["showInfo"],
$field["edit"]["inputs"]
);
break;
default:
echo $field["edit"]['value'];
}
echo ' ';
}
else
{
$val = '';
if (isset($this->arRes[$id]))
{
if(is_string($this->arRes[$id]))
$val = trim($this->arRes[$id]);
else
$val = $this->arRes[$id];
}
if(isset($field["view"]))
{
switch($field["view"]["type"])
{
case "checkbox":
if($val == 'Y' || $val === true)
$val = htmlspecialcharsex(GetMessage("admin_lib_list_yes"));
else
$val = htmlspecialcharsex(GetMessage("admin_lib_list_no"));
break;
case "select":
if($field["edit"]["values"][$val])
$val = htmlspecialcharsex($field["edit"]["values"][$val]);
else
$val = htmlspecialcharsex($val);
break;
case "file":
if ($val > 0)
$val = CFileInput::Show(
'NO_FIELDS['.htmlspecialcharsbx($this->id).']['.htmlspecialcharsbx($id).']',
$val,
$field["view"]["showInfo"],
$field["view"]["inputs"]
);
else
$val = '';
break;
case "html":
$val = $field["view"]['value'];
break;
default:
$val = htmlspecialcharsex($val);
break;
}
}
else
{
$val = htmlspecialcharsex($val);
}
echo '';
echo ((string)$val <> ""? $val: ' ');
if(isset($field["edit"]) && $field["edit"]["type"] == "calendar")
CAdminCalendar::ShowScript();
echo ' ';
}
}
?>
}