所以,我一直在寻找并与Elgg 1.8合作已有一段时间了,虽然我已经掌握了它,但我仍然是一个完整的新手。
我有这个想法对我的桌子进行排序,从elgg本身,特别是群体等中获取某些信息。我希望通过其标签(名称,总数,差异,日期)对所有内容进行排序,并且对于名称和日期,elgg对此非常直接。但是,由于这一点,我不太确定我是否可以对总数和差异做同样的事情。请注意以下代码。
$GroupArray = elgg_get_entities(array(
'type' => 'group',
//try to get this to use the order of the totalmembers
'order_by' => $Order . " " . $Sort,
'joins' => 'JOIN ' . $db_prefix . 'groups_entity ge',
'limit' => 10,
'pagination' => true,
'offset' => $Offset,
));
这个$ GroupArray捕获所有组统计数据,这些统计数据允许我将所有必要的信息添加到表中,并通过单击表格中的选项卡动态添加$ Order和$ Sort变量。名称和日期已在elgg中使用ge.name和e.time_created初始化,但我需要做一些诡计以使成员和总工作方式相同。
$TotalMembers = elgg_get_entities_from_relationship(array(
'relationship' => 'member',
'relationship_guid' => $Reports->guid,
'inverse_relationship' => true,
'type' => 'user',
'limit' => 20,
'joins' => array("JOIN {$db_prefix}users_entity u ON e.guid=u.guid"),
'order_by' => 'u.name ASC',
'count' => true,
'relationship_created_time_lower'
));
这就是我获取每个列和组的成员总数的方法,它位于组数组之后,因为它允许它被抓取。我现在的问题是尝试将$ TotalMembers'order_by'放入$ Order变量中,基本上按每组的最小到最大成员排序。
我的搜索范围广泛无济于事,我不确定我的想法是否合情合理,或者它是否能像我认为的那样有效。
有人能够推动我朝着正确的方向前进吗?
答案 0 :(得分:0)
嗯,事实证明这是可能的,你只需要拆开Elgg的代码并将其替换为为你创建的Sql
$allQuery =
"SELECT DISTINCT e.guid, ge.name,
(SELECT count(DISTINCT e.guid)
FROM elgg_entities e
JOIN elgg_users_entity u
ON e.guid=u.guid
JOIN elgg_entity_relationships r
on r.guid_one = e.guid
WHERE (r.relationship = 'member'
AND r.time_created >=1507476424
AND r.guid_two = ge.guid)
AND ((e.type = 'user'))
AND (e.site_guid IN (1))
AND ( (1 = 1) and e.enabled='yes')) as totalMembers
FROM elgg_entities e JOIN elgg_groups_entity ge
ON e.guid=ge.guid
WHERE ((e.type = 'group'))
AND (e.site_guid IN (1))
AND ( (1 = 1) and e.enabled='yes')
ORDER BY totalMembers $Sort
LIMIT $Offset, 10";
$allData = get_data($allQuery);
这只需要两个不同的elgg语句,这些语句实际上是sql语句并将它们连接在一起,以便现在可以通过max avaliable搜索总成员查询。