//]]>
</script>
- <div id="poll" class="jsOnly tabMenuContent container containerPadding">
- <fieldset>
- <dl{if $errorField == 'pollQuestion'} class="formError"{/if}>
- <dt>
- <label for="pollQuestion">{lang}wcf.poll.question{/lang}</label>
- </dt>
- <dd>
- <input type="text" name="pollQuestion" id="pollQuestion" value="{$pollQuestion}" class="long" maxlength="255" />
- {if $errorField == 'pollQuestion'}
- <small class="innerError">
- {lang}wcf.global.form.error.empty{/lang}
- </small>
- {/if}
- </dd>
- </dl>
- <dl{if $errorField == 'pollOptions'} class="formError"{/if}>
- <dt>
- <label>{lang}wcf.poll.options{/lang}</label>
- </dt>
- <dd id="pollOptionContainer" class="sortableListContainer">
- <ol class="sortableList"></ol>
- {if $errorField == 'pollOptions'}
- <small class="innerError">
- {lang}wcf.global.form.error.empty{/lang}
- </small>
- {/if}
- <small>{lang}wcf.poll.options.description{/lang}</small>
- </dd>
- </dl>
- <dl{if $errorField == 'pollEndTime'} class="formError"{/if}>
- <dt>
- <label for="pollEndTime">{lang}wcf.poll.endTime{/lang}</label>
- </dt>
- <dd>
- <input type="datetime" name="pollEndTime" id="pollEndTime" value="{if $pollEndTime}{@$pollEndTime|date:'c'}{/if}" class="medium" data-ignore-timezone="true" />
- {if $errorField == 'pollEndTime'}
- <small class="innerError">
- {lang}wcf.poll.endTime.error.{@$errorType}{/lang}
- </small>
- {/if}
- </dd>
- </dl>
- <dl{if $errorField == 'pollMaxVotes'} class="formError"{/if}>
- <dt>
- <label for="pollMaxVotes">{lang}wcf.poll.maxVotes{/lang}</label>
- </dt>
- <dd>
- <input type="number" name="pollMaxVotes" id="pollMaxVotes" value="{@$pollMaxVotes}" min="1" class="tiny" />
- {if $errorField == 'pollMaxVotes'}
- <small class="innerError">
- {lang}wcf.poll.maxVotes.error.{@$errorType}{/lang}
- </small>
- {/if}
- </dd>
- </dl>
- <dl>
- <dt></dt>
- <dd>
- <label><input type="checkbox" name="pollIsChangeable" value="1"{if $pollIsChangeable} checked="checked"{/if} /> {lang}wcf.poll.isChangeable{/lang}</label>
- </dd>
- {if !$pollID && $__wcf->getPollManager()->canStartPublicPoll()}
- <dd>
- <label><input type="checkbox" name="pollIsPublic" value="1"{if $pollIsPublic} checked="checked"{/if} /> {lang}wcf.poll.isPublic{/lang}</label>
- </dd>
+ <div id="poll" class="jsOnly messageTabMenuContent">
+ <dl{if $errorField == 'pollOptions'} class="formError"{/if}>
+ <dt>
+ <label for="pollQuestion">{lang}wcf.poll.question{/lang}</label>
+ </dt>
+ <dd>
+ <input type="text" name="pollQuestion" id="pollQuestion" value="{$pollQuestion}" class="long" maxlength="255">
+ {if $errorField == 'pollQuestion'}
+ <small class="innerError">
+ {lang}wcf.global.form.error.empty{/lang}
+ </small>
{/if}
+ </dd>
+ <dt>
+ <label>{lang}wcf.poll.options{/lang}</label>
+ </dt>
+ <dd id="pollOptionContainer" class="pollOptionContainer sortableListContainer">
+ <ol class="sortableList"></ol>
+ {if $errorField == 'pollOptions'}
+ <small class="innerError">
+ {lang}wcf.global.form.error.empty{/lang}
+ </small>
+ {/if}
+ <small>{lang}wcf.poll.options.description{/lang}</small>
+ </dd>
+ </dl>
+ <dl{if $errorField == 'pollEndTime'} class="formError"{/if}>
+ <dt>
+ <label for="pollEndTime">{lang}wcf.poll.endTime{/lang}</label>
+ </dt>
+ <dd>
+ <input type="datetime" name="pollEndTime" id="pollEndTime" value="{if $pollEndTime}{@$pollEndTime|date:'c'}{/if}" class="medium" data-ignore-timezone="true">
+ {if $errorField == 'pollEndTime'}
+ <small class="innerError">
+ {lang}wcf.poll.endTime.error.{@$errorType}{/lang}
+ </small>
+ {/if}
+ </dd>
+ </dl>
+ <dl{if $errorField == 'pollMaxVotes'} class="formError"{/if}>
+ <dt>
+ <label for="pollMaxVotes">{lang}wcf.poll.maxVotes{/lang}</label>
+ </dt>
+ <dd>
+ <input type="number" name="pollMaxVotes" id="pollMaxVotes" value="{@$pollMaxVotes}" min="1" class="tiny">
+ {if $errorField == 'pollMaxVotes'}
+ <small class="innerError">
+ {lang}wcf.poll.maxVotes.error.{@$errorType}{/lang}
+ </small>
+ {/if}
+ </dd>
+ </dl>
+ <dl>
+ <dt></dt>
+ <dd>
+ <label><input type="checkbox" name="pollIsChangeable" value="1"{if $pollIsChangeable} checked{/if}> {lang}wcf.poll.isChangeable{/lang}</label>
+ </dd>
+ {if !$pollID && $__wcf->getPollManager()->canStartPublicPoll()}
<dd>
- <label><input type="checkbox" name="pollResultsRequireVote" value="1"{if $pollResultsRequireVote} checked="checked"{/if} /> {lang}wcf.poll.resultsRequireVote{/lang}</label>
- <small>{lang}wcf.poll.resultsRequireVote.description{/lang}</small>
- </dd>
- <dd>
- <label><input type="checkbox" name="pollSortByVotes" value="1"{if $pollSortByVotes} checked="checked"{/if} /> {lang}wcf.poll.sortByVotes{/lang}</label>
+ <label><input type="checkbox" name="pollIsPublic" value="1"{if $pollIsPublic} checked{/if}> {lang}wcf.poll.isPublic{/lang}</label>
</dd>
- </dl>
-
- {event name='fields'}
- </fieldset>
+ {/if}
+ <dd>
+ <label><input type="checkbox" name="pollResultsRequireVote" value="1"{if $pollResultsRequireVote} checked{/if}> {lang}wcf.poll.resultsRequireVote{/lang}</label>
+ <small>{lang}wcf.poll.resultsRequireVote.description{/lang}</small>
+ </dd>
+ <dd>
+ <label><input type="checkbox" name="pollSortByVotes" value="1"{if $pollSortByVotes} checked{/if}> {lang}wcf.poll.sortByVotes{/lang}</label>
+ </dd>
+ </dl>
+
+ {event name='fields'}
</div>
--{/if}
++{/if}
-{if $quoteAuthorObject}
-<div class="quoteBoxAuthor">
- <div class="quoteAuthorAvatar"><a href="{link controller='User' object=$quoteAuthorObject}{/link}" class="userLink framed" data-user-id="{@$quoteAuthorObject->userID}">{@$quoteAuthorObject->getAvatar()->getImageTag(64)}</a></div>
-{/if}
- <blockquote class="quoteBox container containerPadding{if !$quoteAuthorObject} quoteBoxSimple{/if}"{if $quoteLink} cite="{$quoteLink}"{/if}>
- {if $quoteAuthor}
- <header>
- <h3>
- {if $quoteLink}
- <a href="{@$quoteLink}"{if $isExternalQuoteLink} class="externalURL"{if EXTERNAL_LINK_REL_NOFOLLOW || EXTERNAL_LINK_TARGET_BLANK} rel="{if EXTERNAL_LINK_REL_NOFOLLOW}nofollow{/if}{if EXTERNAL_LINK_TARGET_BLANK}{if EXTERNAL_LINK_REL_NOFOLLOW} {/if}noopener noreferrer{/if}"{/if}{if EXTERNAL_LINK_TARGET_BLANK} target="_blank"{/if}{/if}>{lang}wcf.bbcode.quote.title{/lang}</a>
- {else}
- {lang}wcf.bbcode.quote.title{/lang}
- {/if}
- </h3>
- </header>
- {/if}
-
- <div>
- {@$content}
- </div>
- </blockquote>
-{if $quoteAuthorObject}
-</div>
-{/if}
+<blockquote class="quoteBox{if !$quoteAuthorObject} quoteBoxSimple{/if}"{if $quoteLink} cite="{$quoteLink}"{/if}>
+ <header class="quoteBoxHeader">
+ <span class="quoteBoxIcon">
+ {if $quoteAuthorObject}
+ <a href="{link controller='User' object=$quoteAuthorObject}{/link}" class="userLink" data-user-id="{@$quoteAuthorObject->userID}">{@$quoteAuthorObject->getAvatar()->getImageTag(32)}</a>
+ {else}
+ <span class="icon icon24 fa-quote-left"></span>
+ {/if}
+ </span>
+ <span class="quoteBoxTitle">
+ {if $quoteAuthor}
+ {if $quoteLink}
- <a href="{@$quoteLink}"{if $isExternalQuoteLink} class="externalURL"{if EXTERNAL_LINK_REL_NOFOLLOW} rel="nofollow"{/if}{if EXTERNAL_LINK_TARGET_BLANK} target="_blank"{/if}{/if}>{lang}wcf.bbcode.quote.title{/lang}</a>
++ <a href="{@$quoteLink}"{if $isExternalQuoteLink} class="externalURL"{if EXTERNAL_LINK_REL_NOFOLLOW || EXTERNAL_LINK_TARGET_BLANK} rel="{if EXTERNAL_LINK_REL_NOFOLLOW}nofollow{/if}{if EXTERNAL_LINK_TARGET_BLANK}{if EXTERNAL_LINK_REL_NOFOLLOW} {/if}noopener noreferrer{/if}"{/if}{if EXTERNAL_LINK_TARGET_BLANK} target="_blank"{/if}{/if}>{lang}wcf.bbcode.quote.title{/lang}</a>
+ {else}
+ {lang}wcf.bbcode.quote.title{/lang}
+ {/if}
+ {else}
+ {lang}wcf.bbcode.quote{/lang}
+ {/if}
+ </span>
+ </header>
+
+ <div>
+ {@$content}
+ </div>
+</blockquote>
<ul class="buttonList iconList">
{content}
{if $user->homepage && $user->homepage != 'http://'}
- <li><a class="jsTooltip" href="{$user->homepage}" title="{lang}wcf.user.option.homepage{/lang}"{if EXTERNAL_LINK_REL_NOFOLLOW} rel="nofollow"{/if}{if EXTERNAL_LINK_TARGET_BLANK} target="_blank"{/if}><span class="icon icon16 fa-home"></span> <span class="invisible">{lang}wcf.user.option.homepage{/lang}</span></a></li>
- <li><a class="jsTooltip" href="{$user->homepage}" title="{lang}wcf.user.option.homepage{/lang}"{if EXTERNAL_LINK_REL_NOFOLLOW || EXTERNAL_LINK_TARGET_BLANK} rel="{if EXTERNAL_LINK_REL_NOFOLLOW}nofollow{/if}{if EXTERNAL_LINK_TARGET_BLANK}{if EXTERNAL_LINK_REL_NOFOLLOW} {/if}noopener noreferrer{/if}"{/if}{if EXTERNAL_LINK_TARGET_BLANK} target="_blank"{/if}><span class="icon icon16 icon-home"></span> <span class="invisible">{lang}wcf.user.option.homepage{/lang}</span></a></li>
++ <li><a class="jsTooltip" href="{$user->homepage}" title="{lang}wcf.user.option.homepage{/lang}"{if EXTERNAL_LINK_REL_NOFOLLOW || EXTERNAL_LINK_TARGET_BLANK} rel="{if EXTERNAL_LINK_REL_NOFOLLOW}nofollow{/if}{if EXTERNAL_LINK_TARGET_BLANK}{if EXTERNAL_LINK_REL_NOFOLLOW} {/if}noopener noreferrer{/if}"{/if}{if EXTERNAL_LINK_TARGET_BLANK} target="_blank"{/if}><span class="icon icon16 fa-home"></span> <span class="invisible">{lang}wcf.user.option.homepage{/lang}</span></a></li>
{/if}
{if $user->userID != $__wcf->user->userID}
parent::save();
// save application
- $this->objectAction = new ApplicationAction(array($this->application->getDecoratedObject()), 'update', array('data' => array_merge($this->additionalFields, array(
+ $this->objectAction = new ApplicationAction([$this->application->getDecoratedObject()], 'update', ['data' => array_merge($this->additionalFields, [
- 'cookieDomain' => $this->cookieDomain,
- 'domainName' => $this->domainName,
+ 'cookieDomain' => mb_strtolower($this->cookieDomain),
+ 'domainName' => mb_strtolower($this->domainName),
'domainPath' => $this->domainPath
- ))));
+ ])]);
$this->objectAction->executeAction();
$this->saved();
$filename = WCF_DIR.'language/'.$this->languageID.'_'.$category->languageCategory.'.php';
$writer = new AtomicWriter($filename);
- $writer->write("<?php\n/**\n* WoltLab Community Framework\n* language: ".$this->languageCode."\n* encoding: UTF-8\n* category: ".$category->languageCategory."\n* generated at ".gmdate("r")."\n* \n* DO NOT EDIT THIS FILE\n*/\n");
+ $writer->write("<?php\n/**\n* WoltLab Suite\n* language: ".$this->languageCode."\n* encoding: UTF-8\n* category: ".$category->languageCategory."\n* generated at ".gmdate("r")."\n* \n* DO NOT EDIT THIS FILE\n*/\n");
foreach ($languageItems as $languageItem => $languageItemValue) {
- $writer->write("\$this->items['".$languageItem."'] = '".str_replace("'", "\'", $languageItemValue)."';\n");
+ $writer->write("\$this->items['".$languageItem."'] = '".str_replace(array("\\", "'"), array("\\\\", "\'"), $languageItemValue)."';\n");
// compile dynamic language variables
if ($category->languageCategory != 'wcf.global' && strpos($languageItemValue, '{') !== false) {
* @param \Exception $e
*/
public static final function handleException($e) {
+ if (ob_get_level()) {
+ // discard any output generated before the exception occured, prevents exception
+ // being hidden inside HTML elements and therefore not visible in browser output
+ ob_clean();
+ }
+
+ // backwards compatibility
+ if ($e instanceof IPrintableException) {
+ $e->show();
+ exit;
+ }
+
+ @header('HTTP/1.1 503 Service Unavailable');
try {
- if (!($e instanceof \Exception)) throw $e;
-
- if ($e instanceof IPrintableException) {
- $e->show();
- exit;
- }
-
- // repack Exception
- self::handleException(new SystemException($e->getMessage(), $e->getCode(), '', $e));
+ \wcf\functions\exception\printThrowable($e);
}
- catch (\Throwable $exception) {
- die("<pre>WCF::handleException() Unhandled exception: ".$exception->getMessage()."\n\n".preg_replace('/Database->__construct\(.*\)/', 'Database->__construct(...)', $exception->getTraceAsString()));
+ catch (\Throwable $e2) {
+ echo "<pre>An Exception was thrown while handling an Exception:\n\n";
- echo $e2;
++ echo preg_replace('/Database->__construct\(.*\)/', 'Database->__construct(...)', $e2);
+ echo "\n\nwas thrown while:\n\n";
- echo $e;
++ echo preg_replace('/Database->__construct\(.*\)/', 'Database->__construct(...)', $e);
+ echo "\n\nwas handled.</pre>";
+ exit;
}
- catch (\Exception $exception) {
- die("<pre>WCF::handleException() Unhandled exception: ".$exception->getMessage()."\n\n".preg_replace('/Database->__construct\(.*\)/', 'Database->__construct(...)', $exception->getTraceAsString()));
+ catch (\Exception $e2) {
+ echo "<pre>An Exception was thrown while handling an Exception:\n\n";
- echo $e2;
++ echo preg_replace('/Database->__construct\(.*\)/', 'Database->__construct(...)', $e2);
+ echo "\n\nwas thrown while:\n\n";
- echo $e;
++ echo preg_replace('/Database->__construct\(.*\)/', 'Database->__construct(...)', $e);
+ echo "\n\nwas handled.</pre>";
+ exit;
}
}
$statement->execute();
}
- * @see \wcf\system\database\editor\DatabaseEditor::dropPrimaryKey()
+ /**
++ * @inheritDoc
+ */
+ public function dropPrimaryKey($tableName) {
+ $sql = "ALTER TABLE ".$tableName." DROP PRIMARY KEY";
+ $statement = $this->dbObj->prepareStatement($sql);
+ $statement->execute();
+ }
+
/**
- * @see \wcf\system\database\editor\DatabaseEditor::dropForeignKey()
+ * @inheritDoc
*/
public function dropForeignKey($tableName, $indexName) {
$sql = "ALTER TABLE `".$tableName."` DROP FOREIGN KEY `".$indexName."`";
<?php
namespace wcf\system\log\modification;
- use wcf\data\modification\log\ModificationLogEditor;
+use wcf\data\modification\log\ModificationLog;
+ use wcf\data\modification\log\ModificationLogAction;
+use wcf\data\object\type\ObjectType;
use wcf\data\object\type\ObjectTypeCache;
use wcf\system\database\util\PreparedStatementConditionBuilder;
use wcf\system\exception\SystemException;
* Returns object type by object type name.
*
* @param string $objectType
-- * @return \wcf\data\object\type\ObjectType
++ * @return ObjectType
*/
public function getObjectType($objectType) {
foreach ($this->cache as $objectTypeObj) {
else $username = '';
}
- return ModificationLogEditor::create([
- 'objectTypeID' => $objectTypeObj->objectTypeID,
- 'objectID' => $objectID,
- 'action' => $action,
- 'userID' => $userID,
- 'username' => $username,
- 'time' => $time,
- 'additionalData' => serialize($additionalData)
- $action = new ModificationLogAction(array(), 'create', array(
- 'data' => array(
++ $action = new ModificationLogAction([], 'create', [
++ 'data' => [
+ 'objectTypeID' => $objectTypeObj->objectTypeID,
+ 'objectID' => $objectID,
+ 'action' => $action,
+ 'userID' => $userID,
+ 'username' => $username,
+ 'time' => $time,
+ 'additionalData' => serialize($additionalData)
- )
- ));
- $result = $action->executeAction();
- return $result['returnValues'];
++ ]
+ ]);
++
++ return $action->executeAction()['returnValues'];
}
/**
* Resets the option values.
*/
public function resetOptionValues() {
- $this->optionValues = array();
+ $this->optionValues = [];
+
+ foreach ($this->options as $option) {
+ $this->optionValues[$option->optionName] = $option->defaultValue;
+ }
}
/**
}
}
- * @see \wcf\system\database\util\SQLParser::executeDropPrimaryKeyStatement()
+ /**
++ * @inheritDoc
+ */
+ protected function executeDropPrimaryKeyStatement($tableName) {
+ if ($this->test) {
+ if ($ownerPackageID = $this->getIndexOwnerID($tableName, '')) {
+ if ($ownerPackageID != $this->package->packageID) {
+ throw new SystemException("Cannot drop primary key from '".$tableName."'. A package can only drop own indices.");
+ }
+ }
+ }
+ else {
+ // // log
+ // $this->indexLog[] = array('tableName' => $tableName, 'indexName' => '', 'packageID' => $this->package->packageID, 'action' => 'delete');
+
+ // execute
+ parent::executeDropPrimaryKeyStatement($tableName);
+ }
+ }
+
/**
- * @see \wcf\system\database\util\SQLParser::executeDropForeignKeyStatement()
+ * @inheritDoc
*/
protected function executeDropForeignKeyStatement($tableName, $indexName) {
if ($this->test) {
'joomla1', // Joomla 1.x
'joomla2', // Joomla 2.x
'joomla3', // Joomla 3.x
+ 'phpfox3', // phpFox 3.x
'cryptMD5',
'invalid', // Never going to match anything
- );
+ ];
/**
* blowfish cost factor
<item name="wcf.like.objectType.com.woltlab.wcf.comment.response"><![CDATA[Kommentar-Antwort]]></item>
<item name="wcf.like.likes.more"><![CDATA[Weitere Likes]]></item>
<item name="wcf.like.likes.noMoreEntries"><![CDATA[Keine weiteren Likes]]></item>
+ <item name="wcf.like.dislikes.more"><![CDATA[Weitere Dislikes]]></item>
+ <item name="wcf.like.dislikes.noMoreEntries"><![CDATA[Keine weiteren Dislikes]]></item>
<item name="wcf.like.title.com.woltlab.wcf.user.profileComment"><![CDATA[Mag den Kommentar {if $commentAuthor}<a href="{link controller='User' object=$commentAuthor}{/link}">von {$commentAuthor->username}</a>{else}eines Gasts{/if} an der <a href="{link controller='User' object=$user}#wall{/link}">Pinnwand von {$user->username}</a>{if $like->isDislike()} nicht{/if}.]]></item>
<item name="wcf.like.title.com.woltlab.wcf.user.profileComment.response"><![CDATA[Mag die Antwort {if $responseAuthor}<a href="{link controller='User' object=$responseAuthor}{/link}">von {$responseAuthor->username}</a>{else}eines Gasts{/if} zum Kommentar {if $commentAuthor}von <a href="{link controller='User' object=$commentAuthor}{/link}">{$commentAuthor->username}</a>{else}eines Gasts{/if} an der <a href="{link controller='User' object=$user}#wall{/link}">Pinnwand von {$user->username}</a>{if $like->isDislike()} nicht{/if}.]]></item>
+ <item name="wcf.like.objectType.com.woltlab.wcf.likeableArticle"><![CDATA[Artikel]]></item>
+ <item name="wcf.like.title.com.woltlab.wcf.likeableArticle"><![CDATA[Mag den Artikel <a href="{$article->getLink()}">{$article->getTitle()}</a>{if $like->isDislike()} nicht{/if}.]]></item>
+ <item name="wcf.like.title.com.woltlab.wcf.articleComment"><![CDATA[Mag den Kommentar {if $commentAuthor}von <a href="{link controller='User' object=$commentAuthor}{/link}">{$commentAuthor->username}</a>{else}eines Gasts{/if} zum Artikel <a href="{$articleContent->getLink()}#comments">{$articleContent->getTitle()}</a>{if $like->isDislike()} nicht{/if}.]]></item>
+ <item name="wcf.like.title.com.woltlab.wcf.articleComment.response"><![CDATA[Mag die Antwort {if $responseAuthor}von <a href="{link controller='User' object=$responseAuthor}{/link}">{$responseAuthor->username}</a>{else}eines Gasts{/if} zum Kommentar {if $commentAuthor}von <a href="{link controller='User' object=$commentAuthor}{/link}">{$commentAuthor->username}</a>{else}eines Gasts{/if} zum Artikel <a href="{$articleContent->getLink()}#comments">{$articleContent->getTitle()}</a>{if $like->isDislike()} nicht{/if}.]]></item>
</category>
<category name="wcf.map">
{link controller='User' object=$user isEmail=true}{/link} ]]></item>
<item name="wcf.user.register.notification.mail.subject"><![CDATA[Neue Benutzeranmeldung auf der Website: {@PAGE_TITLE|language}]]></item>
<item name="wcf.user.register.error.disabled"><![CDATA[Die Registrierung ist momentan deaktiviert.]]></item>
- <item name="wcf.user.register.success"><![CDATA[Vielen Dank für die Registrierung, {$user->username}. Ihre Registrierung ist hiermit vollständig abgeschlossen.]]></item>
+ <item name="wcf.user.register.success"><![CDATA[Vielen Dank für die Registrierung, {$user->username}. {if LANGUAGE_USE_INFORMAL_VARIANT}Deine{else}Ihre{/if} Registrierung ist hiermit vollständig abgeschlossen.]]></item>
<item name="wcf.user.register.needActivation.mail"><![CDATA[Hallo {@$user->username},
-vielen Dank für Ihre Registrierung auf der Website: {@PAGE_TITLE|language}.
-Bevor wir Ihr Benutzerkonto aktivieren können, müssen Sie einmalig die Gültigkeit Ihrer E-Mail-Adresse bestätigen.
+vielen Dank für {if LANGUAGE_USE_INFORMAL_VARIANT}deine{else}Ihre{/if} Registrierung auf der Website: {@PAGE_TITLE|language}.
- Bevor wir {if LANGUAGE_USE_INFORMAL_VARIANT}deine{else}Ihre{/if} Registrierung aktivieren können, {if LANGUAGE_USE_INFORMAL_VARIANT}musst du{else}müssen Sie{/if} einmalig die Gültigkeit {if LANGUAGE_USE_INFORMAL_VARIANT}deiner{else}Ihrer{/if} E-Mail-Adresse bestätigen.
++Bevor wir {if LANGUAGE_USE_INFORMAL_VARIANT}dein{else}Ihr{/if} Benutzerkonto aktivieren können, {if LANGUAGE_USE_INFORMAL_VARIANT}musst du{else}müssen Sie{/if} einmalig die Gültigkeit {if LANGUAGE_USE_INFORMAL_VARIANT}deiner{else}Ihrer{/if} E-Mail-Adresse bestätigen.
-Bitte bestätigen Sie die Gültigkeit Ihrer E-Mail-Adresse, indem Sie folgenden Link aufrufen:
+Bitte {if LANGUAGE_USE_INFORMAL_VARIANT}bestätige{else}bestätigen Sie{/if} die Gültigkeit {if LANGUAGE_USE_INFORMAL_VARIANT}deiner{else}Ihrer{/if} E-Mail-Adresse, indem {if LANGUAGE_USE_INFORMAL_VARIANT}du folgenden Link aufrufst{else}Sie folgenden Link aufrufen{/if}:
{link controller='RegisterActivation' isEmail=true}u={@$user->userID}&a={@$user->activationCode}{/link}
**** Funktioniert der Link oben nicht? ****
<item name="wcf.like.objectType.com.woltlab.wcf.comment.response"><![CDATA[Comment Reply]]></item>
<item name="wcf.like.likes.more"><![CDATA[More Likes]]></item>
<item name="wcf.like.likes.noMoreEntries"><![CDATA[There are no more likes]]></item>
+ <item name="wcf.like.dislikes.more"><![CDATA[More Dislikes]]></item>
+ <item name="wcf.like.dislikes.noMoreEntries"><![CDATA[There are no more dislikes]]></item>
<item name="wcf.like.title.com.woltlab.wcf.user.profileComment"><![CDATA[{if $like->isDislike()}Dislikes{else}Likes{/if} the comment by {if $commentAuthor}<a href="{link controller='User' object=$commentAuthor}{/link}">{$commentAuthor->username}</a>{else}a guest{/if} on <a href="{link controller='User' object=$user}#wall{/link}">{$user->username}’s wall</a>.]]></item>
<item name="wcf.like.title.com.woltlab.wcf.user.profileComment.response"><![CDATA[{if $like->isDislike()}Dislikes{else}Likes{/if} the response by {if $responseAuthor}<a href="{link controller='User' object=$responseAuthor}{/link}">{$responseAuthor->username}</a>{else}a guest{/if} on the comment by {if $commentAuthor}<a href="{link controller='User' object=$commentAuthor}{/link}">{$commentAuthor->username}</a>{else}a guest{/if} on <a href="{link controller='User' object=$user}#wall{/link}">{$user->username}’s wall</a>.]]></item>
+ <item name="wcf.like.objectType.com.woltlab.wcf.likeableArticle"><![CDATA[Article]]></item>
+ <item name="wcf.like.title.com.woltlab.wcf.likeableArticle"><![CDATA[{if $like->isDislike()}Dislikes{else}Likes{/if} the article <a href="{$article->getLink()}">{$article->getTitle()}</a>.]]></item>
+ <item name="wcf.like.title.com.woltlab.wcf.articleComment"><![CDATA[{if $like->isDislike()}Dislikes{else}Likes{/if} the comment by {if $commentAuthor}<a href="{link controller='User' object=$commentAuthor}{/link}">{$commentAuthor->username}</a>{else}a guest{/if} on the article <a href="{$articleContent->getLink()}#comments">{$articleContent->getTitle()}</a>.]]></item>
+ <item name="wcf.like.title.com.woltlab.wcf.articleComment.response"><![CDATA[{if $like->isDislike()}Dislikes{else}Likes{/if} the response by {if $responseAuthor}<a href="{link controller='User' object=$responseAuthor}{/link}">{$responseAuthor->username}</a>{else}a guest{/if} on the comment by {if $commentAuthor}<a href="{link controller='User' object=$commentAuthor}{/link}">{$commentAuthor->username}</a>{else}a guest{/if} on the blog article <a href="{$articleContent->getLink()}#comments">{$articleContent->getTitle()}</a>.]]></item>
</category>
<category name="wcf.map">
notificationMailToken VARCHAR(20) NOT NULL DEFAULT '',
authData VARCHAR(255) NOT NULL DEFAULT '',
likesReceived MEDIUMINT(7) NOT NULL DEFAULT 0,
- socialNetworkPrivacySettings TEXT,
KEY username (username),
+ KEY email (email),
KEY registrationDate (registrationDate),
KEY styleID (styleID),
KEY activationCode (activationCode),