Cmodule includemodule iblock не работает

if (CModule::IncludeModule(«iblock»)):

1) Модуль может быть удален
2) Битрикс может быть загружен в safe_mode, там есть только fileman&kernel
3) Ну и вправду, вдруг не подключится? =)
4) До инициализации модуля в автозагрузчике нет классов модуля, т.е. при вызове \Bitrix\Iblock\ElementTable::getById() получите fatal error.

В догонку. Чтобы не проверять постоянно условие включения этого модуля, я обычно прописываю его в init.php, т.к. представить функционал без молуля инфоблоков весьма сложно.
Но нужно иметь в виду, что теоретически такой функционал действительно может быть. Кроме того, некто может эту строку из init.php ислючить, и тогда всё рухнет, и т.п. Т.е. данное действите тоже должно быть осознанным, а не правилом в каждом проекте.

Коллеги, прошу поправить меня, если я жестоко не прав.

Цитата
Юрий Удовиченко написал:
В догонку. Чтобы не проверять постоянно условие включения этого модуля, я обычно прописываю его в init.php, т.к. представить функционал без молуля инфоблоков весьма сложно.
Но нужно иметь в виду, что теоретически такой функционал действительно может быть. Кроме того, некто может эту строку из init.php ислючить, и тогда всё рухнет, и т.п. Т.е. данное действите тоже должно быть осознанным, а не правилом в каждом проекте.

Коллеги, прошу поправить меня, если я жестоко не прав.

Цитата
Вячеслав Большагин написал:
Мне кажется лучше его подключать самому, потому что он не всегда нужен, а если он не нужен то зачем его подключать? Тратить на это ресурсы?

Ресурс довольно небольшой, в виде нескольких классов, которые нужны почти везде. Если, конечно у вас много своих наработок, ajax-запросов и т.п. — тогда конечно. Об этом я и упомянул выше, сказав, что это не должно быть правилом.

Вообще, если поразмыслить, любой компонент подключает модуль автоматически. А одним из главным правилом битрикса является — всё должно быть в компонентах. Соответственно вопрос должен отпадать сам собой

Источник

if (CModule::IncludeModule(«iblock»)):

1) Модуль может быть удален
2) Битрикс может быть загружен в safe_mode, там есть только fileman&kernel
3) Ну и вправду, вдруг не подключится? =)
4) До инициализации модуля в автозагрузчике нет классов модуля, т.е. при вызове \Bitrix\Iblock\ElementTable::getById() получите fatal error.

В догонку. Чтобы не проверять постоянно условие включения этого модуля, я обычно прописываю его в init.php, т.к. представить функционал без молуля инфоблоков весьма сложно.
Но нужно иметь в виду, что теоретически такой функционал действительно может быть. Кроме того, некто может эту строку из init.php ислючить, и тогда всё рухнет, и т.п. Т.е. данное действите тоже должно быть осознанным, а не правилом в каждом проекте.

Коллеги, прошу поправить меня, если я жестоко не прав.

Цитата
Юрий Удовиченко написал:
В догонку. Чтобы не проверять постоянно условие включения этого модуля, я обычно прописываю его в init.php, т.к. представить функционал без молуля инфоблоков весьма сложно.
Но нужно иметь в виду, что теоретически такой функционал действительно может быть. Кроме того, некто может эту строку из init.php ислючить, и тогда всё рухнет, и т.п. Т.е. данное действите тоже должно быть осознанным, а не правилом в каждом проекте.

Коллеги, прошу поправить меня, если я жестоко не прав.

Цитата
Вячеслав Большагин написал:
Мне кажется лучше его подключать самому, потому что он не всегда нужен, а если он не нужен то зачем его подключать? Тратить на это ресурсы?

Ресурс довольно небольшой, в виде нескольких классов, которые нужны почти везде. Если, конечно у вас много своих наработок, ajax-запросов и т.п. — тогда конечно. Об этом я и упомянул выше, сказав, что это не должно быть правилом.

Вообще, если поразмыслить, любой компонент подключает модуль автоматически. А одним из главным правилом битрикса является — всё должно быть в компонентах. Соответственно вопрос должен отпадать сам собой

Источник

Проблемы с внутренними ссылками

Добрый день.
Сайт работал успешно до момента добавления второго и установки на него купленного шаблона.
Как выяснилось были неверно указаны корневые папки сервера в настройках сайта.

В итоге запустились нормально и основной сайт и дополнительный, но наблюдается следующая проблема.

На основном сайте при попытке зайти в каталог товаров можно увидеть ссылку вида ru/catalogsublimatsiya_i_termoperenos — перейдя по ней можно наблюдать ошибку 404. если ручками привести ее к виду .ru/catalog/sublimatsiya_i_termoperenos/ она заходит туда куда надо.
Второй пример .ru/catalog/rezaki_diskovye/catalogrezaki_diskovye_bulros приводим к виду .ru/catalog/rezaki_diskovye_bulros/ заходит нормально.

На втором сайте ссылки вида ru/catalog/ работают, позиции видно, когда пытаюсь попасть на любую позицию внутри присваивает им ссылки вида ru/catalog/catalogdivany но тут подобрать руками правильный вариант сходу не вышло.

Собственно вопрос, куда смотреть, где вероятнее всего проблема и метод ее решения?
Заранее спасибо.

Цитата
Артём Сербин написал:
Смотрите ЧПУ у Вас наверно не хватает слеша «/», сейчас наверно так — /catalog, должно быть так — /catalog/Либо в компоненте либо в настройке инфоблока.

Денис Сон, установили шаблон Factory

а где именно находятся настройки слэшей и если дело не в настройках компоненты или инфоблока, то куда надо будет копать?

Цитата
Игорь Акулич написал:
установили шаблон Factory

А, не, мой клиент устанавливал шаблон Хамелеон.

Значит проблема не в решении.

Сначала нужно сделать подготовительные работы:

  • проверить настройки нужного инфоблока, чтобы шаблоны ссылок были верными,
  • затем сделать проверку сайта чтобы она не показывала ошибок,
  • проверить монитором качества чтобы в модуле инфоблоков не было измененных файлов ядра,
  • сбросить кеш,
  • проверить, отдает ли CIBlockSection::GetList() правильные или неправильные ссылки.

Далее я уже не успел разобраться (как и говорил, клиент развернул бэкап). Но я бы попробовал еще установить все стабильные обновления Битрикса, если не установлены, временно отключить htaccess и urlrewrite.php (после этого также проверить). И затем если проблема останется — проводить отладку, т.е. смотреть где выполняется CIBlockElement::GetList() и делать проверки там, затем выше по коду, затем еще выше. Работка нескучная, но может быть сложной. В итоге, как часто бывает, может оказаться что все работает правильно, а где-то какая-то настройка (или недонастройка) все ломает.

измененные файлы ядра есть и даты вроде бы совпадают со временем установки:

Источник

Как в админском модуле подключить модуль.

В общем проблема слудующая.Есть модуль расширяющий функционал инфоблоков, а именно переносит элемент из одного ИБ в Другой.
Но при этом цены он не переносит.
Хочу его дописать.
И вот вся загвоздка в том что не пашет этот код CModule::IncludeModule(‘catalog’);
И следовательно класс СPrice неопределенн.

Как подключить этот класс?

ну вообще да. заходит.

if(CModule::IncludeModule(‘catalog’)) <
$res = CPrice::GetList(
array(),
array(
«PRODUCT_ID» => $ID,
)
);
if ($arr = $res->Fetch())
<
CCatalogProduct::Add($PRODUCT_ID);
$arr[‘PRODUCT_ID’]=$PRODUCT_ID;
CPrice::Add($arr);
>
>
В строке CPrice::Add($arr); ошибка. не пойму что не так.

Цитата
kudinsasha пишет:
включай вывод ошибок в пхп и гледи что не так

Говорю же проблемный скрипт аяксом выполняется

Цитата
MyIEpenza пишет:
addmessage2log

Чувак.
Проверь наличие класса cprice и ccatalogpoduct. class_exists
и запиши по рузульттам проверки слово «класс подключен» или «класс не подключен».
добавь в лог $ID
добавь в лог $PRODUCT_ID
добавь в лог $arr

если не умеешь отлаживать скрипты, почитай про отладку (тестирование) как про шаг разработки ПО в целом
—————
Ты ленивый, жесть — CPrice::Add

Цитата
Возвращает идентификатор добавленной цены в случае успешного сохранения и false — в противном случае. Для получения детальной информации об ошибке следует вызвать $APPLICATION->GetException().
Цитата
Алексей Гребнев пишет:
Ты ленивый, жесть

Спасибо! Учел, исправляюсь.
Вот какая ошибка при добавлении цены
2012-05-22 14:51:23 — main — File: /home/technora/public_html/tr/bitrix/modules/catalog/mysql/p ­rice.php
Line: 35 MySql Query Error: INS ERT INTO b_catalog_price(`QUANTITY_TO`, `QUANTITY_FROM`, `TIMESTAMP_X`, `CURRENCY`, `PRICE`, `CATALOG_GROUP_ID`, `PRODUCT_ID`, `ID`) VAL UES( NULL , NULL , ‘21.05.2012 17:55:55’, ‘RUB’, ‘110’, ‘1’, ‘2063’, ‘737’) [Duplicate entry ‘737’ for key ‘PRIMARY’]

Duplicate entry ‘737’ for key ‘PRIMARY’ — беда вылечилась unset($arr[‘ID’]);

Источник

Для разработчиков

Описание

Модуль Информационные блоки — мощный и в то же время гибкий механизм для хранения и выборки информации различными способами. API модуля состоит из нескольких высокоуровневых функций для выборки данных в публичном разделе сайта и набора классов с низкоуровневыми методами для более специализированной работы.

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

Для получения данных при показе в публичном разделе сайта можно пользоваться функциями с простыми параметрами и предустановленными фильтрами. Эти функции выбирают по умолчанию те значения, которые подходят для места выборки, а именно только активные, привязанные к текущему сайту, подходящие по правам доступа и т.п.

Вся работа с датами через API (вставка, выборка, фильтры и т.п.) производится в формате текущего сайта или, если в административной части, в формате текущего языка.

Публичные функции и возвращаемые значения

Метод Описание С версии
GetIBlockList Возвращает список информационных блоков по фильтру. 3.0.5
GetIBlock Возвращает информационный блок по заданному коду. 3.0.5
GetIBlockElementListEx Возвращает список элементов по фильтру. 3.0.5
GetIBlockElementList Возвращает список элементов из определённого информационного блока. 3.0.5
GetIBlockElement Возвращает элемент по заданному коду. 3.0.5
GetIBlockSectionList Возвращает список папок из определённого информационного блока. 3.0.5
GetIBlockSection Возвращает раздел по заданному коду. 3.0.5

Если ваша задача более специфична и публичных функций недостаточно, или необходимо не только выбрать, но и изменить данные, то необходимо воспользоваться набором классов для работы с объектами модуля информационных блоков.

Классы модуля информационных блоков

Класс Описание С версии
CIBlock Класс для работы с информационными блоками. 3.0.3
CIBlockCMLExport Класс для экспорта данных инфоблока в xml-формате. 6.5.0
CIBlockCMLImport Класс для импорта данных инфоблока в xml-формате. 6.5.0
CIBlockElement Класс для работы с элементами информационных блоков. 3.0.5
CIBlockFormatProperties 5.9.0
CIBlockPriceTools 5.9.0
CIBlockProperty класс для работы со свойствами информационных блоков. 3.0.3
CIBlockPropertyEnum Класс для работы с вариантами значений для свойств типа «список». 3.1.3
CIBlockResult Вспомогательный класс для работы с объектами результатов выборок. 3.0.5
CIBlockRSS Класс для работы с RSS лентами. 3.0.14
CIBlockSection Класс для работы с группами информационных блоков. 3.0.4
CIBlockType Класс для работы с типами информационных блоков. 3.1.3
CIBlockXMLFile Класс для работы с файлами XML. 6.5.0
Пользовательские свойства Позволяют изменять представление (формы ввода и т.п.) стандартных свойств расширяя их возможности. 5.1.0
_CIBElement Вспомогательный класс для работы с объектом выборки элемента. 3.1.3

Компоненты 2.0

Модуль включает в себя следующие Компоненты 2.0:

Компоненты модуля
Название Имя в пространстве имен bitrix Описание
Новости
Новости (комплексный компонент) news Позволяет создать новостной раздел на сайте.
Календарь news.calendar Служит для формирования и вывода календаря новостей или событий.
Новость детально news.detail Осуществляет вывод детального описания новости.
Все новости news.index Выводит новости из различных инфоблоков.
Лента news.line Осуществляет вывод списка элементов инфоблоков с датой и заголовком со ссылкой на страницу с подробной информацией.
Список новостей news.list Выводит список новостей из одного информационного блока.
Фотогалерея
Фотогалерея (комплексный компонент) photo Позволяет получить полнофункциональную фотогалерею, создавая физически только одну страницу.
Фотография детально photo.detail Выводит детальную информацию по фотографии.
Случайное фото photo.random Служит для показа одной произвольной фотографии.
Фотографии раздела photo.section Выводит все фотографии из выбранного раздела.
Разделы с TOP’ом фотографий photo.sections.top Служит для вывода TOP’а фотографий, сгруппированных по разделам.
Фотогалерея 2.0
Фотогалерея 2.0 (комплексный компонент) photogallery Позволяет получить полнофункциональную фотогалерею, создавая физически только одну страницу.
Фото photogallery.detail Выводит детальную информацию по фотографии.
Фото (комментарии) photogallery.detail.comment Служит для создания комментариев к фотографии.
Фото (редактирование) photogallery.detail.edit Служит для редактирования свойств фотографии.
Фото (список) photogallery.detail.list Выводит список фотографий.
Список фото со слайдером photogallery.detail.list.ex Выводит список фотографий во всплывающем окне со слайдером и комментариями.
Фотогалерея (редактирование) photogallery.gallery.edit Выводит форму редактирования параметров фотогалереи пользователя.
Фотогалерея (список) photogallery.gallery.list Выводит список фотогалерей пользователя.
Фотогалерея (шаблоны) photogallery.interface Подключает библиотеку вспомогательных шаблонов. Компонент ничего не выводит.
Flash-слайдшоу (Не поддерживается с версии 15.0.0) photogallery.imagerotator Циклически проигрывает фотографии из фотогалереи.
Альбом photogallery.section Выводит полную информацию об одном альбоме.
Альбом (редактирование) photogallery.section.edit Позволяет отредактировать данные альбома: изменить название, дату создания, ввести описание, ограничить доступ к альбому по паролю.
Альбом (редактирование обложки) photogallery.section.edit.icon Служит для редактирования обложки альбома.
Альбом (список) photogallery.section.list Выводит список альбомов с информацией о количестве фотографий, вложенных альбомов в каждом и ссылками на просмотр содержимого альбомов.
Фото (загрузка) photogallery.upload Служит для загрузки фотографии.
Панель photogallery.user Выводит информацию о галерее пользователя.
Фотогалерея 2.0 (многопользовательская) (комплексный компонент) photogallery_user Позволяет получить полнофункциональную многопользовательскую фотогалерею, создавая физически только одну страницу.
Каталог
Каталог (комплексный компонент) catalog Осуществляет вывод полного каталога товаров из определенного инфоблока.
Список сравниваемых элементов каталога catalog.compare.list Выводит список сравниваемых элементов каталога в виде небольшой таблицы.
Таблица сравнения catalog.compare.result Выводит таблицу сравниваемых элементов каталога.
Элемент каталога детально catalog.element Выводит детальную информацию по элементу каталога.
Фильтр по элементам catalog.filter Выводит форму фильтра для фильтрации элементов информационых блоков.
Список связанных элементов catalog.link.list Выводит список элементов, связанных с заданным.
Список информационных блоков заданного типа catalog.main Выводит список всех информационных блоков заданного типа.
Элементы раздела catalog.section Выводит список элементов раздела с указанным набором свойств.
Структура разделов catalog.section.list Выводит список разделов инфоблока с указанным количеством элементов в каждом разделе.
Разделы с top’ом элементов catalog.sections.top Выводит Top элементов сгруппированных по разделам; элементы выводятся в таблице.
Top элементов каталога catalog.top Выводит в таблице Top элементов из всех разделов в соответствии с заданной сортировкой (используется как правило на главной странице сайта).
RSS
RSS новости (экспорт) rss.out Предназначен для создания страницы, которая отдает выбранные новости вашего сайта в формате RSS.
RSS новости (импорт) rss.show Предназначен для импорта новостей с другого сайта.
Добавление элементов
Добавление элементов инфоблока (комплексный компонент) iblock.element.add Осуществляет вывод списка элементов указанного инфоблока, добавление/редактирование элементов и их удаление в зависимости от прав пользователя.
Форма добавления / редактирования iblock.element.add.form Осуществляет вывод формы создания (редактирования) элемента указанного информационного блока.
Список своих элементов iblock.element.add.list Осуществляет вывод списка доступных пользователю элементов указанного инфоблока, ссылок Добавить, Редактировать, Удалить.
Инфоблоки
Голосование iblock.vote Реализует возможность голосования для пользователей.
Универсальные списки
Универсальные списки lists Позволяет вести полнофункциональную работу с универсальными списками, создавая физически только одну страницу.
Списки lists.lists Выводит таблицу универсальных списков, доступных для просмотра и изменения.
Список lists.list Выводит разделы и элементы универсального списка с возможностью навигации и редактирования.
Разделы списка lists.sections Позволяет удалить и изменить разделы универсального списка.
Редактирование элемента lists.element.edit Выводит форму редактирования элемента списка.
Настройки списка lists.list.edit Показывает форму настроек универсального списка.
Поля списка lists.fields Показывает поля универсального списка и позволяет их редактировать.
Настройки поля списка lists.field.edit Показывает форму настройки поля универсального списка.
Навигационная цепочка lists.element.navchain Добавляет к выводу обычного компонента Навигационная цепочка (bitrix:breadcrumb) элемент списка.

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

Источник

Читайте также:  Компенсация отпуска если сотрудник не работал
Оцените статью