a bit more backend work on things
This commit is contained in:
parent
aacd3164fa
commit
22f614feba
@ -966,44 +966,15 @@ function advanced_profile(&$a) {
|
|||||||
|
|
||||||
if($txt = prepare_text($a->profile['education'])) $profile['education'] = array( t('School/education:'), $txt );
|
if($txt = prepare_text($a->profile['education'])) $profile['education'] = array( t('School/education:'), $txt );
|
||||||
|
|
||||||
$r = q("select * from obj left join term on obj_obj = term_hash where term_hash != '' and obj_page = '%s' and uid = %d and obj_type = %d
|
|
||||||
order by obj_verb, term",
|
|
||||||
dbesc($a->profile['profile_guid']),
|
|
||||||
intval($a->profile['profile_uid']),
|
|
||||||
intval(TERM_OBJ_THING)
|
|
||||||
);
|
|
||||||
|
|
||||||
$things = null;
|
$things = get_things($a->profile['profile_guid'],$a->profile['profile_uid']);
|
||||||
|
|
||||||
if($r) {
|
logger('mod_profile: things: ' . print_r($things,true), LOGGER_DATA);
|
||||||
$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']);
|
|
||||||
}
|
|
||||||
$sorted_things = array();
|
|
||||||
if($things)
|
|
||||||
foreach($things as $k => $v)
|
|
||||||
if(is_array($things[$k]))
|
|
||||||
$sorted_things[$k] = $v;
|
|
||||||
}
|
|
||||||
|
|
||||||
logger('mod_profile: things: ' . print_r($sorted_things,true), LOGGER_DATA);
|
|
||||||
|
|
||||||
return replace_macros($tpl, array(
|
return replace_macros($tpl, array(
|
||||||
'$title' => t('Profile'),
|
'$title' => t('Profile'),
|
||||||
'$profile' => $profile,
|
'$profile' => $profile,
|
||||||
'$things' => $sorted_things
|
'$things' => $things
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -271,3 +271,71 @@ function obj_verb_selector() {
|
|||||||
return $o;
|
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;
|
||||||
|
|
||||||
|
}
|
13
view/tpl/list_things.tpl
Normal file
13
view/tpl/list_things.tpl
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{{if $things}}
|
||||||
|
{{foreach $things as $key => $items}}
|
||||||
|
<b>{{$items.profile}} {{$key}}</b>
|
||||||
|
<ul class="profile-thing-list">
|
||||||
|
{{foreach $items as $item}}
|
||||||
|
<li>{{if $item.img}}<img src="{{$item.img}}" width="100" height="100" alt="{{$item.term}}" />{{/if}}
|
||||||
|
<a href="{{$item.url}}" >{{$item.term}}</a>
|
||||||
|
</li>
|
||||||
|
{{/foreach}}
|
||||||
|
</ul>
|
||||||
|
<div class="clear"></div>
|
||||||
|
{{/foreach}}
|
||||||
|
{{/if}}
|
Reference in New Issue
Block a user