aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2012-06-25 01:37:44 -0700
committerfriendica <info@friendica.com>2012-06-25 01:37:44 -0700
commit35a098e0dc7940974132d8d65bbc4418d92fb204 (patch)
tree3f49c1497c38c54b50dacbafc04933aa16cfb28a
parentad6c82bdea11e4c35284e18608f78ad4c355405d (diff)
downloadvolse-hubzilla-35a098e0dc7940974132d8d65bbc4418d92fb204.tar.gz
volse-hubzilla-35a098e0dc7940974132d8d65bbc4418d92fb204.tar.bz2
volse-hubzilla-35a098e0dc7940974132d8d65bbc4418d92fb204.zip
service limits for photo uploads
-rw-r--r--include/plugin.php25
-rw-r--r--mod/photos.php33
-rw-r--r--view/photos_upload.tpl3
-rw-r--r--view/theme/duepuntozero/style.css3
4 files changed, 63 insertions, 1 deletions
diff --git a/include/plugin.php b/include/plugin.php
index 89715485e..e8fec4cbe 100644
--- a/include/plugin.php
+++ b/include/plugin.php
@@ -355,6 +355,31 @@ function service_class_allows($uid,$property,$usage = false) {
}
}
+
+function service_class_fetch($uid,$property) {
+
+ if($uid == local_user()) {
+ $service_class = $a->user['service_class'];
+ }
+ else {
+ $r = q("select service_class from user where uid = %d limit 1",
+ intval($uid)
+ );
+ if($r !== false and count($r)) {
+ $service_class = $r[0]['service_class'];
+ }
+ }
+ if(! x($service_class))
+ return false; // everything is allowed
+
+ $arr = get_config('service_class',$service_class);
+ if(! is_array($arr) || (! count($arr)))
+ return false;
+
+ return((array_key_exists($property,$arr)) ? $arr[$property] : false);
+
+}
+
function upgrade_link() {
$l = get_config('service_class','upgrade_link');
$t = sprintf('<a href="%s">' . t('Click here to upgrade.') . '</div>', $l);
diff --git a/mod/photos.php b/mod/photos.php
index 31046565d..ea4d7f81f 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -711,6 +711,24 @@ function photos_post(&$a) {
logger('mod/photos.php: photos_post(): loading the contents of ' . $src , LOGGER_DEBUG);
$imagedata = @file_get_contents($src);
+
+
+
+ $r = q("select sum(octet_length(data)) as total from photo where uid = %d and scale = 0 and album != 'Contact Photos' ",
+ intval($a->data['user']['uid'])
+ );
+
+ $limit = service_class_fetch($a->data['user']['uid'],'photo_upload_limit');
+
+ if(($limit !== false) && (($r[0]['total'] + strlen($imagedata)) > $limit)) {
+ notice( upgrade_message() . EOL );
+ @unlink($src);
+ $foo = 0;
+ call_hooks('photo_post_end',$foo);
+ killme();
+ }
+
+
$ph = new Photo($imagedata, $type);
if(! $ph->is_valid()) {
@@ -968,12 +986,25 @@ function photos_content(&$a) {
<input type="submit" name="submit" value="' . t('Submit') . '" id="photos-upload-submit" /> </div>';
-
+ $r = q("select sum(octet_length(data)) as total from photo where uid = %d and scale = 0 and album != 'Contact Photos' ",
+ intval($a->data['user']['uid'])
+ );
+
+
+ $limit = service_class_fetch($a->data['user']['uid'],'photo_upload_limit');
+ if($limit !== false) {
+ $usage_message = sprintf( t("You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."), $r[0]['total'] / 1024000, $limit / 1024000 );
+ }
+ else {
+ $usage_message = sprintf( t('You have used %1$.2f Mbytes of photo storage.'), $r[0]['total'] / 1024000 );
+ }
+
$tpl = get_markup_template('photos_upload.tpl');
$o .= replace_macros($tpl,array(
'$pagename' => t('Upload Photos'),
'$sessid' => session_id(),
+ '$usage' => $usage_message,
'$nickname' => $a->data['user']['nickname'],
'$newalbum' => t('New album name: '),
'$existalbumtext' => t('or existing album name: '),
diff --git a/view/photos_upload.tpl b/view/photos_upload.tpl
index 318a92427..706b3398d 100644
--- a/view/photos_upload.tpl
+++ b/view/photos_upload.tpl
@@ -1,4 +1,7 @@
<h3>$pagename</h3>
+
+<div id="photos-usage-message">$usage</div>
+
<form action="photos/$nickname" enctype="multipart/form-data" method="post" name="photos-upload-form" id="photos-upload-form" >
<div id="photos-upload-new-wrapper" >
<div id="photos-upload-newalbum-div">
diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css
index de366210b..ea3a2da9c 100644
--- a/view/theme/duepuntozero/style.css
+++ b/view/theme/duepuntozero/style.css
@@ -1644,6 +1644,9 @@ input#dfrn-url {
display:block!important;
}
+#photos-usage-message {
+ margin-bottom: 15px;
+}
#acl-wrapper {