/** * Update a certain category * * @param array $item */ public static function updateCategory(array $item) { BackendModel::getDB(true)->update('faq_categories', $item, 'id = ?', array($item['id'])); BackendModel::invalidateFrontendCache('faq', BL::getWorkingLanguage()); }
/** * Updates one or more comments' status * * @return void * @param array $ids The id(s) of the comment(s) to change the status for. * @param string $status The new status. */ public static function updateCommentStatuses($ids, $status) { // make sure $ids is an array $ids = (array) $ids; // loop and cast to integers foreach ($ids as &$id) { $id = (int) $id; } // create an array with an equal amount of questionmarks as ids provided $idPlaceHolders = array_fill(0, count($ids), '?'); // get ids $itemIds = (array) BackendModel::getDB()->getColumn('SELECT i.post_id FROM blog_comments AS i WHERE i.id IN (' . implode(', ', $idPlaceHolders) . ')', $ids); // update record BackendModel::getDB(true)->execute('UPDATE blog_comments SET status = ? WHERE id IN (' . implode(', ', $idPlaceHolders) . ')', array_merge(array((string) $status), $ids)); // recalculate the comment count if (!empty($itemIds)) { self::reCalculateCommentCount($itemIds); } // invalidate the cache for blog BackendModel::invalidateFrontendCache('blog', BL::getWorkingLanguage()); }
/** * Updates one or more comments' status * * @param array $ids The id(s) of the comment(s) to change the status for. * @param string $status The new status. */ public static function updateCommentStatuses($ids, $status) { // make sure $ids is an array $ids = (array) $ids; // loop and cast to integers foreach ($ids as &$id) { $id = (int) $id; } // create an array with an equal amount of questionmarks as ids provided $idPlaceHolders = array_fill(0, count($ids), '?'); // get the items and their languages $items = (array) BackendModel::getDB()->getPairs('SELECT i.post_id, i.language FROM blog_comments AS i WHERE i.id IN (' . implode(', ', $idPlaceHolders) . ')', $ids, 'post_id'); // only proceed if there are items if (!empty($items)) { // get the ids $itemIds = array_keys($items); // get the unique languages $languages = array_unique(array_values($items)); // update records BackendModel::getDB(true)->execute('UPDATE blog_comments SET status = ? WHERE id IN (' . implode(', ', $idPlaceHolders) . ')', array_merge(array((string) $status), $ids)); // recalculate the comment count self::reCalculateCommentCount($itemIds); // invalidate the cache for blog foreach ($languages as $language) { BackendModel::invalidateFrontendCache('blog', $language); } } }