]> git.mxchange.org Git - friendica.git/commitdiff
improve performance of photo upload page
authorfriendica <info@friendica.com>
Mon, 26 Nov 2012 03:34:54 +0000 (19:34 -0800)
committerfriendica <info@friendica.com>
Mon, 26 Nov 2012 03:34:54 +0000 (19:34 -0800)
boot.php
database.sql
include/Photo.php
mod/photos.php
update.php

index 8c3cf7b27334117f75f351b78d5006df4499f7fa..1809df966c130946a9c9a4ca2cf05993583e291b 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -14,7 +14,7 @@ require_once('include/features.php');
 define ( 'FRIENDICA_PLATFORM',     'Friendica');
 define ( 'FRIENDICA_VERSION',      '3.0.1538' );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.23'    );
-define ( 'DB_UPDATE_VERSION',      1156      );
+define ( 'DB_UPDATE_VERSION',      1157      );
 
 define ( 'EOL',                    "<br />\r\n"     );
 define ( 'ATOM_TIME',              'Y-m-d\TH:i:s\Z' );
index 0f82616f7b0188d89f035a27049c195ab709ec38..369637fe60c4a938d1bb458ab66d263ab739e719 100644 (file)
@@ -777,6 +777,7 @@ CREATE TABLE IF NOT EXISTS `photo` (
   `type` CHAR(128) NOT NULL DEFAULT 'image/jpeg',
   `height` smallint(6) NOT NULL,
   `width` smallint(6) NOT NULL,
+  `datasize` int(10) unsigned NOT NULL DEFAULT '0',
   `data` mediumblob NOT NULL,
   `scale` tinyint(3) NOT NULL,
   `profile` tinyint(1) NOT NULL DEFAULT '0',
@@ -789,6 +790,7 @@ CREATE TABLE IF NOT EXISTS `photo` (
   KEY `resource-id` (`resource-id`),
   KEY `album` (`album`),
   KEY `scale` (`scale`),
+  KEY `datasize` (`datasize`),
   KEY `profile` (`profile`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
 
index 8fd581977decbb2201415f1ee6a666c325f4acba..69b08f62919bc7fe81855238ff9fea847dff556c 100644 (file)
@@ -584,6 +584,7 @@ class Photo {
                 `album` = '%s',
                 `height` = %d,
                 `width` = %d,
+                               `datasize` = %d,
                 `data` = '%s',
                 `scale` = %d,
                 `profile` = %d,
@@ -604,6 +605,7 @@ class Photo {
                 dbesc($album),
                 intval($this->getHeight()),
                 intval($this->getWidth()),
+                               dbesc(strlen($this->imageString())),
                 dbesc($this->imageString()),
                 intval($scale),
                 intval($profile),
@@ -616,8 +618,8 @@ class Photo {
         }
         else {
             $r = q("INSERT INTO `photo`
-                ( `uid`, `contact-id`, `guid`, `resource-id`, `created`, `edited`, `filename`, type, `album`, `height`, `width`, `data`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` )
-                VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, '%s', '%s', '%s', '%s' )",
+                ( `uid`, `contact-id`, `guid`, `resource-id`, `created`, `edited`, `filename`, type, `album`, `height`, `width`, `datasize`, `data`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` )
+                VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d, '%s', %d, %d, '%s', '%s', '%s', '%s' )",
                 intval($uid),
                 intval($cid),
                 dbesc($guid),
@@ -629,6 +631,7 @@ class Photo {
                 dbesc($album),
                 intval($this->getHeight()),
                 intval($this->getWidth()),
+                               dbesc(strlen($this->imageString())),
                 dbesc($this->imageString()),
                 intval($scale),
                 intval($profile),
index 08dc0e0fc5e6bac7c74645bb6607e368fbb43daf..efccb0e10a2e85b9b279ecca78d8202946b65fa1 100644 (file)
@@ -1027,19 +1027,15 @@ function photos_content(&$a) {
                $default_upload = '<input id="photos-upload-choose" type="file" name="userfile" />      <div class="photos-upload-submit-wrapper" >
                <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'])
-               );
-
-
+               $usage_message = '';
                $limit = service_class_fetch($a->data['user']['uid'],'photo_upload_limit');
                if($limit !== false) {
+
+                       $r = q("select sum(datasize) as total from photo where uid = %d and scale = 0 and album != 'Contact Photos' ",
+                               intval($a->data['user']['uid'])
+                       );
                        $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');
index 3d3eec6f97b00b69600f75ef07cb8d8520eaa573..b29afdb74105187cc73a87ea779fa98112cb44ca 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 
-define( 'UPDATE_VERSION' , 1156 );
+define( 'UPDATE_VERSION' , 1157 );
 
 /**
  *
@@ -1362,3 +1362,10 @@ function update_1155() {
        return UPDATE_FAILED;
 }
 
+function update_1156() {
+       $r = q("ALTER TABLE `photo` ADD `datasize` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `width` ,
+ADD INDEX ( `datasize` ) ");
+
+       if(!$r) return UPDATE_FAILED;
+       return UPDATE_SUCCESS;
+}