function _stringoverrides_advanced_translate_seek in String Overrides Advanced 7
Perform a string search and display results in a table
1 call to _stringoverrides_advanced_translate_seek()
- stringoverrides_advanced_translate_seek_screen in ./
stringoverrides_advanced.admin.inc - String search screen.
File
- ./
stringoverrides_advanced.admin.inc, line 97
Code
function _stringoverrides_advanced_translate_seek() {
$output = '';
// We have at least one criterion to match
if (!($query = _stringoverrides_advanced_translate_seek_query())) {
$query = array(
'translation' => 'all',
'group' => 'all',
'language' => 'all',
'string' => '',
);
}
$sql_query = db_select('stringoverrides_advanced_source', 's');
$sql_query
->leftJoin('stringoverrides_advanced_target', 't', 't.lid = s.lid');
$sql_query
->fields('s', array(
'source',
'location',
'context',
'lid',
'textgroup',
));
$sql_query
->fields('t', array(
'translation',
'language',
));
// Compute LIKE section.
switch ($query['translation']) {
case 'translated':
$sql_query
->condition('t.translation', '%' . db_like($query['string']) . '%', 'LIKE');
$sql_query
->orderBy('t.translation', 'DESC');
break;
case 'untranslated':
$sql_query
->condition(db_and()
->condition('s.source', '%' . db_like($query['string']) . '%', 'LIKE')
->isNull('t.translation'));
$sql_query
->orderBy('s.source');
break;
case 'all':
default:
$condition = db_or()
->condition('s.source', '%' . db_like($query['string']) . '%', 'LIKE');
// Only search in translations if the language is not forced to English.
$condition
->condition('t.translation', '%' . db_like($query['string']) . '%', 'LIKE');
$sql_query
->condition($condition);
break;
}
// Add a condition on the text group.
$sql_query
->condition('s.textgroup', 'default');
$sql_query = $sql_query
->extend('PagerDefault')
->limit(50);
$locales = $sql_query
->execute();
$header = array(
t('String'),
t('Context'),
array(
'data' => t('Operations'),
'colspan' => '2',
),
);
$strings = array();
foreach ($locales as $locale) {
if (!isset($strings[$locale->lid])) {
$strings[$locale->lid] = array(
'group' => $locale->textgroup,
'location' => $locale->location,
'source' => $locale->source,
'context' => $locale->context,
);
}
}
$rows = array();
foreach ($strings as $lid => $string) {
$rows[] = array(
array(
'data' => check_plain(truncate_utf8($string['source'], 150, FALSE, TRUE)) . '<br /><small>' . $string['location'] . '</small>',
),
$string['context'],
array(
'data' => l(t('edit'), "admin/config/regional/stringoverrides_advanced/edit/{$lid}", array(
'query' => drupal_get_destination(),
)),
'class' => array(
'nowrap',
),
),
array(
'data' => l(t('delete'), "admin/config/regional/stringoverrides_advanced/delete/{$lid}", array(
'query' => drupal_get_destination(),
)),
'class' => array(
'nowrap',
),
),
);
}
$output .= theme('table', array(
'header' => $header,
'rows' => $rows,
'empty' => t('No strings available.'),
));
$output .= theme('pager');
return $output;
}