function lingotek_config_add_query_filters in Lingotek Translation 7.6
Same name and namespace in other branches
- 7.7 lingotek.config.inc \lingotek_config_add_query_filters()
1 call to lingotek_config_add_query_filters()
File
- ./
lingotek.config.inc, line 156 - Config grid form elements
Code
function lingotek_config_add_query_filters($query) {
if (!isset($_SESSION['grid_filters'])) {
return;
}
$filters = $_SESSION['grid_filters'];
if (isset($filters['search']) && strlen($filters['search'])) {
$query
->where("LOWER(CONVERT(source USING utf8)) LIKE :source_string", array(
':source_string' => '%' . strtolower($filters['search'] . '%'),
));
}
if (isset($filters['textgroup'])) {
if ($filters['textgroup'] == 'interface') {
$query
->condition('textgroup', 'default');
}
elseif ($filters['textgroup'] == 'menu') {
$query
->condition('textgroup', 'menu');
}
elseif ($filters['textgroup'] == 'taxonomy') {
$query
->condition('textgroup', 'taxonomy');
}
elseif ($filters['textgroup'] == 'blocks') {
$query
->condition('textgroup', 'blocks');
}
elseif ($filters['textgroup'] == 'field') {
$query
->condition('textgroup', 'field');
}
elseif ($filters['textgroup'] == 'views') {
$query
->condition('textgroup', 'views');
}
elseif ($filters['textgroup'] == 'misc') {
$query
->condition('textgroup', 'misc');
}
}
// Module Filter
if (isset($filters['location']) && $filters['location'] != '') {
$query
->condition('s.location', '%' . $filters['location'] . '%', 'LIKE');
}
lingotek_filter_by_document_id($query, $filters);
// Upload Status
if (isset($filters['upload_status']) && $filters['upload_status'] != 'all') {
$query
->join('locales_target', 'lt', 'lt.lid = s.lid');
if ($filters['upload_status'] == 'never') {
$query
->isNull('lingo_upload_status.value');
}
elseif ($filters['upload_status'] == LingotekSync::STATUS_EDITED) {
// The edited status won't show in lingotek_config_metadata table so we need to check the i18n_status (1 == edited).
$query
->condition('lt.i18n_status', '1');
}
else {
$query
->condition('lingo_upload_status.value', $filters['upload_status']);
// Do not include items with a source marked as edited in locales_target (1 == edited).
$query
->condition('lt.i18n_status', '0');
}
}
// Entity ID
if (isset($filters['lid']) && $filters['lid'] != '') {
$query
->condition('s.lid', $filters['lid']);
}
}