diff options
author | Mario Vavti <mario@mariovavti.com> | 2016-02-29 22:01:13 +0100 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2016-02-29 22:01:13 +0100 |
commit | d27a627c4f65ca67bcc0f46fb830368c713043cd (patch) | |
tree | 7311b1ee2e397e16f3cb1a80ab5a83fbc35474f1 | |
parent | 55ab5360d984700e3145a5933cd1275cfb54b76c (diff) | |
download | volse-hubzilla-d27a627c4f65ca67bcc0f46fb830368c713043cd.tar.gz volse-hubzilla-d27a627c4f65ca67bcc0f46fb830368c713043cd.tar.bz2 volse-hubzilla-d27a627c4f65ca67bcc0f46fb830368c713043cd.zip |
simplify profile edit button(s) and make it useful for multiple profiles
-rw-r--r-- | include/identity.php | 92 | ||||
-rwxr-xr-x | view/tpl/profile_advanced.tpl | 15 | ||||
-rwxr-xr-x | view/tpl/profile_vcard.tpl | 18 |
3 files changed, 72 insertions, 53 deletions
diff --git a/include/identity.php b/include/identity.php index caf2de710..dc60e661c 100644 --- a/include/identity.php +++ b/include/identity.php @@ -900,6 +900,55 @@ function profile_load(&$a, $nickname, $profile = '') { } +function profile_edit_menu($uid) { + + $a = get_app(); + $ret = array(); + + $is_owner = (($uid == local_channel()) ? true : false); + + // show edit profile to profile owner + if($is_owner) { + $ret['menu'] = array( + 'chg_photo' => t('Change profile photo'), + 'entries' => array(), + ); + + $multi_profiles = feature_enabled(local_channel(), 'multi_profiles'); + if($multi_profiles) { + $ret['multi'] = 1; + $ret['edit'] = array($a->get_baseurl(). '/profiles', t('Edit Profiles'), '', t('Edit')); + $ret['menu']['cr_new'] = t('Create New Profile'); + } + else { + $ret['edit'] = array($a->get_baseurl() . '/profiles/' . $uid, t('Edit Profile'), '', t('Edit')); + } + + $r = q("SELECT * FROM profile WHERE uid = %d", + local_channel() + ); + + if($r) { + foreach($r as $rr) { + if(!($multi_profiles || $rr['is_default'])) + continue; + $ret['menu']['entries'][] = array( + 'photo' => $rr['thumb'], + 'id' => $rr['id'], + 'alt' => t('Profile Image'), + 'profile_name' => $rr['profile_name'], + 'isdefault' => $rr['is_default'], + 'visible_to_everybody' => t('Visible to everybody'), + 'edit_visibility' => t('Edit visibility'), + ); + } + } + } + + return $ret; + +} + /** * @brief Formats a profile for display in the sidebar. * @@ -961,42 +1010,6 @@ function profile_sidebar($profile, $block = 0, $show_connect = true, $zcard = fa $connect_url = z_root() . '/connect/' . $profile['channel_address']; } - // show edit profile to yourself - if($is_owner) { - $profile['menu'] = array( - 'chg_photo' => t('Change profile photo'), - 'entries' => array(), - ); - - $multi_profiles = feature_enabled(local_channel(), 'multi_profiles'); - if($multi_profiles) { - $profile['edit'] = array($a->get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles')); - $profile['menu']['cr_new'] = t('Create New Profile'); - } - else - $profile['edit'] = array($a->get_baseurl() . '/profiles/' . $profile['id'], t('Edit Profile'),'',t('Edit Profile')); - - $r = q("SELECT * FROM `profile` WHERE `uid` = %d", - local_channel()); - - if($r) { - foreach($r as $rr) { - if(!($multi_profiles || $rr['is_default'])) - continue; - $profile['menu']['entries'][] = array( - 'photo' => $rr['thumb'], - 'id' => $rr['id'], - 'alt' => t('Profile Image'), - 'profile_name' => $rr['profile_name'], - 'isdefault' => $rr['is_default'], - 'visible_to_everybody' => t('visible to everybody'), - 'edit_visibility' => t('Edit visibility'), - ); - } - } - } - - if((x($profile,'address') == 1) || (x($profile,'locality') == 1) || (x($profile,'region') == 1) @@ -1075,6 +1088,7 @@ function profile_sidebar($profile, $block = 0, $show_connect = true, $zcard = fa '$reddress' => $reddress, '$rating' => $z, '$contact_block' => $contact_block, + '$editmenu' => profile_edit_menu($profile['uid']) )); $arr = array('profile' => &$profile, 'entry' => &$o); @@ -1347,10 +1361,6 @@ function advanced_profile(&$a) { $profile['extra_fields'] = $a->profile['extra_fields']; } - - $is_owner = (($a->profile['profile_uid'] == local_channel()) ? true : false); - $edit = (($is_owner) ? array('link' => $a->get_baseurl() . '/profiles/' . $a->profile['profile_uid'], 'label' => t('Edit')) : ''); - $things = get_things($a->profile['profile_guid'],$a->profile['profile_uid']); // logger('mod_profile: things: ' . print_r($things,true), LOGGER_DATA); @@ -1360,7 +1370,7 @@ function advanced_profile(&$a) { '$canlike' => (($profile['canlike'])? true : false), '$likethis' => t('Like this thing'), '$profile' => $profile, - '$edit' => $edit, + '$editmenu' => profile_edit_menu($a->profile['profile_uid']), '$things' => $things )); } diff --git a/view/tpl/profile_advanced.tpl b/view/tpl/profile_advanced.tpl index 780626cf9..3d09b762d 100755 --- a/view/tpl/profile_advanced.tpl +++ b/view/tpl/profile_advanced.tpl @@ -12,8 +12,19 @@ <i class="icon-thumbs-up-alt" title="{{$profile.likethis}}"></i> </button> {{/if}} - {{if $edit}} - <a href="{{$edit.link}}" class="btn btn-primary btn-xs"><i class="icon-pencil"></i> {{$edit.label}}</a> + {{if $editmenu.multi}} + <a class="btn btn-primary btn-xs dropdown-toggle" data-toggle="dropdown" href="#" ><i class="icon-pencil"></i> {{$editmenu.edit.3}}</a> + <ul class="dropdown-menu" role="menu"> + {{foreach $editmenu.menu.entries as $e}} + <li> + <a href="profiles/{{$e.id}}"><img class="dropdown-menu-img-xs" src='{{$e.photo}}'>{{$e.profile_name}}<div class='clear'></div></a> + </li> + {{/foreach}} + <li><a href="profile_photo" >{{$editmenu.menu.chg_photo}}</a></li> + {{if $editmenu.menu.cr_new}}<li><a href="profiles/new" id="profile-listing-new-link">{{$editmenu.menu.cr_new}}</a></li>{{/if}} + </ul> + {{else}} + <a class="btn btn-primary btn-xs" href="{{$editmenu.edit.0}}" ><i class="icon-pencil"></i> {{$editmenu.edit.3}}</a> {{/if}} </div> <h2>{{$title}}</h2> diff --git a/view/tpl/profile_vcard.tpl b/view/tpl/profile_vcard.tpl index 56c262564..3c3bfda5a 100755 --- a/view/tpl/profile_vcard.tpl +++ b/view/tpl/profile_vcard.tpl @@ -6,19 +6,21 @@ <div class="connect-btn-wrapper"><a href="{{$connect_url}}" class="btn btn-block btn-success btn-sm"><i class="icon-plus"></i> {{$connect}}</a></div> {{/if}} {{if ! $zcard}} - {{if $profile.edit}} + {{if $editmenu.multi}} <div class="dropdown"> - <a class="profile-edit-side-link dropdown-toggle" data-toggle="dropdown" title="{{$profile.edit.3}}" href="#" ><i class="icon-pencil" title="{{$profile.edit.1}}" ></i></a> + <a class="profile-edit-side-link dropdown-toggle" data-toggle="dropdown" href="#" ><i class="icon-pencil" title="{{$editmenu.edit.1}}"></i></a> <ul class="dropdown-menu" role="menu"> - {{foreach $profile.menu.entries as $e}} + {{foreach $editmenu.menu.entries as $e}} <li> - <a href="profiles/{{$e.id}}"><img class="dropdown-menu-img-xs" src='{{$e.photo}}'>{{$e.profile_name}}<div class='clear'></div></a> + <a href="profiles/{{$e.id}}"><img class="dropdown-menu-img-xs" src='{{$e.photo}}'>{{$e.profile_name}}</a> </li> {{/foreach}} - <li><a href="profile_photo" >{{$profile.menu.chg_photo}}</a></li> - {{if $profile.menu.cr_new}}<li><a href="profiles/new" id="profile-listing-new-link">{{$profile.menu.cr_new}}</a></li>{{/if}} + <li><a href="profile_photo" >{{$editmenu.menu.chg_photo}}</a></li> + {{if $editmenu.menu.cr_new}}<li><a href="profiles/new" id="profile-listing-new-link">{{$editmenu.menu.cr_new}}</a></li>{{/if}} </ul> </div> + {{else}} + <a class="profile-edit-side-link" href="{{$editmenu.edit.0}}" ><i class="icon-pencil" title="{{$editmenu.edit.1}}"></i></a> {{/if}} {{/if}} @@ -27,9 +29,6 @@ {{if $reddress}}<div class="reddress" oncopy="return false;">{{$profile.reddress}}</div>{{/if}} {{/if}} {{if $pdesc}}<div class="title">{{$profile.pdesc}}</div>{{/if}} - - - {{if $location}} <dl class="location"><dt class="location-label">{{$location}}</dt> <dd class="adr"> @@ -45,7 +44,6 @@ {{/if}} {{if $gender}}<dl class="mf"><dt class="gender-label">{{$gender}}</dt> <dd class="x-gender">{{$profile.gender}}</dd></dl>{{/if}} - {{if $marital}}<dl class="marital"><dt class="marital-label"><span class="heart">♥</span>{{$marital}}</dt><dd class="marital-text">{{$profile.marital}}</dd></dl>{{/if}} |