Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Не отображается гаджет... В чем косяк?

00 голосов
0
Друг, я снова со своими гаджетами. Добрый человек подсказал, но как-то не до конца...

Это файл 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>&nbsp;
<?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])
         &nb
спросил 22 Июнь, 13 от Yrys (220 баллов)

Ваш ответ

Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

Похожие вопросы

0 голосов
0 ответов
спросил 25 Дек, 13 от Klipa (100 баллов)
0 голосов
0 ответов
0 голосов
1 ответ
0 голосов
6 ответов
0 голосов
1 ответ