Таксономия: запрет выбора термина верхнего уровня (корневого термина) в форме добавления материала

Submitted by char0day on ср, 11/10/2010 - 09:32

Иногда необходимо запретить выбор корневых терминов словаря в форме добавления материала. Тогда в файл template.php вашей темы нужно добавить следующий код:

  1. function имятемы_theme() {
  2.     return array(
  3. 	'gallery_node_form'=> array(
  4. 		    // Forms always take the form argument.
  5. 	    'arguments' => array('form' => NULL),
  6. 	),	
  7. 	'comment_form'=> array(
  8. 		    // Forms always take the form argument.
  9. 	    'arguments' => array('form' => NULL),
  10. 	),
  11.  
  12. 	'Ид_необходимой_формы'=> array(
  13. 		    // Forms always take the form argument.
  14. 	    'arguments' => array('form' => NULL),
  15. 	),
  16.     );
  17. }
  18.  
  19. //function имятемы_ИД_формы($form) {
  20. function имятемы_gallery_node_form($form) {
  21.     $op1=array();
  22.     $op2=array();
  23.     $op3=array();
  24.     $rootterms=array();
  25.     $vocvid=6; //здесь ИД_необходимого_словаря;
  26.     $tree =taxonomy_get_tree($vocvid,$max_depth=0);
  27.     foreach ($tree as $term) {
  28.         if ($term->depth<1)
  29.    $rootterms[$term->name]=$term->tid;
  30.         }
  31.     }
  32.     foreach($rootterms as $rootterm => $rvalue){
  33.         $tree =taxonomy_get_tree( $vocvid,$parent=$rvalue);
  34.         foreach($tree as $term) {
  35.             $op3['option'][$term->tid]=$term->name;
  36.             $op2[]=(object)$op3;
  37.             unset($op3);
  38.         }
  39.         $op1['------']="-----"; //добавил пустышку
  40.         $op1[$rootterm]= $op2;
  41.         //print krumo_ob($op2);
  42.         unset($op2);
  43.     }
  44.         //записываем в массив #options наши значения
  45.     $form['taxonomy']['$vid_словаря']['#options']=$op1; 
  46.  
  47.     $output .= drupal_render($form);
  48.     return $output;
  49. }


Ну и конечно не забудьте поменять "Имя_Темы" на название Вашей темы, "ИД_Формы" на конкретный идентификатор формы и подставить в переменную $vocvid vid необходимого словаря.

Комментарии

Оставить комментарий

Restricted HTML

  • Разрешённые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h4 id> <h5 id> <h6 id>
  • Строки и параграфы переносятся автоматически.
  • Web page addresses and email addresses turn into links automatically.