| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 | 
							- <?php
 
- /**
 
-  * @file
 
-  * Translation table module
 
-  *
 
-  * UI for quick translation of user submitted strings.
 
-  * The i18n module allows the translation of different dynamic strings, but the
 
-  * process is tedious.
 
-  *
 
-  * This module presents your taxonomy terms, menu items and other text groups in
 
-  * a table, and each language has a corresponding column. Just fill out the
 
-  * translations and click Save.
 
-  */
 
- /**
 
-  * Implementation of hook_menu().
 
-  */
 
- function translation_table_menu() {
 
-   $items = array();
 
-   // Get the different translation tables.
 
-   foreach (module_list() as $module) {
 
-     translation_table_module_include("$module.translation_table.inc");
 
-   }
 
-   $module_items = module_invoke_all('translation_table_data');
 
-   foreach ($module_items as $key => $module_item) {
 
-     if (isset($module_item['form']) && isset($module_item['file'])) {
 
-       $items['admin/config/regional/translate/table/'. $key] = array(
 
-         'title' => isset($module_item['title']) ? $module_item['title'] : 'Unknown',
 
-         'description' => isset($module_item['description']) ? $module_item['description'] : '*',
 
-         'page callback' => 'translation_table_get_form',
 
-         'page arguments' => array($module_item['form']),
 
-         'access callback' => 'user_access',
 
-         'access arguments' => array('translate interface'),
 
-         'type' => MENU_LOCAL_TASK,
 
-         'file' => $module_item['file'],
 
-         'file path' => isset($module_item['file path']) ? $module_item['file path'] : NULL,
 
-       );
 
-     }
 
-   }
 
-   if (!empty($items)) {
 
-     // Modify the fist item to local task.
 
-     $first_key = key($items);
 
-     $items[$first_key]['weight'] = -10;
 
-     $items[$first_key]['type'] = MENU_DEFAULT_LOCAL_TASK;
 
-     $items['admin/config/regional/translate/table'] = array(
 
-       'title' => 'Translation table',
 
-       'description' => 'Edit translations',
 
-       'page callback' => 'translation_table_get_form',
 
-       'page arguments' => $items[$first_key]['page arguments'],
 
-       'access callback' => 'user_access',
 
-       'access arguments' => array('translate interface'),
 
-       'type' => MENU_LOCAL_TASK,
 
-       'file' => $items[$first_key]['file'],
 
-     );
 
-   }
 
-   return $items;
 
- }
 
- /**
 
-  * Menu callback;
 
-  */
 
- function translation_table_get_form($form_id) {
 
-   module_load_include('inc', 'translation_table', 'includes/admin');
 
-   return drupal_get_form($form_id);
 
- }
 
- /**
 
-  * Implementation of hook_theme().
 
-  */
 
- function translation_table_theme() {
 
-   return array(
 
-     'translation_table' => array(
 
-       'render element' => 'form',
 
-       'file' => 'includes/theme.inc',
 
-     ),
 
-     'translation_table_filter' => array(
 
-       'render element' => 'form',
 
-       'file' => 'includes/theme.inc',
 
-     ),
 
-   );
 
- }
 
- /**
 
-  * Load translation table files on behalf of modules.
 
-  */
 
- function translation_table_module_include($file) {
 
-   foreach (translation_table_get_module_apis() as $module => $info) {
 
-     if (file_exists(DRUPAL_ROOT . "/$info[path]/$file")) {
 
-       require_once DRUPAL_ROOT . "/$info[path]/$file";
 
-     }
 
-   }
 
- }
 
- /**
 
-  * Get a list of modules that support the current translation_table API.
 
-  */
 
- function translation_table_get_module_apis() {
 
-   static $cache = NULL;
 
-   if (!isset($cache)) {
 
-     $cache = array();
 
-     foreach (module_implements('translation_table_api') as $module) {
 
-       $function = $module .'_translation_table_api';
 
-       $info = $function();
 
-       if (isset($info['api']) && $info['api'] == 1.000) {
 
-         if (!isset($info['path'])) {
 
-           $info['path'] = drupal_get_path('module', $module);
 
-         }
 
-         $cache[$module] = $info;
 
-       }
 
-     }
 
-   }
 
-   return $cache;
 
- }
 
- /**
 
-  * Implementation of hook_translation_table_api().
 
-  */
 
- function translation_table_translation_table_api() {
 
-   return array(
 
-     'api' => 1,
 
-     'path' => drupal_get_path('module', 'translation_table') .'/modules',
 
-   );
 
- }
 
 
  |