Ответы пользователя по тегу Drupal
  • Как программно в drupal7 предзаполнить множественное поле несколькими Items типа FieldColelction при создании нового материала?

    alekseyasherbondarenko
    @alekseyasherbondarenko Автор вопроса
    Нашел решение самостоятельно - может кому пригодится.
    1) создаем новую ноду которая будет служить в качестве заготовки с предустановленным набором элементов в
    $node_template->field_properties['und'][0..2] у меня три свойства для продукта по умолчанию
    $node_template->nid==22
    2) Хардкодно присваиваем эту же структуру объекту создаваемой ноды (еще без ее nid) в хуке:
    /**
     * Implements hook_node_prepare().
     */
    function nxte_database_node_prepare($node) {
    //Изменяем объект ноды перед тем как друпал построит для него форму добавления материала
    if($node->type == 'product' && !isset($node->nid)){
      $node_array_hardcoded =array(
          'body' => array(
                'und' => array(
                        0 => array(
                                'value' => 'Description of product',
                                'format' => 'full_html',
                                'safe_value' =>  'Description of product',
                            ),
    
                    ),
    
            ),
          'field_properties' => array(
                'und' => array(
                        0 => array(
                                'value' => 46, //это значение будет изменено после сохранения новой ноды (сейчас это existing_filed_collection_item_ID)
                                'revision_id' => 46,
                            ),
    
                        1 => array(
                                'value' => 47, //это значение будет изменено после сохранения новой ноды (сейчас это existing_filed_collection_item_ID)
                                'revision_id' => 47,
                            ),
    
                        2 => array(
                                'value' => 48, //это значение будет изменено после сохранения новой ноды (сейчас это existing_filed_collection_item_ID)
                                'revision_id' => 48,
                            ),
    
                    ),
    
            ),
    
          );
        foreach ($node_array_hardcoded as $key => $value){
          $node->$key = $value;
        }
      }
    
    }


    Смотреть результат: Create%20Product%20%7C%20Drupal%20Defaul

    Сделаю до ума поделюсь модулем. dev-alexmazaltov.pantheon.io
    Ответ написан
  • Как создать обработчик для кнопки типа #submit с помощью Form API в Drupal 7?

    alekseyasherbondarenko
    @alekseyasherbondarenko Автор вопроса
    $form['submit_one'] = array(
      '#type' => 'submit',
      '#value' => t('Submit One'),
      '#submit' => array('my_module_form_submit_one'),  //обработчик submit для первой кнопки
    );
    $form['submit_two'] = array(
      '#type' => 'submit',
      '#value' => t('Submit Two'),
      '#submit' => array('my_module_form_submit_two'), //обработчик submit для второй кнопки
    );

    stofl.org/questions/4501890/handle-multiple-submit...
    Ответ написан
    Комментировать