<?php
namespace wcf\data\notice;
+use wcf\data\condition\Condition;
use wcf\data\DatabaseObject;
use wcf\system\condition\ConditionHandler;
use wcf\system\request\IRouteController;
* Represents a notice.
*
* @author Matthias Schmidt
- * @copyright 2001-2015 WoltLab GmbH
+ * @copyright 2001-2016 WoltLab GmbH
* @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
* @package com.woltlab.wcf
* @subpackage data.notice
protected $isDismissed = null;
/**
- * @see \wcf\data\DatabaseObject::$databaseTableName
+ * @inheritDoc
*/
protected static $databaseTableName = 'notice';
/**
- * @see \wcf\data\DatabaseObject::$databaseIndexName
+ * @inheritDoc
*/
protected static $databaseTableIndexName = 'noticeID';
+ /**
+ * Returns the textual representation of the notice.
+ *
+ * @return string
+ */
+ public function __toString() {
+ // replace `{$username}` with the active user's name and the `{$email}` with the active users' email address
+ $text = str_replace(['{$username}', '{$email}'], [WCF::getUser()->username, WCF::getUser()->email], WCF::getLanguage()->get($this->notice));
+
+ if (!$this->noticeUseHtml) {
+ $text = nl2br(htmlspecialchars($text));
+ }
+
+ return $text;
+ }
+
/**
* Returns the conditions of the notice.
*
- * @return array<\wcf\data\condition\Condition>
+ * @return Condition[]
*/
public function getConditions() {
return ConditionHandler::getInstance()->getConditions('com.woltlab.wcf.condition.notice', $this->noticeID);
}
/**
- * @see \wcf\data\ITitledObject::getTitle()
+ * @inheritDoc
*/
public function getTitle() {
return $this->noticeName;
<item name="wcf.acp.notice.isDismissible.description"><![CDATA[Ein einmal von einem Benutzer ausgeblendeter Hinweis wird bei erneutem Seitenaufruf nicht mehr angezeigt.]]></item>
<item name="wcf.acp.notice.list"><![CDATA[Hinweise]]></item>
<item name="wcf.acp.notice.notice"><![CDATA[Hinweis]]></item>
+ <item name="wcf.acp.notice.notice.description"><![CDATA[<code>{literal}{$username}{/literal}</code> wird durch den Namen und <code>{literal}{$email}</code> durch die Email-Adresse des aktuellen Benutzers ersetzt.]]></item>
<item name="wcf.acp.notice.noticeUseHtml"><![CDATA[HTML im Hinweis verwenden]]></item>
<item name="wcf.acp.notice.resetIsDismissed"><![CDATA[Ausgeblendete Hinweise erneut anzeigen]]></item>
<item name="wcf.acp.notice.resetIsDismissed.description"><![CDATA[Der Hinweis wird jenen Benutzern wieder angezeigt, die die ursprüngliche Version bereits ausgeblendet haben. Gästen, die den Hinweis bereits ausgeblendet haben, wird dieser nur in einer neuen Session erneut angezeigt.]]></item>
<item name="wcf.acp.notice.isDismissible.description"><![CDATA[A notice one dismissed by a user will not be shown again for them.]]></item>
<item name="wcf.acp.notice.list"><![CDATA[Notices]]></item>
<item name="wcf.acp.notice.notice"><![CDATA[Notice]]></item>
+ <item name="wcf.acp.notice.notice.description"><![CDATA[<code>{literal}{$username}{/literal}</code> will be replaced by the name and <code>{literal}{$email}{/literal}</code> by the mail address of the active user.]]></item>
<item name="wcf.acp.notice.noticeUseHtml"><![CDATA[Enable HTML code in notice]]></item>
<item name="wcf.acp.notice.resetIsDismissed"><![CDATA[Dismissed notices will be shown again]]></item>
<item name="wcf.acp.notice.resetIsDismissed.description"><![CDATA[The notice will be shown again to users who dismissed the previous version. Guests who dismissed the notice will only see it in a new session.]]></item>