Поздравляю! Вы попали в архивный блог! Все новые материалы публикуются на hmdw.meX

Записи с тегом: bitrix

17
май 13

Bitrix:catalog.smart.filter где настраивать поля

Доброй ночи!

Пишу сей небольшой пост который возможно кому то сэкономит время на настройке сего компонента. Некоторое время я ломал голову над тем как же этот «Умный» фильтр настраивается и как туда добавить дополнительные поля - стандартные настройки для фильтра каталога на него мало того что не действуют, так стандартный фильтр при использовании «умного» нужно вовсе отключить.

Оказалось что catalog.smart.filter неразрывно связан с торговым каталогом и поэтому инфоблок по которому вы хотите производить фильтрацию должен быть торговым каталогом. Затем же для настройки просто идем в «Магазин» -> «Продукция» -> «Настройка каталога» и видим вот такую картину:

Думаю дальнейшие комментарии излишни. Удачи! =)

24
апр 13

bitrix:news.list в другом шаблоне

и неработающий фильтр!

Всем привет!

Пишу сей небольшой пост который надеюсь сэкономит кому-то 10-15 минут времени на поиск решения. общем ситуация такова:

1) Была задача вывести в детальном шаблоне новости отфильтрованные ссылки на другие новости

2) Для вывода списка решил воспользоваться компонентом news.list (хотя можно было проще ручками через GetList) код вызова которого я разместил в шаблоне news.detail

3) Прописал FILTER_NAME => "arrList" и в $arrList добавил массив с фильтром, но он отчего-то не заработал.

Оказалось что решение проблемы довольно простое - нужно объявить переменную $arrList глобальной. Вот пример рабочего кода запуска news.list с фильтром из шаблона другого компонента:

...
<?
global $arrList;
$arrList = array("!ID"=>$arResult["VARIABLES"]["ELEMENT_ID"]);
?>
<?$APPLICATION->IncludeComponent("bitrix:news.list", "spec-list", array(
         ...
	"FILTER_NAME" => "arrList",
...

Если возникнут вопросы - задавайте их прямо в комментариях, постараюсь ответить. Удачи!

11
апр 13

Битрикс. Forum.comments. Не указан тип сущности.

Или же «Неверный тип сущности»... Да да, такими супер информативными сообщениями радует нас порой компонент для прикручивания комментариев. Немного погуглив выяснил что нужные параметры которые от нас требует Битрикс называются: ENTITY_TYPE, ENTITY_ID и ENTITY_XML_ID.

Причем:

  1. В настройках компонента нету таких настроек (как это вообще возможно то???)
  2. По данному компоненту отсутствует документация.

В итоге за разъяснениями пришлось лезть в исходный код компонента:

/bitrix/components/bitrix/forum.comments/component.php где в первых строчках кода нашлась разгадка.

Прочитать полностью

16
фев 13

Битрикс. Корпоративный портал. Фильтрация списка сотрудников

Всем привет!

Не так давно после очередного планового обновления CMS Битрикс на корпоративном портале внезапно слетела фильтрация сотрудников по департаментам.

Реализована она была вот таким нехитрым кодом:

<?
$users_UF_DEPARTMENT = 510;
?>
<?$APPLICATION->IncludeComponent("bitrix:intranet.structure.list", "list1", array(
	...
	"FILTER_NAME" => "users",
	),
	false
);?>

Признаться честно я и раньше не доверял такому обозначению фильтра ($users_UF_DEPARTMENT), ну а теперь он и вовсе перестал работать.

Решение данной проблемы подсказала техподдержка 1С-Битрикс. Как оказалось нужно поменять всего пару символов в коде:

Прочитать полностью

14
фев 13

Битрикс. Выгрузка из 1С и отмена перезаписывания полей

Всем привет!

Наконец то дошли руки написать небольшой пост который возможно кому-то пригодится.

Итак, сразу к делу. Есть интернет-магазин работающий на Битрикс и синхронизирующийся в автоматическом режиме с 1С. Менеджерам заполняющим описания товаров намного удобнее заполнять описания через веб-интерфейс Битрикс т.к. там визуальный редактор и прочие блага цивилизации.

Но вот незадача, при очередной синхронизации с 1С описания товаров затираются описаниями оттуда (как правило пустыми). Для решения проблемы нужно исключить из выгрузки поля PREVIEW_TEXT и DETAIL_TEXT. Вот немного дописанное мной решение которое я обнаружил на просторах интернетов. Добавляем это в init.php

AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "DropPreviewText"); 
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", "DropPreviewText"); 
function DropPreviewText($arFields){
if (@$_REQUEST['mode']=='import') {
      unset($arFields['PREVIEW_TEXT']); 
      unset($arFields['PREVIEW_TEXT_TYPE']); 
      unset($arFields['DETAIL_TEXT']); 
      unset($arFields['DETAIL_TEXT_TYPE']); 
   }
}

Вкратце, в init.php мы перехватываем события OnBeforeIBlockElementUpdate и OnBeforeIBlockElementAdd и запускаем свою небольшую функцию удаляющую необходимые нам поля из массива с содержимым элемента из 1С.

В моем случае это PREVIEW_TEXT и DETAIl_TEXT. Теперь при синхронизации эти поля не переписываются.

Удачи! =)