Makes it easier to get category language variables
authorMatthias Schmidt <gravatronics@live.com>
Thu, 12 Jul 2012 20:15:35 +0000 (22:15 +0200)
committerMatthias Schmidt <gravatronics@live.com>
Thu, 12 Jul 2012 20:15:35 +0000 (22:15 +0200)
Replaces `ICategoryType::getLangVarPrefix()` with `ICategoryType::getLanguageVariable()` which returns the value directly. This makes the template code more compact.

wcfsetup/install/files/acp/templates/categoryAdd.tpl
wcfsetup/install/files/acp/templates/categoryList.tpl
wcfsetup/install/files/lib/system/category/AbstractCategoryType.class.php
wcfsetup/install/files/lib/system/category/ICategoryType.class.php

index 09ec2b4c38a7bb9c21827b8b2c9c1a8111af3fa3..364503c934268f714122a98e23721e2bef0a7cf1 100644 (file)
@@ -23,7 +23,7 @@
 
 <header class="boxHeadline">
        <hgroup>
-               <h1>{hascontent}{content}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.{@$action}{/lang}{/content}{hascontentelse}{lang}wcf.category.{@$action}{/lang}{/hascontent}</h1>
+               <h1>{@$objectType->getProcessor()->getLanguageVariable($action)}</h1>
        </hgroup>
 </header>
 
        <p class="success">{lang}wcf.global.form.{@$action}.success{/lang}</p>  
 {/if}
 
-{capture assign='listLangVar'}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.button.list{/lang}{/capture}
-{if !$listLangVar}
-       {capture assign='listLangVar'}{lang}wcf.category.button.list{/lang}{/capture}
-{/if}
-
 {hascontent}
        <div class="contentNavigation">
                <nav>
                        <ul>
                                {content}
                                        {if $objectType->getProcessor()->canDeleteCategory() || $objectType->getProcessor()->canEditCategory()}
-                                               <li><a href="{link controller=$listController}{/link}" title="{$listLangVar}" class="button"><img src="{@$__wcf->getPath()}icon/list.svg" alt="" class="icon24" /> <span>{@$listLangVar}</span></a></li>
+                                               <li><a href="{link controller=$listController}{/link}" title="{$objectType->getProcessor()->getLanguageVariable('button.list')}" class="button"><img src="{@$__wcf->getPath()}icon/list.svg" alt="" class="icon24" /> <span>{@$objectType->getProcessor()->getLanguageVariable('button.list')}</span></a></li>
                                        {/if}
                                        
                                        {event name='contentNavigationButtons'}
 <form method="post" action="{if $action == 'add'}{link controller=$addController}{/link}{else}{link controller=$editController id=$category->categoryID title=$category->getTitle()}{/link}{/if}">
        <div class="container containerPadding marginTop shadow">
                <fieldset>
-                       <legend>{hascontent}{content}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.data{/lang}{/content}{hascontentelse}{lang}wcf.category.data{/lang}{/hascontent}</legend>
+                       <legend>{@$objectType->getProcessor()->getLanguageVariable('data')}</legend>
                        
                        {if $categoryNodeList|count}
                                <dl{if $errorField == 'parentCategoryID'} class="formError"{/if}>
-                                       <dt><label for="parentCategoryID">{hascontent}{content}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.parentCategoryID{/lang}{/content}{hascontentelse}{lang}wcf.category.parentCategoryID{/lang}{/hascontent}</label></dt>
+                                       <dt><label for="parentCategoryID">{@$objectType->getProcessor()->getLanguageVariable('parentCategoryID')}</label></dt>
                                        <dd>
                                                <select id="parentCategoryID" name="parentCategoryID">
                                                        <option value="0"></option>
                                                </select>
                                                {if $errorField == 'parentCategoryID'}
                                                        <small class="innerError">
-                                                               {hascontent}{content}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.parentCategoryID.error.{@$errorType}{/lang}{/content}{hascontentelse}{lang}wcf.category.parentCategoryID.error.{@$errorType}{/lang}{/hascontent}
+                                                               {assign var=__languageVariable value='parentCategoryID.error.'|concat:$errorType}
+                                                               {@$objectType->getProcessor()->getLanguageVariable($__languageVariable)}
                                                        </small>
                                                {/if}
-                                               {hascontent}<small>{content}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.parentCategoryID.description{/lang}{/content}</small>{/hascontent}
+                                               {hascontent}<small>{content}{@$objectType->getProcessor()->getLanguageVariable('parentCategoryID.description', true)}{/content}</small>{/hascontent}
                                        </dd>
                                </dl>
                        {/if}
                        
                        <dl{if $errorField == 'title'} class="formError"{/if}>
-                               <dt><label for="title">{hascontent}{content}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.title{/lang}{/content}{hascontentelse}{lang}wcf.category.title{/lang}{/hascontent}</label></dt>
+                               <dt><label for="title">{@$objectType->getProcessor()->getLanguageVariable('title')}</label></dt>
                                <dd>
                                        <input type="text" id="title" name="title" value="{$i18nPlainValues['title']}" class="long" />
                                        {if $errorField == 'title'}
                                                        {if $errorType == 'empty'}
                                                                {lang}wcf.global.form.error.empty{/lang}
                                                        {else}
-                                                               {lang}{@$objectType->getProcessor()->getLangVarPrefix()}.title.error.{@$errorType}{/lang}
+                                                               {assign var=__languageVariable value='title.error.'|concat:$errorType}
+                                                               {@$objectType->getProcessor()->getLanguageVariable($__languageVariable)}
                                                        {/if}
                                                </small>
                                        {/if}
-                                       {hascontent}<small>{content}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.title.description{/lang}{/content}</small>{/hascontent}
+                                       {hascontent}<small>{content}{@$objectType->getProcessor()->getLanguageVariable('title.description', true)}{/content}</small>{/hascontent}
                                </dd>
                        </dl>
                        
                        <dl{if $errorField == 'description'} class="formError"{/if}>
-                               <dt><label for="description">{hascontent}{content}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.description{/lang}{/content}{hascontentelse}{lang}wcf.category.description{/lang}{/hascontent}</label></dt>
+                               <dt><label for="description">{@$objectType->getProcessor()->getLanguageVariable('description')}</label></dt>
                                <dd>
                                        <textarea cols="40" rows="10" id="description" name="description">{$i18nPlainValues['description']}</textarea>
                                        {if $errorType == 'description'}
                                                        {if $errorType == 'empty'}
                                                                {lang}wcf.global.form.error.empty{/lang}
                                                        {else}
-                                                               {lang}{@$objectType->getProcessor()->getLangVarPrefix()}.description.error.{@$errorType}{/lang}
+                                                               {assign var=__languageVariable value='description.error.'|concat:$errorType}
+                                                               {@$objectType->getProcessor()->getLanguageVariable($__languageVariable)}
                                                        {/if}
                                                </small>
                                        {/if}
-                                       {hascontent}<small>{content}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.description.description{/lang}{/content}</small>{/hascontent}
+                                       {hascontent}<small>{content}{@$objectType->getProcessor()->getLanguageVariable('description.description', true)}{/content}</small>{/hascontent}
                                </dd>
                        </dl>
                        
                        <dl{if $errorField == 'isDisabled'} class="formError"{/if}>
-                               <dt class="reversed"><label for="isDisabled">{hascontent}{content}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.isDisabled{/lang}{/content}{hascontentelse}{lang}wcf.category.isDisabled{/lang}{/hascontent}</label></dt>
+                               <dt class="reversed"><label for="isDisabled">{@$objectType->getProcessor()->getLanguageVariable('isDisabled')}</label></dt>
                                <dd>
                                        <input type="checkbox" id="isDisabled" name="isDisabled"{if $isDisabled} checked="checked"{/if} />
-                                       {hascontent}<small>{content}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.isDisabled.description{/lang}{/content}</small>{/hascontent}
+                                       {hascontent}<small>{content}{@$objectType->getProcessor()->getLanguageVariable('isDisabled.description', true)}{/content}</small>{/hascontent}
                                </dd>
                        </dl>
                        
                        <dl{if $errorField == 'showOrder'} class="formError"{/if}>
-                               <dt><label for="showOrder">{hascontent}{content}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.showOrder{/lang}{/content}{hascontentelse}{lang}wcf.category.showOrder{/lang}{/hascontent}</label></dt>
+                               <dt><label for="showOrder">{@$objectType->getProcessor()->getLanguageVariable('showOrder')}</label></dt>
                                <dd>
                                        <input type="text" id="showOrder" name="showOrder" value="{$showOrder}" class="short" />
-                                       {if $errorField == 'title'}
+                                       {if $errorField == 'showOrder'}
                                                <small class="innerError">
-                                                       {lang}{@$objectType->getProcessor()->getLangVarPrefix()}.showOrder.error.{@$errorType}{/lang}
+                                                       {assign var=__languageVariable value='showOrder.error.'|concat:$errorType}
+                                                       {@$objectType->getProcessor()->getLanguageVariable($__languageVariable)}
                                                </small>
                                        {/if}
-                                       {hascontent}<small>{content}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.showOrder.description{/lang}{/content}</small>{/hascontent}
+                                       {hascontent}<small>{content}{@$objectType->getProcessor()->getLanguageVariable('showOrder.description', true)}{/content}</small>{/hascontent}
                                </dd>
                        </dl>
                        
index 956edb3389da5d35a2f261c18471a86139f11e3c..a5e98118a1b08458f7a31b8eac987e9a0a2cca1d 100644 (file)
 
 <header class="box48 boxHeadline">
        <hgroup>
-               <h1>{hascontent}{content}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.list{/lang}{/content}{hascontentelse}{lang}wcf.category.list{/lang}{/hascontent}</h1>
+               <h1>{@$objectType->getProcessor()->getLanguageVariable('list')}</h1>
        </hgroup>
 </header>
 
-{capture assign='addLangVar'}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.add{/lang}{/capture}
-{if !$addLangVar}
-       {capture assign='addLangVar'}{lang}wcf.category.add{/lang}{/capture}
-{/if}
-
 {hascontent}
        <div class="contentNavigation">
                <nav>
                        <ul>
                                {content}
                                        {if $objectType->getProcessor()->canAddCategory()}
-                                               <li><a href="{link controller=$addController}{/link}" title="{$addLangVar}" class="button"><img src="{@$__wcf->getPath()}icon/add.svg" alt="" class="icon24" /> <span>{@$addLangVar}</span></a></li>
+                                               <li><a href="{link controller=$addController}{/link}" title="{$objectType->getProcessor()->getLanguageVariable('add')}" class="button"><img src="{@$__wcf->getPath()}icon/add.svg" alt="" class="icon24" /> <span>{@$objectType->getProcessor()->getLanguageVariable('add')}</span></a></li>
                                        {/if}
                                        
                                        {event name='contentNavigationButtons'}
@@ -67,7 +62,7 @@
                                                        {/if}
 
                                                        {if $objectType->getProcessor()->canDeleteCategory()}
-                                                               <img src="{@$__wcf->getPath()}icon/delete.svg" alt="" title="{lang}wcf.global.button.delete{/lang}" class="icon16 jsDeleteButton jsTooltip" data-object-id="{@$category->categoryID}" data-confirm-message="{hascontent}{content}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.delete.sure{/lang}{/content}{hascontentelse}{lang}wcf.category.delete.sure{/lang}{/hascontent}" />
+                                                               <img src="{@$__wcf->getPath()}icon/delete.svg" alt="" title="{lang}wcf.global.button.delete{/lang}" class="icon16 jsDeleteButton jsTooltip" data-object-id="{@$category->categoryID}" data-confirm-message="{@$objectType->getProcessor()->getLanguageVariable('delete.sure')}" />
                                                        {else}
                                                                <img src="{@$__wcf->getPath()}icon/delete.svg" alt="" title="{lang}wcf.global.button.delete{/lang}" class="icon16 disabled" />
                                                        {/if}
@@ -85,7 +80,7 @@
                                                        {$category->getTitle()}
                                                </span>
                                        </span>
-                               
+                                       
                                        <ol class="categoryList sortableList" data-object-id="{@$category->categoryID}">
                                {if !$categoryNodeList->current()->hasChildren()}
                                        </ol></li>
                                <ul>
                                        {content}
                                                {if $objectType->getProcessor()->canAddCategory()}
-                                                       <li><a href="{link controller=$addController}{/link}" title="{$addLangVar}" class="button"><img src="{@$__wcf->getPath()}icon/add.svg" alt="" class="icon24" /> <span>{@$addLangVar}</span></a></li>
+                                                       <li><a href="{link controller=$addController}{/link}" title="{$objectType->getProcessor()->getLanguageVariable('add')}" class="button"><img src="{@$__wcf->getPath()}icon/add.svg" alt="" class="icon24" /> <span>{@$objectType->getProcessor()->getLanguageVariable('add')}</span></a></li>
                                                {/if}
 
                                                {event name='contentNavigationButtons'}
                </div>
        {/hascontent}
 {else}
-       <p class="warning">{hascontent}{content}{lang __optional=true}{@$objectType->getProcessor()->getLangVarPrefix()}.list.noneAvailable{/lang}{/content}{hascontentelse}{lang}wcf.category.list.noneAvailable{/lang}{/hascontent}</p>
+       <p class="warning">{@$objectType->getProcessor()->getLanguageVariable('list.noneAvailable')}</p>
 {/if}
 
 {include file='footer'}
\ No newline at end of file
index 4e45a4b8f72f6a8361cdaf56aae29a89547d3c97..ad42a23c2447d4fbdbea261eae02b83cf9a4b1dc 100644 (file)
@@ -37,7 +37,7 @@ abstract class AbstractCategoryType extends SingletonFactory implements ICategor
         * prefix used for language variables in templates
         * @var string
         */
-       protected $langVarPrefix = 'wcf.category';
+       protected $langVarPrefix = '';
        
        /**
         * permission prefix for the add/delete/edit permissions
@@ -108,10 +108,17 @@ abstract class AbstractCategoryType extends SingletonFactory implements ICategor
        }
        
        /**
-        * @see wcf\system\category\ICategoryType::getLangVarPrefix()
+        * @see wcf\system\category\ICategoryType::getLanguageVariable()
         */
-       public function getLangVarPrefix() {
-               return $this->langVarPrefix;
+       public function getLanguageVariable($name, $optional = false) {
+               if ($this->langVarPrefix) {
+                       $value = WCF::getLanguage()->get($this->langVarPrefix.'.'.$name, true);
+                       if ($value) {
+                               return $value;
+                       }
+               }
+               
+               return WCF::getLanguage()->get('wcf.category.'.$name, $optional);
        }
        
        /**
index f5da18156495d98cb5e7cbbaf54df410be6d7518..49a5349b860a1603bab6168274ec5cf362a1fa7e 100644 (file)
@@ -73,14 +73,19 @@ interface ICategoryType {
        public function getI18nLangVarPrefix();
        
        /**
-        * Returns the prefix used for language variables in templates. If a custom
-        * prefix is used (not 'wcf.category'), a fallback to the default prefix
-        * ('wcf.category') is used if the relevant language variable doesn't exist
-        * in the custom category.
+        * Returns the language variable value with the given name. The given name
+        * may not contain the language category prefix.
         * 
+        * If "{your.language.category}.list" is wanted, $name has to be "list".
+        * If the specific language variable for this category type doesn't exist,
+        * a fallback to the default variables (in this example "wcf.category.list")
+        * is used.
+        * 
+        * @param       string          $name
+        * @param       boolean         $optional
         * @return      string
         */
-       public function getLangVarPrefix();
+       public function getLanguageVariable($name, $optional = false);
        
        /**
         * Returns the language variable category for the title language variables