aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2014-10-03 03:35:50 -0700
committerfriendica <info@friendica.com>2014-10-03 03:35:50 -0700
commit328d72971d6cb73176f17c3403ddfb150ae217c3 (patch)
treeb23db2b8c6bf6b97417c5b2ee68469a7833b60d0
parent2bd4b362389aafc9d98f47f44672fc874d37e17a (diff)
parentdfd39ebb3cccfdce8fb6d58128279cac05cbb8e4 (diff)
downloadvolse-hubzilla-328d72971d6cb73176f17c3403ddfb150ae217c3.tar.gz
volse-hubzilla-328d72971d6cb73176f17c3403ddfb150ae217c3.tar.bz2
volse-hubzilla-328d72971d6cb73176f17c3403ddfb150ae217c3.zip
Merge https://github.com/friendica/red into pending_merge
-rw-r--r--include/poller.php7
-rw-r--r--include/statistics_fns.php73
-rw-r--r--mod/photos.php114
-rw-r--r--mod/siteinfo.php58
-rw-r--r--view/theme/redbasic/css/style.css4
-rwxr-xr-xview/tpl/photo_album.tpl26
-rwxr-xr-xview/tpl/photo_top.tpl2
7 files changed, 165 insertions, 119 deletions
diff --git a/include/poller.php b/include/poller.php
index f689059b9..2febaeb32 100644
--- a/include/poller.php
+++ b/include/poller.php
@@ -149,6 +149,13 @@ function poller_run($argv, $argc){
update_birthdays();
+ //update statistics in config
+ require_once('include/statistics_fns.php');
+ update_channels_total_stat();
+ update_channels_active_halfyear_stat();
+ update_channels_active_monthly_stat();
+ update_local_posts_stat();
+
// expire any read notifications over a month old
q("delete from notify where seen = 1 and date < UTC_TIMESTAMP() - INTERVAL 30 DAY");
diff --git a/include/statistics_fns.php b/include/statistics_fns.php
new file mode 100644
index 000000000..4f72e6615
--- /dev/null
+++ b/include/statistics_fns.php
@@ -0,0 +1,73 @@
+<?php /** @file */
+
+function update_channels_total_stat() {
+ $r = q("select count(channel_id) as channels_total from channel left join account on account_id = channel_account_id
+ where account_flags = 0 ");
+ if($r) {
+ $channels_total_stat = intval($r[0]['channels_total']);
+ set_config('system','channels_total_stat',$channels_total_stat);
+ } else {
+ set_config('system','channels_total_stat',null);
+ }
+}
+
+function update_channels_active_halfyear_stat() {
+ $r = q("select channel_id from channel left join account on account_id = channel_account_id
+ where account_flags = 0 and account_lastlog > UTC_TIMESTAMP - INTERVAL 6 MONTH");
+ if($r) {
+ $s = '';
+ foreach($r as $rr) {
+ if($s)
+ $s .= ',';
+ $s .= intval($rr['channel_id']);
+ }
+ $x = q("select uid from item where uid in ( $s ) and (item_flags & %d) and created > UTC_TIMESTAMP - INTERVAL 6 MONTH group by uid",
+ intval(ITEM_WALL)
+ );
+ if($x) {
+ $channels_active_halfyear_stat = count($x);
+ set_config('system','channels_active_halfyear_stat',$channels_active_halfyear_stat);
+ } else {
+ set_config('system','channels_active_halfyear_stat',null);
+ }
+ } else {
+ set_config('system','channels_active_halfyear_stat',null);
+ }
+}
+
+function update_channels_active_monthly_stat() {
+ $r = q("select channel_id from channel left join account on account_id = channel_account_id
+ where account_flags = 0 and account_lastlog > UTC_TIMESTAMP - INTERVAL 1 MONTH");
+ if($r) {
+ $s = '';
+ foreach($r as $rr) {
+ if($s)
+ $s .= ',';
+ $s .= intval($rr['channel_id']);
+ }
+ $x = q("select uid from item where uid in ( $s ) and ( item_flags & %d ) and created > UTC_TIMESTAMP - INTERVAL 1 MONTH group by uid",
+ intval(ITEM_WALL)
+ );
+ if($x) {
+ $channels_active_monthly_stat = count($x);
+ set_config('system','channels_active_monthly_stat',$channels_active_monthly_stat);
+ } else {
+ set_config('system','channels_active_monthly_stat',null);
+ }
+ } else {
+ set_config('system','channels_active_monthly_stat',null);
+ }
+}
+
+function update_local_posts_stat() {
+ $posts = q("SELECT COUNT(*) AS local_posts FROM `item` WHERE (item_flags & %d) ",
+ intval(ITEM_WALL) );
+ if (is_array($posts)) {
+ $local_posts_stat = intval($posts[0]["local_posts"]);
+ set_config('system','local_posts_stat',$local_posts_stat);
+ } else {
+ set_config('system','local_posts_stat',null);
+ }
+}
+
+
diff --git a/mod/photos.php b/mod/photos.php
index 0ff0e29c9..f02f0f5f7 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -653,9 +653,6 @@ function photos_content(&$a) {
intval($a->pager['itemspage'])
);
- $o .= '<div class="section-title-wrapper">';
- $o .= '<h2>' . $album . '</h2>';
- $o .= '<div class="section-title-submenu">';
if($cmd === 'edit') {
if(($album !== t('Profile Photos')) && ($album !== 'Contact Photos') && ($album !== t('Contact Photos'))) {
if($can_post) {
@@ -681,33 +678,19 @@ function photos_content(&$a) {
else {
if(($album !== t('Profile Photos')) && ($album !== 'Contact Photos') && ($album !== t('Contact Photos'))) {
if($can_post) {
- $o .= '<a href="'. $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/album/' . bin2hex($album) . '/edit' . '">' . t('Edit Album') . '</a>';
+ $edit = array(t('Edit Album'), $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/album/' . bin2hex($album) . '/edit');
}
}
}
if($_GET['order'] === 'posted')
- $o .= '<a href="' . $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/album/' . bin2hex($album) . '" >' . t('Show Newest First') . '</a>';
+ $order = array(t('Show Newest First'), $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/album/' . bin2hex($album));
else
- $o .= '<a href="' . $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/album/' . bin2hex($album) . '?f=&order=posted" >' . t('Show Oldest First') . '</a>';
+ $order = array(t('Show Oldest First'), $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/album/' . bin2hex($album) . '?f=&order=posted');
- /*
- if($can_post) {
- $o .= '<a href="' . $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/upload/' . bin2hex($album) . '" >' . t('Upload New Photos') . '</<a>';
- }
- */
-
- $o .= '</div>'; // section-title-submenu
- $o .= '</div>'; // section-title-wrapper
-
- $ajaxout = '';
-
- $tpl = get_markup_template('photo_album.tpl');
+ $photos = array();
if(count($r)) {
$twist = 'rotright';
- $o .= "<script> var page_query = '" . $_GET['q'] . "'; var extra_args = '" . extra_query_args() . "' ; </script>";
- $o .= '<div id="photo-album-contents">';
-
foreach($r as $rr) {
if($twist == 'rotright')
@@ -720,57 +703,58 @@ function photos_content(&$a) {
$imgalt_e = $rr['filename'];
$desc_e = $rr['description'];
-
-// prettyphoto has potential license issues, so we can no longer include it in core
-// The following lines would need to be modified so that they are provided in theme specific files
-// instead of core modules for themes that wish to make use of prettyphoto. I would suggest
-// the feature as a per-theme display option and putting the rel line inside a template.
-
-// if(feature_enabled($a->data['channel']['channel_id'],'prettyphoto')){
-// $imagelink = ($a->get_baseurl() . '/photo/' . $rr['resource_id'] . '.' . $ext );
-// $rel=("prettyPhoto[pp_gal]");
-// }
-// else {
- $imagelink = ($a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/image/' . $rr['resource_id']
- . (($_GET['order'] === 'posted') ? '?f=&order=posted' : ''));
- $rel=("photo");
-// }
-
-
- $tmp = replace_macros($tpl,array(
- '$id' => $rr['id'],
- '$twist' => ' ' . $twist . rand(2,4),
- '$photolink' => $imagelink,
- '$rel' => $rel,
- '$phototitle' => t('View Photo'),
- '$imgsrc' => $a->get_baseurl() . '/photo/' . $rr['resource_id'] . '-' . $rr['scale'] . '.' .$ext,
- '$imgalt' => $imgalt_e,
- '$desc'=> $desc_e,
- '$ext' => $ext,
- '$hash'=> $rr['resource_id'],
- ));
- if($_REQUEST['aj'])
- $ajaxout .= $tmp;
- else
- $o .= $tmp;
+ $imagelink = ($a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/image/' . $rr['resource_id']
+ . (($_GET['order'] === 'posted') ? '?f=&order=posted' : ''));
+
+ $rel=("photo");
+
+ $photos[] = array(
+ 'id' => $rr['id'],
+ 'twist' => ' ' . $twist . rand(2,4),
+ 'link' => $imagelink,
+ 'rel' => $rel,
+ 'title' => t('View Photo'),
+ 'src' => $a->get_baseurl() . '/photo/' . $rr['resource_id'] . '-' . $rr['scale'] . '.' .$ext,
+ 'alt' => $imgalt_e,
+ 'desc'=> $desc_e,
+ 'ext' => $ext,
+ 'hash'=> $rr['resource_id'],
+ );
}
}
+
if($_REQUEST['aj']) {
- if(! $r) {
- $ajaxout .= '<div id="content-complete"></div>';
- echo $ajaxout;
- killme();
+ if($photos) {
+ $o = replace_macros(get_markup_template('photosajax.tpl'),array(
+ '$photos' => $photos,
+ ));
+ }
+ else {
+ $o = '<div id="content-complete"></div>';
}
- echo $ajaxout;
- echo '<script>justifyPhotosAjax();</script>';
+ echo $o;
+ killme();
+ }
+ else {
+ $o .= "<script> var page_query = '" . $_GET['q'] . "'; var extra_args = '" . extra_query_args() . "' ; </script>";
+ $tpl = get_markup_template('photo_album.tpl');
+ $o .= replace_macros($tpl, array(
+ '$photos' => $photos,
+ '$album' => $album,
+ '$can_post' => $can_post,
+ '$upload' => array(t('Upload'), $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/upload/' . bin2hex($album)),
+ '$order' => $order,
+ '$edit' => $edit
+ ));
+
+ }
+
+ if((! $photos) && ($_REQUEST['aj'])) {
+ $o .= '<div id="content-complete"></div>';
+ echo $o;
killme();
}
- $o .= '<div id="page-end"></div>';
- $o .= '</div>'; // photo-album-contents
- $o .= '<div id="photo-album-end"></div>';
- $o .= '<script>$(document).ready(function() { loadingPage = false; justifyPhotos(); });</script>';
- $o .= '<div id="page-spinner"></div>';
// $o .= paginate($a);
return $o;
diff --git a/mod/siteinfo.php b/mod/siteinfo.php
index eab52e41e..de55c69cf 100644
--- a/mod/siteinfo.php
+++ b/mod/siteinfo.php
@@ -50,51 +50,12 @@ function siteinfo_init(&$a) {
$site_info = get_config('system','info');
$site_name = get_config('system','sitename');
- // Statistics (from statistics.json plugin)
+ //Statistics
+ $channels_total_stat = intval(get_config('system','channels_total_stat'));
+ $channels_active_halfyear_stat = intval(get_config('system','channels_active_halfyear_stat'));
+ $channels_active_monthly_stat = intval(get_config('system','channels_active_monthly_stat'));
+ $local_posts_stat = intval(get_config('system','local_posts_stat'));
- $r = q("select count(channel_id) as channels_total from channel left join account on account_id = channel_account_id
- where account_flags = 0 ");
- if($r)
- $channels_total = intval($r[0]['channels_total']);
-
- $r = q("select channel_id from channel left join account on account_id = channel_account_id
- where account_flags = 0 and account_lastlog > UTC_TIMESTAMP - INTERVAL 6 MONTH");
- if($r) {
- $s = '';
- foreach($r as $rr) {
- if($s)
- $s .= ',';
- $s .= intval($rr['channel_id']);
- }
- $x = q("select uid from item where uid in ( $s ) and (item_flags & %d) and created > UTC_TIMESTAMP - INTERVAL 6 MONTH group by uid",
- intval(ITEM_WALL)
- );
- if($x)
- $channels_active_halfyear = count($x);
- }
-
- $r = q("select channel_id from channel left join account on account_id = channel_account_id
- where account_flags = 0 and account_lastlog > UTC_TIMESTAMP - INTERVAL 1 MONTH");
- if($r) {
- $s = '';
- foreach($r as $rr) {
- if($s)
- $s .= ',';
- $s .= intval($rr['channel_id']);
- }
- $x = q("select uid from item where uid in ( $s ) and ( item_flags & %d ) and created > UTC_TIMESTAMP - INTERVAL 1 MONTH group by uid",
- intval(ITEM_WALL)
- );
- if($x)
- $channels_active_monthly = count($x);
- }
-
- $posts = q("SELECT COUNT(*) AS local_posts FROM `item` WHERE (item_flags & %d) ",
- intval(ITEM_WALL)
- );
- if (is_array($posts))
- $local_posts = intval($posts[0]["local_posts"]);
-
$data = Array(
'version' => RED_VERSION,
'commit' => $commit,
@@ -102,6 +63,7 @@ function siteinfo_init(&$a) {
'plugins' => $visible_plugins,
'register_policy' => $register_policy[$a->config['system']['register_policy']],
'directory_mode' => $directory_mode[$a->config['system']['directory_mode']],
+ 'language' => get_config('system','language'),
'diaspora_emulation' => get_config('system','diaspora_enabled'),
'rss_connections' => get_config('system','feed_contacts'),
'default_service_restrictions' => $service_class,
@@ -109,10 +71,10 @@ function siteinfo_init(&$a) {
'site_name' => (($site_name) ? $site_name : ''),
'platform' => RED_PLATFORM,
'info' => (($site_info) ? $site_info : ''),
- 'channels_total' => $channels_total,
- 'channels_active_halfyear' => $channels_active_halfyear,
- 'channels_active_monthly' => $channels_active_monthly,
- 'local_posts' => $local_posts
+ 'channels_total' => $channels_total_stat,
+ 'channels_active_halfyear' => $channels_active_halfyear_stat,
+ 'channels_active_monthly' => $channels_active_monthly_stat,
+ 'local_posts' => $local_posts_stat
);
json_return_and_die($data);
}
diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css
index 9bbf996d5..7df70e714 100644
--- a/view/theme/redbasic/css/style.css
+++ b/view/theme/redbasic/css/style.css
@@ -75,12 +75,12 @@ a:hover, .fakelink:hover { color: $link_colour; text-decoration: underline; }
a.btn-default {
color: #333;
-
+ font-weight: normal;
}
a.btn-success {
color: #fff;
-font-weight: normal;
+ font-weight: normal;
}
input[type="text"],
diff --git a/view/tpl/photo_album.tpl b/view/tpl/photo_album.tpl
index b5ea14c14..d23f7e817 100755
--- a/view/tpl/photo_album.tpl
+++ b/view/tpl/photo_album.tpl
@@ -1,3 +1,23 @@
-<a href="{{$photolink}}" id="photo-album-photo-link-{{$id}}" title="{{$phototitle}}" rel="{{$rel}}">
- <img src="{{$imgsrc}}" alt="{{if $desc}}{{$desc}}{{else}}{{$imgalt}}{{/if}}" title="{{$phototitle}}" id="photo-album-photo-{{$id}}" />
-</a>
+<div class="section-title-wrapper">
+ <div class="btn-group btn-group-xs pull-right">
+ {{if $edit}}
+ <a class="btn btn-default" href="{{$edit.1}}" title="{{$edit.0}}"><i class="icon-pencil"></i></a>
+ {{/if}}
+ <a class="btn btn-default" href="{{$order.1}}" title="{{$order.0}}"><i class="icon-sort"></i></a>
+ {{if $can_post}}
+ <a class="btn btn-xs btn-success" href="{{$upload.1}}"><i class="icon-upload"></i>&nbsp;{{$upload.0}}</a>
+ {{/if}}
+ </div>
+ <h2>{{$album}}</h2>
+
+ <div class="clear"></div>
+</div>
+<div id="photo-album-contents">
+ {{foreach $photos as $photo}}
+ {{include file="photo_top.tpl"}}
+ {{/foreach}}
+ <div id="page-end"></div>
+</div>
+<div class="photos-end"></div>
+<script>$(document).ready(function() { loadingPage = false; justifyPhotos(); });</script>
+<div id="page-spinner"></div>
diff --git a/view/tpl/photo_top.tpl b/view/tpl/photo_top.tpl
index 4a106c30d..ee21e5cce 100755
--- a/view/tpl/photo_top.tpl
+++ b/view/tpl/photo_top.tpl
@@ -1,4 +1,4 @@
<a href="{{$photo.link}}" id="photo-top-photo-link-{{$photo.id}}" title="{{$photo.title}}">
- <img src="{{$photo.src}}" alt="{{$photo.album.name}}" title="{{$photo.title}}" id="photo-top-photo-{{$photo.id}}" />
+ <img src="{{$photo.src}}" alt="{{if $photo.album.name}}{{$photo.album.name}}{{elseif $photo.desc}}{{$photo.desc}}{{else}}{{$photo.alt}}{{/if}}" title="{{$photo.title}}" id="photo-top-photo-{{$photo.id}}" />
</a>