Друг, я снова со своими гаджетами. Добрый человек подсказал, но как-то не до конца...
Это файл 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 не трогал вообще.
Помоги!