VKengine Лицензии Установка Мануал
Телефон +7 (916) 478-23-45
Функция Get_News_By_Id

function Get_News_By_Id(
$block_id, //Номер инфоблока
$id, //Количество элементов на страницу
$properties="" //Фильтр
);
Что делает функция
Для успешной работы функции должны быть заданы следующие параметры:
$block_id - Номер инфоблока, из которого нам требуется получить элемент.
$id - Номер элемента.
$properties - Фильтр, указывающий, разрешён ли просмотр элемента. Параметр является СТРОКОЙ, в отличие от функции Get_News, где этот параметр является массивом. Строка $properties, если только она не пустая, подставляется в sql-запрос в виде WHERE id=$id AND $properties. По умолчанию условие не задано, то есть выведен будет любой элемент, в том числе и неактивный.

Функция возвращает NULL (если элемент не найден или не подходит под фильтр) либо массив $arResult следующей структуры:
Подмассивы $arResult["id"], $arResult["name"], $arResult["type"], $arResult["name_rus"], $arResult["order2"], $arResult["list"].
В каждом из подмассивов, кроме $arResult["list"], поля пронумерованы по порядку их следования в базе данных. Соответственно, можно быть уверенным, что данные $arResult["id"][$i], $arResult["name"][$i], $arResult["type"][$i] и т.д. относятся к одному и тому же полю.
В подмассиве $arResult["id"] находятся номера полей в таблице ПРЕФИКСтАБЛИЦ_reg_fields.
В подмассиве $arResult["name"] находятся названия полей (английские, которые используются в базе данных).
В подмассиве $arResult["type"] находятся типы полей (английские).
В подмассиве $arResult["name_rus"] находятся названия полей (русские, которые видны в меню).
В подмассиве $arResult["order2"] находится порядок вывода полей для новости подробно в админке.
В подмассиве $arResult["list"] находятся данные текущего элемента. Массив содержит следующие поля:
$arResult["list"]["id"] - идентификатор элемента в таблице ПРЕФИКСтАБЛИЦ_blocks_ИДЕНТИФИКАТОРбЛОКА.
$arResult["list"]["active"] - показатель активности элемента (1 - активен, 0 - неактивен).
$arResult["list"]["parent_id"] - номер инфоблока, в котором находится элемент. Каждый элемент приписан к своему (только одному!) инфоблоку внутри папки. Поэтому если функция Get_News_By_Id вызывается от инфоблока, который является папкой, то этот элемент массива будет равен номеру инфоблока, который наследует от родительской папки и в котором лежит данный элемент.
$arResult["list"][ИМЯпОЛЯ] - для значений всех полей, кроме полей "привязка к элементу раздела", "привязка к элементу любого раздела", привязка к разделу.
Внимание! Значение поля типа "Да/нет" указывается как "Да" либо "Нет", а не как "1"/"0" (хотя в базе данных sql хранятся именно 1 и 0).
$arResult["list"][ИМЯпОЛЯ], [ИМЯпОЛЯ_id], [ИМЯпОЛЯ_b], [ИМЯпОЛЯ_b_id] - для значений полей "привязка к элементу раздела". В первом из них хранится название элемента, к привязанный к данному; во втором - номер элемента, привязанного к данному; в третьем - русское название инфоблока привязанного элемента, в четвёртом - номер инфоблока, в котором хранится привязанный элемент.
$arResult["list"][ИМЯпОЛЯ_b], [ИМЯпОЛЯ_b_id] - для значений полей "привязка к элементу раздела". В первом из них хранится русское название блока, во втором - номер блока, к которому привязан данный элемент.
$arResult["list"][ИМЯпОЛЯ_b], [ИМЯпОЛЯ_b_id], [ИМЯпОЛЯ_i], [ИМЯпОЛЯ_i_id] - для значений полей "привязка к элементу любого раздела". В первом из них хранится русское название блока, во втором - номер блока, в третьем - название элемента, в четвёртом - номер элемента, к которому привязан данный элемент.
Подробности работы функции
Функция работает следующим образом.
Сначала функция приводит переданные ей $block_id и $id к типу integer (число), чтобы исключить возможность взлома запроса.
После этого функция получает данные о блоке и делает запрос к таблице с соответствующим именем, ищет по id=$id (AND $properties, если $properties не пусто).
Если запрос не даёт результата, функция возвращает NULL.
Далее функция получает список полей текущего блока из таблицы ПРЕФИКСтАБЛИЦ_reg_fields, упорядоченный по order2 (порядок для элемента детально).
Далее массив $arResult заполняется указанным выше образом.
В конце своей работы функция возвращает массив $arResult.
Файл, содержащий функцию
engine/controllers/blocks/blocks.php

Valid HTML 4.01 Strict Valid CSS!