प्रोग्राम को ऑर्गेनिक ग्रुप के सदस्य संस्थाओं की सूची कैसे दें?


17

मैं प्रोग्रामिक रूप से ऑर्गेनिक ग्रुप के सदस्य संस्थाओं की सूची कैसे प्राप्त कर सकता हूं?

(मुझे पता है कि व्यू का उपयोग करने वाले समूह के सदस्यों की एक सूची प्राप्त करना है - मैं ऑर्गेनिक ग्रुप्स एपीआई का उपयोग करके ऐसा करना पसंद करूंगा, लेकिन सही तरीका नहीं खोज पाया।)

जवाबों:


14

सीधे कार्बनिक समूह एपीआई का उपयोग करना:

og_get_group_members_properties($yourGroupNode, array(), 'members', 'node');

आपको उपयोगकर्ता आईडी की एक सरणी देता है।

केवल सक्रिय, लंबित या अवरुद्ध उपयोगकर्ताओं को प्राप्त करने के लिए, आप 'members__1', 'members__2' या 'members__3' को 'सदस्यों' के स्थान पर रख सकते हैं, जैसे कि इस उदाहरण में:

og_get_group_members_properties($yourGroupNode, array(), 'members__1', 'node');

यदि आप चाहें, तो यह पसंद करें:

og_get_group_members_properties($yourGroupNode, array(), 'members__' . OG_STATE_ACTIVE, 'node');

लौटाए गए मूल्य का उदाहरण:

Array
(
    [0] => 48
    [1] => 49
    [2] => 51
)

1
यह सही उत्तर होना चाहिए
क्रिस

11

या DBTNG के माध्यम से:

$query = db_select("og_membership", "ogm");
$query->condition("ogm.gid", $yourGroupID, "=");
$query->condition("ogm.group_type", "node", "=");
$query->fields("ogm", array("entity_type", "etid"));
$result = $query->execute();
print_r($result->fetchAll());

... जो आपको PHP कोड में सेट किए गए परिणाम को फ़िल्टर करने के बजाय अन्य तालिकाओं में शामिल होने की अनुमति देता है, जैसा कि आप उपयोग कर रहे हैं EntityFieldQuery



2

धूम्रपान करने वाले समाधान ने काम किया लेकिन मुझे इसके साथ एक और तरीका मिला EntityFieldQuery:

$query = new EntityFieldQuery();
$entities = $query->entityCondition('entity_type', 'node')
  ->fieldCondition('og_group_ref', 'target_id', $yourGroupID)
  ->execute();

लौटाए गए मूल्य का उदाहरण:

{"node":
  {"22":{"nid":"22","vid":"22","type":"panoramique"},
   "32":{"nid":"32","vid":"32","type":"panoramique"},
   "35":{"nid":"35","vid":"35","type":"panoramique"},
   "36":{"nid":"36","vid":"36","type":"panoramique"}
  }
}

0

@Smokris से जवाब देना ।

सदस्यता के लिए सक्रिय स्थिति "1" ( ->condition('ogm.state', 1, '=')) है।

function _get_users_in_group($gid) {
  $query = db_select('users', 'u');

  $query
    ->condition('u.uid', 0, '<>')
    ->condition('u.status', 1, '=')
    ->condition('ogm.state', 1, '=')
    ->fields('u', array('uid', 'name'))
    ->join('og_membership', 'ogm', "ogm.gid = :gid AND u.uid = ogm.etid AND ogm.entity_type = 'user'", array(':gid' => $gid));
  return $query->execute();
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.