Merge https://github.com/friendica/red into pending_merge
This commit is contained in:
commit
328d72971d
@ -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");
|
||||
|
73
include/statistics_fns.php
Normal file
73
include/statistics_fns.php
Normal file
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
110
mod/photos.php
110
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'];
|
||||
|
||||
$imagelink = ($a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/image/' . $rr['resource_id']
|
||||
. (($_GET['order'] === 'posted') ? '?f=&order=posted' : ''));
|
||||
|
||||
// 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");
|
||||
// }
|
||||
|
||||
$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;
|
||||
$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,
|
||||
));
|
||||
}
|
||||
echo $ajaxout;
|
||||
echo '<script>justifyPhotosAjax();</script>';
|
||||
else {
|
||||
$o = '<div id="content-complete"></div>';
|
||||
}
|
||||
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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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"],
|
||||
|
@ -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> {{$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>
|
||||
|
@ -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>
|
||||
|
||||
|
Reference in New Issue
Block a user