]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Attach.php
Forums now are working with AP as well
[friendica.git] / src / Model / Attach.php
index 9be77eca91bb161d01d026b9fa5999e44ba5f57e..d65e67fe3e6a8c34adec09eb7ffca2091f8e7f2c 100644 (file)
@@ -7,13 +7,15 @@
 namespace Friendica\Model;
 
 use Friendica\BaseObject;
-use Friendica\Core\System;
 use Friendica\Core\StorageManager;
+use Friendica\Core\System;
 use Friendica\Database\DBA;
 use Friendica\Database\DBStructure;
-use Friendica\Util\Security;
+use Friendica\Model\Storage\IStorage;
+use Friendica\Object\Image;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Mimetype;
+use Friendica\Util\Security;
 
 /**
  * Class to handle attach dabatase table
@@ -29,7 +31,7 @@ class Attach extends BaseObject
         */
        private static function getFields()
        {
-               $allfields = DBStructure::definition(false);
+               $allfields = DBStructure::definition(self::getApp()->getBasePath(), false);
                $fields = array_keys($allfields['attach']['fields']);
                array_splice($fields, array_search('data', $fields), 1);
                return $fields;
@@ -50,7 +52,7 @@ class Attach extends BaseObject
        public static function select(array $fields = [], array $conditions = [], array $params = [])
        {
                if (empty($fields)) {
-                       $selected = self::getFields();
+                       $fields = self::getFields();
                }
 
                $r = DBA::select('attach', $fields, $conditions, $params);
@@ -175,7 +177,7 @@ class Attach extends BaseObject
         * @return boolean/integer Row id on success, False on errors
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       public function store($data, $uid, $filename, $filetype = '' , $filesize = null, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '')
+       public static function store($data, $uid, $filename, $filetype = '' , $filesize = null, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '')
        {
                if ($filetype === '') {
                        $filetype = Mimetype::getContentType($filename);
@@ -185,6 +187,7 @@ class Attach extends BaseObject
                        $filesize = strlen($data);
                }
 
+               /** @var IStorage $backend_class */
                $backend_class = StorageManager::getBackend();
                $backend_ref = '';
                if ($backend_class !== '') {
@@ -257,18 +260,19 @@ class Attach extends BaseObject
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @see   \Friendica\Database\DBA::update
         */
-       public static function update($fields, $conditions, $img = null, array $old_fields = [])
+       public static function update($fields, $conditions, Image $img = null, array $old_fields = [])
        {
-               if (!is_null($data)) {
+               if (!is_null($img)) {
                        // get items to update
                        $items = self::select(['backend-class','backend-ref'], $conditions);
 
                        foreach($items as $item) {
+                               /** @var IStorage $backend_class */
                                $backend_class = (string)$item['backend-class'];
                                if ($backend_class !== '') {
                                        $fields['backend-ref'] = $backend_class::put($img->asString(), $item['backend-ref']);
                                } else {
-                                       $fields['data'] = $data;
+                                       $fields['data'] = $img->asString();
                                }
                        }
                }
@@ -296,6 +300,7 @@ class Attach extends BaseObject
                $items = self::select(['backend-class','backend-ref'], $conditions);
 
                foreach($items as $item) {
+                       /** @var IStorage $backend_class */
                        $backend_class = (string)$item['backend-class'];
                        if ($backend_class !== '') {
                                $backend_class::delete($item['backend-ref']);