FINAL suepr merge step : added all modules to this super repos
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Translation table for fields
|
||||
*/
|
||||
|
||||
/**
|
||||
* Implementation of hook_translation_table_data().
|
||||
*/
|
||||
function field_translation_table_data() {
|
||||
$items['field'] = array(
|
||||
'title' => 'Field',
|
||||
'description' => 'Edit field translations',
|
||||
'form' => 'field_translation_table_form',
|
||||
'file' => 'modules/field.translation_table.inc',
|
||||
);
|
||||
|
||||
return $items;
|
||||
}
|
||||
|
||||
/**
|
||||
* Menu callback; Admin form for field translation.
|
||||
*/
|
||||
function field_translation_table_form($form, &$form_state) {
|
||||
$languages_selected = isset($_SESSION['translation_table']['languages_selected']) ? $_SESSION['translation_table']['languages_selected'] : locale_language_list('name', FALSE);
|
||||
$bundle = isset($_SESSION['translation_table']['bundle']) ? $_SESSION['translation_table']['bundle'] : 0;
|
||||
|
||||
$form['filter'] = field_translation_table_filter($languages_selected, $bundle);
|
||||
$form['filtered_form'] = field_translation_table_filtered_form($languages_selected, $bundle);
|
||||
$form['#submit'][] = 'field_translation_table_form_submit';
|
||||
$form['#submit'][] = 'translation_table_submit_translations';
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Field filter.
|
||||
*/
|
||||
function field_translation_table_filter($languages_selected, $bundle) {
|
||||
$form['languages_selected'] = array(
|
||||
'#type' => 'select',
|
||||
'#title' => t('Languages'),
|
||||
'#description' => t('Select the languages to display.'),
|
||||
'#options' => locale_language_list('name', TRUE),
|
||||
'#default_value' => array_keys($languages_selected),
|
||||
'#multiple' => TRUE,
|
||||
);
|
||||
|
||||
$res = db_query("SELECT DISTINCT objectid FROM {i18n_string} WHERE textgroup = 'field'");
|
||||
|
||||
$scope_options = array(0 => t('- All -'));
|
||||
while ($bundle_opt = $res->fetchField()) {
|
||||
$scope_options[$bundle_opt] = $bundle_opt;
|
||||
}
|
||||
|
||||
$form['bundle'] = array(
|
||||
'#type' => 'select',
|
||||
'#title' => t('Attached to'),
|
||||
'#description' => t('Select the kind of strings to display.'),
|
||||
'#options' => $scope_options,
|
||||
'#default_value' => $bundle,
|
||||
);
|
||||
|
||||
$form['filter'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Filter'),
|
||||
);
|
||||
|
||||
$form['#theme'] = 'translation_table_filter';
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Form for field translation.
|
||||
*
|
||||
* @param $languages
|
||||
* languages to translate to
|
||||
* @param $bundle
|
||||
*/
|
||||
function field_translation_table_filtered_form($languages, $bundle) {
|
||||
$header = _translation_table_get_header($languages);
|
||||
|
||||
switch ($bundle) {
|
||||
case '0':
|
||||
$query = db_select('locales_source', 'ls');
|
||||
$query->fields('ls', array('lid', 'source', 'location'))
|
||||
->extend('PagerDefault')
|
||||
->extend('TableSort')
|
||||
->condition('ls.textgroup', 'field')
|
||||
->orderByHeader($header)
|
||||
->limit(50);
|
||||
$result = $query->execute();
|
||||
break;
|
||||
|
||||
default:
|
||||
$query = db_select('locales_source', 'ls');
|
||||
$query->join('i18n_string', 'i18ns', 'ls.lid = i18ns.lid');
|
||||
$query->fields('ls', array('lid', 'source', 'location'))
|
||||
->extend('PagerDefault')
|
||||
->extend('TableSort')
|
||||
->condition('ls.textgroup', 'field')
|
||||
->condition('i18ns.objectid', $bundle);
|
||||
// $query->orderByHeader($header);
|
||||
// $query->limit(50);
|
||||
|
||||
$result = $query->execute();
|
||||
break;
|
||||
}
|
||||
|
||||
$form['strings']['#tree'] = TRUE;
|
||||
$form['#cache'] = FALSE;
|
||||
|
||||
$form['header'] = array(
|
||||
'#type' => 'value',
|
||||
'#value' => $header,
|
||||
);
|
||||
|
||||
while ($source = $result->fetch()) {
|
||||
if (strlen(trim($source->source)) > 0) {
|
||||
$form['strings'][$source->lid] = _translation_table_row($source, $languages);
|
||||
}
|
||||
}
|
||||
|
||||
$form['languages'] = array(
|
||||
'#type' => 'value',
|
||||
'#value' => $languages,
|
||||
);
|
||||
$form['submit'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Save'),
|
||||
);
|
||||
|
||||
$form['pager'] = array('#markup' => theme('pager'));
|
||||
$form['#theme'] = 'translation_table';
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Submit handler for the field translation form.
|
||||
*/
|
||||
function field_translation_table_form_submit($form, &$form_state) {
|
||||
switch ($form_state['clicked_button']['#id']) {
|
||||
case 'edit-filter--2':
|
||||
case 'edit-filter':
|
||||
case 'edit-submit':
|
||||
$_SESSION['translation_table']['bundle'] = $form_state['values']['bundle'];
|
||||
$_SESSION['translation_table']['languages_selected'] = array_intersect_key(locale_language_list('name', TRUE), $form_state['values']['languages_selected']);
|
||||
break;
|
||||
}
|
||||
}
|
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Translation table for the menu module.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Implementation of hook_translation_table_data().
|
||||
*/
|
||||
function menu_translation_table_data() {
|
||||
$items['menu'] = array(
|
||||
'title' => 'Menu',
|
||||
'description' => 'Edit menu translations',
|
||||
'form' => 'menu_translation_table_menu_form',
|
||||
'file' => 'modules/menu.translation_table.inc',
|
||||
);
|
||||
|
||||
return $items;
|
||||
}
|
||||
|
||||
/**
|
||||
* Menu callback; Admin form for menu translation.
|
||||
*/
|
||||
function menu_translation_table_menu_form($form, &$form_state) {
|
||||
$languages_selected = isset($_SESSION['translation_table']['languages_selected']) ? $_SESSION['translation_table']['languages_selected'] : locale_language_list('name', FALSE);
|
||||
|
||||
$form['filter'] = menu_translation_table_menu_filter($languages_selected);
|
||||
$form['filtered_form'] = menu_translation_table_menu_filtered_form($languages_selected);
|
||||
$form['#submit'][] = 'menu_translation_table_menu_form_submit';
|
||||
$form['#submit'][] = 'translation_table_submit_translations';
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Menu filter.
|
||||
*/
|
||||
function menu_translation_table_menu_filter($languages_selected) {
|
||||
$form['languages_selected'] = array(
|
||||
'#type' => 'select',
|
||||
'#title' => t('Languages'),
|
||||
'#description' => t('Select the languages to display.'),
|
||||
'#options' => locale_language_list('name', TRUE),
|
||||
'#default_value' => array_keys($languages_selected),
|
||||
'#multiple' => TRUE,
|
||||
);
|
||||
|
||||
$form['filter'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Filter'),
|
||||
);
|
||||
|
||||
$form['#theme'] = 'translation_table_filter';
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Form for menu translation.
|
||||
* Note: If the menu string is not in the locales_source table, then it won't be
|
||||
* displayed.
|
||||
*
|
||||
* @param $languages
|
||||
* languages to translate to
|
||||
*/
|
||||
function menu_translation_table_menu_filtered_form($languages) {
|
||||
$header = _translation_table_get_header($languages);
|
||||
|
||||
$query = db_select('locales_source', 'ls');
|
||||
$query->fields('ls', array('lid', 'source', 'location'))
|
||||
->extend('PagerDefault')
|
||||
->extend('TableSort')
|
||||
->condition('ls.textgroup', 'menu')
|
||||
->orderByHeader($header)
|
||||
->limit(50);
|
||||
$result = $query->execute();
|
||||
|
||||
|
||||
$form['strings']['#tree'] = TRUE;
|
||||
$form['#cache'] = FALSE;
|
||||
|
||||
$form['header'] = array(
|
||||
'#type' => 'value',
|
||||
'#value' => $header,
|
||||
);
|
||||
|
||||
while ($source = $result->fetch()) {
|
||||
if (strlen(trim($source->source)) > 0) {
|
||||
$form['strings'][$source->lid] = _translation_table_row($source, $languages);
|
||||
}
|
||||
}
|
||||
|
||||
$form['languages'] = array(
|
||||
'#type' => 'value',
|
||||
'#value' => $languages,
|
||||
);
|
||||
$form['submit'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Save'),
|
||||
);
|
||||
|
||||
$form['pager'] = array('#markup' => theme('pager'));
|
||||
$form['#theme'] = 'translation_table';
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Submit handler for the menu translation form.
|
||||
*/
|
||||
function menu_translation_table_menu_form_submit($form, &$form_state) {
|
||||
switch ($form_state['triggering_element']['#id']) {
|
||||
case 'edit-filter--2':
|
||||
case 'edit-filter':
|
||||
case 'edit-submit':
|
||||
$_SESSION['translation_table']['languages_selected'] = array_intersect_key(locale_language_list('name', TRUE), $form_state['values']['languages_selected']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,144 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Provide translation table functionality for the node module.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Implementation of hook_translation_table_data().
|
||||
*/
|
||||
function node_translation_table_data() {
|
||||
$items['nodetype'] = array(
|
||||
'title' => 'Content type',
|
||||
'description' => 'Edit content type translations',
|
||||
'form' => 'node_translation_table_nodetype_form',
|
||||
'file' => 'modules/node.translation_table.inc',
|
||||
);
|
||||
|
||||
return $items;
|
||||
}
|
||||
|
||||
/**
|
||||
* Menu callback; Admin form for node type translation.
|
||||
*/
|
||||
function node_translation_table_nodetype_form($form, &$form_state) {
|
||||
$languages_selected = isset($_SESSION['translation_table']['languages_selected']) ? $_SESSION['translation_table']['languages_selected'] : locale_language_list('name', FALSE);
|
||||
$nodetype = isset($_SESSION['translation_table']['nodetype']) ? $_SESSION['translation_table']['nodetype'] : 0;
|
||||
|
||||
$form['filter'] = node_translation_table_nodetype_filter($languages_selected, $nodetype);
|
||||
$form['filtered_form'] = node_translation_table_nodetype_filtered_form($languages_selected, $nodetype);
|
||||
$form['#submit'][] = 'node_translation_table_nodetype_form_submit';
|
||||
$form['#submit'][] = 'translation_table_submit_translations';
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Node type filter.
|
||||
*/
|
||||
function node_translation_table_nodetype_filter($languages_selected, $nodetype) {
|
||||
$form['languages_selected'] = array(
|
||||
'#type' => 'select',
|
||||
'#title' => t('Languages'),
|
||||
'#description' => t('Select the languages to display.'),
|
||||
'#options' => locale_language_list('name', TRUE),
|
||||
'#default_value' => array_keys($languages_selected),
|
||||
'#multiple' => TRUE,
|
||||
);
|
||||
|
||||
$form['nodetype'] = array(
|
||||
'#type' => 'select',
|
||||
'#title' => t('Content type'),
|
||||
'#description' => t('Select the content types to display.'),
|
||||
'#options' => array_merge(array( 0 => t('- All -')), node_type_get_names()),
|
||||
'#default_value' => $nodetype,
|
||||
);
|
||||
|
||||
$form['filter'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Filter'),
|
||||
);
|
||||
|
||||
$form['#theme'] = 'translation_table_filter';
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Form for node type translation.
|
||||
* Note: If the node type is not in the locales_source table, then it won't be
|
||||
* displayed.
|
||||
*
|
||||
* @param $languages
|
||||
* languages to translate to
|
||||
* @param $nodetype
|
||||
* 0: show all
|
||||
* else: filter by node type
|
||||
*/
|
||||
function node_translation_table_nodetype_filtered_form($languages, $nodetype) {
|
||||
$header = _translation_table_get_header($languages);
|
||||
|
||||
switch ($nodetype) {
|
||||
case '0':
|
||||
$query = db_select('locales_source', 'ls');
|
||||
$query->fields('ls', array('lid', 'source', 'location'))
|
||||
->extend('PagerDefault')
|
||||
->extend('TableSort')
|
||||
->condition('ls.textgroup', 'node')
|
||||
->orderByHeader($header)
|
||||
->limit(50);
|
||||
$result = $query->execute();
|
||||
break;
|
||||
|
||||
default:
|
||||
$query = db_select('locales_source', 'ls');
|
||||
$query->fields('ls', array('lid', 'source', 'location'))
|
||||
->extend('PagerDefault')
|
||||
->extend('TableSort')
|
||||
->condition('ls.textgroup', 'taxonomy')
|
||||
->condition('ls.location', 'node:type: ' . check_plain($nodetype) . ' %', 'LIKE')
|
||||
->orderByHeader($header)
|
||||
->limit(50);
|
||||
$result = $query->execute();
|
||||
break;
|
||||
}
|
||||
|
||||
$form['strings']['#tree'] = TRUE;
|
||||
$form['#cache'] = FALSE;
|
||||
|
||||
$form['header'] = array(
|
||||
'#type' => 'value',
|
||||
'#value' => $header,
|
||||
);
|
||||
|
||||
while ($source = $result->fetch()) {
|
||||
if (strlen(trim($source->source)) > 0) {
|
||||
$form['strings'][$source->lid] = _translation_table_row($source, $languages);
|
||||
}
|
||||
}
|
||||
|
||||
$form['languages'] = array(
|
||||
'#type' => 'value',
|
||||
'#value' => $languages,
|
||||
);
|
||||
$form['submit'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Save'),
|
||||
);
|
||||
|
||||
$form['pager'] = array('#markup' => theme('pager'));
|
||||
$form['#theme'] = 'translation_table';
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Submit handler for the node type translation form.
|
||||
*/
|
||||
function node_translation_table_nodetype_form_submit($form, &$form_state) {
|
||||
switch ($form_state['clicked_button']['#id']) {
|
||||
case 'edit-filter':
|
||||
case 'edit-submit':
|
||||
$_SESSION['translation_table']['nodetype'] = $form_state['values']['nodetype'];
|
||||
$_SESSION['translation_table']['languages_selected'] = array_intersect_key(locale_language_list('name', TRUE), $form_state['values']['languages_selected']);
|
||||
break;
|
||||
}
|
||||
}
|
@@ -0,0 +1,135 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Translation table for the quicktabs module.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Implementation of hook_translation_table_data().
|
||||
*/
|
||||
function quicktabs_translation_table_data() {
|
||||
$items['quicktabs'] = array(
|
||||
'title' => 'Quick Tabs',
|
||||
'description' => 'Edit quick tabs translations',
|
||||
'form' => 'quicktabs_translation_table_quicktabs_form',
|
||||
'file' => 'modules/quicktabs.translation_table.inc',
|
||||
);
|
||||
|
||||
return $items;
|
||||
}
|
||||
|
||||
/**
|
||||
* Menu callback; Admin form for quicktabs translation.
|
||||
*/
|
||||
function quicktabs_translation_table_quicktabs_form(&$form_state) {
|
||||
$languages_selected = isset($_SESSION['translation_table']['languages_selected']) ? $_SESSION['translation_table']['languages_selected'] : locale_language_list('name', FALSE);
|
||||
$qtid = isset($_SESSION['translation_table']['qtid']) ? $_SESSION['translation_table']['qtid'] : 0;
|
||||
|
||||
$form['filter'] = quicktabs_translation_table_quicktabs_filter($languages_selected, $qtid);
|
||||
$form['filtered_form'] = quicktabs_translation_table_quicktabs_filtered_form($languages_selected, $qtid);
|
||||
$form['#submit'][] = 'quicktabs_translation_table_quicktabs_form_submit';
|
||||
$form['#submit'][] = 'translation_table_submit_translations';
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Quicktabs filter.
|
||||
*/
|
||||
function quicktabs_translation_table_quicktabs_filter($languages_selected, $qtid) {
|
||||
$form['languages_selected'] = array(
|
||||
'#type' => 'select',
|
||||
'#title' => t('Languages'),
|
||||
'#description' => t('Select the languages to display.'),
|
||||
'#options' => locale_language_list('name', TRUE),
|
||||
'#default_value' => array_keys($languages_selected),
|
||||
'#multiple' => TRUE,
|
||||
);
|
||||
|
||||
$options[0] = t('- Display all quicktabs -');
|
||||
$result = db_query('SELECT qtid, title FROM {quicktabs} ORDER BY title');
|
||||
while ($row = db_fetch_object($result)) {
|
||||
$options[$row->qtid] = check_plain($row->title);
|
||||
}
|
||||
|
||||
$form['qtid'] = array(
|
||||
'#type' => 'select',
|
||||
'#title' => t('Quicktab'),
|
||||
'#description' => t('Select a quicktab.'),
|
||||
'#options' => $options,
|
||||
'#default_value' => $qtid,
|
||||
);
|
||||
|
||||
$form['filter'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Filter'),
|
||||
);
|
||||
|
||||
$form['#theme'] = 'translation_table_filter';
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Form for quicktabs translation.
|
||||
*
|
||||
* @param $languages
|
||||
* languages to translate to
|
||||
*/
|
||||
function quicktabs_translation_table_quicktabs_filtered_form($languages, $qtid) {
|
||||
$header = _translation_table_get_header($languages);
|
||||
|
||||
switch ($qtid) {
|
||||
case 0:
|
||||
$sql = "SELECT ls.lid, ls.source, ls.location FROM {locales_source} ls WHERE ls.textgroup = 'quicktabs'";
|
||||
$sql .= tablesort_sql($header);
|
||||
$result = pager_query($sql, 50, 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
$sql = "SELECT ls.lid, ls.source, ls.location FROM {locales_source} ls WHERE ls.textgroup = 'quicktabs' AND ls.location LIKE 'tab:%s--%'";
|
||||
$sql .= tablesort_sql($header);
|
||||
$result = pager_query($sql, 50, 0, NULL, $qtid);
|
||||
break;
|
||||
}
|
||||
|
||||
$form['strings']['#tree'] = TRUE;
|
||||
$form['#cache'] = TRUE;
|
||||
|
||||
$form['header'] = array(
|
||||
'#type' => 'value',
|
||||
'#value' => $header,
|
||||
);
|
||||
|
||||
while ($source = db_fetch_object($result)) {
|
||||
if (strlen(trim($source->source)) > 0) {
|
||||
$form['strings'][$source->lid] = _translation_table_row($source, $languages);
|
||||
}
|
||||
}
|
||||
|
||||
$form['languages'] = array(
|
||||
'#type' => 'value',
|
||||
'#value' => $languages,
|
||||
);
|
||||
$form['submit'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Save'),
|
||||
);
|
||||
|
||||
$form['pager'] = array('#value' => theme('pager', NULL, 50, 0));
|
||||
$form['#theme'] = 'translation_table';
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Submit handler for the quicktabs translation form.
|
||||
*/
|
||||
function quicktabs_translation_table_quicktabs_form_submit($form, &$form_state) {
|
||||
switch ($form_state['clicked_button']['#id']) {
|
||||
case 'edit-filter':
|
||||
case 'edit-submit':
|
||||
$_SESSION['translation_table']['qtid'] = $form_state['values']['qtid'];
|
||||
$_SESSION['translation_table']['languages_selected'] = array_intersect_key(locale_language_list('name', TRUE), $form_state['values']['languages_selected']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,178 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Translation table for the taxonomy module.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Implementation of hook_translation_table_data().
|
||||
*/
|
||||
function taxonomy_translation_table_data() {
|
||||
$items['taxonomy'] = array(
|
||||
'title' => 'Taxonomy',
|
||||
'description' => 'Edit taxonomy translations',
|
||||
'form' => 'taxonomy_translation_table_taxonomy_form',
|
||||
'file' => 'modules/taxonomy.translation_table.inc',
|
||||
);
|
||||
|
||||
return $items;
|
||||
}
|
||||
|
||||
/**
|
||||
* Menu callback; Admin form for taxonomy translation.
|
||||
*/
|
||||
function taxonomy_translation_table_taxonomy_form($form, &$form_state) {
|
||||
$languages_selected = isset($_SESSION['translation_table']['languages_selected']) ? $_SESSION['translation_table']['languages_selected'] : locale_language_list('name', FALSE);
|
||||
$vid = isset($_SESSION['translation_table']['vid']) ? $_SESSION['translation_table']['vid'] : -1;
|
||||
|
||||
$form['filter'] = taxonomy_translation_table_taxonomy_filter($languages_selected, $vid);
|
||||
$form['filtered_form'] = taxonomy_translation_table_taxonomy_filtered_form($languages_selected, $vid);
|
||||
$form['#submit'][] = 'taxonomy_translation_table_taxonomy_form_submit';
|
||||
$form['#submit'][] = 'translation_table_submit_translations';
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Taxonomy filter.
|
||||
*/
|
||||
function taxonomy_translation_table_taxonomy_filter($languages_selected, $vid) {
|
||||
$form['languages_selected'] = array(
|
||||
'#type' => 'select',
|
||||
'#title' => t('Languages'),
|
||||
'#description' => t('Select the languages to display.'),
|
||||
'#options' => locale_language_list('name', TRUE),
|
||||
'#default_value' => array_keys($languages_selected),
|
||||
'#multiple' => TRUE,
|
||||
);
|
||||
|
||||
$vocabulary_options[0] = t('- Display all taxonomy strings -');
|
||||
$vocabulary_options[-1] = t('- Display vocabulary strings -');
|
||||
|
||||
if (module_exists('taxonomy')) {
|
||||
if ($vocabularies = taxonomy_get_vocabularies()) {
|
||||
foreach ($vocabularies as $key => $vocabulary) {
|
||||
$vocabulary_options[$key] = $vocabulary->name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$form['vid'] = array(
|
||||
'#type' => 'select',
|
||||
'#title' => t('Vocabulary'),
|
||||
'#description' => t('Select the vocabulary.'),
|
||||
'#options' => $vocabulary_options,
|
||||
'#default_value' => $vid,
|
||||
);
|
||||
|
||||
$form['filter'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Filter'),
|
||||
);
|
||||
|
||||
// $form['#theme'] = 'translation_table_filter';
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Form for taxonomy translation.
|
||||
* Note: If term and vocabulary strings are not in the locales_source table,
|
||||
* then they won't be displayed.
|
||||
*
|
||||
* @param $languages
|
||||
* languages to translate to
|
||||
* @param $vid
|
||||
* -1: show vocabulary names only
|
||||
* 0: show all
|
||||
* else: filter by vocabulary ID
|
||||
*/
|
||||
function taxonomy_translation_table_taxonomy_filtered_form($languages, $vid) {
|
||||
$header = _translation_table_get_header($languages);
|
||||
|
||||
switch ($vid) {
|
||||
case 0:
|
||||
$query = db_select('locales_source', 'ls');
|
||||
$query->fields('ls', array('lid', 'source', 'location'))
|
||||
->extend('PagerDefault')
|
||||
->extend('TableSort')
|
||||
->condition('ls.textgroup', 'taxonomy')
|
||||
->orderByHeader($header)
|
||||
->limit(50);
|
||||
$result = $query->execute();
|
||||
break;
|
||||
|
||||
case -1:
|
||||
$query = db_select('locales_source', 'ls');
|
||||
$query->join('i18n_string', 's', 'ls.lid = s.lid');
|
||||
$query->fields('ls', array('lid', 'source', 'location'))
|
||||
->extend('PagerDefault')
|
||||
->extend('TableSort')
|
||||
->condition('s.type', 'vocabulary')
|
||||
->orderByHeader($header)
|
||||
->limit(50);
|
||||
$result = $query->execute();
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
// FIXME: D7
|
||||
// $subselect = db_query("SELECT td.tid FROM {taxonomy_term_data} td WHERE td.vid = :vid", array("vid" => $vid));
|
||||
$subselect = db_select('taxonomy_term_data', 'td')
|
||||
->fields('td', array('tid'))
|
||||
->condition('td.vid', $vid);
|
||||
|
||||
$query = db_select('locales_source', 'ls');
|
||||
$query->join('i18n_string', 's', 'ls.lid = s.lid');
|
||||
$query->fields('ls', array('lid', 'source', 'location'))
|
||||
->extend('PagerDefault')
|
||||
->extend('TableSort')
|
||||
->condition('s.type', 'term')
|
||||
->condition('s.objectid', $subselect, 'IN')
|
||||
->orderByHeader($header)
|
||||
->limit(50);
|
||||
$result = $query->execute();
|
||||
break;
|
||||
}
|
||||
|
||||
$form['strings']['#tree'] = TRUE;
|
||||
// $form['#cache'] = TRUE;
|
||||
$form['#cache'] = FALSE;
|
||||
|
||||
$form['header'] = array(
|
||||
'#type' => 'value',
|
||||
'#value' => $header,
|
||||
);
|
||||
|
||||
while ($source = $result->fetch()) {
|
||||
if (strlen(trim($source->source)) > 0) {
|
||||
$form['strings'][$source->lid] = _translation_table_row($source, $languages);
|
||||
}
|
||||
}
|
||||
|
||||
$form['languages'] = array(
|
||||
'#type' => 'value',
|
||||
'#value' => $languages,
|
||||
);
|
||||
$form['submit'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Save'),
|
||||
);
|
||||
|
||||
$form['pager'] = array('#markup' => theme('pager'));
|
||||
$form['#theme'] = 'translation_table';
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Submit handler for the taxonomy translation form.
|
||||
*/
|
||||
function taxonomy_translation_table_taxonomy_form_submit($form, &$form_state) {
|
||||
switch ($form_state['triggering_element']['#id']) {
|
||||
case 'edit-filter--2':
|
||||
case 'edit-filter':
|
||||
case 'edit-submit':
|
||||
$_SESSION['translation_table']['vid'] = $form_state['values']['vid'];
|
||||
$_SESSION['translation_table']['languages_selected'] = array_intersect_key(locale_language_list('name', TRUE), $form_state['values']['languages_selected']);
|
||||
break;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user