function translation_overview_manager_page in Translation Overview 6.2
Translation overview page.
1 string reference to 'translation_overview_manager_page'
- translation_overview_menu in ./
translation_overview.module - Implementation of hook_menu().
File
- ./
translation_overview.pages.inc, line 336
Code
function translation_overview_manager_page() {
drupal_add_css(drupal_get_path('module', 'translation_overview') . '/translation_overview.css');
$rows_per_page = 30;
// Get a list of the enabled languages that this user manages.
$languages = array();
foreach (language_list() as $key => $language) {
if ($language->enabled && translation_overview_is_manager($language->language)) {
$languages[$key] = $language->name;
}
}
// Bail if there are no translatable nodes
if (count(translation_overview_node_types()) == 0) {
drupal_set_message(t('There are no translatable node types on this site.'), 'error');
return '';
}
$header = array(
array(
'field' => 'n.title',
'data' => t('Title'),
'sort' => 'asc',
),
array(
'field' => 'n.type',
'data' => t('Type'),
),
array(
'field' => 'n.created',
'data' => t('Created'),
),
);
foreach ($languages as $lang_code => $lang_name) {
$header[] = array(
'data' => str_replace('-', '-<br />', $lang_code),
'class' => 'trov-lang',
'title' => $lang_name,
);
}
$query = translation_overview_build_filter_query();
$sql = "SELECT n.nid, n.title, n.type, n.created FROM {node} n " . implode(' ', $query['join']) . "\n WHERE (n.nid = n.tnid OR n.tnid = 0) AND n.language <> '' AND n.language IS NOT NULL\n AND " . implode(' AND ', $query['where']) . tablesort_sql($header);
$rows = array();
$result = pager_query(db_rewrite_sql($sql), $rows_per_page, 0, NULL, $query['where_args']);
while ($node = db_fetch_object($result)) {
$node = node_load($node->nid);
$row = array(
array(
'data' => l(translation_overview_trimmed_title($node), 'node/' . $node->nid . '/translate', array(
'attributes' => array(
'title' => $node->title,
),
'query' => array(
'destination' => $_GET['q'],
),
)),
),
array(
'data' => check_plain($node->type),
),
array(
'data' => format_date($node->created, 'custom', 'j M Y'),
),
);
// Load the node's translations and then fill in the table with the status.
$translations = (array) translation_node_get_translations($node->tnid);
foreach ($languages as $lang_code => $lang_name) {
$translation = empty($translations[$lang_code]->nid) ? NULL : node_load($translations[$lang_code]->nid);
$row[$lang_code] = array(
'data' => translation_overview_translation_link($node, $translation, $lang_code, FALSE),
'class' => 'status',
);
}
$rows[] = $row;
}
return drupal_get_form('translation_overview_filter_form') . theme('table', $header, $rows, array(
'class' => 'trov-all',
)) . theme('pager', NULL, $rows_per_page);
}