| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 | 
							- <?php
 
- /**
 
-  * Implements hook_permission().
 
-  */
 
- function materio_taxonomy_permission() {
 
- 	$perms = array();
 
- // foreach (taxonomy_get_vocabularies() as $voc) {
 
- // 	dsm($voc, '$voc');
 
- // 	// $perms['access taxonomy term page'] =>  array(
 
- //  //     'title' => t(''),
 
- //  //     'description' => t(''),
 
- //  //   );
 
- // }
 
- 	$perms['access taxonomy terms page'] = array(
 
- 		'title' => t('access taxonomy terms page'),
 
- 		'description' => t(''),
 
- 	);
 
- 	$perms['access fr2en materio'] = array(
 
- 		'title' => t('access fr2en materio'),
 
- 		'description' => t(''),
 
- 	);
 
-   return $perms;
 
- }
 
- function materio_taxonomy_menu_alter(&$items) {
 
-   $items['taxonomy/term/%taxonomy_term']['access arguments'] = array('access taxonomy terms page');
 
-   $items['taxonomy/term/%taxonomy_term/view']['access arguments'] = array('access taxonomy terms page');
 
-   $items['taxonomy/term/%taxonomy_term/feed']['access arguments'] = array('access taxonomy terms page');
 
- }
 
- /**
 
-  * Implementation of hook_query_term_access_alter().
 
-  *
 
-  * debug de i18n_select_query_term_access_alter()
 
-  * qui filtre les terms par language mm pour les vocabulaires en mode localized.
 
-  * utile pour la recherche avancée de materio_search_api materio_search_api_advanced_search_form()
 
-  *
 
-  *
 
-  * Inutile si i18n_taxonomy module is desactivate
 
-  */
 
- function DISABLED_materio_taxonomy_query_term_access_alter(QueryAlterableInterface $query) {
 
-   // dsm($query, 'materio taxo query');
 
- 	if(!module_exists('i18n_taxonomy'))
 
- 		return;
 
- 		
 
- 	$conditions =& $query->conditions();
 
-   # roll over condition first time to determine i18n_voc_mode
 
-   $i18n_voc_mode = 0;
 
-   foreach ($conditions as $condition) {
 
-     if (is_array($condition)) {
 
-       // dsm($condition, 'conditon '.$condition['field']);
 
-       if($condition['field'] == 't.vid'){
 
-         $vid = $condition['value'];
 
-         $i18n_voc_mode = module_exists('i18n_taxonomy') ? i18n_taxonomy_vocabulary_mode($vid) : 0;
 
-         // dsm($i18n_voc_mode, 'i18n_voc_mode');
 
-       }
 
-     }
 
-   }
 
-   # roll over conditions a second time to re-alter/fixe language selection
 
-   # i18n vocabulary mode is 1 for localized terms
 
-   if($i18n_voc_mode == 1){
 
-     foreach ($conditions as $index => $condition) {
 
-       if (is_array($condition)) {
 
-         // dsm($condition, 'conditon '.$condition['field']);
 
-         if($condition['field'] == 't.language' && $i18n_voc_mode == 1){
 
-           $l = array('und');
 
-           $ll = i18n_language_list();
 
-           // dsm($ll, 'list language');
 
-           foreach ($ll as $langcode => $langname) {
 
-             $l[] = $langcode;
 
-           }
 
-           $conditions[$index]['value'] = $l;
 
-         }
 
-       }
 
-     }
 
-   }
 
- }
 
- /**
 
-  * Implements hook_menu().
 
-  */
 
- function materio_taxonomy_menu() {
 
-   $items['admin/structure/taxonomy/fr2en'] = array(
 
-     'title' => 'fr2en taglibres',
 
- 		'page callback' => 'drupal_get_form',
 
-     'page arguments' => array('materio_taxonomy_fr2en_form'),
 
-     'access arguments' => array('access fr2en materio'),
 
- 		'type' => MENU_NORMAL_ITEM,
 
- 		'weight' => 999,
 
-   );
 
-   return $items;
 
- }
 
- function materio_taxonomy_fr2en_form(){
 
- 		$form['description'] = array(
 
- 		 '#type' => 'markup',
 
- 		 '#markup' => t('convert tag libres terms name frome french to english from csv file'),
 
- 	 );
 
- 	 $form['batch'] = array(
 
- 		 '#type' => 'select',
 
- 		 '#title' => 'Choose batch',
 
- 		 '#options' => array(
 
- 			 'fr2en' => t('fr2en'),
 
- 			 'en2fr' => t('en2fr'),
 
- 		 ),
 
- 	 );
 
- 	 $form['submit'] = array(
 
- 		 '#type' => 'submit',
 
- 		 '#value' => 'Go',
 
- 	 );
 
- 	 return $form;
 
- }
 
- function materio_taxonomy_fr2en_form_submit($form, &$form_state) {
 
-   $function = 'materio_taxonomy_fr2en';
 
-   // Reset counter for debug information.
 
-   $_SESSION['http_request_count'] = 0;
 
-   // Execute the function named batch_example_1 or batch_example_2.
 
-   $batch = $function($form_state['values']['batch']);
 
-   batch_set($batch);
 
- }
 
- function materio_taxonomy_fr2en($op){
 
- 	$file = drupal_get_path('module', 'materio_taxonomy')."/assets/taglibres_".$op.".csv";
 
- 	$data = array();
 
- 	if (($handle = fopen($file, "r")) !== FALSE) {
 
- 		while (($line = fgetcsv($handle, 1000, ",")) !== FALSE) {
 
- 			$data[$line[0]] = $line[1];
 
- 		}
 
-     fclose($handle);
 
- 	}else{
 
- 		drupal_set_message("fopen csv file failed");
 
- 		return;
 
- 	}
 
- 	// get term list from vocabulary
 
- 	$tags = taxonomy_get_tree(4);
 
- 	$operations = array();
 
- 	foreach ($tags as $tid => $t) {
 
- 		if($t->name){
 
- 			if(isset($data[$t->name])){
 
- 				$operations[] = array(
 
- 					'materio_taxonomy_fr2en_batch',
 
- 					array(
 
- 						$data[$t->name],
 
- 						$t
 
- 					)
 
- 				);
 
- 			}
 
- 		}
 
- 	}
 
- 	$batch = array(
 
- 		"operations" => $operations,
 
- 		"finished" => "materio_taxonomy_fr2en_batch_finished"
 
- 	);
 
- 	return $batch;
 
- }
 
- function materio_taxonomy_fr2en_batch($name, $t, &$context){
 
- 	$oldname = $t->name;
 
- 	$t->name = $name;
 
- 	taxonomy_term_save($t);
 
- 	// $cont= array('term',$t->tid,'name');
 
- 	// i18n_string_textgroup('taxonomy')->update_translation($cont, 'fr', $oldname);
 
- 	// https://www.drupal.org/project/entity_translation_export_import
 
- 	$context['message'][] = $oldname .' -> '. $name;
 
- 	$_SESSION['http_request_count']++;
 
- }
 
- function materio_taxonomy_fr2en_batch_finished($success, $results, $operations){
 
- 	if($success){
 
- 		drupal_set_message('All terms converted');
 
- 	}
 
- }
 
 
  |