web-dev-qa-db-ja.com

有機グループが作成されたときにWebフォームを自動的に作成するにはどうすればよいですか?

新しい有機グループノードが作成されたときに、Webフォームを自動的に作成したいと思います。

Webフォームには事前定義フィールドがあり、グループ管理者または事前定義された役割を持つグループ内のユーザーに電子メールを送信する必要があります。または、グループコンテンツタイプのcckフィールドに入力されたアドレスに電子メールを送信することもできます。

Og_webformを使用してみましたが、各グループのWebフォームを作成する方法を理解できませんでした。

1
Arosboro

これにはおそらく複数ありました。私がそれを見る方法はカスタムモジュールです。

Drupal 6、hook_node_insert($ node)in Drupal 7.でhook_nodeapi(&$ node、$ op)を使用したい。

あなたのコードはこのようなものになります

CUSTOM_MODULE_NAME_nodeapi(&node, $op) {
  switch ($op) {
    case 'insert':
       if ($node->type == 'group') {
         global $user;

         // Create new object.
         $node = new stdClass();

         // Set desired data and metadata as members in object.
         $node->type = 'predefine_webform_with_predefine_fields';
         $node->uid = $user->uid;
         $node->title = 'node title';
         $node->body = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit...';
         //... prefill other cck fields

         // Save the node
         node_save($node);

       }
       break;
     }
   }
}

(Drupal 7、スイッチのケースを除いたもの)のコードは同じに見えるはずです)

1
iStryker

プログラムでノードを作成するには、特定のアクションでnode.moduleに変更を加える必要があります

オンラインで。 874、node_save($ node)を見つけます。特定のコンテンツタイプ、つまり「ページ」からノードを作成する状況があるとします。そしてプログラム的にノードは

コードはストーリータイプ

    if($node->type=="page")
         {
    $node_new = new StdClass();
            //creating a bare node

    $node_new->type = 'story ';
    //giving it type

    $node_new->status = 1;
    //give it a published staus

    $node_new->title = "This is story title";
    //gives title

    $node_new->body = "This is story  body";
    //gives body

    node_save($node_new);

    //save it and give it the rest of the attributes    
    //drupal_set_message('Automated '.$node_new->type.'Created');
}

元の投稿を表示するにはここをクリック

0
shams