Функции

GPropertyTable::GetColumnFilter

Создает строку для фильтрации по столбцам таблицы.

Параметры функции

  • $column_name = "" - Идентификатор столбца, по которому осуществляется фильтрация.
  • $value = "" - Значение ячейки таблицы для данного столбца. Если значение содержит знаки "%" (означает любое количество любых символов), то необходимо в третьем параметре $arTableColumns указать порядок столбцов таблицы (иначе поиск может быть неточным).
  • $arTableColumns = false - Необязательное. Массив идентификаторов столбцов таблицы. Порядок должен соответствовать порядку столбцов в настройках свойства. Данный параметр необходим только при поиске подстроки (если параметр $value содердит "%").

Возвращаемое значение

Функция возвращает строку для фильтрации, которую можно использовать, например, в таких функциях, как CIBlockElement::GetList, CIBlockSection::GetList, CUser::GetList и др.

Пример 1

// Фильтрация по точному совпадению по столбцу таблицы с идентификатором "days"

if (CModule::IncludeModule("iblock") && CModule::IncludeModule("grain.tables")) {

	$rsElements = CIBlockElement::GetList(
		Array("SORT"=>"ASC","NAME"=>"ASC"),
		Array(
			"IBLOCK_ID"=>3,
			"ACTIVE"=>"Y",
			"PROPERTY_worktime" => GPropertyTable::GetColumnFilter("days","Пн-Пт")
		),
		false,
		false,
		Array("ID","NAME")
	);

	while($arElement=$rsElements->GetNext()) {
		echo "<pre>"; print_r($arElement); echo "</pre>";
	}

}

Пример 2

// Фильтрация по подстроке "Вт" в столбце "days" в таблице с 2 столбцами с идентификаторами "days","time"

if (CModule::IncludeModule("iblock") && CModule::IncludeModule("grain.tables")) {

	$rsElements = CIBlockElement::GetList(
		Array("SORT"=>"ASC","NAME"=>"ASC"),
		Array(
			"IBLOCK_ID"=>3,
			"ACTIVE"=>"Y",
			"PROPERTY_worktime" => GPropertyTable::GetColumnFilter("days","%Вт%",Array("days","time"))
		),
		false,
		false,
		Array("ID","NAME")
	);

	while($arElement=$rsElements->GetNext()) {
		echo "<pre>"; print_r($arElement); echo "</pre>";
	}

}

Пример 3

// Выборка пользователей по подстроке "абв" в столбце "col1", в свойстве-таблице "UF_TABLE" с тремя столбцами с идентификаторами "col1","col2","col3"
if (CModule::IncludeModule("grain.tables")) {

	$rsUsers = CUser::GetList(
		($by="NAME"),
		($order="ASC"),
		Array(
			"ACTIVE"=>"Y",
			"UF_TABLE" => GPropertyTable::GetColumnFilter("col1","%абв%",Array("col1","col2","col3"))
		)
	);

	while($arUser=$rsUsers->GetNext()) {
		echo "<pre>"; print_r($arUser); echo "</pre>";
	}

}

Примечание: если Вы изменяли порядок столбцов таблицы, то чтобы фильтрация заработала, необходимо будет пересохранить все элементы
Примечание: функция добавлена в версии модуля 2.0

Компоненты

Таблица (grain:table.view)

Выводит таблицу. Существует 2 стандартных шаблона компонента - ".default" и "admin" - для публичной и административной части соответственно. В шаблоне для публичной части используется серая цветовая гамма.

Пример подключения

// выводим таблицу с помощью компонента в шаблоне 
$GLOBALS["APPLICATION"]->IncludeComponent(
	"grain:table.view",
	"",
	Array(
		"SETTINGS" => $arElement["PROPERTIES"]["prop_name"]["USER_TYPE_SETTINGS"], // массив дополнительных настроек свойства
		"MULTIPLE" => $arElement["PROPERTIES"]["prop_name"]["MULTIPLE"], // множественное или нет
		"VALUE" => $arElement["PROPERTIES"]["prop_name"]["VALUE"], // значение
	),
	null,
	array('HIDE_ICONS' => 'Y')
);

Форма редактирования таблицы (grain:table.edit)

Выводит форму редактирования таблицы. Существует 2 стандартных шаблона компонента - ".default" и "admin" - для публичной и административной части соответственно. В шаблоне для публичной части используется серая цветовая гамма и отсутствует выбор файла из медиабиблиотеки и структуры сайта (если Вам нужно включить такой выбор для публичной части, укажите название шаблона "admin" в настройках свойства как шаблон редактирования в публичной части).

Пример подключения

// выводим форму редактирования таблицы
$GLOBALS["APPLICATION"]->IncludeComponent(
	"grain:table.edit",
	"",
	Array(
		"SETTINGS" => $arProperty["USER_TYPE_SETTINGS"], // массив дополнительных настроек свойства
		"MULTIPLE" => $arProperty["MULTIPLE"], // множественное или нет
		"USER_FIELDS" => "N", // N - инфоблоки, Y - свойства главного модуля
		"VALUE" => $arProperty["VALUE"], // значение
		"NAME" => "MY_FIELD_NAME", // имя полей формы
	),
	null,
	array('HIDE_ICONS' => 'Y')
);

Фильтр по столбцам (grain:table.filter)

Выводит форму для фильтрации по столбцам таблицы

Пример подключения

// выводим форму для фильтрации по столбцам таблицы
$GLOBALS["APPLICATION"]->IncludeComponent(
	"grain:table.filter",
	"",
	Array(
		"SETTINGS" => $arProperty["USER_TYPE_SETTINGS"], // массив дополнительных настроек свойства
		"VALUE" => $arProperty["VALUE"], // значение
		"NAME" => "MY_FIELD_NAME", // имя полей формы
	),
	null,
	array('HIDE_ICONS' => 'Y')
);
Главная   ·   Модули для 1С-Битрикс   ·   Типовые услуги   ·   Форум   ·   Блог   ·   Контакты
Рейтинг@Mail.ru