a bit more backend work on things

This commit is contained in:
friendica
2013-12-28 17:04:23 -08:00
parent aacd3164fa
commit 22f614feba
3 changed files with 84 additions and 32 deletions

View File

@@ -270,4 +270,72 @@ function obj_verb_selector() {
$o .= '</select>';
return $o;
}
function get_things($profile_hash,$uid) {
$sql_extra = (($profile_hash) ? " and obj_page = '" . $profile_hash . "' " : '');
$r = q("select * from obj left join term on obj_obj = term_hash where term_hash != '' and uid = %d and obj_type = %d $sql_extra order by obj_verb, term",
intval($uid),
intval(TERM_OBJ_THING)
);
$things = $sorted_things = null;
$profile_hashes = array();
if($r) {
// if no profile_hash was specified (display on profile page mode), match each of the things to a profile name
// (list all my things mode). This is harder than it sounds.
foreach($r as $rr) {
$rr['profile_name'] = '';
if(! in_array($rr['term_hash'],$profile_hashes))
$profile_hashes[] = $rr['term_hash'];
}
stringify_array_elms($profile_hashes);
if(! $profile_hash) {
$exp = explode(',',$profile_hashes);
$p = q("select profile_guid as hash, profile_name as name from profile where profile_guid in ( $exp ) ");
if($p) {
foreach($r as $rr) {
foreach($p as $pp) {
if($rr['obj_page'] == $pp['hash']) {
$rr['profile_name'] == $pp['name'];
}
}
}
}
}
$things = array();
// Use the system obj_verbs array as a sort key, since we don't really
// want an alphabetic sort. To change the order, use a plugin to
// alter the obj_verbs() array or alter it in code. Unknown verbs come
// after the known ones - in no particular order.
$v = obj_verbs();
foreach($v as $k => $foo)
$things[$k] = null;
foreach($r as $rr) {
if(! $things[$rr['obj_verb']])
$things[$rr['obj_verb']] = array();
$things[$rr['obj_verb']][] = array('term' => $rr['term'],'url' => $rr['url'],'img' => $rr['imgurl'], 'profile' => $rr['profile_name']);
}
$sorted_things = array();
if($things) {
foreach($things as $k => $v) {
if(is_array($things[$k])) {
$sorted_things[$k] = $v;
}
}
}
}
return $sorted_things;
}