รับจำนวนผู้ติดตามและติดตามในความสัมพันธ์ของผู้ใช้


8

ฉันได้สร้างผู้ติดตามที่มีความสัมพันธ์ซึ่งสามารถตอบสนองได้โดยใช้โมดูลความสัมพันธ์กับผู้ใช้ ตอนนี้ความสัมพันธ์ของผู้ใช้ A เป็นดังนี้: ผู้ติดตาม (พวกเขา): ผู้ใช้ B, ผู้ใช้ C, ผู้ใช้ D ผู้ติดตาม (คุณต่อพวกเขา): ผู้ใช้ D

ตอนนี้ฉันต้องการสร้างมุมมองที่แสดงจำนวนผู้ติดตามและผู้ติดตามเท่านั้น: ผู้ติดตาม: 3 กำลัง
ติดตาม: 1

ฉันกำลังจะสร้างมุมมอง (อ่าน 3, Drupal7) แต่ก็ไม่สามารถทำได้ ไม่ได้รับตัวกรองหรือความสัมพันธ์ใด ๆ ที่เกี่ยวข้องกับสิ่งนี้ ลองใช้ Views Cal แต่ไม่ชัดเจน จะขอบคุณความช่วยเหลือใด ๆ

ขอบคุณ

แก้ไข:

ขออภัยที่ไม่ชัดเจน

ฉันสร้างมุมมองของผู้ใช้ประเภท จากนั้นฉันเพิ่มความสัมพันธ์ (นี่คือส่วนที่ฉันไม่แน่ใจว่าฉันถูกต้องหรือไม่) ฉันพยายามกับความสัมพันธ์ที่มีอยู่ทั้งหมดที่เกี่ยวข้องกับสิ่งนี้เช่นความสัมพันธ์ของผู้ใช้:

 User relationships: Requestee user
 User relationships: Requestee user is current user 
 User relationships: Requester user
 User relationships: Requester user is current user
 User relationships: RTID

(ฉันลองแยกเป็นส่วน ๆ ทั้งหมดและผสมหลาย ๆ แบบ)

จากนั้นภายใต้อื่น ๆ ฉันคลิกใช่สำหรับใช้มวลรวมและเมื่อถูกถามสำหรับฟังก์ชั่นการจัดกลุ่ม ("ประเภทกลุ่ม") ฉันเลือก "นับและยกเลิกการเลือกป้ายกำกับในหน้าจอฟิลด์กำหนดค่าเพื่อแสดงเฉพาะหมายเลข

ฉันยังเพิ่มตัวกรองที่ผู้ใช้ลงชื่อเข้าใช้ด้วยอย่างไรก็ตามมันเพิ่งแสดงให้ฉันเห็นถึงจำนวนของความสัมพันธ์ของผู้ใช้ที่แตกต่างกันซึ่งได้ร้องขอตัวกรองปัจจุบัน

แก้ไข 2:

พบกระทู้นี้: http://drupal.org/node/809476 อย่างไรก็ตามสำหรับ Drupal 6 ... กำลังพยายามใช้งานเป็น 7 ให้ดู ... ถ้าคุณมีพอยน์เตอร์ที่ฉันจะขอบคุณ ... จะทำให้คุณโพสต์

แก้ไข 3:

จากหัวข้อข้างต้นฉันเขียนโค้ดต่อไปนี้ลงในบล็อกที่กำหนดเอง

<?php
global $user;
$user_id = $user->uid;
$params = array("requestee_id" => $user_id, 'rtid' => 3);
$count = user_relationships_load($params, array("count" => TRUE));
echo $user_id;
echo $count;
?>

ฉันเพิ่งพิมพ์รหัสผู้ใช้เพื่อตรวจสอบว่าผู้ใช้ที่ถูกต้องหรือไม่และมันพิมพ์ผู้ใช้ที่ถูกต้อง อย่างไรก็ตามจำนวนภาพที่พิมพ์ 0 ทำไมจึงเป็นเช่นนั้น

แก้ไข 4:

ฉันคิดว่าฉันกำลังใช้http://drupal.org/node/203396อย่างถูกวิธี อย่างไรก็ตามมีการแก้ไขบางอย่างอยู่ที่นั่น รหัสที่ถูกต้องคือ:

<?php
global $user;
$requests = user_relationships_load($param = array("approved" => 1, "user" => $user->uid), $options = array(), $reset = FALSE);
$requestcount = count($requests);
echo  $requestcount;
?>

สิ่งนี้แสดงจำนวนความสัมพันธ์ที่อนุมัติทั้งหมด ตอนนี้ฉันต้องการเฉพาะผู้ติดตามที่พิมพ์หมายเลขความสัมพันธ์ มองเข้าไปในนั้น หากใครมีข้อเสนอแนะใด ๆ ก็จะขอบคุณพวกเขา จะทำให้คุณโพสต์ทั้งหมด

Edit5:

และตอนนี้ฉันติดอยู่ ไม่ว่าฉันจะพยายามทำอะไรฉันก็แค่ได้รับความสัมพันธ์ทั้งหมดเท่านั้น ฉันแค่ต้องการจำนวนผู้ติดตาม (พวกเขาให้คุณ) ในหนึ่งช่วงตึกจากนั้นใช้สิ่งนั้นฉันหวังว่าฉันจะได้รับจำนวนการติดตาม (คุณต่อพวกเขา) จะขอบคุณความช่วยเหลือใด ๆ

ขอบคุณ


1
คุณลองทำอะไร ในขณะที่โดยเฉพาะสิ่งที่คุณพยายาม? อะไรไม่ทำงาน สิ่งที่คุณพยายามทำแตกต่างจากสิ่งที่คุณคาดหวังอย่างไร คุณต้องแสดงให้เห็นว่าคุณได้พยายามที่จะแก้ปัญหาด้วยตัวคุณเองเว็บไซต์นี้ไม่ได้มีไว้สำหรับการขอบทเรียน
Clive

บางทีฉันสามารถใช้function user_relationships_type_load($param = array(), $reset = NULL) แต่ฉันต้องการทิศทางหรือความช่วยเหลือ
ทำไม

พารามิเตอร์สำหรับ user_relationships_load ยังรวมถึงระหว่างพารามิเตอร์ด้วย "array (" ระหว่าง "=> array ($ uid1, $ uid2)) จะส่งคืนความสัมพันธ์ทั้งหมดระหว่างรหัสผู้ใช้สองรายการ"
Mark Ferree

@ kewal คุณช่วยแก้ปัญหาได้มั้ย ฉันต้องการฟังก์ชั่นนี้ในโครงการของฉัน ขอบคุณ
seyi

@seyi ฉันใช้บล็อกที่มีในตัวและแสดงผลผ่านแผงควบคุม ... คุณสามารถใช้ user_relationships_type_load ($ param = array (), $ reset = NULL) .... ขออภัยฉันไม่สามารถจำรายละเอียดที่แน่นอนได้ แต่จะกลับมาหาคุณในบางครั้งถ้าฉันพบมัน ... ขอแสดงความนับถือ
ทำไม

คำตอบ:


1

ฟังก์ชั่นต่อไปนี้ทำงานให้ฉันเพื่อแสดงจำนวนเพื่อนที่ผู้ใช้มี:

function mymodule_user_friends_count ($user) {
  $count = user_relationships_load(
    array("user" => $user->uid, 'approved' => 1, "name"=>'Friend'), 
    array('count' => TRUE));
  return $count;
}

แจ้งให้ทราบล่วงหน้าฉันนับเฉพาะเพื่อนที่ได้รับการอนุมัติและความสัมพันธ์ประเภท "เพื่อน" เท่านั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.