diff --git a/sites/all/modules/gui/materiobasemod/materio_translator.install b/sites/all/modules/gui/materiobasemod/materio_translator.install index 3c695028..7cb5f943 100644 --- a/sites/all/modules/gui/materiobasemod/materio_translator.install +++ b/sites/all/modules/gui/materiobasemod/materio_translator.install @@ -41,6 +41,6 @@ function materio_translator_install() { /** * Implements hook_uninstall(). */ -function materio_translator_uninstall() { - variable_del('i18n_access_languages'); -} +// function materio_translator_uninstall() { + // variable_del('materio_translator_languages'); +// } diff --git a/sites/all/modules/gui/materiobasemod/materio_translator.module b/sites/all/modules/gui/materiobasemod/materio_translator.module index a73bd63a..e18c86d0 100644 --- a/sites/all/modules/gui/materiobasemod/materio_translator.module +++ b/sites/all/modules/gui/materiobasemod/materio_translator.module @@ -106,6 +106,42 @@ function materio_translator_permission() { 'description' => t('administer user translation language access'), 'restrict access' => TRUE, ), + 'access_translations_overview' => array( + 'title' => t('Access translations overview') + ), + + 'access_translation_table_fields' => array( + 'title' => t('Access translation Fields table') + ), + 'access_translation_table_content_type' => array( + 'title' => t('Access translation Content types table') + ), + 'access_translation_table_menu' => array( + 'title' => t('Access translation menu table') + ), + 'access_translation_table_taxonomy' => array( + 'title' => t('Access translation taxonomy table') + ), + + 'translate_strings' => array( + 'title' => t('Translate strings') + ), + 'delete_strings' => array( + 'title' => t('Delete strings') + ), + 'refresh_strings' => array( + 'title' => t('Refresh strings') + ), + + 'import_translations' => array( + 'title' => t('Import translations') + ), + 'export_translations' => array( + 'title' => t('Import translations') + ), + 'update_modules_translations' => array( + 'title' => t('Update modules translations') + ), ); } @@ -113,25 +149,63 @@ function materio_translator_permission() { * Implements hook_form_alter(). */ function materio_translator_form_alter(&$form, &$form_state, $form_id) { - // Add materio_translator things to user/edit /user/add - if ($form_id == 'user_register_form' || $form_id == 'user_profile_form' ) { - // dsm($form_id, 'form_id'); - // dsm($form, 'form'); - // dsm($form_state, 'form_state'); + // dsm($form_id); - $form['materio_translator'] = array( - '#type' => 'fieldset', - '#title' => t('Translation access'), - '#tree' => 0, - '#access' => user_access('administer user translation language access'), - ); - $form['materio_translator']['materio_translator'] = array( - '#type' => 'checkboxes', - '#options' => array(LANGUAGE_NONE => t('Language neutral')) + locale_language_list('name'), - '#default_value' => materio_translator_load_permissions($form['#user']->uid), - '#description' => t('The user get edit, delete access to all content which are in this enabled languages. Create, view access needs a different access level.'), - ); + // Add materio_translator things to user/edit /user/add + if ($form_id == 'user_register_form' || $form_id == 'user_profile_form' ) { + // dsm($form_id, 'form_id'); + // dsm($form, 'form'); + // dsm($form_state, 'form_state'); + + $form['materio_translator'] = array( + '#type' => 'fieldset', + '#title' => t('Translation access'), + '#tree' => 0, + '#access' => user_access('administer user translation language access'), + ); + $form['materio_translator']['materio_translator'] = array( + '#type' => 'checkboxes', + '#options' => array(LANGUAGE_NONE => t('Language neutral')) + locale_language_list('name'), + '#default_value' => materio_translator_load_permissions($form['#user']->uid), + '#description' => t('The user get edit, delete access to all content which are in this enabled languages. Create, view access needs a different access level.'), + ); + } + + // limit fields in string translation + if($form_id == 'i18n_string_locale_translate_edit_form'){ + // dsm($form, 'form'); + // dsm($form_state, 'form_state'); + global $user; + $perms = materio_translator_load_permissions($user->uid); + // dsm($perms); + foreach ($form['translations'] as $langcode => $item) { + // disable field if langcode not in perms + if(!in_array($langcode, $perms) && isset($form['translations'][$langcode])){ + $form['translations'][$langcode]['#disabled'] = true; + } } + } + + // limit fields in string translation + if($form_id == 'field_translation_table_form' + || $form_id == "node_translation_table_nodetype_form" + || $form_id == "menu_translation_table_menu_form" + || $form_id == "taxonomy_translation_table_taxonomy_form"){ + // dsm($form, 'form'); + // dsm($form_state, 'form_state'); + global $user; + $perms = materio_translator_load_permissions($user->uid); + // dsm($perms); + foreach ($form['filtered_form']['strings'] as $id => $row) { + foreach ($row as $langcode => $field) { + // disable field if langcode not in perms + if(!in_array($langcode, $perms)){ + $form['filtered_form']['strings'][$id][$langcode]['#disabled'] = true; + } + } + } + } + } /** @@ -224,10 +298,45 @@ function materio_translator_menu_alter(&$items) { } // translation add link - if(preg_match('/^node\/%node\/edit\/add\/%entity_translation_language/', $path)){ + // if(preg_match('/^node\/%node\/edit\/add\/%entity_translation_language/', $path)){ // dsm($item, $path); + // } + // translation add link + if(preg_match('/admin\/config\/regional\/translate/', $path)){ + $items[$path]['access arguments'] = array('access_translations_overview'); } + if(preg_match('/admin\/config\/regional\/translate\/table/', $path)){ + $items[$path]['access arguments'] = array('access_translation_table_fields'); + } + if(preg_match('/admin\/config\/regional\/translate\/table\/nodetype/', $path)){ + $items[$path]['access arguments'] = array('access_translation_table_content_type'); + } + if(preg_match('/admin\/config\/regional\/translate\/table\/menu/', $path)){ + $items[$path]['access arguments'] = array('access_translation_table_menu'); + } + if(preg_match('/admin\/config\/regional\/translate\/table\/taxonomy/', $path)){ + $items[$path]['access arguments'] = array('access_translation_table_taxonomy'); + } + if(preg_match('/admin\/config\/regional\/translate\/translate/', $path)){ + $items[$path]['access arguments'] = array('translate_strings'); + } + if(preg_match('/admin\/config\/regional\/translate\/import/', $path)){ + $items[$path]['access arguments'] = array('import_translations'); + } + if(preg_match('/admin\/config\/regional\/translate\/i18n_string/', $path)){ + $items[$path]['access arguments'] = array('refresh_strings'); + } + if(preg_match('/admin\/config\/regional\/translate\/update/', $path)){ + $items[$path]['access arguments'] = array('update_modules_translations'); + } + if(preg_match('/admin\/config\/regional\/translate\/export/', $path)){ + $items[$path]['access arguments'] = array('export_translations'); + } + if(preg_match('/admin\/config\/regional\/translate\/delete/', $path)){ + $items[$path]['access arguments'] += array("delete_strings"); + } + } } @@ -430,7 +539,7 @@ function _materio_translator_form_node_form_alter($form, &$form_state) { function materio_translator_node_tab_access(){ $args = func_get_args(); - dsm($args, '1 -- materio_translator_node_tab_access args'); + // dsm($args, '1 -- materio_translator_node_tab_access args'); // dsm($entity_type, "entity_type"); // dsm($entity, "entity"); diff --git a/sites/all/modules/gui/translate_perms/translate_perms.info b/sites/all/modules/gui/translate_perms/translate_perms.info deleted file mode 100644 index 073eee95..00000000 --- a/sites/all/modules/gui/translate_perms/translate_perms.info +++ /dev/null @@ -1,29 +0,0 @@ -name = Translate Perms -description = "The description of this module" - -; Core version (required) -core = 7.x - -; Package name (see http://drupal.org/node/542202 for a list of names) -; package = - -; PHP version requirement (optional) -; php = 5.2 - -; Loadable code files -; files[] = translate_perms.module -; files[] = translate_perms.admin.inc -; files[] = translate_perms.class.inc - -; Module dependencies -; dependencies[] = mymodule -; dependencies[] = theirmodule (1.2) -; dependencies[] = anothermodule (>=2.4) -; dependencies[] = views (3.x) - -; Configuration page -; configure = admin/config/translate_perms - - -; For further information about configuration options, see -; - http://drupal.org/node/542202 diff --git a/sites/all/modules/gui/translate_perms/translate_perms.module b/sites/all/modules/gui/translate_perms/translate_perms.module deleted file mode 100644 index c0698102..00000000 --- a/sites/all/modules/gui/translate_perms/translate_perms.module +++ /dev/null @@ -1,92 +0,0 @@ - array( - 'title' => t('Access translations overview') - ), - - 'access_translation_table_fields' => array( - 'title' => t('Access translation Fields table') - ), - 'access_translation_table_content_type' => array( - 'title' => t('Access translation Content types table') - ), - 'access_translation_table_menu' => array( - 'title' => t('Access translation menu table') - ), - 'access_translation_table_taxonomy' => array( - 'title' => t('Access translation taxonomy table') - ), - - 'translate_strings' => array( - 'title' => t('Translate strings') - ), - 'import_translations' => array( - 'title' => t('Import translations') - ), - 'refresh_strings' => array( - 'title' => t('Refresh strings') - ), - 'update_modules_translations' => array( - 'title' => t('Update modules translations') - ), - 'export_translations' => array( - 'title' => t('Import translations') - ), - ); -} - - -/** - * Implements hook_menu_alter(). - */ -function translate_perms_menu_alter(&$items) { - - if(isset($items['admin/config/regional/translate'])) - $items['admin/config/regional/translate']['access arguments'] = array('access_translations_overview'); - - - if(isset($items['admin/config/regional/translate/table'])) - $items['admin/config/regional/translate/table']['access arguments'] = array('access_translation_table_fields'); - - if(isset($items['admin/config/regional/translate/table/nodetype'])) - $items['admin/config/regional/translate/table/nodetype']['access arguments'] = array('access_translation_table_content_type'); - - if(isset($items['admin/config/regional/translate/table/menu'])) - $items['admin/config/regional/translate/table/menu']['access arguments'] = array('access_translation_table_menu'); - - if(isset($items['admin/config/regional/translate/table/taxonomy'])) - $items['admin/config/regional/translate/table/taxonomy']['access arguments'] = array('access_translation_table_taxonomy'); - - - - if(isset($items['admin/config/regional/translate/translate'])) - $items['admin/config/regional/translate/translate']['access arguments'] = array('translate_strings'); - - if(isset($items['admin/config/regional/translate/import'])) - $items['admin/config/regional/translate/import']['access arguments'] = array('import_translations'); - - if(isset($items['admin/config/regional/translate/i18n_string'])) - $items['admin/config/regional/translate/i18n_string']['access arguments'] = array('refresh_strings'); - - if(isset($items['admin/config/regional/translate/update'])) - $items['admin/config/regional/translate/update']['access arguments'] = array('update_modules_translations'); - - if(isset($items['admin/config/regional/translate/export'])) - $items['admin/config/regional/translate/export']['access arguments'] = array('export_translations'); - - -} - diff --git a/sites/all/themes/gui/guibik/css/guibik.css b/sites/all/themes/gui/guibik/css/guibik.css index 8070489c..911557e8 100644 --- a/sites/all/themes/gui/guibik/css/guibik.css +++ b/sites/all/themes/gui/guibik/css/guibik.css @@ -64,7 +64,7 @@ select.form-select:disabled { border-width: 0px; border-style: solid; border-color: none; - background: #fff; + background: #f0f0f0; color: #1A1A1A; max-width: 100%; } @@ -84,6 +84,17 @@ select.form-select:focus:disabled { border-color: #fff; box-shadow: #fff 0 0 0px; } +#i18n-string-locale-translate-edit-form { + position: relative; +} +#i18n-string-locale-translate-edit-form #edit-original { + font-size: 1.2em; + border-bottom: 1px solid #ddd; +} +#i18n-string-locale-translate-edit-form .form-item.form-type-textarea { + width: 24%; + display: inline-block; +} span.autocomplete-deluxe-button { top: 0.25em; } diff --git a/sites/all/themes/gui/guibik/less/guibik.less b/sites/all/themes/gui/guibik/less/guibik.less index 36fa8b17..6374640c 100644 --- a/sites/all/themes/gui/guibik/less/guibik.less +++ b/sites/all/themes/gui/guibik/less/guibik.less @@ -64,7 +64,7 @@ select.form-select:disabled{ border-width:0px; border-style:solid; border-color:none; - background:#fff; + background:#f0f0f0; color:#1A1A1A; max-width:100%; } @@ -89,6 +89,17 @@ select.form-select:focus:disabled{ box-shadow: #fff 0 0 0px; } +#i18n-string-locale-translate-edit-form{ + position: relative; + #edit-original{ + font-size: 1.2em; + border-bottom: 1px solid #ddd; + } + .form-item.form-type-textarea{ + width:24%; display: inline-block; + } +} + span.autocomplete-deluxe-button{top:0.25em;} diff --git a/sites/all/themes/gui/guibik/template.php b/sites/all/themes/gui/guibik/template.php index ac2b5d5d..dc835bee 100644 --- a/sites/all/themes/gui/guibik/template.php +++ b/sites/all/themes/gui/guibik/template.php @@ -96,21 +96,21 @@ function guibik_preprocess_page(&$vars) { } function guibik_preprocess_html(&$vars){ - + $heads['icon'] = array( '#tag' => 'link', '#attributes' => array( - 'href' => base_path() . path_to_theme() .'/icon.png', + 'href' => base_path() . path_to_theme() .'/icon.png', 'rel' => 'shortcut icon', 'type' => 'image/png', ), ); - - + + $heads['apple-touch-icon'] = array( '#tag' => 'link', '#attributes' => array( - 'href' => base_path() . path_to_theme() .'/apple-touch-icon.png', + 'href' => base_path() . path_to_theme() .'/apple-touch-icon.png', 'rel' => 'apple-touch-icon', ), ); @@ -124,7 +124,7 @@ function guibik_preprocess_views_view_table(&$vars){ if($vars['title'] != ''){ $vars['classes_array'][] = 'has-caption'; } - // dsm($vars); + // dsm($vars); } /** @@ -134,7 +134,7 @@ function OUT_guibik_form_element($variables) { $element = &$variables['element']; // This is also used in the installer, pre-database setup. $t = get_t(); - + //dsm($element); // This function is invoked as theme wrapper, but the rendered form element @@ -150,7 +150,7 @@ function OUT_guibik_form_element($variables) { // Add element's #type and #name as class to aid with JS/CSS selectors. if(!isset($element["#attributes"]['class'])) $element["#attributes"]['class'] = array(); - + $attributes['class'] = $element["#attributes"]['class'] + array('form-item'); if (!empty($element['#type'])) { $attributes['class'][] = 'form-type-' . strtr($element['#type'], '_', '-'); @@ -218,8 +218,79 @@ function guibik_field_widget_form_alter(&$element, &$form_state, $context) { foreach ($element as $delta => $item) { if(!isset($element[$delta]['#process']) || !is_array($element[$delta]['#process'])) continue; - + $element[$delta]['#process'][] = "guibik_image_field_widget_process"; } } } + + + +/** + * Theme function for the translation table. + * + * @ingroup themeable + */ +function guibik_translation_table($variables) { + $form = $variables['form']; + $rows = array(); + $header = $form['header']['#value']; + $languages = $form['languages']['#value']; + + foreach (element_children($form['strings']) as $key) { + // Build the table row. + $row = array(); + $row['data'][] = array('data' => drupal_render($form['strings'][$key]['source']), 'class' => 'translation-source'); + + foreach ($languages as $lang_code => $lang_name) { + $row['data'][] = array('data' => drupal_render($form['strings'][$key][$lang_code]), 'class' => 'translation-'. $lang_code); + }; + $location = explode(':', $form['strings'][$key]['location']['#value']); + if (count($location) == 4) { + switch ($location[1]) { + case 'term': + $row['data'][] = l(t('Edit source'), 'admin/content/taxonomy/edit/term/'. $location[1], array('attributes' => array('title' => t('Edit term (@property)', array('@property' => t($location[2])))))); + break; + + case 'vocabulary': + $row['data'][] = l(t('Edit source'), 'admin/content/taxonomy/edit/vocabulary/'. $location[1], array('attributes' => array('title' => t('Edit vocabulary (@property)', array('@property' => t($location[2])))))); + break; + + case 'item': + $row['data'][] = l(t('Edit source'), 'admin/build/menu/item/'. $location[1] .'/edit', array('attributes' => array('title' => t('Edit menu item (@property)', array('@property' => t($location[2])))))); + break; + + case 'type': + $node_types = node_type_get_names(); + $node_type = isset($node_types[$location[1]]) ? $node_types[$location[1]] : $location[1]; + $row['data'][] = l(t('Edit source'), 'admin/content/node-type/'. $location[1], array('attributes' => array('title' => t('Edit @node_type (@property)', array('@node_type' => $node_type, '@property' => t($location[2])))))); + break; + + default: + $row['data'][] = ''; + } + } + else { + $row['data'][] = ''; + } + $row['data'][] = l(t('Translate'), 'admin/config/regional/translate/edit/'. $key); + if(user_access('delete_strings')) + $row['data'][] = l(t('Delete string'), 'admin/config/regional/translate/delete/'. $key); + + $rows[] = $row; + } + + $output = theme('table', array( + 'header' => $header, + 'rows' => $rows, + 'attributes' => array('id' => 'translation-table') + )); + + if ($form['pager']['#markup']) { + $output .= drupal_render($form['pager']); + } + $output .= drupal_render_children($form); + + drupal_add_css(drupal_get_path('module', 'translation_table') .'/css/translation-table-admin.css'); + return $output; +}