Some more removed functionality from FileTag class
This commit is contained in:
parent
d2ea3eabfb
commit
fbcc59cc1d
|
@ -21,8 +21,6 @@
|
||||||
|
|
||||||
namespace Friendica\Model;
|
namespace Friendica\Model;
|
||||||
|
|
||||||
use Friendica\Database\DBA;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class handles FileTag related functions
|
* This class handles FileTag related functions
|
||||||
*
|
*
|
||||||
|
@ -133,67 +131,4 @@ class FileTag
|
||||||
|
|
||||||
return self::arrayToFile($list_array, $type);
|
return self::arrayToFile($list_array, $type);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Add tag to file
|
|
||||||
*
|
|
||||||
* @param int $uid Unique identity.
|
|
||||||
* @param int $item_id Item identity.
|
|
||||||
* @param string $file File tag.
|
|
||||||
*
|
|
||||||
* @return boolean A value indicating success or failure.
|
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
|
||||||
*/
|
|
||||||
public static function saveFile($uid, $item_id, $file)
|
|
||||||
{
|
|
||||||
if (!intval($uid)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$item = Post::selectFirst(['uri-id'], ['id' => $item_id, 'uid' => $uid]);
|
|
||||||
if (DBA::isResult($item)) {
|
|
||||||
$stored_file = Post\Category::getTextByURIId($item['uri-id'], $uid);
|
|
||||||
|
|
||||||
if (!stristr($stored_file, '[' . self::encode($file) . ']')) {
|
|
||||||
Post\Category::storeTextByURIId($item['uri-id'], $uid, $stored_file . '[' . self::encode($file) . ']');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove tag from file
|
|
||||||
*
|
|
||||||
* @param int $uid Unique identity.
|
|
||||||
* @param int $item_id Item identity.
|
|
||||||
* @param string $file File tag.
|
|
||||||
* @param boolean $cat Optional value indicating the term type (i.e. Category or File)
|
|
||||||
*
|
|
||||||
* @return boolean A value indicating success or failure.
|
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
|
||||||
*/
|
|
||||||
public static function unsaveFile($uid, $item_id, $file, $cat = false)
|
|
||||||
{
|
|
||||||
if (!intval($uid)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($cat == true) {
|
|
||||||
$pattern = '<' . self::encode($file) . '>';
|
|
||||||
} else {
|
|
||||||
$pattern = '[' . self::encode($file) . ']';
|
|
||||||
}
|
|
||||||
|
|
||||||
$item = Post::selectFirst(['uri-id'], ['id' => $item_id, 'uid' => $uid]);
|
|
||||||
if (!DBA::isResult($item)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$file = Post\Category::getTextByURIId($item['uri-id'], $uid);
|
|
||||||
|
|
||||||
Post\Category::storeTextByURIId($item['uri-id'], $uid, str_replace($pattern, '', $file));
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,6 +50,23 @@ class Category
|
||||||
return DBA::delete('post-category', ['uri-id' => $uri_id, 'uid' => $uid]);
|
return DBA::delete('post-category', ['uri-id' => $uri_id, 'uid' => $uid]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete all categories and files from a given uri-id and user
|
||||||
|
*
|
||||||
|
* @param int $uri_id
|
||||||
|
* @param int $uid
|
||||||
|
* @return boolean success
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public static function deleteFileByURIId(int $uri_id, int $uid, int $type, string $file)
|
||||||
|
{
|
||||||
|
$tagid = Tag::getID($file);
|
||||||
|
if (empty($tagid)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return DBA::delete('post-category', ['uri-id' => $uri_id, 'uid' => $uid, 'type' => $type, 'tid' => $tagid]);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Generates the legacy item.file field string from an item ID.
|
* Generates the legacy item.file field string from an item ID.
|
||||||
* Includes only file and category terms.
|
* Includes only file and category terms.
|
||||||
|
@ -166,18 +183,23 @@ class Category
|
||||||
|
|
||||||
if (preg_match_all("/\<(.*?)\>/ism", $files, $result)) {
|
if (preg_match_all("/\<(.*?)\>/ism", $files, $result)) {
|
||||||
foreach ($result[1] as $file) {
|
foreach ($result[1] as $file) {
|
||||||
$tagid = Tag::getID($file);
|
self::storeFileByURIId($uri_id, $uid, self::FILE, $file);
|
||||||
if (empty($tagid)) {
|
}
|
||||||
continue;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DBA::replace('post-category', [
|
public static function storeFileByURIId(int $uri_id, int $uid, int $type, string $file)
|
||||||
|
{
|
||||||
|
$tagid = Tag::getID($file);
|
||||||
|
if (empty($tagid)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return DBA::replace('post-category', [
|
||||||
'uri-id' => $uri_id,
|
'uri-id' => $uri_id,
|
||||||
'uid' => $uid,
|
'uid' => $uid,
|
||||||
'type' => self::CATEGORY,
|
'type' => $type,
|
||||||
'tid' => $tagid
|
'tid' => $tagid
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -22,8 +22,9 @@
|
||||||
namespace Friendica\Module\Filer;
|
namespace Friendica\Module\Filer;
|
||||||
|
|
||||||
use Friendica\BaseModule;
|
use Friendica\BaseModule;
|
||||||
|
use Friendica\Database\DBA;
|
||||||
use Friendica\DI;
|
use Friendica\DI;
|
||||||
use Friendica\Model\FileTag;
|
use Friendica\Model\Post;
|
||||||
use Friendica\Network\HTTPException;
|
use Friendica\Network\HTTPException;
|
||||||
use Friendica\Util\XML;
|
use Friendica\Util\XML;
|
||||||
|
|
||||||
|
@ -46,26 +47,33 @@ class RemoveTag extends BaseModule
|
||||||
$term = XML::unescape(trim($_GET['term'] ?? ''));
|
$term = XML::unescape(trim($_GET['term'] ?? ''));
|
||||||
$cat = XML::unescape(trim($_GET['cat'] ?? ''));
|
$cat = XML::unescape(trim($_GET['cat'] ?? ''));
|
||||||
|
|
||||||
$category = (($cat) ? true : false);
|
if (!empty($cat)) {
|
||||||
|
$type = Post\Category::CATEGORY;
|
||||||
if ($category) {
|
|
||||||
$term = $cat;
|
$term = $cat;
|
||||||
|
} else {
|
||||||
|
$type = Post\Category::FILE;
|
||||||
}
|
}
|
||||||
|
|
||||||
$logger->info('Filer - Remove Tag', [
|
$logger->info('Filer - Remove Tag', [
|
||||||
'term' => $term,
|
'term' => $term,
|
||||||
'item' => $item_id,
|
'item' => $item_id,
|
||||||
'category' => ($category ? 'true' : 'false')
|
'type' => $type
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if ($item_id && strlen($term)) {
|
if ($item_id && strlen($term)) {
|
||||||
if (!FileTag::unsaveFile(local_user(), $item_id, $term, $category)) {
|
$item = Post::selectFirst(['uri-id'], ['id' => $item_id]);
|
||||||
|
if (!DBA::isResult($item)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!Post\Category::deleteFileByURIId($item['uri-id'], local_user(), $type, $term)) {
|
||||||
notice(DI::l10n()->t('Item was not removed'));
|
notice(DI::l10n()->t('Item was not removed'));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
notice(DI::l10n()->t('Item was not deleted'));
|
notice(DI::l10n()->t('Item was not deleted'));
|
||||||
}
|
}
|
||||||
|
|
||||||
DI::baseUrl()->redirect('network?file=' . rawurlencode($term));
|
if ($type == Post\Category::FILE) {
|
||||||
|
DI::baseUrl()->redirect('filed?file=' . rawurlencode($term));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,7 @@ namespace Friendica\Module\Filer;
|
||||||
|
|
||||||
use Friendica\BaseModule;
|
use Friendica\BaseModule;
|
||||||
use Friendica\Core\Renderer;
|
use Friendica\Core\Renderer;
|
||||||
|
use Friendica\Database\DBA;
|
||||||
use Friendica\DI;
|
use Friendica\DI;
|
||||||
use Friendica\Model;
|
use Friendica\Model;
|
||||||
use Friendica\Util\XML;
|
use Friendica\Util\XML;
|
||||||
|
@ -52,8 +53,11 @@ class SaveTag extends BaseModule
|
||||||
$logger->info('filer', ['tag' => $term, 'item' => $item_id]);
|
$logger->info('filer', ['tag' => $term, 'item' => $item_id]);
|
||||||
|
|
||||||
if ($item_id && strlen($term)) {
|
if ($item_id && strlen($term)) {
|
||||||
// file item
|
$item = Model\Post::selectFirst(['uri-id'], ['id' => $item_id]);
|
||||||
Model\FileTag::saveFile(local_user(), $item_id, $term);
|
if (!DBA::isResult($item)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Model\Post\Category::storeFileByURIId($item['uri-id'], local_user(), Model\Post\Category::FILE, $term);
|
||||||
}
|
}
|
||||||
|
|
||||||
// return filer dialog
|
// return filer dialog
|
||||||
|
|
Loading…
Reference in a new issue