예제 #1
0
 /**
  * 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());
 }
예제 #2
0
    /**
     * 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());
    }
예제 #3
0
    /**
     * 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);
            }
        }
    }