5 use wcf\data\DatabaseObjectEditor
;
6 use wcf\data\IEditableCachedObject
;
7 use wcf\data\
object\type\ObjectTypeCache
;
8 use wcf\system\cache\builder\AdCacheBuilder
;
9 use wcf\system\cache\builder\ConditionCacheBuilder
;
13 * Provides functions to edit ads.
15 * @author Matthias Schmidt
16 * @copyright 2001-2019 WoltLab GmbH
17 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
19 * @method static Ad create(array $parameters = [])
20 * @method Ad getDecoratedObject()
23 class AdEditor
extends DatabaseObjectEditor
implements IEditableCachedObject
28 protected static $baseClass = Ad
::class;
31 * Sets the show order of the ad.
33 * @param int $showOrder
35 public function setShowOrder($showOrder = 0)
37 $sql = "SELECT MAX(showOrder)
38 FROM wcf" . WCF_N
. "_ad
39 WHERE objectTypeID = ?";
40 $statement = WCF
::getDB()->prepareStatement($sql);
44 $maxShowOrder = $statement->fetchSingleColumn();
49 if (!$showOrder ||
$showOrder > $maxShowOrder) {
50 $newShowOrder = $maxShowOrder +
1;
53 $sql = "UPDATE wcf" . WCF_N
. "_ad
54 SET showOrder = showOrder + 1
55 WHERE objectTypeID = ?
57 $statement = WCF
::getDB()->prepareStatement($sql);
63 $newShowOrder = $showOrder;
67 'showOrder' => $newShowOrder,
74 public static function resetCache()
76 AdCacheBuilder
::getInstance()->reset();
77 ConditionCacheBuilder
::getInstance()->reset([
78 'definitionID' => ObjectTypeCache
::getInstance()
79 ->getDefinitionByName('com.woltlab.wcf.condition.ad')