В классе wSql есть методы, которые удобно использовать, если в запросе есть многоязычные поля (name_ru, str1_ru, str2_ru и т.д.).
При вызове этих методов берется поле, окончание которого соответствует коду текущего языка.
Например, если текущий язык – английский, в запросе будут участвовать поля name_en, str1_ en, str2_ en и т.д., где en – код текущего языка.
Эти методы начинаются с префикса l и выполняют те же операции, что и SQL-методы. Ниже в скобках приведены их эквиваленты:
lselect() (SELECT); lorderby() (ORDER BY) lgroupby() (GROUP BY) lhaving() (HAVING).
Ниже приведен пример конструктора запросов с использованием методов lselect() и lorderby():
$q = $parser->utils->sql(); $q->select('a.objid AS id'); $q->lselect('a.name'); $q->from('sys_objects a'); $q->where("a.objid<>'0'"); $q->where("a.objtype='sys_elements_pages'"); $q->lorderby('a.name');
Приведенный выше код делает то же, что и следующий код:
$q = $parser->utils->sql(); $q->select('a.objid AS id'); $q->select('a.name_'.$parser->lang_suff); $q->from('sys_objects a'); $q->where("a.objid<>'0'"); $q->where("a.objtype='sys_elements_pages'"); $q->orderby('a.name_'.$parser->lang_suff);