কীভাবে প্রোগ্রামটিকে ড্রুপাল 7-তে একটি গ্রুপে কোনও ব্যবহারকারী যুক্ত করা যায়


10

আমি প্রোগ্রামালিকভাবে একটি গ্রুপ নোড তৈরি করার চেষ্টা করছি এবং ড্রুপাল in-তে একটি গ্রুপে একটি ব্যবহারকারী যুক্ত করার চেষ্টা করছি The গ্রুপ নোডটি ঠিক তৈরি করা হচ্ছে তবে ব্যবহারকারীকে গ্রুপে যুক্ত করা হচ্ছে না এবং আমি কোনও ত্রুটি পাচ্ছি না। আমি অনুমান করছি যে আমি og_group ফাংশনটি ভুলভাবে ব্যবহার করছি তবে আমি নিশ্চিত নই। আমি কি ভুল করছি?

function MYMODULE_form_submit($form_id, $form_values) {
    global $user;

    $node = new stdClass();

    $node->type     = "group";
    $node->uid      = $user->uid;
    $node->title        = t("Group Node Title");
    $node->body     = t("Group Node Body");
    $node->status       = 1;
    $node->promote      = 0;
    $node->comment      = 1;

    $node->og_description   = t("OG Description");
    $node->og_register  = 0;
    $node->og_directory = 0;
    $node->og_private   = 1;
    $node->og_selective = 3;

    $node = node_submit($node);
    node_save($node);

    $account = user_load(2);

    og_group($node->nid, array(
                "entity type"       => "user",
                "entity"        => $account,
                "membership type"   => "OG_MEMBERSHIP_TYPE_DEFAULT",
            ));

    drupal_set_message(t("Finished"));
}

হাই সর্বোচ্চ - আপনি একটি ভাল প্রশ্ন উত্থাপন। ধন্যবাদ দর্শন
শূন্য

উত্তর:


13

আমি এটি বের করেছিলাম। এটি কাজ না করে শেষ হয়েছে কারণ গ্রুপ আইডি সেই জৈব গ্রুপের নোড আইডির মতো নয়। এখানে ওয়ার্কিং সংস্করণ:

function MYMODULE_page_form_submit($form_id, $form_values) {
    global $user;

    $node = new stdClass();

    $node->type     = "group";
    $node->uid      = $user->uid;
    $node->title        = t("Group Node Title");
    $node->body     = t("Group Node Body");
    $node->status       = 1; //(1 or 0): published or not
    $node->promote      = 0; //(1 or 0): promoted to front page
    $node->comment      = 1; //2 = comments on, 1 = comments off

    $node->og_description   = t("OD Description");
    $node->og_register  = 0;
    $node->og_directory = 0;
    $node->og_private   = 1;
    $node->og_selective = 3;

    $node = node_submit($node);
    node_save($node);

    // Get the group ID from the node ID
    $group = og_get_group("node", $node->nid);

    // Load the user we want to add to the group (ID #2 was my test user)
    $account = user_load(2);

    // Add the user to the group
    og_group($group->gid, array(
                "entity type"       => "user",
                "entity"        => $account,
                "membership type"   => OG_MEMBERSHIP_TYPE_DEFAULT,
            ));

    // Changes the users role in the group (1 = non-member, 2 = member, 3 = administrator member)
    og_role_grant($group->gid, $account->uid, 3);

    drupal_set_message(t("Finished"));
}

13

OG7-2.x নোড ID == গ্রুপ আইডি থেকে, og_get_group () ব্যবহার করার দরকার নেই। এবং og_group () এবং og_rol_grant () এ আপনার গ্রুপ টাইপটি প্রথম যুক্তি। সুতরাং এখানে ওজি 7.x-2.x এর জন্য একই কোড

function MYMODULE_page_form_submit($form_id, $form_values) {
global $user;

$node = new stdClass();

$node->type     = "group";
$node->uid      = $user->uid;
$node->title        = t("Group Node Title");
$node->body     = t("Group Node Body");
$node->status       = 1; //(1 or 0): published or not
$node->promote      = 0; //(1 or 0): promoted to front page
$node->comment      = 1; //2 = comments on, 1 = comments off

$node->og_description   = t("OD Description");
$node->og_register  = 0;
$node->og_directory = 0;
$node->og_private   = 1;
$node->og_selective = 3;

$node = node_submit($node);
node_save($node);

// Load the user we want to add to the group (ID #2 was my test user)
$account = user_load(2);

// Add the user to the group
og_group('node', $node->nid, array(
            "entity type"       => "user",
            "entity"        => $account,
            "membership type"   => OG_MEMBERSHIP_TYPE_DEFAULT,
        ));

// Changes the users role in the group (1 = non-member, 2 = member, 3 = administrator member)
og_role_grant('node', $node->nid, $account->uid, 3);

drupal_set_message(t("Finished"));

}


এটি প্রশ্নের উত্তর সরবরাহ করে না। কোনও লেখকের কাছ থেকে সমালোচনা বা স্পষ্টতার জন্য অনুরোধ জানাতে, তাদের পোস্টের নীচে একটি মন্তব্য দিন - আপনি সর্বদা আপনার নিজের পোস্টে মন্তব্য করতে পারেন, এবং আপনার যথেষ্ট খ্যাতি অর্জনের পরে আপনি যে কোনও পোস্টে মন্তব্য করতে সক্ষম হবেন ।
চাঁপাবু

2
আমি যদি কিছু ভুল করে থাকি তবে দুঃখিত। আমি বিশ্বাস করি যে লোকেরা এখানে অনুসন্ধান ইঞ্জিনের মাধ্যমে আসে এবং 7.x-2.x ব্যবহার করছে তাদের জন্য আমি একটি উত্তর সরবরাহ করেছি। আপনি যদি পুরো পোস্টটি এখানে সেন্স না করে তবে এটি মুছতে পারেন।
ক্যাপোনো

আপনার উত্তরগুলি একটি ভাল শুরু, তবে প্রশ্নের মধ্যে কী ভুল তা নির্দেশ করে নেওয়া উত্তর হিসাবে বিবেচিত হওয়ার পক্ষে এটি যথেষ্ট নয়। Og_get_group ব্যবহার না করে লোকেরা কী করবেন তা বলার মাধ্যমে দয়া করে পাঠ্যটিকে আরও সাহায্যকারী হিসাবে সংশোধন করুন এবং ডাউনভোটগুলি সম্ভবত পরিবর্তে আপ-ভোটে রূপান্তরিত হবে। :)
লেথারিয়ন

ঠিক আছে, আমি আমার পোস্ট সম্পাদনা করেছি। আমার ধারণা তুমি এই কথাটি কি বোঝাতে চাইছ?
ক্যাপোনো

1
এটি 7.2.x সঙ্গে ভাল কাজ করে। 7.1.x হিসাবে উল্লিখিত হিসাবে এই og_get_group ফাংশন ছিল তবে এটি 7.2.x এ সরানো হয়েছে mentioned সুতরাং যারা পরে খুঁজছেন তাদের জন্য দয়া করে এটি ব্যবহার করুন।
গ্ল্যাডিয়েটার

1
Adding programmatically Group  content:
$node->type     = "group_post";
$node->uid      = $user->uid;
$node->title        = t("Group postNode Title");
$node->body     = t("Group Node Body");
$node->status       = 1; //(1 or 0): published or not
$node->promote      = 0; //(1 or 0): promoted to front page
$node->comment      = 1; //2 = comments on, 1 = comments off

$node->og_group_ref['und'][] = array('target_id' => $gid);

$node = node_submit($node);
node_save($node);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.