Показать только определенные словари при создании ноды

Главные вкладки

Аватар пользователя Айдар Айдар 27 июля 2011 в 11:51

Может кто встречал модуль?
Пользователи имеют возможность создавать ноду определенного типа материала с премодерцией, в нем 5 словарей и нужно дать возможность присваивать термины только части словарей, т.е. показывать только 3 словаря из 5.

Пробовал ставить TAC и TAC Lite, но либо я не вкурил, либо они служат для другого - ограничивают доступ к материалу в зависимости от терминов, присвоенных ему.

Комментарии

Аватар пользователя Айдар Айдар 27 июля 2011 в 13:03

Прошу прощения, я неверно объяснил, видимо - нужно скрыть определенные словари от ролей (всех).

Т.е. юзер добавляет ноду и видит только 3 словаря, присваивает термины, после чего нода сохраняется со статусом "не опубликована". А потом уже я как админ присваиваю термины из остальных 2-х словарей и публикую ноду.

Т.е. если я уберу галки в настройках словаря, то тогда и я не увижу этот словарь при правке ноды.

Спасибо!

Аватар пользователя Punk_UnDeaD Punk_UnDeaD 27 июля 2011 в 13:19

можно создать модуль, который будет выводить исправленную форму создания ноды
сам с этим разбираюсь
вот кусок того, что я сейчас правлю

function gpr_menu() {
  $items = array();
  $items['admin/settings/gpr'] = array(
    'title' => 'gpr settings',
    'description' => 'Administer gpr settings',
    'page callback' => 'gpr_settings',
    'access arguments' => array('search content'),
    'type' => MENU_NORMAL_ITEM,
  );
  return $items;
}
function gpr_settings(){
        module_load_include('inc', 'node', 'node.pages');
        //prepare $node
        $node->type='profile';
        node_object_prepare($node);
        $output=drupal_get_form('gpr_addform',$node);
        return $output;
}

function gpr_addform(&$form_state,$node) {
        $form = drupal_retrieve_form($node->type.'_node_form',$form_state,$node);
        drupal_prepare_form($node->type."_node_form",$form,$form_state);
        unset($form["author"]);
        unset($form["options"]);
        unset($form["revision_information"]);
        unset($form["comment_settings"]);
        unset($form["menu"]);
        unset($form["path"]);
        unset($form["attachments"]);
        unset($form["buttons"]['preview']);
        $form["#validate"][]="gpr_addform_validate";
        $form["#submit"][]="gpr_addform_submit";
        return $form;
}