Друг, я снова со своими гаджетами. Добрый человек подсказал, но как-то не до конца...
Это файл template.php из стандартного компонента bitrix:desktop. Я удалил "колонки" и убрал FOREACH и попытался создать место под гаджет через масив.
То есть замени во всем тексте $arGadget на arResult["GADGETS"][0] Попытался изменить на arResult["GADGETS"][$i] но ничего не изменилось: вместо гаджета выводятся только кнопки управления (закрыть, скрыть, настройки).
Где я допустил ошибку?
Начало изменений я отметил комментарием.
По идее все должно работать... RESULT_MODIFIER не трогал вообще.
Помоги!
Это файл template.php из стандартного компонента bitrix:desktop. Я удалил "колонки" и убрал FOREACH и попытался создать место под гаджет через масив.
То есть замени во всем тексте $arGadget на arResult["GADGETS"][0] Попытался изменить на arResult["GADGETS"][$i] но ничего не изменилось: вместо гаджета выводятся только кнопки управления (закрыть, скрыть, настройки).
Где я допустил ошибку?
Начало изменений я отметил комментарием.
| Код |
|---|
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
if(!defined("BX_GADGET_DEFAULT"))
{
define("BX_GADGET_DEFAULT", true);
?>
<script>
var updateURL = '<?=htmlspecialcharsback($arResult['UPD_URL'])?>';
var langGDError1 = '<?=GetMessage("CMDESKTOP_TDEF_ERR1")?>';
var langGDError2 = '<?=GetMessage("CMDESKTOP_TDEF_ERR2")?>';
var langGDConfirm1 = '<?=GetMessage("CMDESKTOP_TDEF_CONF")?>';
var langGDConfirmUser = '<?=GetMessage("CMDESKTOP_TDEF_CONF_USER")?>';
var langGDConfirmGroup = '<?=GetMessage("CMDESKTOP_TDEF_CONF_GROUP")?>';
var langGDCancel = "<?echo GetMessage("CMDESKTOP_TDEF_CANCEL")?>";
</script>
<?if($arResult["PERMISSION"]>"R"):?>
<script type="text/javascript" src="/bitrix/components/bitrix/desktop/script.js?v=<?=filemtime($_SERVER['DOCUMENT_ROOT'].'/bitrix/components/bitrix/desktop/script.js');?>"></script>
<?endif?>
<div id="antiselect" style="height:100%; width:100%; left: 0; top: 0; position: absolute; -moz-user-select: none !important; display: none; background-color:#FFFFFF; -moz-opacity: 0.01;"></div>
<?
}
?>
<?if($arResult["PERMISSION"]>"R"):?>
<?
$allGD = Array();
foreach($arResult['ALL_GADGETS'] as $gd)
{
$allGD[] = Array(
'ID' => $gd["ID"],
'TEXT' =>
'<div style="text-align: left;">'.($gd['ICON1']?'<img src="'.($gd['ICON']).'" align="left">':'').
'<b>'.(htmlspecialchars($gd['NAME'])).'</b><br>'.(htmlspecialchars($gd['DESCRIPTION'])).'</div>',
);
}
?>
<script>
arGDGroups = <?=CUtil::PhpToJSObject($arResult["GROUPS"])?>;
new BXGadget('<?=$arResult["ID"]?>', <?=CUtil::PhpToJSObject($allGD)?>);
</script>
<div class="bx-gd-buttons">
<div class="bx-gd-button bx-gd-add" onclick="getGadgetHolder('<?=AddSlashes($arResult["ID"])?>').ShowAddGDMenu(this);">
<span class="bx-gd-l"></span>
<span class="bx-gd-c"><span class="bx-gd-text"><a href="javascript:void(0)"><?echo GetMessage("CMDESKTOP_TDEF_ADD")?></a></span></span>
<span class="bx-gd-r"></span>
</div>
<?if($arResult["PERMISSION"]>"W"):?>
<?
if ($arParams["MODE"] == "SU")
$mode = "'SU'";
elseif ($arParams["MODE"] == "SG")
$mode = "'SG'";
else
$mode = "";
?>
<div class="bx-gd-button bx-gd-setdef" onclick="getGadgetHolder('<?=AddSlashes($arResult["ID"])?>').SetForAll(<?=$mode?>);">
<span class="bx-gd-l"></span>
<span class="bx-gd-c"><span class="bx-gd-text"><a href="javascript:void(0)"><?echo GetMessage("CMDESKTOP_TDEF_SET")?></a></span></span>
<span class="bx-gd-r"></span>
</div>
<?endif?>
<div class="bx-gd-button bx-gd-clear" onclick="getGadgetHolder('<?=AddSlashes($arResult["ID"])?>').ClearUserSettings();">
<span class="bx-gd-l"></span>
<span class="bx-gd-c"><span class="bx-gd-text"><a href="javascript:void(0)"><?echo GetMessage("CMDESKTOP_TDEF_CLEAR")?></a></span></span>
<span class="bx-gd-r"></span>
</div>
</div>
<br>
<?endif;?>
<form action="<?=POST_FORM_ACTION_URI?>" method="POST" id="GDHolderForm_<?=$arResult["ID"]?>">
<input type="hidden" name="holderid" value="<?=$arResult["ID"]?>">
<input type="hidden" name="gid" value="0">
<input type="hidden" name="action" value="">
</form>
<!-- Выше этого текста идет стандартный код. Ниже этого текста начинается место под гаджет, но место полноценного гаджета выводиться только кнопки управления (закрыть, скрыть, настройки). Пытаюсь добавить гаджет - ничего не меняется. При позвращении старого кода гаджет добавлен. В чем ошибка? -->
<div class="gadget-place">
<?
$bChangable = true;
if (
!$GLOBALS["USER"]->IsAdmin()
&& array_key_exists("GADGETS_FIXED", $arParams)
&& is_array($arParams["GADGETS_FIXED"])
&& in_array($arResult["GADGETS"][0]["GADGET_ID"], $arParams["GADGETS_FIXED"])
&& array_key_exists("CAN_BE_FIXED", $arResult["GADGETS"][0])
&& $arResult["GADGETS"][0]["CAN_BE_FIXED"]
)
$bChangable = false;
?>
<table id="t<?=$arResult["GADGETS"][0]["ID"]?>" class="data-table-gadget<?=($arResult["GADGETS"][0]["HIDED"]?' gdhided':'')?>"><tr><td><div class="gdparent">
<div class="gdcorn"></div>
<?if($arResult["PERMISSION"]>"R"):?>
<div class="gdheader" style="cursor:move;" onmousedown="return getGadgetHolder('<?=AddSlashes($arResult["ID"])?>').DragStart('<?=$arResult["GADGETS"][0]["ID"]?>', event)">
<?
if ($bChangable)
{
?><a class="gdremove" href="javascript:void(0)" onclick="return getGadgetHolder('<?=AddSlashes($arResult["ID"])?>').Delete('<?=$arResult["GADGETS"][0]["ID"]?>');" title="<?=GetMessage("CMDESKTOP_TDEF_DELETE")?>">╳</a><?
}
?>
<a class="gdhide" href="javascript:void(0)" onclick="return getGadgetHolder('<?=AddSlashes($arResult["ID"])?>').Hide('<?=$arResult["GADGETS"][0]["ID"]?>', this);" title="<?=GetMessage("CMDESKTOP_TDEF_HIDE")?>">↑</a>
<?
if ($bChangable)
{
?><a class="gdsettings<?=($arResult["GADGETS"][0]["NOPARAMS"]?' gdnoparams':'')?>" href="javascript:void(0)" onclick="return getGadgetHolder('<?=AddSlashes($arResult["ID"])?>').ShowSettings('<?=$arResult["GADGETS"][0]["ID"]?>');" title="<?=GetMessage("CMDESKTOP_TDEF_SETTINGS")?>">↓</a><?
}
?>
<?else:?>
<div id="<?=$arResult["GADGETS"][0]["ID"]?>" class="gdheader">
<?endif?>
<?=$arResult["GADGETS"][0]["TITLE"]?>
</div>
<div class="gdoptions" style="display:none" id="dset<?=$arResult["GADGETS"][0]["ID"]?>"></div>
<div class="gdcontent" id="dgd<?=$arResult["GADGETS"][0]["ID"]?>">
<?=$arResult["GADGETS"][0]["CONTENT"]?>
</div>
<div style="position:relative;"><div class="gdbcorn"></div></div>
</div></td></tr></table>
<div style="display:none; border:1px #404040 dashed; margin-bottom:8px;" id="d<?=$arResult["GADGETS"][0]["ID"]?>"></div>
</div>
|
По идее все должно работать... RESULT_MODIFIER не трогал вообще.
Помоги!