1 {include file='header' pageTitle='wcf.acp.style.'|concat:$action}
3 <script data-relocate="true" src="{@$__wcf->getPath()}acp/js/WCF.ACP.Style.js?v={@$__wcfVersion}"></script>
4 <script data-relocate="true" src="{@$__wcf->getPath()}js/WCF.ColorPicker.js?v={@$__wcfVersion}"></script>
5 <script data-relocate="true">
8 new WCF.ColorPicker('.jsColorPicker');
11 var $useFluidLayout = $('#useFluidLayout');
12 var $fluidLayoutMinWidth = $('#fluidLayoutMinWidth');
13 var $fluidLayoutMaxWidth = $('#fluidLayoutMaxWidth');
14 var $fixedLayoutVariables = $('#fixedLayoutVariables');
15 function useFluidLayout() {
16 if ($useFluidLayout.is(':checked')) {
17 $fluidLayoutMinWidth.show();
18 $fluidLayoutMaxWidth.show();
19 $fixedLayoutVariables.hide();
22 $fluidLayoutMinWidth.hide();
23 $fluidLayoutMaxWidth.hide();
24 $fixedLayoutVariables.show();
27 $useFluidLayout.change(useFluidLayout);
30 WCF.Language.addObject({
31 'wcf.global.button.upload': '{lang}wcf.global.button.upload{/lang}',
32 'wcf.style.colorPicker': '{lang}wcf.style.colorPicker{/lang}',
33 'wcf.style.colorPicker.new': '{lang}wcf.style.colorPicker.new{/lang}',
34 'wcf.style.colorPicker.current': '{lang}wcf.style.colorPicker.current{/lang}',
35 'wcf.style.colorPicker.button.apply': '{lang}wcf.style.colorPicker.button.apply{/lang}'
37 new WCF.ACP.Style.ImageUpload({if $action == 'add'}0{else}{@$style->styleID}{/if}, '{$tmpHash}');
39 {if $action == 'edit'}
40 new WCF.ACP.Style.CopyStyle({@$style->styleID});
42 WCF.Language.addObject({
43 'wcf.acp.style.copyStyle.confirmMessage': '{@"wcf.acp.style.copyStyle.confirmMessage"|language|encodeJS}'
47 $('.jsUnitSelect').change(function(event) {
48 var $target = $(event.currentTarget);
49 $target.prev().attr('step', ($target.val() == 'em' ? '0.01' : '1'));
52 $('.tabMenuContainer').on('wcftabsbeforeactivate', function () {
53 setTimeout(function() {
54 $('#individualLess')[0].codemirror.refresh();
55 $('#overrideLess')[0].codemirror.refresh();
61 <header class="boxHeadline">
62 <h1>{lang}wcf.acp.style.{$action}{/lang}</h1>
63 {if $action == 'edit'}<p>{$styleName}</p>{/if}
66 {include file='formError'}
69 <p class="success">{lang}wcf.global.success.{$action}{/lang}</p>
72 <div class="contentNavigation">
75 {if $action == 'edit'}
76 <li><a href="{link controller='StyleExport' id=$style->styleID}{/link}" class="button"><span class="icon icon16 icon-download-alt"></span> <span>{lang}wcf.acp.style.exportStyle{/lang}</span></a></li>
77 <li><a class="jsCopyStyle button"><span class="icon icon16 icon-copy"></span> <span>{lang}wcf.acp.style.copyStyle{/lang}</span></a></li>
80 <li><a href="{link controller='StyleList'}{/link}" class="button"><span class="icon icon16 icon-list"></span> <span>{lang}wcf.acp.menu.link.style.list{/lang}</span></a></li>
82 {event name='contentNavigationButtons'}
87 <form method="post" action="{if $action == 'add'}{link controller='StyleAdd'}{/link}{else}{link controller='StyleEdit' id=$styleID}{/link}{/if}">
88 <div class="tabMenuContainer" data-active="{$activeTabMenuItem}" data-store="activeTabMenuItem">
91 <li><a href="{@$__wcf->getAnchor('general')}">{lang}wcf.acp.style.general{/lang}</a></li>
92 <li><a href="{@$__wcf->getAnchor('globals')}">{lang}wcf.acp.style.globals{/lang}</a></li>
93 <li><a href="{@$__wcf->getAnchor('colors')}">{lang}wcf.acp.style.colors{/lang}</a></li>
94 <li><a href="{@$__wcf->getAnchor('advanced')}">{lang}wcf.acp.style.advanced{/lang}</a></li>
96 {event name='tabMenuTabs'}
101 <div id="general" class="container containerPadding tabMenuContent">
103 <legend>{lang}wcf.acp.style.general.data{/lang}</legend>
105 <dl{if $errorField == 'styleName'} class="formError"{/if}>
106 <dt><label for="styleName">{lang}wcf.acp.style.styleName{/lang}</label></dt>
108 <input type="text" name="styleName" id="styleName" value="{$styleName}" class="long" />
109 {if $errorField == 'styleName'}
110 <small class="innerError">
111 {if $errorType == 'empty'}
112 {lang}wcf.global.form.error.empty{/lang}
114 {lang}wcf.acp.style.styleName.error.{$errorType}{/lang}
120 <dl{if $errorField == 'authorName'} class="formError"{/if}>
121 <dt><label for="authorName">{lang}wcf.acp.style.authorName{/lang}</label></dt>
123 <input type="text" name="authorName" id="authorName" value="{$authorName}" class="long" />
124 {if $errorField == 'authorName'}
125 <small class="innerError">
126 {if $errorType == 'empty'}
127 {lang}wcf.global.form.error.empty{/lang}
129 {lang}wcf.acp.style.authorName.error.{$errorType}{/lang}
135 <dl{if $errorField == 'copyright'} class="formError"{/if}>
136 <dt><label for="copyright">{lang}wcf.acp.style.copyright{/lang}</label></dt>
138 <input type="text" name="copyright" id="copyright" value="{$copyright}" class="long" />
139 {if $errorField == 'copyright'}
140 <small class="innerError">
141 {if $errorType == 'empty'}
142 {lang}wcf.global.form.error.empty{/lang}
144 {lang}wcf.acp.style.copyright.error.{$errorType}{/lang}
150 <dl{if $errorField == 'styleVersion'} class="formError"{/if}>
151 <dt><label for="styleVersion">{lang}wcf.acp.style.styleVersion{/lang}</label></dt>
153 <input type="text" name="styleVersion" id="styleVersion" value="{$styleVersion}" class="small" />
154 {if $errorField == 'styleVersion'}
155 <small class="innerError">
156 {if $errorType == 'empty'}
157 {lang}wcf.global.form.error.empty{/lang}
159 {lang}wcf.acp.style.styleVersion.error.{$errorType}{/lang}
165 <dl{if $errorField == 'styleDate'} class="formError"{/if}>
166 <dt><label for="styleDate">{lang}wcf.acp.style.styleDate{/lang}</label></dt>
168 <input type="date" name="styleDate" id="styleDate" value="{$styleDate}" class="small" />
169 {if $errorField == 'styleDate'}
170 <small class="innerError">
171 {if $errorType == 'empty'}
172 {lang}wcf.global.form.error.empty{/lang}
174 {lang}wcf.acp.style.styleDate.error.{$errorType}{/lang}
180 <dl{if $errorField == 'license'} class="formError"{/if}>
181 <dt><label for="license">{lang}wcf.acp.style.license{/lang}</label></dt>
183 <input type="text" name="license" id="license" value="{$license}" class="long" />
184 {if $errorField == 'license'}
185 <small class="innerError">
186 {if $errorType == 'empty'}
187 {lang}wcf.global.form.error.empty{/lang}
189 {lang}wcf.acp.style.license.error.{$errorType}{/lang}
195 <dl{if $errorField == 'authorURL'} class="formError"{/if}>
196 <dt><label for="authorURL">{lang}wcf.acp.style.authorURL{/lang}</label></dt>
198 <input type="text" name="authorURL" id="authorURL" value="{$authorURL}" class="long" />
199 {if $errorField == 'authorURL'}
200 <small class="innerError">
201 {if $errorType == 'empty'}
202 {lang}wcf.global.form.error.empty{/lang}
204 {lang}wcf.acp.style.authorURL.error.{$errorType}{/lang}
210 <dl{if $errorField == 'styleDescription'} class="formError"{/if}>
211 <dt><label for="styleDescription">{lang}wcf.acp.style.styleDescription{/lang}</label></dt>
213 <textarea name="styleDescription" id="styleDescription">{$i18nPlainValues['styleDescription']}</textarea>
214 {if $errorField == 'styleDescription'}
215 <small class="innerError">
216 {if $errorType == 'empty'}
217 {lang}wcf.global.form.error.empty{/lang}
219 {lang}wcf.acp.style.styleDescription.error.{$errorType}{/lang}
224 {include file='multipleLanguageInputJavascript' elementIdentifier='styleDescription' forceSelection=true}
228 {event name='dataFields'}
232 <legend>{lang}wcf.acp.style.general.files{/lang}</legend>
234 <dl{if $errorField == 'image'} class="formError"{/if}>
235 <dt><label for="image">{lang}wcf.acp.style.image{/lang}</label></dt>
237 <img src="{if $action == 'add'}{@$__wcf->getPath()}images/stylePreview.png{else}{@$style->getPreviewImage()}{/if}" alt="" id="styleImage" />
238 <div id="uploadImage"></div>
239 {if $errorField == 'image'}
240 <small class="innerError">
241 {if $errorType == 'empty'}
242 {lang}wcf.global.form.error.empty{/lang}
244 {lang}wcf.acp.style.image.error.{$errorType}{/lang}
248 <small>{lang}wcf.acp.style.image.description{/lang}</small>
251 {if $availableTemplateGroups|count}
252 <dl{if $errorField == 'templateGroupID'} class="formError"{/if}>
253 <dt><label for="templateGroupID">{lang}wcf.acp.style.templateGroupID{/lang}</label></dt>
255 <select name="templateGroupID" id="templateGroupID">
256 <option value="0">{lang}wcf.acp.template.group.default{/lang}</option>
257 {foreach from=$availableTemplateGroups item=templateGroup}
258 <option value="{@$templateGroup->templateGroupID}"{if $templateGroup->templateGroupID == $templateGroupID} selected="selected"{/if}>{$templateGroup->templateGroupName}</option>
261 {if $errorField == 'templateGroupID'}
262 <small class="innerError">
263 {if $errorType == 'empty'}
264 {lang}wcf.global.form.error.empty{/lang}
266 {lang}wcf.acp.style.templateGroupID.error.{$errorType}{/lang}
273 <dl{if $errorField == 'imagePath'} class="formError"{/if}>
274 <dt><label for="imagePath">{lang}wcf.acp.style.imagePath{/lang}</label></dt>
276 <input type="text" name="imagePath" id="imagePath" value="{$imagePath}" class="long" />
277 {if $errorField == 'imagePath'}
278 <small class="innerError">
279 {if $errorType == 'empty'}
280 {lang}wcf.global.form.error.empty{/lang}
282 {lang}wcf.acp.style.imagePath.error.{$errorType}{/lang}
286 <small>{lang}wcf.acp.style.imagePath.description{/lang}</small>
290 {event name='fileFields'}
293 {event name='generalFieldsets'}
297 <div id="globals" class="container containerPadding tabMenuContent">
300 <legend>{lang}wcf.acp.style.globals.layout{/lang}</legend>
305 <input type="checkbox" id="useFluidLayout" name="useFluidLayout" value="1"{if $variables[useFluidLayout]} checked="checked"{/if} />
306 <span>{lang}wcf.acp.style.globals.useFluidLayout{/lang}</span>
310 <dl id="fluidLayoutMinWidth">
311 <dt><label for="wcfLayoutMinWidth">{lang}wcf.acp.style.globals.fluidLayoutMinWidth{/lang}</label></dt>
313 <input type="number" id="wcfLayoutMinWidth" name="wcfLayoutMinWidth" value="{@$variables[wcfLayoutMinWidth]}" class="tiny" />
314 <select name="wcfLayoutMinWidth_unit" class="jsUnitSelect">
315 {foreach from=$availableUnits item=unit}
316 <option value="{@$unit}"{if $variables[wcfLayoutMinWidth_unit] == $unit} selected="selected"{/if}>{@$unit}</option>
321 <dl id="fluidLayoutMaxWidth">
322 <dt><label for="wcfLayoutMaxWidth">{lang}wcf.acp.style.globals.fluidLayoutMaxWidth{/lang}</label></dt>
324 <input type="number" id="wcfLayoutMaxWidth" name="wcfLayoutMaxWidth" value="{@$variables[wcfLayoutMaxWidth]}" class="tiny" />
325 <select name="wcfLayoutMaxWidth_unit" class="jsUnitSelect">
326 {foreach from=$availableUnits item=unit}
327 <option value="{@$unit}"{if $variables[wcfLayoutMaxWidth_unit] == $unit} selected="selected"{/if}>{@$unit}</option>
333 <dl id="fixedLayoutVariables">
334 <dt><label for="wcfLayoutFixedWidth">{lang}wcf.acp.style.globals.fixedLayoutWidth{/lang}</label></dt>
336 <input type="number" id="wcfLayoutFixedWidth" name="wcfLayoutFixedWidth" value="{@$variables[wcfLayoutFixedWidth]}" class="tiny" />
337 <select name="wcfLayoutFixedWidth_unit" class="jsUnitSelect">
338 {foreach from=$availableUnits item=unit}
339 <option value="{@$unit}"{if $variables[wcfLayoutFixedWidth_unit] == $unit} selected="selected"{/if}>{@$unit}</option>
345 {event name='layoutFields'}
350 <legend>{lang}wcf.acp.style.globals.pageLogo{/lang}</legend>
353 <dt><label for="pageLogo">{lang}wcf.acp.style.globals.pageLogo{/lang}</label></dt>
355 <input type="text" name="pageLogo" id="pageLogo" value="{$variables[pageLogo]}" class="long" />
356 <small>{lang}wcf.acp.style.globals.pageLogo.description{/lang}</small>
360 {event name='logoFields'}
365 <legend>{lang}wcf.acp.style.globals.font{/lang}</legend>
368 <dt><label for="wcfBaseFontSize">{lang}wcf.acp.style.globals.fontSize{/lang}</label></dt>
370 <input type="number" id="wcfBaseFontSize" name="wcfBaseFontSize" value="{@$variables[wcfBaseFontSize]}" class="tiny" />
371 <select name="wcfBaseFontSize_unit" class="jsUnitSelect">
372 {foreach from=$availableUnits item=unit}
373 <option value="{@$unit}"{if $variables[wcfBaseFontSize_unit] == $unit} selected="selected"{/if}>{@$unit}</option>
379 <dt><label for="wcfBaseFontFamily">{lang}wcf.acp.style.globals.fontFamily{/lang}</label></dt>
381 <select name="wcfBaseFontFamily" id="wcfBaseFontFamily">
382 {foreach from=$availableFontFamilies key=fontFamily item=primaryFont}
383 <option value='{@$fontFamily}'{if $variables[wcfBaseFontFamily] == $fontFamily} selected="selected"{/if}>{@$primaryFont}</option>
389 {event name='fontFields'}
392 {event name='globalFieldsets'}
396 <div id="colors" class="container containerPadding tabMenuContent">
398 <legend>{lang}wcf.acp.style.colors.page{/lang}</legend>
401 <ul class="colorList">
402 <li>{include file='styleVariableColor' variableName='wcfPageBackgroundColor' languageVariable='backgroundColor'}</li>
403 <li>{include file='styleVariableColor' variableName='wcfPageColor' languageVariable='color'}</li>
404 <li>{include file='styleVariableColor' variableName='wcfPageLinkColor' languageVariable='linkColor'}</li>
405 <li>{include file='styleVariableColor' variableName='wcfPageLinkHoverColor' languageVariable='linkHoverColor'}</li>
407 {event name='pageColorListItems'}
410 {event name='pageColorLists'}
414 <legend>{lang}wcf.acp.style.colors.content{/lang}</legend>
417 <ul class="colorList">
418 <li>{include file='styleVariableColor' variableName='wcfContentBackgroundColor' languageVariable='backgroundColor'}</li>
419 <li>{include file='styleVariableColor' variableName='wcfColor' languageVariable='color'}</li>
420 <li>{include file='styleVariableColor' variableName='wcfDimmedColor' languageVariable='dimmedColor'}</li>
421 <li>{include file='styleVariableColor' variableName='wcfLinkColor' languageVariable='linkColor'}</li>
422 <li>{include file='styleVariableColor' variableName='wcfLinkHoverColor' languageVariable='linkHoverColor'}</li>
424 {event name='contentColorListItems'}
427 {event name='contentColorLists'}
431 <legend>{lang}wcf.acp.style.colors.container{/lang}</legend>
434 <ul class="colorList">
435 <li>{include file='styleVariableColor' variableName='wcfContainerBackgroundColor' languageVariable='backgroundColor'}</li>
436 <li>{include file='styleVariableColor' variableName='wcfContainerAccentBackgroundColor' languageVariable='accentBackgroundColor'}</li>
437 <li>{include file='styleVariableColor' variableName='wcfContainerBorderColor' languageVariable='borderColor'}</li>
438 <li>{include file='styleVariableColor' variableName='wcfContainerHoverBackgroundColor' languageVariable='hoverBackgroundColor'}</li>
440 {event name='containerColorListItems'}
443 {event name='containerColorLists'}
447 <legend>{lang}wcf.acp.style.colors.userPanel{/lang}</legend>
450 <ul class="colorList">
451 <li>{include file='styleVariableColor' variableName='wcfUserPanelBackgroundColor' languageVariable='backgroundColor'}</li>
452 <li>{include file='styleVariableColor' variableName='wcfUserPanelColor' languageVariable='color'}</li>
453 <li>{include file='styleVariableColor' variableName='wcfUserPanelHoverBackgroundColor' languageVariable='hoverBackgroundColor'}</li>
454 <li>{include file='styleVariableColor' variableName='wcfUserPanelHoverColor' languageVariable='hoverColor'}</li>
456 {event name='userPanelColorListItems'}
459 {event name='userPanelColorLists'}
463 <legend>{lang}wcf.acp.style.colors.tabular{/lang}</legend>
466 <ul class="colorList">
467 <li>{include file='styleVariableColor' variableName='wcfTabularBoxBackgroundColor' languageVariable='backgroundColor'}</li>
468 <li>{include file='styleVariableColor' variableName='wcfTabularBoxColor' languageVariable='color'}</li>
469 <li>{include file='styleVariableColor' variableName='wcfTabularBoxHoverColor' languageVariable='hoverColor'}</li>
471 {event name='tabularColorListItems'}
474 {event name='tabularColorLists'}
478 <legend>{lang}wcf.acp.style.colors.buttons{/lang}</legend>
481 <ul class="colorList">
482 <li>{include file='styleVariableColor' variableName='wcfButtonBackgroundColor' languageVariable='backgroundColor'}</li>
483 <li>{include file='styleVariableColor' variableName='wcfButtonBorderColor' languageVariable='borderColor'}</li>
484 <li>{include file='styleVariableColor' variableName='wcfButtonColor' languageVariable='color'}</li>
486 {event name='defaultButtonColorListItems'}
490 <ul class="colorList">
491 <li>{include file='styleVariableColor' variableName='wcfButtonHoverBackgroundColor' languageVariable='hoverBackgroundColor'}</li>
492 <li>{include file='styleVariableColor' variableName='wcfButtonHoverBorderColor' languageVariable='hoverBorderColor'}</li>
493 <li>{include file='styleVariableColor' variableName='wcfButtonHoverColor' languageVariable='hoverColor'}</li>
495 {event name='hoverButtonColorListItems'}
499 <ul class="colorList">
500 <li>{include file='styleVariableColor' variableName='wcfButtonPrimaryBackgroundColor' languageVariable='primaryBackgroundColor'}</li>
501 <li>{include file='styleVariableColor' variableName='wcfButtonPrimaryBorderColor' languageVariable='primaryBorderColor'}</li>
502 <li>{include file='styleVariableColor' variableName='wcfButtonPrimaryColor' languageVariable='primaryColor'}</li>
504 {event name='primaryButtonColorListItems'}
507 {event name='buttonsColorLists'}
511 <legend>{lang}wcf.acp.style.colors.formInput{/lang}</legend>
514 <ul class="colorList">
515 <li>{include file='styleVariableColor' variableName='wcfInputBackgroundColor' languageVariable='backgroundColor'}</li>
516 <li>{include file='styleVariableColor' variableName='wcfInputBorderColor' languageVariable='borderColor'}</li>
517 <li>{include file='styleVariableColor' variableName='wcfInputColor' languageVariable='color'}</li>
518 <li>{include file='styleVariableColor' variableName='wcfInputHoverBackgroundColor' languageVariable='hoverBackgroundColor'}</li>
519 <li>{include file='styleVariableColor' variableName='wcfInputHoverBorderColor' languageVariable='hoverBorderColor'}</li>
521 {event name='formInputColorListItems'}
524 {event name='formInputColorLists'}
527 {event name='colorFieldsets'}
531 <div id="advanced" class="container containerPadding tabMenuContent">
532 <fieldset class="marginTop">
533 <legend>{lang}wcf.acp.style.advanced.individualLess{/lang}</legend>
537 <textarea id="individualLess" rows="20" cols="40" name="individualLess">{$variables[individualLess]}</textarea>
538 <small>{lang}wcf.acp.style.advanced.individualLess.description{/lang}</small>
543 <fieldset{if $errorField == 'overrideLess'} class="formError"{/if}>
544 <legend>{lang}wcf.acp.style.advanced.overrideLess{/lang}</legend>
548 <textarea id="overrideLess" rows="20" cols="40" name="overrideLess">{$variables[overrideLess]}</textarea>
549 {if $errorField == 'overrideLess'}
550 <small class="innerError">
551 {lang}wcf.acp.style.advanced.overrideLess.error{/lang}
552 {implode from=$errorType item=error}{lang}wcf.acp.style.advanced.overrideLess.error.{$error.error}{/lang}{/implode}
555 <small>{lang}wcf.acp.style.advanced.overrideLess.description{/lang}</small>
559 {include file='codemirror' codemirrorMode='text/x-less' codemirrorSelector='#individualLess, #overrideLess'}
561 {event name='syntaxFieldsets'}
564 {event name='tabMenuContents'}
567 <div class="formSubmit">
568 <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
569 <input type="hidden" name="tmpHash" value="{$tmpHash}" />
570 {@SECURITY_TOKEN_INPUT_TAG}
574 {include file='footer'}