We now are having an item class and a method to change item entries

This commit is contained in:
Michael 2018-01-09 21:13:45 +00:00
parent ec879f3194
commit 81925e3730
2 changed files with 58 additions and 6 deletions

View file

@ -21,6 +21,7 @@ use Friendica\Core\Worker;
use Friendica\Database\DBM; use Friendica\Database\DBM;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\GContact; use Friendica\Model\GContact;
use Friendica\Model\Item;
use Friendica\Network\Probe; use Friendica\Network\Probe;
use Friendica\Protocol\Diaspora; use Friendica\Protocol\Diaspora;
use Friendica\Protocol\Email; use Friendica\Protocol\Email;
@ -820,16 +821,11 @@ function item_post(App $a) {
'edited' => datetime_convert(), 'edited' => datetime_convert(),
'changed' => datetime_convert()); 'changed' => datetime_convert());
dba::update('item', $fields, ['id' => $post_id]); Item::update($fields, ['id' => $post_id]);
create_tags_from_item($post_id);
create_files_from_item($post_id);
update_thread($post_id);
// update filetags in pconfig // update filetags in pconfig
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category'); file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
Worker::add(PRIORITY_HIGH, "Notifier", 'edit_post', $post_id);
if (x($_REQUEST, 'return') && strlen($return_path)) { if (x($_REQUEST, 'return') && strlen($return_path)) {
logger('return: ' . $return_path); logger('return: ' . $return_path);
goaway($return_path); goaway($return_path);

56
src/Model/Item.php Normal file
View file

@ -0,0 +1,56 @@
<?php
/**
* @file src/Model/Item.php
*/
namespace Friendica\Model;
use Friendica\Core\Worker;
use dba;
require_once 'include/tags.php';
require_once 'include/files.php';
require_once 'include/threads.php';
class Item
{
/**
* @brief Update existing item entries
*
* @param array $fields The fields that are to be changed
* @param array $condition The condition for finding the item entries
*
* @return boolean success
*/
public static function update(array $fields, array $condition)
{
if (empty($condition) || empty($fields)) {
return false;
}
$success = dba::update('item', $fields, $condition);
if (!$success) {
return false;
}
// We cannot simply expand the condition to check for origin entries
// The condition needn't to be a simple array but could be a complex condition.
$items = dba::select('item', ['id', 'origin'], $condition);
while ($item = dba::fetch($items)) {
// We only need to notfiy others when it is an original entry from us
if (!$item['origin']) {
continue;
}
create_tags_from_item($item['id']);
create_files_from_item($item['id']);
update_thread($item['id']);
Worker::add(PRIORITY_HIGH, "Notifier", 'edit_post', $item['id']);
}
return true;
}
}