3 use wcf\data\
object\type\ObjectTypeCache
;
4 use wcf\data\DatabaseObjectEditor
;
5 use wcf\data\IEditableCachedObject
;
6 use wcf\system\cache\builder\AdCacheBuilder
;
7 use wcf\system\cache\builder\ConditionCacheBuilder
;
11 * Provides functions to edit ads.
13 * @author Matthias Schmidt
14 * @copyright 2001-2014 WoltLab GmbH
15 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
16 * @package com.woltlab.wcf
18 * @category Community Framework
20 class AdEditor
extends DatabaseObjectEditor
implements IEditableCachedObject
{
22 * @see \wcf\data\DatabaseObjectDecorator::$baseClass
24 protected static $baseClass = 'wcf\data\ad\Ad';
27 * Sets the show order of the ad.
29 * @param integer $showOrder
31 public function setShowOrder($showOrder = 0) {
34 $sql = "SELECT MAX(showOrder)
35 FROM wcf".WCF_N
."_ad";
36 $statement = WCF
::getDB()->prepareStatement($sql);
37 $statement->execute();
38 $maxShowOrder = $statement->fetchColumn();
39 if (!$maxShowOrder) $maxShowOrder = 0;
41 if (!$showOrder ||
$showOrder > $maxShowOrder) {
42 $newShowOrder = $maxShowOrder +
1;
46 $sql = "UPDATE wcf".WCF_N
."_ad
47 SET showOrder = showOrder + 1
48 WHERE showOrder >= ?";
49 $statement = WCF
::getDB()->prepareStatement($sql);
50 $statement->execute(array(
54 $newShowOrder = $showOrder;
58 'showOrder' => $newShowOrder
63 * @see \wcf\data\IEditableCachedObject::resetCache()
65 public static function resetCache() {
66 AdCacheBuilder
::getInstance()->reset();
67 ConditionCacheBuilder
::getInstance()->reset(array(
68 'definitionID' => ObjectTypeCache
::getInstance()->getDefinitionByName('com.woltlab.wcf.condition.ad')->definitionID