better solution to exclude Contact Photos and include count of Photos

This commit is contained in:
rabuzarus 2015-05-28 15:54:53 +02:00
parent 15499ff1aa
commit 415a606a59
2 changed files with 28 additions and 59 deletions

View File

@ -38,29 +38,29 @@ function photos_init(&$a) {
$sql_extra = permissions_sql($a->data['user']['uid']); $sql_extra = permissions_sql($a->data['user']['uid']);
$albums = q("SELECT distinct(`album`) AS `album` FROM `photo` WHERE `uid` = %d $sql_extra order by created desc", $albums = q("SELECT count(distinct `resource-id`) AS `total`, `album` FROM `photo` WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s'
intval($a->data['user']['uid']) $sql_extra group by album order by created desc",
intval($a->data['user']['uid']),
dbesc('Contact Photos'),
dbesc( t('Contact Photos'))
); );
$ret = array('success' => false);
$albums_visible = ((intval($a->data['user']['hidewall']) && (! local_user()) && (! remote_user())) ? false : true); $albums_visible = ((intval($a->data['user']['hidewall']) && (! local_user()) && (! remote_user())) ? false : true);
foreach($albums as $k => $album) { // add various encodings to the array so we can just loop through and pick them out in a template
if( $album['album'] === 'Contact Photos') { $ret = array('success' => false);
unset ($albums[$k]['album']);
}
}
if($albums) { if($albums) {
if ($albums_visible) { $a->data['albums'] = $albums;
if ($albums_visible)
$ret['success'] = true; $ret['success'] = true;
}
$ret['albums'] = array(); $ret['albums'] = array();
foreach($albums as $k => $album) { foreach($albums as $k => $album) {
$entry = array( $entry = array(
'text' => $album['album'], 'text' => $album['album'],
'total' => $album['total'], 'total' => $album['total'],
'url' => z_root() . '/photos/' . $channel['channel_address'] . '/album/' . bin2hex($album['album']), 'url' => z_root() . '/photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($album['album']),
'urlencode' => urlencode($album['album']), 'urlencode' => urlencode($album['album']),
'bin2hex' => bin2hex($album['album']) 'bin2hex' => bin2hex($album['album'])
); );
@ -68,62 +68,27 @@ function photos_init(&$a) {
} }
} }
/*return $ret;*/ $albums = $ret;
$o = ''; if(local_user() && $a->data['user']['uid'] == local_user())
$can_post = true;
if(! $albums) {
if(array_key_exists('albums', get_app()->data))
$albums = get_app()->data['albums'];
else
$albums = $ret;
}
$albums = $ret;
if($albums['success']) { if($albums['success']) {
$o = replace_macros(get_markup_template('photo_albums.tpl'),array( $photo_albums_widget = replace_macros(get_markup_template('photo_albums.tpl'),array(
'$nick' => $a->data['user']['nickname'], '$nick' => $a->data['user']['nickname'],
'$title' => t('Photo Albums'), '$title' => t('Photo Albums'),
'$albums' => $albums['albums'], '$albums' => $albums['albums'],
'$baseurl' => z_root() '$baseurl' => z_root(),
'$upload' => array( t('Upload New Photos'), $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/upload/' . bin2hex($album)),
'$can_post' => $can_post
)); ));
} }
/* if(count($albums)) {
$a->data['albums'] = $albums;
$albums_visible = ((intval($a->data['user']['hidewall']) && (! local_user()) && (! remote_user())) ? false : true);
if($albums_visible) {
$o .= '<div id="side-bar-photos-albums" class="widget">';
$o .= '<h3>' . '<a href="' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '">' . t('Photo Albums') . '</a></h3>';
$o .= '<ul>';
foreach($albums as $album) {
// don't show contact photos. We once translated this name, but then you could still access it under
// a different language setting. Now we store the name in English and check in English (and translated for legacy albums).
if((! strlen($album['album'])) || ($album['album'] === 'Contact Photos') || ($album['album'] === t('Contact Photos')))
continue;
$o .= '<li>' . '<a href="photos/' . $a->argv[1] . '/album/' . bin2hex($album['album']) . '" >' . $album['album'] . '</a></li>';
}
$o .= '</ul>';
}
if(local_user() && $a->data['user']['uid'] == local_user()) {
$o .= '<div id="photo-albums-upload-link"><a href="' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/upload" >' .t('Upload New Photos') . '</a></div>';
}
$o .= '</div>';
}
*
*/
if(! x($a->page,'aside')) if(! x($a->page,'aside'))
$a->page['aside'] = ''; $a->page['aside'] = '';
$a->page['aside'] .= $o; $a->page['aside'] .= $o;
$a->page['aside'] .= $photo_albums_widget;
$tpl = get_markup_template("photos_head.tpl"); $tpl = get_markup_template("photos_head.tpl");

View File

@ -1,13 +1,17 @@
<div id="side-bar-photos-albums" class="widget"> <div id="side-bar-photos-albums" class="widget">
<h3>{{$title}}</h3> <h3>{{$title}}</h3>
<ul class="nav nav-pills nav-stacked"> <ul>
<li><a href="{{$baseurl}}/photos/{{$nick}}" title="{{$title}}" >Recent Photos</a></li> <li><a href="{{$baseurl}}/photos/{{$nick}}" title="{{$title}}" >Recent Photos</a></li>
{{if $albums}} {{if $albums}}
{{foreach $albums as $al}} {{foreach $albums as $al}}
{{if $al.text}} {{if $al.text}}
<li><a href="{{$baseurl}}/photos/{{$nick}}/album/{{$al.bin2hex}}">{{$al.text}}</a></li> <li><a href="{{$baseurl}}/photos/{{$nick}}/album/{{$al.bin2hex}}"><span class="badge pull-right">{{$al.total}}</span>{{$al.text}}</a></li>
{{/if}} {{/if}}
{{/foreach}} {{/foreach}}
{{/if}} {{/if}}
</ul> </ul>
{{if $can_post}}
<div class="photos-upload-link" ><a href="{{$upload.1}}">{{$upload.0}}</a></div>
{{/if}}
</div> </div>