]> git.mxchange.org Git - friendica.git/commitdiff
New caching system for photos
authorMichael Vogel <icarus@dabo.de>
Fri, 14 Dec 2012 21:47:30 +0000 (22:47 +0100)
committerMichael Vogel <icarus@dabo.de>
Fri, 14 Dec 2012 21:47:30 +0000 (22:47 +0100)
boot.php
include/network.php
include/poller.php
mod/photo.php

index 354c243203482948effb2c51906b8a955ee17364..9dacaaaec9709fcaec6018d48e2f44ef7f756b5f 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -520,6 +520,19 @@ if(! class_exists('App')) {
                        $this->is_tablet = $mobile_detect->isTablet();
                }
 
+               function get_basepath() {
+
+                       $basepath = get_config("system", "basepath");
+
+                       if ($basepath == "")
+                               $basepath = $_SERVER["DOCUMENT_ROOT"];
+
+                       if ($basepath == "")
+                               $basepath = $_SERVER["PWD"];
+
+                       return($basepath);
+               }
+
                function get_baseurl($ssl = false) {
 
                        $scheme = $this->scheme;
@@ -1895,7 +1908,7 @@ function clear_cache($basepath = "", $path = "") {
                        $fullpath = $path."/".$file;
                        if ((filetype($fullpath) == "dir") and ($file != ".") and ($file != ".."))
                                clear_cache($basepath, $fullpath);
-                       if ((filetype($fullpath) == "file") and filectime($fullpath) < (time() - $cachetime))
+                       if ((filetype($fullpath) == "file") and (filectime($fullpath) < (time() - $cachetime)))
                                unlink($fullpath);
                }
                closedir($dh);
index 599088a2daeace1ab0e4b37170e8b3c8939011b3..5877dda41b876651810cc8e76e3766b0bd475cb7 100644 (file)
@@ -854,8 +854,7 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
        }
 
        // replace the special char encoding
-
-       $s = htmlspecialchars($s,ENT_QUOTES,'UTF-8');
+       $s = htmlspecialchars($s,ENT_NOQUOTES,'UTF-8');
        return $s;
 }
 
index 6f2eeed822b80f757adafaf269caac0c656ee91e..4eb5e8a2b912bd2b22df8cfec3c1822adbc9c1d1 100644 (file)
@@ -105,6 +105,9 @@ function poller_run(&$argv, &$argc){
        // clear old item cache files
        clear_cache();
 
+       // clear cache for photos
+       clear_cache($a->get_basepath(), $a->get_basepath()."/photo");
+
        $manual_id  = 0;
        $generation = 0;
        $hub_update = false;
index e37b9273859e940e8ca13e5cd4ac5f13f4d44e49..93db82a6418c9dc789e9678c7be505340c7330be 100644 (file)
@@ -7,6 +7,7 @@ function photo_init(&$a) {
        global $_SERVER;
 
        $prvcachecontrol = false;
+       $file = "";
 
        switch($a->argc) {
                case 4:
@@ -20,6 +21,7 @@ function photo_init(&$a) {
                        break;
                case 2:
                        $photo = $a->argv[1];
+                       $file = $photo;
                        break;
                case 1:
                default:
@@ -42,7 +44,6 @@ function photo_init(&$a) {
                exit;
        }
 
-
        $default = 'images/person-175.jpg';
 
        if(isset($type)) {
@@ -94,7 +95,7 @@ function photo_init(&$a) {
                foreach( Photo::supportedTypes() as $m=>$e){
                        $photo = str_replace(".$e",'',$photo);
                }
-       
+
                if(substr($photo,-2,1) == '-') {
                        $resolution = intval(substr($photo,-1,1));
                        $photo = substr($photo,0,-2);
@@ -115,6 +116,8 @@ function photo_init(&$a) {
                                intval($resolution)
                        );
 
+                       $public = ($r[0]['allow_cid'] == '') AND ($r[0]['allow_gid'] == '') AND ($r[0]['deny_cid']  == '') AND ($r[0]['deny_gid']  == '');
+
                        if(count($r)) {
                                $data = $r[0]['data'];
                                $mimetype = $r[0]['type'];
@@ -198,6 +201,12 @@ function photo_init(&$a) {
                header("Cache-Control: max-age=31536000");
        }
        echo $data;
+
+       // If the photo is public and there is an existing photo directory store the photo there
+       if ($public and ($file != ""))
+               if (is_dir($_SERVER["DOCUMENT_ROOT"]."/photo"))
+                       file_put_contents($_SERVER["DOCUMENT_ROOT"]."/photo/".$file, $data);
+
        killme();
        // NOTREACHED
 }