function lingotek_bulk_grid_filter_popup_options in Lingotek Translation 7.6
Same name and namespace in other branches
- 7.7 lingotek.bulk_grid.inc \lingotek_bulk_grid_filter_popup_options()
1 call to lingotek_bulk_grid_filter_popup_options()
File
- ./
lingotek.bulk_grid.inc, line 1494
Code
function lingotek_bulk_grid_filter_popup_options($query, $filters, $eid, $info, $entity_type) {
// Entity ID
if (isset($filters['nid']) && $filters['nid'] != '') {
$query
->condition('' . $eid . '', $filters['nid']);
}
lingotek_filter_by_document_id($query, $filters);
$array_fix = array(
'upload_status',
'content_type',
'auto_upload',
'auto_download',
'crowdsourcing',
'url_alias',
'translation_status',
'locale_progress_percent',
);
foreach ($array_fix as $value) {
if (isset($filters[$value]) && !is_array($filters[$value])) {
$filters[$value] = array(
$filters[$value],
);
}
}
// Source Language
if (isset($filters['source_language']) && $filters['source_language'] != 'all') {
$query
->condition('n.' . $info['entity keys']['language'], $filters['source_language']);
}
// Upload Status
if (isset($filters['upload_status']) && !in_array('all', $filters['upload_status'])) {
$query
->condition('lingo_upload_status.value', $filters['upload_status'], 'IN');
}
// Content Type
if (isset($filters['content_type']) && !in_array('all', $filters['content_type'])) {
// Special-case handling of taxonomy_term pseudo-entities
if ($entity_type == 'taxonomy_term') {
$query
->condition('tv.machine_name', $filters['content_type'], 'IN');
}
elseif ($entity_type == 'comment') {
$or = db_or();
foreach ($filters['content_type'] as $type_alias) {
$content_type = substr($type_alias, strlen('comment_node_'));
$or
->condition('nn.type', $content_type);
}
$query
->condition($or);
}
else {
$query
->condition('n.' . $info['entity keys']['bundle'], $filters['content_type'], 'IN');
}
}
if (isset($filters['profile']) && !in_array('all', $filters['profile'])) {
$profiled_entities = lingotek_get_entities_by_profile_and_entity_type($filters['profile'], $entity_type);
$profiled_entity_ids = array(
-1,
);
foreach ($profiled_entities as $p) {
$profiled_entity_ids[] = $p['id'];
}
$query
->condition('n.' . $info['entity keys']['id'], $profiled_entity_ids, 'IN');
//$or = lingotek_profile_condition($base_table, 'n', 'lingo_profile', $filters['profile']);
//$query->condition($or);
}
}