Функции

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')
);