Merge branch '5.2' into 5.3
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / acp / templates / articleAdd.tpl
1 {capture assign='__contentHeader'}
2 <header class="contentHeader">
3 <div class="contentHeaderTitle">
4 <h1 class="contentTitle">
5 {if $articleIsFrontend|empty}
6 {if $action == 'add'}{lang}wcf.acp.article.add{/lang}{else}{lang}wcf.acp.article.edit{/lang}{/if}
7 {else}
8 {$__wcf->getActivePage()->getTitle()}
9 {/if}
10 </h1>
11 </div>
12
13 <nav class="contentHeaderNavigation">
14 <ul>
15 {if $action == 'edit'}
16 {if $article->canDelete()}
17 <li><a href="#" class="button jsButtonRestore" data-confirm-message-html="{lang __encode=true isArticleEdit=true}wcf.acp.article.restore.confirmMessage{/lang}"{if !$article->isDeleted} style="display: none"{/if}><span class="icon icon16 fa-refresh"></span> <span>{lang}wcf.global.button.restore{/lang}</span></a></li>
18 <li><a href="#" class="button jsButtonDelete" data-confirm-message-html="{lang __encode=true isArticleEdit=true}wcf.acp.article.delete.confirmMessage{/lang}"{if !$article->isDeleted} style="display: none"{/if}><span class="icon icon16 fa-times"></span> <span>{lang}wcf.global.button.delete{/lang}</span></a></li>
19 <li><a href="#" class="button jsButtonTrash" data-confirm-message-html="{lang __encode=true isArticleEdit=true}wcf.acp.article.trash.confirmMessage{/lang}"{if $article->isDeleted} style="display: none"{/if}><span class="icon icon16 fa-times"></span> <span>{lang}wcf.global.button.trash{/lang}</span></a></li>
20 {/if}
21 {if $languages|count > 1 || $article->isMultilingual}
22 <li><a href="#" class="button jsButtonToggleI18n"><span class="icon icon16 fa-flag"></span> <span>{lang}wcf.acp.article.button.toggleI18n{/lang}</span></a></li>
23 {/if}
24 <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>
25 {/if}
26 <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>
27
28 {event name='contentHeaderNavigation'}
29 </ul>
30 </nav>
31 </header>
32 {/capture}
33
34 {if $articleIsFrontend|empty}
35 {include file='header' pageTitle='wcf.acp.article.'|concat:$action}
36 {else}
37 {include file='header' contentHeader=$__contentHeader}
38 {/if}
39
40 {if $__wcf->session->getPermission('admin.content.article.canManageArticle')}
41 <script data-relocate="true">
42 $(function() {
43 $('input[type="radio"][name="publicationStatus"]').change(function(event) {
44 var $selected = $('input[type="radio"][name="publicationStatus"]:checked');
45 if ($selected.length > 0) {
46 if ($selected.val() == 2) {
47 $('#publicationDateDl').show();
48 }
49 else {
50 $('#publicationDateDl').hide();
51 }
52 }
53 }).trigger('change');
54 });
55 </script>
56 {/if}
57
58 <script data-relocate="true">
59 require(['Language', 'WoltLabSuite/Core/Ui/User/Search/Input', 'WoltLabSuite/Core/Acp/Ui/Article/InlineEditor'], function(Language, UiUserSearchInput, AcpUiArticleInlineEditor) {
60 Language.addObject({
61 'wcf.acp.article.i18n.source': '{jslang}wcf.acp.article.i18n.source{/jslang}',
62 'wcf.acp.article.i18n.toI18n.confirmMessage': '{jslang}wcf.acp.article.i18n.toI18n.confirmMessage{/jslang}',
63 'wcf.acp.article.i18n.fromI18n.confirmMessage': '{jslang}wcf.acp.article.i18n.fromI18n.confirmMessage{/jslang}',
64 'wcf.message.status.deleted': '{jslang}wcf.message.status.deleted{/jslang}',
65 });
66
67 new UiUserSearchInput(elBySel('input[name="username"]'));
68 {if $action == 'edit'}
69 new AcpUiArticleInlineEditor({@$article->articleID}, {
70 i18n: {
71 defaultLanguageId: {@$defaultLanguageID},
72 isI18n: {if $article->isMultilingual}true{else}false{/if},
73 languages: { {implode from=$languages item=language glue=', '}{@$language->languageID}: '{$language|encodeJS}'{/implode} }
74 },
75 redirectUrl: '{link controller='ArticleList'}{/link}'
76 });
77 {/if}
78 });
79 </script>
80
81 {if $__wcf->session->getPermission('admin.content.cms.canUseMedia')}
82 <script data-relocate="true">
83 {include file='mediaJavaScript'}
84
85 require(['WoltLabSuite/Core/Media/Manager/Select'], function(MediaManagerSelect) {
86 new MediaManagerSelect({
87 dialogTitle: '{jslang}wcf.media.chooseImage{/jslang}',
88 imagesOnly: 1
89 });
90 });
91 </script>
92 {/if}
93
94 {if $articleIsFrontend|empty}
95 {@$__contentHeader}
96 {/if}
97
98 {include file='formNotice'}
99
100 {if $action == 'edit'}
101 <p class="info jsArticleNoticeTrash"{if !$article->isDeleted} style="display: none;"{/if}>{lang}wcf.acp.article.trash.notice{/lang}</p>
102
103 {if $lastVersion && $__wcf->session->getPermission('admin.general.canUseAcp')}<p class="info" role="status">{lang}wcf.acp.article.lastVersion{/lang}</p>{/if}
104 {/if}
105
106 <form class="articleAddForm" method="post" action="{if $action == 'add'}{link controller='ArticleAdd'}{/link}{else}{link controller='ArticleEdit' id=$articleID}{/link}{/if}">
107 <div class="section">
108 <dl{if $errorField == 'categoryID'} class="formError"{/if}>
109 <dt><label for="categoryID">{lang}wcf.acp.article.category{/lang}</label></dt>
110 <dd>
111 <select name="categoryID" id="categoryID">
112 <option value="0">{lang}wcf.global.noSelection{/lang}</option>
113
114 {foreach from=$categoryNodeList item=category}
115 <option value="{@$category->categoryID}"{if !$category->categoryID|in_array:$accessibleCategoryIDs} disabled{elseif $category->categoryID == $categoryID} selected{/if}>{if $category->getDepth() > 1}{@"&nbsp;&nbsp;&nbsp;&nbsp;"|str_repeat:($category->getDepth() - 1)}{/if}{$category->getTitle()}</option>
116 {/foreach}
117 </select>
118 {if $errorField == 'categoryID'}
119 <small class="innerError">
120 {if $errorType == 'empty'}
121 {lang}wcf.global.form.error.empty{/lang}
122 {else}
123 {lang}wcf.acp.article.category.error.{@$errorType}{/lang}
124 {/if}
125 </small>
126 {/if}
127 </dd>
128 </dl>
129
130 {event name='categoryFields'}
131
132 {if $labelGroups|count}
133 {foreach from=$labelGroups item=labelGroup}
134 {if $labelGroup|count}
135 <dl{if $errorField == 'label' && $errorType[$labelGroup->groupID]|isset} class="formError"{/if}>
136 <dt><label>{$labelGroup->getTitle()}</label></dt>
137 <dd>
138 <ul class="labelList jsOnly" data-object-id="{@$labelGroup->groupID}">
139 <li class="dropdown labelChooser" id="labelGroup{@$labelGroup->groupID}" data-group-id="{@$labelGroup->groupID}" data-force-selection="{if $labelGroup->forceSelection}true{else}false{/if}">
140 <div class="dropdownToggle" data-toggle="labelGroup{@$labelGroup->groupID}"><span class="badge label">{lang}wcf.label.none{/lang}</span></div>
141 <div class="dropdownMenu">
142 <ul class="scrollableDropdownMenu">
143 {foreach from=$labelGroup item=label}
144 <li data-label-id="{@$label->labelID}"><span>{@$label->render()}</span></li>
145 {/foreach}
146 </ul>
147 </div>
148 </li>
149 </ul>
150 <noscript>
151 <select name="labelIDs[{@$labelGroup->groupID}]">
152 {foreach from=$labelGroup item=label}
153 <option value="{@$label->labelID}">{$label->getTitle()}</option>
154 {/foreach}
155 </select>
156 </noscript>
157 {if $errorField == 'label' && $errorType[$labelGroup->groupID]|isset}
158 <small class="innerError">
159 {if $errorType[$labelGroup->groupID] == 'missing'}
160 {lang}wcf.label.error.missing{/lang}
161 {else}
162 {lang}wcf.label.error.invalid{/lang}
163 {/if}
164 </small>
165 {/if}
166 </dd>
167 </dl>
168 {/if}
169 {/foreach}
170 {/if}
171
172 <dl{if $errorField == 'username'} class="formError"{/if}>
173 <dt><label for="username">{lang}wcf.acp.article.author{/lang}</label></dt>
174 <dd>
175 <input type="text" id="username" name="username" value="{$username}" class="medium" maxlength="255">
176 {if $errorField == 'username'}
177 <small class="innerError">
178 {if $errorType == 'empty'}
179 {lang}wcf.global.form.error.empty{/lang}
180 {else}
181 {lang}wcf.user.username.error.{@$errorType}{/lang}
182 {/if}
183 </small>
184 {/if}
185 </dd>
186 </dl>
187
188 <dl{if $errorField == 'time'} class="formError"{/if}>
189 <dt><label for="time">{lang}wcf.global.date{/lang}</label></dt>
190 <dd>
191 <input type="datetime" id="time" name="time" value="{$time}" class="medium">
192 {if $errorField == 'time'}
193 <small class="innerError">
194 {if $errorType == 'empty'}
195 {lang}wcf.global.form.error.empty{/lang}
196 {else}
197 {lang}wcf.acp.article.time.error.{@$errorType}{/lang}
198 {/if}
199 </small>
200 {/if}
201 </dd>
202 </dl>
203
204 {if $__wcf->session->getPermission('admin.content.article.canManageArticle') || $__wcf->session->getPermission('admin.content.article.canManageOwnArticles')}
205 <dl>
206 <dt><label for="categoryID">{lang}wcf.acp.article.publicationStatus{/lang}</label></dt>
207 <dd class="floated">
208 <label><input type="radio" name="publicationStatus" value="0"{if $publicationStatus == 0} checked{/if}> {lang}wcf.acp.article.publicationStatus.unpublished{/lang}</label>
209 <label><input type="radio" name="publicationStatus" value="1"{if $publicationStatus == 1} checked{/if}> {lang}wcf.acp.article.publicationStatus.published{/lang}</label>
210 <label><input type="radio" name="publicationStatus" value="2"{if $publicationStatus == 2} checked{/if}> {lang}wcf.acp.article.publicationStatus.delayed{/lang}</label>
211 </dd>
212 </dl>
213
214 <dl id="publicationDateDl"{if $errorField == 'publicationDate'} class="formError"{/if}{if $publicationStatus != 2} style="display: none"{/if}>
215 <dt><label for="publicationDate">{lang}wcf.acp.article.publicationDate{/lang}</label></dt>
216 <dd>
217 <input type="datetime" id="publicationDate" name="publicationDate" value="{$publicationDate}" class="medium">
218 {if $errorField == 'publicationDate'}
219 <small class="innerError">
220 {if $errorType == 'empty'}
221 {lang}wcf.global.form.error.empty{/lang}
222 {else}
223 {lang}wcf.acp.article.publicationDate.error.{@$errorType}{/lang}
224 {/if}
225 </small>
226 {/if}
227 </dd>
228 </dl>
229 {/if}
230
231 <dl>
232 <dt></dt>
233 <dd>
234 <label><input name="enableComments" type="checkbox" value="1"{if $enableComments} checked{/if}> {lang}wcf.acp.article.enableComments{/lang}</label>
235 </dd>
236 </dl>
237 </div>
238
239 {if !$isMultilingual}
240 <div class="section">
241 {if $__wcf->session->getPermission('admin.content.cms.canUseMedia')}
242 <dl{if $errorField == 'image'} class="formError"{/if}>
243 <dt><label for="image">{lang}wcf.acp.article.image{/lang}</label></dt>
244 <dd>
245 <div id="imageDisplay" class="selectedImagePreview">
246 {if $images[0]|isset && $images[0]->hasThumbnail('small')}
247 {@$images[0]->getThumbnailTag('small')}
248 {/if}
249 </div>
250 <p class="button jsMediaSelectButton" data-store="imageID0" data-display="imageDisplay">{lang}wcf.media.chooseImage{/lang}</p>
251 <input type="hidden" name="imageID[0]" id="imageID0"{if $imageID[0]|isset} value="{@$imageID[0]}"{/if}>
252 {if $errorField == 'image'}
253 <small class="innerError">{lang}wcf.acp.article.image.error.{@$errorType}{/lang}</small>
254 {/if}
255 </dd>
256 </dl>
257 {elseif $action == 'edit' && $images[0]|isset && $images[0]->hasThumbnail('small')}
258 <dl>
259 <dt>{lang}wcf.acp.article.image{/lang}</dt>
260 <dd>
261 <div id="imageDisplay">{@$images[0]->getThumbnailTag('small')}</div>
262 </dd>
263 </dl>
264 {/if}
265
266 {if $__wcf->session->getPermission('admin.content.cms.canUseMedia')}
267 <dl{if $errorField == 'teaserImage'} class="formError"{/if}>
268 <dt><label for="teaserImage">{lang}wcf.acp.article.teaserImage{/lang}</label></dt>
269 <dd>
270 <div id="teaserImageDisplay" class="selectedImagePreview">
271 {if $teaserImages[0]|isset && $teaserImages[0]->hasThumbnail('small')}
272 {@$teaserImages[0]->getThumbnailTag('small')}
273 {/if}
274 </div>
275 <p class="button jsMediaSelectButton" data-store="teaserImageID0" data-display="teaserImageDisplay">{lang}wcf.media.chooseImage{/lang}</p>
276 <input type="hidden" name="teaserImageID[0]" id="teaserImageID0"{if $teaserImageID[0]|isset} value="{@$teaserImageID[0]}"{/if}>
277 {if $errorField == 'teaserImage'}
278 <small class="innerError">{lang}wcf.acp.article.image.error.{@$errorType}{/lang}</small>
279 {/if}
280 </dd>
281 </dl>
282 {elseif $action == 'edit' && $teaserImages[0]|isset && $teaserImages[0]->hasThumbnail('small')}
283 <dl>
284 <dt>{lang}wcf.acp.article.teaserImage{/lang}</dt>
285 <dd>
286 <div id="teaserImageDisplay">{@$teaserImages[0]->getThumbnailTag('small')}</div>
287 </dd>
288 </dl>
289 {/if}
290
291 <dl{if $errorField == 'title'} class="formError"{/if}>
292 <dt><label for="title0">{lang}wcf.global.title{/lang}</label></dt>
293 <dd>
294 <input type="text" id="title0" name="title[0]" value="{if !$title[0]|empty}{$title[0]}{/if}" class="long" maxlength="255">
295 {if $errorField == 'title'}
296 <small class="innerError">
297 {if $errorType == 'empty'}
298 {lang}wcf.global.form.error.empty{/lang}
299 {else}
300 {lang}wcf.acp.article.title.error.{@$errorType}{/lang}
301 {/if}
302 </small>
303 {/if}
304 </dd>
305 </dl>
306
307 <dl{if $errorField == 'metaTitle'} class="formError"{/if}>
308 <dt><label for="metaTitle0">{lang}wcf.acp.article.metaTitle{/lang}</label></dt>
309 <dd>
310 <input type="text" id="metaTitle0" name="metaTitle[0]" value="{if !$metaTitle[0]|empty}{$metaTitle[0]}{/if}" class="long" maxlength="255">
311 {if $errorField == 'metaTitle'}
312 <small class="innerError">
313 {if $errorType == 'empty'}
314 {lang}wcf.global.form.error.empty{/lang}
315 {else}
316 {lang}wcf.acp.article.metaTitle.error.{@$errorType}{/lang}
317 {/if}
318 </small>
319 {/if}
320 </dd>
321 </dl>
322
323 <dl{if $errorField == 'metaDescription'} class="formError"{/if}>
324 <dt><label for="metaDescription0">{lang}wcf.acp.article.metaDescription{/lang}</label></dt>
325 <dd>
326 <input type="text" id="metaDescription0" name="metaDescription[0]" value="{if !$metaDescription[0]|empty}{$metaDescription[0]}{/if}" class="long" maxlength="255">
327 {if $errorField == 'metaDescription'}
328 <small class="innerError">
329 {if $errorType == 'empty'}
330 {lang}wcf.global.form.error.empty{/lang}
331 {else}
332 {lang}wcf.acp.article.metaDescription.error.{@$errorType}{/lang}
333 {/if}
334 </small>
335 {/if}
336 </dd>
337 </dl>
338
339 {if MODULE_TAGGING}
340 {include file='tagInput' tagInputSuffix='0' tagSubmitFieldName='tags[0][]' tags=$tags[0] sandbox=true}
341 {/if}
342
343 {event name='informationFields'}
344
345 <dl{if $errorField == 'teaser'} class="formError"{/if}>
346 <dt><label for="teaser0">{lang}wcf.acp.article.teaser{/lang}</label></dt>
347 <dd>
348 <textarea name="teaser[0]" id="teaser0" rows="5">{if !$teaser[0]|empty}{$teaser[0]}{/if}</textarea>
349 {if $errorField == 'teaser'}
350 <small class="innerError">
351 {if $errorType == 'empty'}
352 {lang}wcf.global.form.error.empty{/lang}
353 {else}
354 {lang}wcf.acp.article.teaser.error.{@$errorType}{/lang}
355 {/if}
356 </small>
357 {/if}
358 </dd>
359 </dl>
360
361 <dl{if $errorField == 'content'} class="formError"{/if}>
362 <dt><label for="content0">{lang}wcf.acp.article.content{/lang}</label></dt>
363 <dd>
364 <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>
365
366 {include file='__wysiwygCmsToolbar'}
367 {include file='wysiwyg' wysiwygSelector='content0'}
368
369 {if $errorField == 'content'}
370 <small class="innerError">
371 {if $errorType == 'empty'}
372 {lang}wcf.global.form.error.empty{/lang}
373 {else}
374 {lang}wcf.acp.article.content.error.{@$errorType}{/lang}
375 {/if}
376 </small>
377 {/if}
378 </dd>
379 </dl>
380
381 {event name='messageFields'}
382 </div>
383
384 {include file='messageFormTabs' wysiwygContainerID='content0'}
385 {else}
386 <div class="section tabMenuContainer">
387 <nav class="tabMenu">
388 <ul>
389 {foreach from=$availableLanguages item=availableLanguage}
390 {assign var='containerID' value='language'|concat:$availableLanguage->languageID}
391 <li><a href="{@$__wcf->getAnchor($containerID)}">{$availableLanguage->languageName}</a></li>
392 {/foreach}
393 </ul>
394 </nav>
395
396 {foreach from=$availableLanguages item=availableLanguage}
397 <div id="language{@$availableLanguage->languageID}" class="tabMenuContent">
398 <div class="section">
399 {if $__wcf->session->getPermission('admin.content.cms.canUseMedia')}
400 <dl{if $errorField == 'image'|concat:$availableLanguage->languageID} class="formError"{/if}>
401 <dt><label for="image{@$availableLanguage->languageID}">{lang}wcf.acp.article.image{/lang}</label></dt>
402 <dd>
403 <div id="imageDisplay{@$availableLanguage->languageID}">
404 {if $images[$availableLanguage->languageID]|isset && $images[$availableLanguage->languageID]->hasThumbnail('small')}
405 {@$images[$availableLanguage->languageID]->getThumbnailTag('small')}
406 {/if}
407 </div>
408 <p class="button jsMediaSelectButton" data-store="imageID{@$availableLanguage->languageID}" data-display="imageDisplay{@$availableLanguage->languageID}">{lang}wcf.media.chooseImage{/lang}</p>
409 <input type="hidden" name="imageID[{@$availableLanguage->languageID}]" id="imageID{@$availableLanguage->languageID}"{if $imageID[$availableLanguage->languageID]|isset} value="{@$imageID[$availableLanguage->languageID]}"{/if}>
410 {if $errorField == 'image'|concat:$availableLanguage->languageID}
411 <small class="innerError">{lang}wcf.acp.article.image.error.{@$errorType}{/lang}</small>
412 {/if}
413 </dd>
414 </dl>
415 {elseif $action == 'edit' && $images[$availableLanguage->languageID]|isset && $images[$availableLanguage->languageID]->hasThumbnail('small')}
416 <dl>
417 <dt>{lang}wcf.acp.article.image{/lang}</dt>
418 <dd>
419 <div id="imageDisplay">{@$images[$availableLanguage->languageID]->getThumbnailTag('small')}</div>
420 </dd>
421 </dl>
422 {/if}
423
424 {if $__wcf->session->getPermission('admin.content.cms.canUseMedia')}
425 <dl{if $errorField == 'image'|concat:$availableLanguage->languageID} class="formError"{/if}>
426 <dt><label for="teaserImage{@$availableLanguage->languageID}">{lang}wcf.acp.article.teaserImage{/lang}</label></dt>
427 <dd>
428 <div id="teaserImageDisplay{@$availableLanguage->languageID}">
429 {if $teaserImages[$availableLanguage->languageID]|isset && $teaserImages[$availableLanguage->languageID]->hasThumbnail('small')}
430 {@$teaserImages[$availableLanguage->languageID]->getThumbnailTag('small')}
431 {/if}
432 </div>
433 <p class="button jsMediaSelectButton" data-store="teaserImageID{@$availableLanguage->languageID}" data-display="teaserImageDisplay{@$availableLanguage->languageID}">{lang}wcf.media.chooseImage{/lang}</p>
434 <input type="hidden" name="teaserImageID[{@$availableLanguage->languageID}]" id="teaserImageID{@$availableLanguage->languageID}"{if $teaserImageID[$availableLanguage->languageID]|isset} value="{@$teaserImageID[$availableLanguage->languageID]}"{/if}>
435 {if $errorField == 'teaserImage'|concat:$availableLanguage->languageID}
436 <small class="innerError">{lang}wcf.acp.article.image.error.{@$errorType}{/lang}</small>
437 {/if}
438 </dd>
439 </dl>
440 {elseif $action == 'edit' && $teaserImages[$availableLanguage->languageID]|isset && $teaserImages[$availableLanguage->languageID]->hasThumbnail('small')}
441 <dl>
442 <dt>{lang}wcf.acp.article.teaserImage{/lang}</dt>
443 <dd>
444 <div id="imageDisplay">{@$teaserImages[$availableLanguage->languageID]->getThumbnailTag('small')}</div>
445 </dd>
446 </dl>
447 {/if}
448
449 <dl{if $errorField == 'title'|concat:$availableLanguage->languageID} class="formError"{/if}>
450 <dt><label for="title{@$availableLanguage->languageID}">{lang}wcf.global.title{/lang}</label></dt>
451 <dd>
452 <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">
453 {if $errorField == 'title'|concat:$availableLanguage->languageID}
454 <small class="innerError">
455 {if $errorType == 'empty'}
456 {lang}wcf.global.form.error.empty{/lang}
457 {else}
458 {lang}wcf.acp.article.title.error.{@$errorType}{/lang}
459 {/if}
460 </small>
461 {/if}
462 </dd>
463 </dl>
464
465 <dl{if $errorField == 'metaTitle'|concat:$availableLanguage->languageID} class="formError"{/if}>
466 <dt><label for="metaTitle{@$availableLanguage->languageID}">{lang}wcf.acp.article.metaTitle{/lang}</label></dt>
467 <dd>
468 <input type="text" id="metaTitle{@$availableLanguage->languageID}" name="metaTitle[{@$availableLanguage->languageID}]" value="{if !$metaTitle[$availableLanguage->languageID]|empty}{$metaTitle[$availableLanguage->languageID]}{/if}" class="long" maxlength="255">
469 {if $errorField == 'metaTitle'|concat:$availableLanguage->languageID}
470 <small class="innerError">
471 {if $errorType == 'empty'}
472 {lang}wcf.global.form.error.empty{/lang}
473 {else}
474 {lang}wcf.acp.article.metaTitle.error.{@$errorType}{/lang}
475 {/if}
476 </small>
477 {/if}
478 </dd>
479 </dl>
480
481 <dl{if $errorField == 'metaDescription'|concat:$availableLanguage->languageID} class="formError"{/if}>
482 <dt><label for="metaDescription{@$availableLanguage->languageID}">{lang}wcf.acp.article.metaDescription{/lang}</label></dt>
483 <dd>
484 <input type="text" id="metaDescription{@$availableLanguage->languageID}" name="metaDescription[{@$availableLanguage->languageID}]" value="{if !$metaDescription[$availableLanguage->languageID]|empty}{$metaDescription[$availableLanguage->languageID]}{/if}" class="long" maxlength="255">
485 {if $errorField == 'metaDescription'|concat:$availableLanguage->languageID}
486 <small class="innerError">
487 {if $errorType == 'empty'}
488 {lang}wcf.global.form.error.empty{/lang}
489 {else}
490 {lang}wcf.acp.article.metaDescription.error.{@$errorType}{/lang}
491 {/if}
492 </small>
493 {/if}
494 </dd>
495 </dl>
496
497 {if MODULE_TAGGING}
498 {assign var='tagSubmitFieldName' value='tags['|concat:$availableLanguage->languageID:'][]'}
499 {include file='tagInput' tagInputSuffix=$availableLanguage->languageID tagSubmitFieldName=$tagSubmitFieldName tags=$tags[$availableLanguage->languageID] sandbox=true}
500 {/if}
501
502 {event name='informationFieldsMultilingual'}
503
504 <dl{if $errorField == 'teaser'|concat:$availableLanguage->languageID} class="formError"{/if}>
505 <dt><label for="teaser{@$availableLanguage->languageID}">{lang}wcf.acp.article.teaser{/lang}</label></dt>
506 <dd>
507 <textarea name="teaser[{@$availableLanguage->languageID}]" id="teaser{@$availableLanguage->languageID}" rows="5">{if !$teaser[$availableLanguage->languageID]|empty}{$teaser[$availableLanguage->languageID]}{/if}</textarea>
508 {if $errorField == 'teaser'|concat:$availableLanguage->languageID}
509 <small class="innerError">
510 {if $errorType == 'empty'}
511 {lang}wcf.global.form.error.empty{/lang}
512 {else}
513 {lang}wcf.acp.article.teaser.error.{@$errorType}{/lang}
514 {/if}
515 </small>
516 {/if}
517 </dd>
518 </dl>
519
520 <dl{if $errorField == 'content'|concat:$availableLanguage->languageID} class="formError"{/if}>
521 <dt><label for="content{@$availableLanguage->languageID}">{lang}wcf.acp.article.content{/lang}</label></dt>
522 <dd>
523 <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>
524
525 {include file='__wysiwygCmsToolbar'}
526 {include file='wysiwyg' wysiwygSelector='content'|concat:$availableLanguage->languageID}
527
528 {if $errorField == 'content'|concat:$availableLanguage->languageID}
529 <small class="innerError">
530 {if $errorType == 'empty'}
531 {lang}wcf.global.form.error.empty{/lang}
532 {else}
533 {lang}wcf.acp.article.content.error.{@$errorType}{/lang}
534 {/if}
535 </small>
536 {/if}
537 </dd>
538 </dl>
539
540 {event name='messageFieldsMultilingual'}
541 </div>
542
543 {include file='messageFormTabs' wysiwygContainerID='content'|concat:$availableLanguage->languageID}
544 </div>
545 {/foreach}
546 </div>
547 {/if}
548
549 {event name='sections'}
550
551 <div class="formSubmit">
552 <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s">
553 <input type="hidden" name="isMultilingual" value="{@$isMultilingual}">
554 <input type="hidden" name="timeNowReference" value="{@TIME_NOW}">
555 {@SECURITY_TOKEN_INPUT_TAG}
556 </div>
557 </form>
558
559 {js application='wcf' file='WCF.Label' bundle='WCF.Combined'}
560 <script data-relocate="true">
561 $(function() {
562 WCF.Language.addObject({
563 'wcf.label.none': '{jslang}wcf.label.none{/jslang}',
564 });
565
566 {if !$labelGroups|empty}
567 new WCF.Label.ArticleLabelChooser({ {implode from=$labelGroupsToCategories key=__labelCategoryID item=labelGroupIDs}{@$__labelCategoryID}: [ {implode from=$labelGroupIDs item=labelGroupID}{@$labelGroupID}{/implode} ] {/implode} }, { {implode from=$labelIDs key=groupID item=labelID}{@$groupID}: {@$labelID}{/implode} }, '.articleAddForm');
568 {/if}
569 });
570 </script>
571
572 {include file='footer'}