* @throws \Exception
*/
public static function exists($condition) {
- return DBA::exists('post-view', $condition);
+ return DBA::exists('post-user-view', $condition);
}
/**
*/
public static function count(array $condition = [], array $params = [])
{
- return DBA::count('post-view', $condition, $params);
+ return DBA::count('post-user-view', $condition, $params);
}
/**
/**
* Select rows from the given view
*
- * @param string $view View (post-view or post-thread-view)
+ * @param string $view View (post-user-view or post-thread-user-view)
* @param array $selected Array of selected fields, empty for all
* @param array $condition Array of fields for condition
* @param array $params Array of several parameters
if (empty($selected)) {
$selected = array_merge(Item::DISPLAY_FIELDLIST, Item::ITEM_FIELDLIST);
- if ($view == 'post-thread-view') {
+ if ($view == 'post-thread-user-view') {
$selected = array_merge($selected, ['ignored']);
}
}
*/
public static function select(array $selected = [], array $condition = [], $params = [])
{
- return self::selectView('post-view', $selected, $condition, $params);
+ return self::selectView('post-user-view', $selected, $condition, $params);
}
/**
*/
public static function selectThread(array $selected = [], array $condition = [], $params = [])
{
- return self::selectView('post-thread-view', $selected, $condition, $params);
+ return self::selectView('post-thread-user-view', $selected, $condition, $params);
}
/**
* Select rows from the given view for a given user
*
- * @param string $view View (post-view or post-thread-view)
+ * @param string $view View (post-user-view or post-thread-user-view)
* @param integer $uid User ID
* @param array $selected Array of selected fields, empty for all
* @param array $condition Array of fields for condition
$condition = DBA::mergeConditions($condition,
["`visible` AND NOT `deleted`
AND NOT `author-blocked` AND NOT `owner-blocked`
- AND (NOT `causer-blocked` OR `causer-id` = ?) AND NOT `contact-blocked`
+ AND (NOT `causer-blocked` OR `causer-id` = ? OR `causer-id` IS NULL) AND NOT `contact-blocked`
AND ((NOT `contact-readonly` AND NOT `contact-pending` AND (`contact-rel` IN (?, ?)))
OR `self` OR `gravity` != ? OR `contact-uid` = ?)
- AND NOT EXISTS (SELECT `uri-id` FROM `post-user` WHERE `hidden` AND `uri-id` = `" . $view . "`.`uri-id` AND `uid` = ?)
+ AND NOT EXISTS (SELECT `uri-id` FROM `post-user` WHERE `uid` = ? AND `uri-id` = `" . $view . "`.`uri-id` AND `hidden`)
AND NOT EXISTS (SELECT `cid` FROM `user-contact` WHERE `uid` = ? AND `cid` = `author-id` AND `blocked`)
AND NOT EXISTS (SELECT `cid` FROM `user-contact` WHERE `uid` = ? AND `cid` = `owner-id` AND `blocked`)
AND NOT EXISTS (SELECT `cid` FROM `user-contact` WHERE `uid` = ? AND `cid` = `author-id` AND `ignored` AND `gravity` = ?)
*/
public static function selectForUser($uid, array $selected = [], array $condition = [], $params = [])
{
- return self::selectViewForUser('post-view', $uid, $selected, $condition, $params);
+ return self::selectViewForUser('post-user-view', $uid, $selected, $condition, $params);
}
/**
*/
public static function selectThreadForUser($uid, array $selected = [], array $condition = [], $params = [])
{
- return self::selectViewForUser('post-thread-view', $uid, $selected, $condition, $params);
+ return self::selectViewForUser('post-thread-user-view', $uid, $selected, $condition, $params);
}
/**
$update_fields = DBStructure::getFieldsForTable('post-user', $fields);
if (!empty($update_fields)) {
$affected_count = 0;
- $rows = DBA::selectToArray('post-view', ['post-user-id'], $condition);
- $puids = array_column($rows, 'post-user-id');
- while (!empty($puids)) {
- $segment = array_splice($puids, 0, 100);
- if (!DBA::update('post-user', $update_fields, ['id' => $segment])) {
+ $posts = DBA::select('post-user-view', ['post-user-id'], $condition);
+ while ($rows = DBA::toArray($posts, false, 100)) {
+ $puids = array_column($rows, 'post-user-id');
+ if (!DBA::update('post-user', $update_fields, ['id' => $puids])) {
DBA::rollback();
Logger::notice('Updating post-user failed', ['fields' => $update_fields, 'condition' => $condition]);
return false;
}
$affected_count += DBA::affectedRows();
}
- $affected = $affected_count;
+ DBA::close($posts);
+ $affected = $affected_count;
}
$update_fields = DBStructure::getFieldsForTable('post-content', $fields);
if (!empty($update_fields)) {
$affected_count = 0;
- $rows = DBA::selectToArray('post-view', ['uri-id'], $condition, ['group_by' => ['uri-id']]);
- $uriids = array_column($rows, 'uri-id');
- $elements = $uriids;
- while (!empty($elements)) {
- $segment = array_splice($elements, 0, 100);
- if (!DBA::update('post-content', $update_fields, ['uri-id' => $segment])) {
+ $posts = DBA::select('post-user-view', ['uri-id'], $condition, ['group_by' => ['uri-id']]);
+ while ($rows = DBA::toArray($posts, false, 100)) {
+ $uriids = array_column($rows, 'uri-id');
+ if (!DBA::update('post-content', $update_fields, ['uri-id' => $uriids])) {
DBA::rollback();
Logger::notice('Updating post-content failed', ['fields' => $update_fields, 'condition' => $condition]);
return false;
}
$affected_count += DBA::affectedRows();
}
+ DBA::close($posts);
$affected = max($affected, $affected_count);
}
$update_fields = DBStructure::getFieldsForTable('post', $fields);
if (!empty($update_fields)) {
$affected_count = 0;
- if (empty($uriids)) {
- $rows = DBA::selectToArray('post-view', ['uri-id'], $condition, ['group_by' => ['uri-id']]);
+ $posts = DBA::select('post-user-view', ['uri-id'], $condition, ['group_by' => ['uri-id']]);
+ while ($rows = DBA::toArray($posts, false, 100)) {
$uriids = array_column($rows, 'uri-id');
- }
- $elements = $uriids;
- while (!empty($elements)) {
- $segment = array_splice($elements, 0, 100);
- if (!DBA::update('post', $update_fields, ['uri-id' => $segment])) {
+ if (!DBA::update('post', $update_fields, ['uri-id' => $uriids])) {
DBA::rollback();
Logger::notice('Updating post failed', ['fields' => $update_fields, 'condition' => $condition]);
return false;
}
$affected_count += DBA::affectedRows();
}
+ DBA::close($posts);
$affected = max($affected, $affected_count);
}
$update_fields = Post\DeliveryData::extractFields($fields);
if (!empty($update_fields)) {
$affected_count = 0;
- if (empty($uriids)) {
- $rows = DBA::selectToArray('post-view', ['uri-id'], $condition, ['group_by' => ['uri-id']]);
+ $posts = DBA::select('post-user-view', ['uri-id'], $condition, ['group_by' => ['uri-id']]);
+ while ($rows = DBA::toArray($posts, false, 100)) {
$uriids = array_column($rows, 'uri-id');
- }
- $elements = $uriids;
- while (!empty($elements)) {
- $segment = array_splice($elements, 0, 100);
- if (!DBA::update('post-delivery-data', $update_fields, ['uri-id' => $segment])) {
+ if (!DBA::update('post-delivery-data', $update_fields, ['uri-id' => $uriids])) {
DBA::rollback();
Logger::notice('Updating post-delivery-data failed', ['fields' => $update_fields, 'condition' => $condition]);
return false;
}
$affected_count += DBA::affectedRows();
}
+ DBA::close($posts);
$affected = max($affected, $affected_count);
}
$update_fields = DBStructure::getFieldsForTable('post-thread', $fields);
if (!empty($update_fields)) {
$affected_count = 0;
- $rows = DBA::selectToArray('post-view', ['uri-id'], $thread_condition, ['group_by' => ['uri-id']]);
- $uriids = array_column($rows, 'uri-id');
- while (!empty($uriids)) {
- $segment = array_splice($uriids, 0, 100);
- if (!DBA::update('post-thread', $update_fields, ['uri-id' => $segment])) {
+ $posts = DBA::select('post-user-view', ['uri-id'], $thread_condition, ['group_by' => ['uri-id']]);
+ while ($rows = DBA::toArray($posts, false, 100)) {
+ $uriids = array_column($rows, 'uri-id');
+ if (!DBA::update('post-thread', $update_fields, ['uri-id' => $uriids])) {
DBA::rollback();
Logger::notice('Updating post-thread failed', ['fields' => $update_fields, 'condition' => $condition]);
return false;
}
$affected_count += DBA::affectedRows();
}
+ DBA::close($posts);
$affected = max($affected, $affected_count);
}
$update_fields = DBStructure::getFieldsForTable('post-thread-user', $fields);
if (!empty($update_fields)) {
$affected_count = 0;
- $rows = DBA::selectToArray('post-view', ['post-user-id'], $thread_condition);
- $thread_puids = array_column($rows, 'post-user-id');
- while (!empty($thread_puids)) {
- $segment = array_splice($thread_puids, 0, 100);
- if (!DBA::update('post-thread-user', $update_fields, ['post-user-id' => $segment])) {
+ $posts = DBA::select('post-user-view', ['post-user-id'], $thread_condition);
+ while ($rows = DBA::toArray($posts, false, 100)) {
+ $thread_puids = array_column($rows, 'post-user-id');
+ if (!DBA::update('post-thread-user', $update_fields, ['post-user-id' => $thread_puids])) {
DBA::rollback();
Logger::notice('Updating post-thread-user failed', ['fields' => $update_fields, 'condition' => $condition]);
return false;
}
- $affected_count += DBA::affectedRows();
+ $affected_count += DBA::affectedRows();
}
+ DBA::close($posts);
$affected = max($affected, $affected_count);
}