[QUOTE]Дмитрий Карпов написал:
[QUOTE] Михаил Овчинников написал:
Как быть? Неужели никто так и не нашёл ответ или просто лень запостить?[/QUOTE]В стандартном шаблоне этого компонента есть строчка [CODE] case "HTML":
[/CODE]на сколько я помню, именно внутри этой секции происходит формирование вывода поля с визуальным редактором. Так посмотрите как ниже обрабатывается обычное текстовое поле и сделайте по аналогии. Или просто удалите все после этой строчки до строчки [CODE] case "T": [/CODE]чтобы получилось
[CODE] case "HTML":
case "T": [/CODE][/QUOTE]
На самом деле это не всегда помогает.
Решение может быть следующее:
Кроме вышеназванных операций находим в /components/bitrix/iblock.element.add.form/.default/template.php
[CODE]
case "USER_TYPE":
for ($i = 0; $i<$inputNum; $i++)
{
if ($arParams["ID"] > 0 || count($arResult["ERRORS"]) > 0)
{
$value = intval($propertyID) > 0 ? $arResult["ELEMENT_PROPERTIES"][$propertyID][$i]["~VALUE"] : $arResult["ELEMENT"][$propertyID];
$description = intval($propertyID) > 0 ? $arResult["ELEMENT_PROPERTIES"][$propertyID][$i]["DESCRIPTION"] : "";
}
elseif ($i == 0)
{
$value = intval($propertyID) <= 0 ? "" : $arResult["PROPERTY_LIST_FULL"][$propertyID]["DEFAULT_VALUE"];
$description = "";
}
else
{
$value = "";
$description = "";
}
echo call_user_func_array($arResult["PROPERTY_LIST_FULL"][$propertyID]["GetPublicEditHTML"],
array(
$arResult["PROPERTY_LIST_FULL"][$propertyID],
array(
"VALUE" => $value,
"DESCRIPTION" => $description,
),
array(
"VALUE" => "PROPERTY[".$propertyID."][".$i."][VALUE]",
"DESCRIPTION" => "PROPERTY[".$propertyID."][".$i."][DESCRIPTION]",
"FORM_NAME"=>"iblock_add",
),
));
?><br /><?
}
break;[/CODE]
Удаляем это все, а к предложенным Дмитрием
[CODE]
case "HTML":
case "T":
[/CODE]
добавляем case "USER_TYPE":
и немного правим вывод, в результате принимающий следующий вид:
[CODE]case "USER_TYPE":
case "HTML":
case "T":
for ($i = 0; $i<$inputNum; $i++)
{
if ($arParams["ID"] > 0 || count($arResult["ERRORS"]) > 0)
{
$value = intval($propertyID) > 0 ? $arResult["ELEMENT_PROPERTIES"][$propertyID][$i]["VALUE"] : $arResult["ELEMENT"][$propertyID];
}
elseif ($i == 0)
{
$value = intval($propertyID) > 0 ? "" : $arResult["PROPERTY_LIST_FULL"][$propertyID]["DEFAULT_VALUE"];
}
else
{
$value = "";
}
if($arResult["PROPERTY_LIST_FULL"][$propertyID]["ROW_COUNT"] == 1){
$row = 10;
} else {
$row = $arResult["PROPERTY_LIST_FULL"][$propertyID]["ROW_COUNT"];
}
?>
<textarea cols="<?=$arResult["PROPERTY_LIST_FULL"][$propertyID]["COL_COUNT"]?>" rows="<?=$row?>" name="PROPERTY[<?=$propertyID?>][<?=$i?>]"><?=$value?></textarea><br /><br />
<?
}
break;[/CODE]
Конечно, данное решение, мягко говоря, не универсальное, но задачу на данный момент решает.
[QUOTE] Михаил Овчинников написал:
Как быть? Неужели никто так и не нашёл ответ или просто лень запостить?[/QUOTE]В стандартном шаблоне этого компонента есть строчка [CODE] case "HTML":
[/CODE]на сколько я помню, именно внутри этой секции происходит формирование вывода поля с визуальным редактором. Так посмотрите как ниже обрабатывается обычное текстовое поле и сделайте по аналогии. Или просто удалите все после этой строчки до строчки [CODE] case "T": [/CODE]чтобы получилось
[CODE] case "HTML":
case "T": [/CODE][/QUOTE]
На самом деле это не всегда помогает.
Решение может быть следующее:
Кроме вышеназванных операций находим в /components/bitrix/iblock.element.add.form/.default/template.php
[CODE]
case "USER_TYPE":
for ($i = 0; $i<$inputNum; $i++)
{
if ($arParams["ID"] > 0 || count($arResult["ERRORS"]) > 0)
{
$value = intval($propertyID) > 0 ? $arResult["ELEMENT_PROPERTIES"][$propertyID][$i]["~VALUE"] : $arResult["ELEMENT"][$propertyID];
$description = intval($propertyID) > 0 ? $arResult["ELEMENT_PROPERTIES"][$propertyID][$i]["DESCRIPTION"] : "";
}
elseif ($i == 0)
{
$value = intval($propertyID) <= 0 ? "" : $arResult["PROPERTY_LIST_FULL"][$propertyID]["DEFAULT_VALUE"];
$description = "";
}
else
{
$value = "";
$description = "";
}
echo call_user_func_array($arResult["PROPERTY_LIST_FULL"][$propertyID]["GetPublicEditHTML"],
array(
$arResult["PROPERTY_LIST_FULL"][$propertyID],
array(
"VALUE" => $value,
"DESCRIPTION" => $description,
),
array(
"VALUE" => "PROPERTY[".$propertyID."][".$i."][VALUE]",
"DESCRIPTION" => "PROPERTY[".$propertyID."][".$i."][DESCRIPTION]",
"FORM_NAME"=>"iblock_add",
),
));
?><br /><?
}
break;[/CODE]
Удаляем это все, а к предложенным Дмитрием
[CODE]
case "HTML":
case "T":
[/CODE]
добавляем case "USER_TYPE":
и немного правим вывод, в результате принимающий следующий вид:
[CODE]case "USER_TYPE":
case "HTML":
case "T":
for ($i = 0; $i<$inputNum; $i++)
{
if ($arParams["ID"] > 0 || count($arResult["ERRORS"]) > 0)
{
$value = intval($propertyID) > 0 ? $arResult["ELEMENT_PROPERTIES"][$propertyID][$i]["VALUE"] : $arResult["ELEMENT"][$propertyID];
}
elseif ($i == 0)
{
$value = intval($propertyID) > 0 ? "" : $arResult["PROPERTY_LIST_FULL"][$propertyID]["DEFAULT_VALUE"];
}
else
{
$value = "";
}
if($arResult["PROPERTY_LIST_FULL"][$propertyID]["ROW_COUNT"] == 1){
$row = 10;
} else {
$row = $arResult["PROPERTY_LIST_FULL"][$propertyID]["ROW_COUNT"];
}
?>
<textarea cols="<?=$arResult["PROPERTY_LIST_FULL"][$propertyID]["COL_COUNT"]?>" rows="<?=$row?>" name="PROPERTY[<?=$propertyID?>][<?=$i?>]"><?=$value?></textarea><br /><br />
<?
}
break;[/CODE]
Конечно, данное решение, мягко говоря, не универсальное, но задачу на данный момент решает.