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.acp.media.chooseImage{/lang}',
42 <header class="contentHeader">
43 <div class="contentHeaderTitle">
44 <h1 class="contentTitle">{if $action == 'add'}{lang}wcf.acp.article.add{/lang}{else}{lang}wcf.acp.article.edit{/lang}{/if}</h1>
47 <nav class="contentHeaderNavigation">
49 {if $action == 'edit'}
50 <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>
52 <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>
54 {event name='contentHeaderNavigation'}
59 {include file='formError'}
62 <p class="success">{lang}wcf.global.success.{$action}{/lang}</p>
65 <form method="post" action="{if $action == 'add'}{link controller='ArticleAdd'}{/link}{else}{link controller='ArticleEdit' id=$articleID}{/link}{/if}">
67 <dl{if $errorField == 'categoryID'} class="formError"{/if}>
68 <dt><label for="categoryID">{lang}wcf.acp.article.category{/lang}</label></dt>
70 <select name="categoryID" id="categoryID">
71 <option value="0">{lang}wcf.global.noSelection{/lang}</option>
73 {foreach from=$categoryNodeList item=category}
74 <option value="{@$category->categoryID}"{if $category->categoryID == $categoryID} selected{/if}>{if $category->getDepth() > 1}{@" "|str_repeat:($category->getDepth() - 1)}{/if}{$category->getTitle()}</option>
77 {if $errorField == 'categoryID'}
78 <small class="innerError">
79 {if $errorType == 'empty'}
80 {lang}wcf.global.form.error.empty{/lang}
82 {lang}wcf.acp.article.category.error.{@$errorType}{/lang}
89 <dl{if $errorField == 'username'} class="formError"{/if}>
90 <dt><label for="username">{lang}wcf.acp.article.author{/lang}</label></dt>
92 <input type="text" id="username" name="username" value="{$username}" class="medium" maxlength="255">
93 {if $errorField == 'username'}
94 <small class="innerError">
95 {if $errorType == 'empty'}
96 {lang}wcf.global.form.error.empty{/lang}
98 {lang}wcf.user.username.error.{@$errorType}{/lang}
105 <dl{if $errorField == 'time'} class="formError"{/if}>
106 <dt><label for="time">{lang}wcf.global.date{/lang}</label></dt>
108 <input type="datetime" id="time" name="time" value="{$time}" class="medium">
109 {if $errorField == 'time'}
110 <small class="innerError">
111 {if $errorType == 'empty'}
112 {lang}wcf.global.form.error.empty{/lang}
114 {lang}wcf.acp.article.time.error.{@$errorType}{/lang}
121 {if $__wcf->session->getPermission('admin.content.article.canManageArticle')}
123 <dt><label for="categoryID">{lang}wcf.acp.article.publicationStatus{/lang}</label></dt>
125 <label><input type="radio" name="publicationStatus" value="0"{if $publicationStatus == 0} checked{/if}> {lang}wcf.acp.article.publicationStatus.unpublished{/lang}</label>
126 <label><input type="radio" name="publicationStatus" value="1"{if $publicationStatus == 1} checked{/if}> {lang}wcf.acp.article.publicationStatus.published{/lang}</label>
127 <label><input type="radio" name="publicationStatus" value="2"{if $publicationStatus == 2} checked{/if}> {lang}wcf.acp.article.publicationStatus.delayed{/lang}</label>
131 <dl id="publicationDateDl"{if $errorField == 'publicationDate'} class="formError"{/if}{if $publicationStatus != 2} style="display: none"{/if}>
132 <dt><label for="publicationDate">{lang}wcf.acp.article.publicationDate{/lang}</label></dt>
134 <input type="datetime" id="publicationDate" name="publicationDate" value="{$publicationDate}" class="medium">
135 {if $errorField == 'publicationDate'}
136 <small class="innerError">
137 {if $errorType == 'empty'}
138 {lang}wcf.global.form.error.empty{/lang}
140 {lang}wcf.acp.article.publicationDate.error.{@$errorType}{/lang}
151 <label><input name="enableComments" type="checkbox" value="1"{if $enableComments} checked{/if}> {lang}wcf.acp.article.enableComments{/lang}</label>
156 {if !$isMultilingual}
157 <div class="section">
158 {if $__wcf->session->getPermission('admin.content.cms.canUseMedia')}
159 <dl{if $errorField == 'image'} class="formError"{/if}>
160 <dt><label for="image">{lang}wcf.acp.article.image{/lang}</label></dt>
162 <div id="imageDisplay">
163 {if $images[0]|isset}
164 {@$images[0]->getThumbnailTag('small')}
167 <p class="button jsMediaSelectButton" data-store="imageID0" data-display="imageDisplay">{lang}wcf.acp.media.chooseImage{/lang}</p>
168 <input type="hidden" name="imageID[0]" id="imageID0"{if $imageID[0]|isset} value="{@$imageID[0]}"{/if}>
169 {if $errorField == 'image'}
170 <small class="innerError">{lang}wcf.acp.article.image.error.{@$errorType}{/lang}</small>
174 {elseif $action == 'edit' && $images[0]|isset}
176 <dt>{lang}wcf.acp.article.image{/lang}</dt>
178 <div id="imageDisplay">{@$images[0]->getThumbnailTag('small')}</div>
183 <dl{if $errorField == 'title'} class="formError"{/if}>
184 <dt><label for="title0">{lang}wcf.global.title{/lang}</label></dt>
186 <input type="text" id="title0" name="title[0]" value="{if !$title[0]|empty}{$title[0]}{/if}" class="long" maxlength="255">
187 {if $errorField == 'title'}
188 <small class="innerError">
189 {if $errorType == 'empty'}
190 {lang}wcf.global.form.error.empty{/lang}
192 {lang}wcf.acp.article.title.error.{@$errorType}{/lang}
201 <dt><label for="tagSearchInput">{lang}wcf.tagging.tags{/lang}</label></dt>
203 <input id="tagSearchInput" type="text" value="" class="long">
204 <small>{lang}wcf.tagging.tags.description{/lang}</small>
208 <script data-relocate="true">
209 require(['WoltLabSuite/Core/Ui/ItemList'], function(UiItemList) {
212 [{if !$tags[0]|empty}{implode from=$tags[0] item=tag}'{$tag|encodeJS}'{/implode}{/if}],
215 className: 'wcf\\data\\tag\\TagAction'
217 maxLength: {@TAGGING_MAX_TAG_LENGTH},
218 submitFieldName: 'tags[0][]'
225 <dl{if $errorField == 'teaser'} class="formError"{/if}>
226 <dt><label for="teaser0">{lang}wcf.acp.article.teaser{/lang}</label></dt>
228 <textarea name="teaser[0]" id="teaser0" rows="5">{if !$teaser[0]|empty}{$teaser[0]}{/if}</textarea>
229 {if $errorField == 'teaser'}
230 <small class="innerError">
231 {if $errorType == 'empty'}
232 {lang}wcf.global.form.error.empty{/lang}
234 {lang}wcf.acp.article.teaser.error.{@$errorType}{/lang}
241 <dl{if $errorField == 'content'} class="formError"{/if}>
242 <dt><label for="content0">{lang}wcf.acp.article.content{/lang}</label></dt>
244 <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>
245 {include file='wysiwyg' wysiwygSelector='content0'}
246 {if $errorField == 'content'}
247 <small class="innerError">
248 {if $errorType == 'empty'}
249 {lang}wcf.global.form.error.empty{/lang}
251 {lang}wcf.acp.article.content.error.{@$errorType}{/lang}
259 <div class="section tabMenuContainer">
260 <nav class="tabMenu">
262 {foreach from=$availableLanguages item=availableLanguage}
263 {assign var='containerID' value='language'|concat:$availableLanguage->languageID}
264 <li><a href="{@$__wcf->getAnchor($containerID)}">{$availableLanguage->languageName}</a></li>
269 {foreach from=$availableLanguages item=availableLanguage}
270 <div id="language{@$availableLanguage->languageID}" class="tabMenuContent">
271 <div class="section">
272 {if $__wcf->session->getPermission('admin.content.cms.canUseMedia')}
273 <dl{if $errorField == 'image'|concat:$availableLanguage->languageID} class="formError"{/if}>
274 <dt><label for="image{@$availableLanguage->languageID}">{lang}wcf.acp.article.image{/lang}</label></dt>
276 <div id="imageDisplay{@$availableLanguage->languageID}">
277 {if $images[$availableLanguage->languageID]|isset}
278 {@$images[$availableLanguage->languageID]->getThumbnailTag('small')}
281 <p class="button jsMediaSelectButton" data-store="imageID{@$availableLanguage->languageID}" data-display="imageDisplay{@$availableLanguage->languageID}">{lang}wcf.acp.media.chooseImage{/lang}</p>
282 <input type="hidden" name="imageID[{@$availableLanguage->languageID}]" id="imageID{@$availableLanguage->languageID}"{if $imageID[$availableLanguage->languageID]|isset} value="{@$imageID[$availableLanguage->languageID]}"{/if}>
283 {if $errorField == 'image'|concat:$availableLanguage->languageID}
284 <small class="innerError">{lang}wcf.acp.article.image.error.{@$errorType}{/lang}</small>
288 {elseif $action == 'edit' && $images[$availableLanguage->languageID]|isset}
290 <dt>{lang}wcf.acp.article.image{/lang}</dt>
292 <div id="imageDisplay">{@$images[$availableLanguage->languageID]->getThumbnailTag('small')}</div>
297 <dl{if $errorField == 'title'|concat:$availableLanguage->languageID} class="formError"{/if}>
298 <dt><label for="title{@$availableLanguage->languageID}">{lang}wcf.global.title{/lang}</label></dt>
300 <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">
301 {if $errorField == 'title'|concat:$availableLanguage->languageID}
302 <small class="innerError">
303 {if $errorType == 'empty'}
304 {lang}wcf.global.form.error.empty{/lang}
306 {lang}wcf.acp.article.title.error.{@$errorType}{/lang}
315 <dt><label for="tagSearchInput{@$availableLanguage->languageID}">{lang}wcf.tagging.tags{/lang}</label></dt>
317 <input id="tagSearchInput{@$availableLanguage->languageID}" type="text" value="" class="long">
318 <small>{lang}wcf.tagging.tags.description{/lang}</small>
322 <script data-relocate="true">
323 require(['WoltLabSuite/Core/Ui/ItemList'], function(UiItemList) {
325 'tagSearchInput{@$availableLanguage->languageID}',
326 [{if !$tags[$availableLanguage->languageID]|empty}{implode from=$tags[$availableLanguage->languageID] item=tag}'{$tag|encodeJS}'{/implode}{/if}],
329 className: 'wcf\\data\\tag\\TagAction'
331 maxLength: {@TAGGING_MAX_TAG_LENGTH},
332 submitFieldName: 'tags[{@$availableLanguage->languageID}][]'
339 <dl{if $errorField == 'teaser'|concat:$availableLanguage->languageID} class="formError"{/if}>
340 <dt><label for="teaser{@$availableLanguage->languageID}">{lang}wcf.acp.article.teaser{/lang}</label></dt>
342 <textarea name="teaser[{@$availableLanguage->languageID}]" id="teaser{@$availableLanguage->languageID}" rows="5">{if !$teaser[$availableLanguage->languageID]|empty}{$teaser[$availableLanguage->languageID]}{/if}</textarea>
343 {if $errorField == 'teaser'|concat:$availableLanguage->languageID}
344 <small class="innerError">
345 {if $errorType == 'empty'}
346 {lang}wcf.global.form.error.empty{/lang}
348 {lang}wcf.acp.article.teaser.error.{@$errorType}{/lang}
355 <dl{if $errorField == 'content'|concat:$availableLanguage->languageID} class="formError"{/if}>
356 <dt><label for="content{@$availableLanguage->languageID}">{lang}wcf.acp.article.content{/lang}</label></dt>
358 <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>
359 {include file='wysiwyg' wysiwygSelector='content'|concat:$availableLanguage->languageID}
360 {if $errorField == 'content'|concat:$availableLanguage->languageID}
361 <small class="innerError">
362 {if $errorType == 'empty'}
363 {lang}wcf.global.form.error.empty{/lang}
365 {lang}wcf.acp.article.content.error.{@$errorType}{/lang}
377 <div class="formSubmit">
378 <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s">
379 <input type="hidden" name="isMultilingual" value="{@$isMultilingual}">
380 {@SECURITY_TOKEN_INPUT_TAG}
384 {include file='footer'}