1 {include file='header' pageTitle='wcf.acp.article.'|concat:$action}
3 {if $__wcf->session->getPermission('admin.content.article.canManageArticle')}
4 <script data-relocate="true">
6 $('input[type="radio"][name="publicationStatus"]').change(function(event) {
7 var $selected = $('input[type="radio"][name="publicationStatus"]:checked');
8 if ($selected.length > 0) {
9 if ($selected.val() == 2) {
10 $('#publicationDateDl').show();
13 $('#publicationDateDl').hide();
21 <script data-relocate="true">
22 require(['WoltLabSuite/Core/Ui/User/Search/Input'], function(UiUserSearchInput) {
23 new UiUserSearchInput(elBySel('input[name="username"]'));
27 {if $__wcf->session->getPermission('admin.content.cms.canUseMedia')}
28 <script data-relocate="true">
29 {include file='mediaJavaScript'}
31 require(['WoltLabSuite/Core/Media/Manager/Select'], function(MediaManagerSelect) {
32 new MediaManagerSelect({
33 dialogTitle: '{lang}wcf.media.chooseImage{/lang}',
40 <header class="contentHeader">
41 <div class="contentHeaderTitle">
42 <h1 class="contentTitle">{if $action == 'add'}{lang}wcf.acp.article.add{/lang}{else}{lang}wcf.acp.article.edit{/lang}{/if}</h1>
45 <nav class="contentHeaderNavigation">
47 {if $action == 'edit'}
48 <li><a href="{$article->getLink()}" class="button"><span class="icon icon16 fa-search"></span> <span>{lang}wcf.acp.article.button.viewArticle{/lang}</span></a></li>
50 <li><a href="{link controller='ArticleList'}{/link}" class="button"><span class="icon icon16 fa-list"></span> <span>{lang}wcf.acp.menu.link.article.list{/lang}</span></a></li>
52 {event name='contentHeaderNavigation'}
57 {include file='formError'}
60 <p class="success">{lang}wcf.global.success.{$action}{/lang}</p>
63 <form method="post" action="{if $action == 'add'}{link controller='ArticleAdd'}{/link}{else}{link controller='ArticleEdit' id=$articleID}{/link}{/if}">
65 <dl{if $errorField == 'categoryID'} class="formError"{/if}>
66 <dt><label for="categoryID">{lang}wcf.acp.article.category{/lang}</label></dt>
68 <select name="categoryID" id="categoryID">
69 <option value="0">{lang}wcf.global.noSelection{/lang}</option>
71 {foreach from=$categoryNodeList item=category}
72 <option value="{@$category->categoryID}"{if $category->categoryID == $categoryID} selected{/if}>{if $category->getDepth() > 1}{@" "|str_repeat:($category->getDepth() - 1)}{/if}{$category->getTitle()}</option>
75 {if $errorField == 'categoryID'}
76 <small class="innerError">
77 {if $errorType == 'empty'}
78 {lang}wcf.global.form.error.empty{/lang}
80 {lang}wcf.acp.article.category.error.{@$errorType}{/lang}
87 <dl{if $errorField == 'username'} class="formError"{/if}>
88 <dt><label for="username">{lang}wcf.acp.article.author{/lang}</label></dt>
90 <input type="text" id="username" name="username" value="{$username}" class="medium" maxlength="255">
91 {if $errorField == 'username'}
92 <small class="innerError">
93 {if $errorType == 'empty'}
94 {lang}wcf.global.form.error.empty{/lang}
96 {lang}wcf.user.username.error.{@$errorType}{/lang}
103 <dl{if $errorField == 'time'} class="formError"{/if}>
104 <dt><label for="time">{lang}wcf.global.date{/lang}</label></dt>
106 <input type="datetime" id="time" name="time" value="{$time}" class="medium">
107 {if $errorField == 'time'}
108 <small class="innerError">
109 {if $errorType == 'empty'}
110 {lang}wcf.global.form.error.empty{/lang}
112 {lang}wcf.acp.article.time.error.{@$errorType}{/lang}
119 {if $__wcf->session->getPermission('admin.content.article.canManageArticle')}
121 <dt><label for="categoryID">{lang}wcf.acp.article.publicationStatus{/lang}</label></dt>
123 <label><input type="radio" name="publicationStatus" value="0"{if $publicationStatus == 0} checked{/if}> {lang}wcf.acp.article.publicationStatus.unpublished{/lang}</label>
124 <label><input type="radio" name="publicationStatus" value="1"{if $publicationStatus == 1} checked{/if}> {lang}wcf.acp.article.publicationStatus.published{/lang}</label>
125 <label><input type="radio" name="publicationStatus" value="2"{if $publicationStatus == 2} checked{/if}> {lang}wcf.acp.article.publicationStatus.delayed{/lang}</label>
129 <dl id="publicationDateDl"{if $errorField == 'publicationDate'} class="formError"{/if}{if $publicationStatus != 2} style="display: none"{/if}>
130 <dt><label for="publicationDate">{lang}wcf.acp.article.publicationDate{/lang}</label></dt>
132 <input type="datetime" id="publicationDate" name="publicationDate" value="{$publicationDate}" class="medium">
133 {if $errorField == 'publicationDate'}
134 <small class="innerError">
135 {if $errorType == 'empty'}
136 {lang}wcf.global.form.error.empty{/lang}
138 {lang}wcf.acp.article.publicationDate.error.{@$errorType}{/lang}
149 <label><input name="enableComments" type="checkbox" value="1"{if $enableComments} checked{/if}> {lang}wcf.acp.article.enableComments{/lang}</label>
154 {if !$isMultilingual}
155 <div class="section">
156 {if $__wcf->session->getPermission('admin.content.cms.canUseMedia')}
157 <dl{if $errorField == 'image'} class="formError"{/if}>
158 <dt><label for="image">{lang}wcf.acp.article.image{/lang}</label></dt>
160 <div id="imageDisplay" class="selectedImagePreview">
161 {if $images[0]|isset && $images[0]->hasThumbnail('small')}
162 {@$images[0]->getThumbnailTag('small')}
165 <p class="button jsMediaSelectButton" data-store="imageID0" data-display="imageDisplay">{lang}wcf.media.chooseImage{/lang}</p>
166 <input type="hidden" name="imageID[0]" id="imageID0"{if $imageID[0]|isset} value="{@$imageID[0]}"{/if}>
167 {if $errorField == 'image'}
168 <small class="innerError">{lang}wcf.acp.article.image.error.{@$errorType}{/lang}</small>
172 {elseif $action == 'edit' && $images[0]|isset && $images[0]->hasThumbnail('small')}
174 <dt>{lang}wcf.acp.article.image{/lang}</dt>
176 <div id="imageDisplay">{@$images[0]->getThumbnailTag('small')}</div>
181 <dl{if $errorField == 'title'} class="formError"{/if}>
182 <dt><label for="title0">{lang}wcf.global.title{/lang}</label></dt>
184 <input type="text" id="title0" name="title[0]" value="{if !$title[0]|empty}{$title[0]}{/if}" class="long" maxlength="255">
185 {if $errorField == 'title'}
186 <small class="innerError">
187 {if $errorType == 'empty'}
188 {lang}wcf.global.form.error.empty{/lang}
190 {lang}wcf.acp.article.title.error.{@$errorType}{/lang}
199 <dt><label for="tagSearchInput">{lang}wcf.tagging.tags{/lang}</label></dt>
201 <input id="tagSearchInput" type="text" value="" class="long">
202 <small>{lang}wcf.tagging.tags.description{/lang}</small>
206 <script data-relocate="true">
207 require(['WoltLabSuite/Core/Ui/ItemList'], function(UiItemList) {
210 [{if !$tags[0]|empty}{implode from=$tags[0] item=tag}'{$tag|encodeJS}'{/implode}{/if}],
213 className: 'wcf\\data\\tag\\TagAction'
215 maxLength: {@TAGGING_MAX_TAG_LENGTH},
216 submitFieldName: 'tags[0][]'
223 <dl{if $errorField == 'teaser'} class="formError"{/if}>
224 <dt><label for="teaser0">{lang}wcf.acp.article.teaser{/lang}</label></dt>
226 <textarea name="teaser[0]" id="teaser0" rows="5">{if !$teaser[0]|empty}{$teaser[0]}{/if}</textarea>
227 {if $errorField == 'teaser'}
228 <small class="innerError">
229 {if $errorType == 'empty'}
230 {lang}wcf.global.form.error.empty{/lang}
232 {lang}wcf.acp.article.teaser.error.{@$errorType}{/lang}
239 <dl{if $errorField == 'content'} class="formError"{/if}>
240 <dt><label for="content0">{lang}wcf.acp.article.content{/lang}</label></dt>
242 <textarea name="content[0]" id="content0" class="wysiwygTextarea" data-autosave="com.woltlab.wcf.article{$action|ucfirst}-{if $action == 'edit'}{@$articleID}{else}0{/if}-0">{if !$content[0]|empty}{$content[0]}{/if}</textarea>
243 {include file='wysiwyg' wysiwygSelector='content0'}
244 {if $errorField == 'content'}
245 <small class="innerError">
246 {if $errorType == 'empty'}
247 {lang}wcf.global.form.error.empty{/lang}
249 {lang}wcf.acp.article.content.error.{@$errorType}{/lang}
257 <div class="section tabMenuContainer">
258 <nav class="tabMenu">
260 {foreach from=$availableLanguages item=availableLanguage}
261 {assign var='containerID' value='language'|concat:$availableLanguage->languageID}
262 <li><a href="{@$__wcf->getAnchor($containerID)}">{$availableLanguage->languageName}</a></li>
267 {foreach from=$availableLanguages item=availableLanguage}
268 <div id="language{@$availableLanguage->languageID}" class="tabMenuContent">
269 <div class="section">
270 {if $__wcf->session->getPermission('admin.content.cms.canUseMedia')}
271 <dl{if $errorField == 'image'|concat:$availableLanguage->languageID} class="formError"{/if}>
272 <dt><label for="image{@$availableLanguage->languageID}">{lang}wcf.acp.article.image{/lang}</label></dt>
274 <div id="imageDisplay{@$availableLanguage->languageID}">
275 {if $images[$availableLanguage->languageID]|isset && $images[$availableLanguage->languageID]->hasThumbnail('small')}
276 {@$images[$availableLanguage->languageID]->getThumbnailTag('small')}
279 <p class="button jsMediaSelectButton" data-store="imageID{@$availableLanguage->languageID}" data-display="imageDisplay{@$availableLanguage->languageID}">{lang}wcf.media.chooseImage{/lang}</p>
280 <input type="hidden" name="imageID[{@$availableLanguage->languageID}]" id="imageID{@$availableLanguage->languageID}"{if $imageID[$availableLanguage->languageID]|isset} value="{@$imageID[$availableLanguage->languageID]}"{/if}>
281 {if $errorField == 'image'|concat:$availableLanguage->languageID}
282 <small class="innerError">{lang}wcf.acp.article.image.error.{@$errorType}{/lang}</small>
286 {elseif $action == 'edit' && $images[$availableLanguage->languageID]|isset && $images[$availableLanguage->languageID]->hasThumbnail('small')}
288 <dt>{lang}wcf.acp.article.image{/lang}</dt>
290 <div id="imageDisplay">{@$images[$availableLanguage->languageID]->getThumbnailTag('small')}</div>
295 <dl{if $errorField == 'title'|concat:$availableLanguage->languageID} class="formError"{/if}>
296 <dt><label for="title{@$availableLanguage->languageID}">{lang}wcf.global.title{/lang}</label></dt>
298 <input type="text" id="title{@$availableLanguage->languageID}" name="title[{@$availableLanguage->languageID}]" value="{if !$title[$availableLanguage->languageID]|empty}{$title[$availableLanguage->languageID]}{/if}" class="long" maxlength="255">
299 {if $errorField == 'title'|concat:$availableLanguage->languageID}
300 <small class="innerError">
301 {if $errorType == 'empty'}
302 {lang}wcf.global.form.error.empty{/lang}
304 {lang}wcf.acp.article.title.error.{@$errorType}{/lang}
313 <dt><label for="tagSearchInput{@$availableLanguage->languageID}">{lang}wcf.tagging.tags{/lang}</label></dt>
315 <input id="tagSearchInput{@$availableLanguage->languageID}" type="text" value="" class="long">
316 <small>{lang}wcf.tagging.tags.description{/lang}</small>
320 <script data-relocate="true">
321 require(['WoltLabSuite/Core/Ui/ItemList'], function(UiItemList) {
323 'tagSearchInput{@$availableLanguage->languageID}',
324 [{if !$tags[$availableLanguage->languageID]|empty}{implode from=$tags[$availableLanguage->languageID] item=tag}'{$tag|encodeJS}'{/implode}{/if}],
327 className: 'wcf\\data\\tag\\TagAction'
329 maxLength: {@TAGGING_MAX_TAG_LENGTH},
330 submitFieldName: 'tags[{@$availableLanguage->languageID}][]'
337 <dl{if $errorField == 'teaser'|concat:$availableLanguage->languageID} class="formError"{/if}>
338 <dt><label for="teaser{@$availableLanguage->languageID}">{lang}wcf.acp.article.teaser{/lang}</label></dt>
340 <textarea name="teaser[{@$availableLanguage->languageID}]" id="teaser{@$availableLanguage->languageID}" rows="5">{if !$teaser[$availableLanguage->languageID]|empty}{$teaser[$availableLanguage->languageID]}{/if}</textarea>
341 {if $errorField == 'teaser'|concat:$availableLanguage->languageID}
342 <small class="innerError">
343 {if $errorType == 'empty'}
344 {lang}wcf.global.form.error.empty{/lang}
346 {lang}wcf.acp.article.teaser.error.{@$errorType}{/lang}
353 <dl{if $errorField == 'content'|concat:$availableLanguage->languageID} class="formError"{/if}>
354 <dt><label for="content{@$availableLanguage->languageID}">{lang}wcf.acp.article.content{/lang}</label></dt>
356 <textarea name="content[{@$availableLanguage->languageID}]" id="content{@$availableLanguage->languageID}" class="wysiwygTextarea" data-autosave="com.woltlab.wcf.article{$action|ucfirst}-{if $action == 'edit'}{@$articleID}{else}0{/if}-{@$availableLanguage->languageID}">{if !$content[$availableLanguage->languageID]|empty}{$content[$availableLanguage->languageID]}{/if}</textarea>
357 {include file='wysiwyg' wysiwygSelector='content'|concat:$availableLanguage->languageID}
358 {if $errorField == 'content'|concat:$availableLanguage->languageID}
359 <small class="innerError">
360 {if $errorType == 'empty'}
361 {lang}wcf.global.form.error.empty{/lang}
363 {lang}wcf.acp.article.content.error.{@$errorType}{/lang}
375 <div class="formSubmit">
376 <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s">
377 <input type="hidden" name="isMultilingual" value="{@$isMultilingual}">
378 {@SECURITY_TOKEN_INPUT_TAG}
382 {include file='footer'}