| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 | <?phpfunction materio_search_api_settings(){	$indexes = search_api_index_load_multiple(false);	// dsm($indexes, '$indexes');	foreach ($indexes as $machine_name => $index) {		if($index->enabled == 1)			$index_options[$index->machine_name] = $index->name;	}	$languages = locale_language_list();	// dsm($languages, 'languages');	$form = array();	// Solr indexes by language	foreach ($languages as $lcode => $name) {		$form['fulltextsearchindex_'.$lcode] = array(			'#type'=>'select',			'#options'=>$index_options,			'#default_value' => variable_get('fulltextsearchindex_'.$lcode, -1),			'#title' => t('Full text search api index for %lang contents.', array('%lang'=>$name)),		);		$form['taxonomysearchindex_'.$lcode] = array(			'#type'=>'select',			'#options'=>$index_options,			'#default_value' => variable_get('taxonomysearchindex_'.$lcode, -1),			'#title' => t('Taxonomy search api index for %lang contents.', array('%lang'=>$name)),		);		$form['advancedsearchindex_'.$lcode] = array(			'#type'=>'select',			'#options'=>$index_options,			'#default_value' => variable_get('advancedsearchindex_'.$lcode, -1),			'#title' => t('Advanced search api index for %lang contents.', array('%lang'=>$name)),		);		$form['brevessearchindex_'.$lcode] = array(			'#type'=>'select',			'#options'=>$index_options,			'#default_value' => variable_get('brevessearchindex_'.$lcode, -1),			'#title' => t('Breves search api index for %lang contents.', array('%lang'=>$name)),		);		$form['autocompletesearchindex_'.$lcode] = array(			'#type'=>'select',			'#options'=>$index_options,			'#default_value' => variable_get('autocompletesearchindex_'.$lcode, -1),			'#title' => t('Autocomplete search api index for %lang contents.', array('%lang'=>$name)),		);	}	// view modes	// TODO:  select the activated viewmodes for change view mode and selected view mode	$entity_infos = entity_get_info();  // dsm($entity_infos, 'entity_infos');  foreach ($entity_infos['node']['view modes'] as $viewmode => $value) {  	$viewmode_options[$viewmode] = $value['label'];  }	$form['availableviewmodes'] = array(		'#type'=>'select',		'#options'=>$viewmode_options,		'#default_value' => variable_get('availableviewmodes', array()),		'#title' => t('Availble View modes'),		'#multiple' => true,	);	$form['defaultviewmode'] = array(		'#type'=>'select',		'#options'=>$viewmode_options,		'#default_value' => variable_get('defaultviewmode', 'full'),		'#title' => t('Defalut View mode'),	);	// limits by view mode	foreach (variable_get('availableviewmodes', array()) as $viewmode => $value) {		$form[$viewmode.'_limite'] = array(			'#type'=>'textfield',			'#size'=>5,			'#default_value' => variable_get($viewmode.'_limite', '10'),			'#title' => t('@vm limite', array('@vm'=>$viewmode)),		);	}	// advanced search vocabulary	$vocs = taxonomy_get_vocabularies();	// dsm($vocs, 'vocs');	$vocs_options = array();	foreach ($vocs as $vid => $voc) {		$vocs_options[$vid] = $voc->name;	}	$form['msa-advancedsearchvocabulary'] = array(		'#type' => 'select',		'#options' => $vocs_options,		'#default' => variable_get('msa-advancedsearchvocabulary', null),		'#title' => t('advanced search vocabulary'),		'#description' => 'Choose which vocabulary will be used for advanced search form',	);	// advanced search hide some taxonomy terms	if($vid = variable_get('msa-advancedsearchvocabulary', null)){		$tree = msa_taxonomy_get_nested_tree(taxonomy_get_tree($vid));		// dsm($tree, "tree");		$tree_options = array();		msa_get_nested_tree_options($tree, $tree_options);		// dsm($tree_options, 'tree_options');		$form['msa-hiddentaxoterms'] = array(			'#type' => 'select',			'#options' => $tree_options,			'#default_value' => variable_get('msa-hiddentaxoterms', array()),			'#multiple' => TRUE,			'#title' => t('Hidden taxonomy terms'),			'#description' => t('Select terms which will be hidden from advanced search form')		);	}	return system_settings_form($form);}function msa_taxonomy_get_nested_tree($terms = array(), $max_depth = NULL, $parent = 0, $parents_index = array(), $depth = 0) {	  if (is_int($terms)) {			$terms = taxonomy_get_tree($terms);	  }	  foreach($terms as $term) {			foreach($term->parents as $term_parent) {			  if ($term_parent == $parent) {				$return[$term->tid] = $term;			  }			  else {				$parents_index[$term_parent][$term->tid] = $term;			  }			}	  }	  foreach($return as &$term) {			if (isset($parents_index[$term->tid]) && (is_null($max_depth) || $depth < $max_depth)) {			  $term->children = msa_taxonomy_get_nested_tree($parents_index[$term->tid], $max_depth, $term->tid, $parents_index, $depth + 1);			}	  }	  return $return;	}function msa_get_nested_tree_options($tree, &$options, $prefix = ""){	foreach ($tree as $tid => $term) {		$options[$tid] = $prefix . $term->name;		if(isset($term->children)){			msa_get_nested_tree_options($term->children, $options, $prefix."$term->name - ");		}	}}
 |