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\Model\Storage\IStorage;
use Friendica\Object\Image;
-use Friendica\Util\Security;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Mimetype;
+use Friendica\Util\Security;
/**
* Class to handle attach dabatase table
*/
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;
}
/**
- * @brief Select rows from the attach table
+ * @brief Select rows from the attach table and return them as array
*
* @param array $fields Array of selected fields, empty for all
* @param array $conditions Array of fields for conditions
* @return boolean|array
*
* @throws \Exception
- * @see \Friendica\Database\DBA::select
+ * @see \Friendica\Database\DBA::selectToArray
*/
- public static function select(array $fields = [], array $conditions = [], array $params = [])
+ public static function selectToArray(array $fields = [], array $conditions = [], array $params = [])
{
if (empty($fields)) {
$fields = self::getFields();
}
- $r = DBA::select('attach', $fields, $conditions, $params);
- return DBA::toArray($r);
+ $r = DBA::selectToArray('attach', $fields, $conditions, $params);
}
/**
$filesize = strlen($data);
}
+ /** @var IStorage $backend_class */
$backend_class = StorageManager::getBackend();
$backend_ref = '';
if ($backend_class !== '') {
{
if (!is_null($img)) {
// get items to update
- $items = self::select(['backend-class','backend-ref'], $conditions);
+ $items = self::selectToArray(['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']);
public static function delete(array $conditions, array $options = [])
{
// get items to delete data info
- $items = self::select(['backend-class','backend-ref'], $conditions);
+ $items = self::selectToArray(['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']);