<?php
+
/**
* @file src/Model/Photo.php
* @brief This file contains the Photo class for database interface
use Friendica\Core\Cache;
use Friendica\Core\Config;
use Friendica\Core\L10n;
-use Friendica\Core\PConfig;
use Friendica\Core\System;
-use Friendica\Database\DBM;
+use Friendica\Database\DBA;
use Friendica\Object\Image;
-use dba;
+use Friendica\Util\DateTimeFormat;
+use Friendica\Util\Network;
+use Friendica\Util\Security;
require_once 'include/dba.php';
*/
public static function store(Image $Image, $uid, $cid, $rid, $filename, $album, $scale, $profile = 0, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '', $desc = '')
{
- $photo = dba::selectFirst('photo', ['guid'], ["`resource-id` = ? AND `guid` != ?", $rid, '']);
- if (DBM::is_result($photo)) {
+ $photo = DBA::selectFirst('photo', ['guid'], ["`resource-id` = ? AND `guid` != ?", $rid, '']);
+ if (DBA::isResult($photo)) {
$guid = $photo['guid'];
} else {
- $guid = get_guid();
+ $guid = System::createGUID();
}
- $existing_photo = dba::selectFirst('photo', ['id'], ['resource-id' => $rid, 'uid' => $uid, 'contact-id' => $cid, 'scale' => $scale]);
+ $existing_photo = DBA::selectFirst('photo', ['id'], ['resource-id' => $rid, 'uid' => $uid, 'contact-id' => $cid, 'scale' => $scale]);
$fields = [
'uid' => $uid,
'contact-id' => $cid,
'guid' => $guid,
'resource-id' => $rid,
- 'created' => datetime_convert(),
- 'edited' => datetime_convert(),
+ 'created' => DateTimeFormat::utcNow(),
+ 'edited' => DateTimeFormat::utcNow(),
'filename' => basename($filename),
'type' => $Image->getType(),
'album' => $album,
'desc' => $desc
];
- if (DBM::is_result($existing_photo)) {
- $r = dba::update('photo', $fields, ['id' => $existing_photo['id']]);
+ if (DBA::isResult($existing_photo)) {
+ $r = DBA::update('photo', $fields, ['id' => $existing_photo['id']]);
} else {
- $r = dba::insert('photo', $fields);
+ $r = DBA::insert('photo', $fields);
}
return $r;
*/
public static function importProfilePhoto($image_url, $uid, $cid, $quit_on_error = false)
{
- $photo = dba::selectFirst(
+ $thumb = '';
+ $micro = '';
+
+ $photo = DBA::selectFirst(
'photo', ['resource-id'], ['uid' => $uid, 'contact-id' => $cid, 'scale' => 4, 'album' => 'Contact Photos']
);
if (x($photo['resource-id'])) {
$hash = $photo['resource-id'];
} else {
- $hash = photo_new_resource();
+ $hash = self::newResource();
}
$photo_failure = false;
$filename = basename($image_url);
- $img_str = fetch_url($image_url, true);
+ $img_str = Network::fetchUrl($image_url, true);
if ($quit_on_error && ($img_str == "")) {
return false;
// Remove the cached photo
$a = get_app();
- $basepath = $a->get_basepath();
+ $basepath = $a->getBasePath();
if (is_dir($basepath . "/photo")) {
$filename = $basepath . '/photo/' . $hash . '-4.' . $Image->getExt();
*/
public static function getAlbums($uid, $update = false)
{
- $sql_extra = permissions_sql($uid);
+ $sql_extra = Security::permissions_sql($uid);
$key = "photo_albums:".$uid.":".local_user().":".remote_user();
$albums = Cache::get($key);
WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s' $sql_extra
GROUP BY `album` ORDER BY `created` DESC",
intval($uid),
- dbesc('Contact Photos'),
- dbesc(L10n::t('Contact Photos'))
+ DBA::escape('Contact Photos'),
+ DBA::escape(L10n::t('Contact Photos'))
);
} else {
// This query doesn't do the count and is much faster
FROM `photo` USE INDEX (`uid_album_scale_created`)
WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s' $sql_extra",
intval($uid),
- dbesc('Contact Photos'),
- dbesc(L10n::t('Contact Photos'))
+ DBA::escape('Contact Photos'),
+ DBA::escape(L10n::t('Contact Photos'))
);
}
Cache::set($key, $albums, CACHE_DAY);
$key = "photo_albums:".$uid.":".local_user().":".remote_user();
Cache::set($key, null, CACHE_DAY);
}
+
+ /**
+ * Generate a unique photo ID.
+ *
+ * @return string
+ */
+ public static function newResource()
+ {
+ return system::createGUID(32, false);
+ }
}