Added function to give option type form elements a special CSS class
authorMarcel Werk <burntime@woltlab.com>
Tue, 9 Aug 2011 18:08:57 +0000 (20:08 +0200)
committerMarcel Werk <burntime@woltlab.com>
Tue, 9 Aug 2011 18:08:57 +0000 (20:08 +0200)
wcfsetup/install/files/acp/templates/optionFieldList.tpl
wcfsetup/install/files/lib/acp/form/AbstractOptionListForm.class.php
wcfsetup/install/files/lib/system/option/AbstractOptionType.class.php [new file with mode: 0644]
wcfsetup/install/files/lib/system/option/IOptionType.class.php
wcfsetup/install/files/lib/system/option/OptionTypeBoolean.class.php
wcfsetup/install/files/lib/system/option/OptionTypeDate.class.php
wcfsetup/install/files/lib/system/option/OptionTypeRadiobuttons.class.php
wcfsetup/install/files/lib/system/option/OptionTypeText.class.php
wcfsetup/install/files/lib/system/option/OptionTypeTimezone.class.php

index 68f865b3c9c0f98cb6e016228f266a955c7a1709..babdc0eca4841a04dda28862757a317cd1ab7072 100644 (file)
@@ -6,7 +6,7 @@
                {assign var=error value=''}
        {/if}
        <dl class="{$option->optionName}Input">
-               <dt><label for="{$option->optionName}">{lang}{@$langPrefix}{$option->optionName}{/lang}</label></dt>
+               <dt{if $optionData[cssClassName]} class="{$optionData[cssClassName]}"{/if}><label for="{$option->optionName}">{lang}{@$langPrefix}{$option->optionName}{/lang}</label></dt>
                <dd>{@$optionData[html]}
                        {if $error}
                                <small class="innerError">
index af830cf6d75620bdfa9dd456fb1f663aa8ccc558..ded1777342fd168dcfe656cd37bce1b386c255cd 100755 (executable)
@@ -367,7 +367,8 @@ abstract class AbstractOptionListForm extends AbstractForm {
                                // add option to list
                                $children[] = array(
                                        'object' => $option,
-                                       'html' => $html
+                                       'html' => $html,
+                                       'cssClassName' => $this->getTypeObject($option->optionType)->getCSSClassName()
                                );
                                
                                $i++;
diff --git a/wcfsetup/install/files/lib/system/option/AbstractOptionType.class.php b/wcfsetup/install/files/lib/system/option/AbstractOptionType.class.php
new file mode 100644 (file)
index 0000000..ce2eb93
--- /dev/null
@@ -0,0 +1,34 @@
+<?php
+namespace wcf\system\option;
+use wcf\data\option\Option;
+
+/**
+ * Provides adefault implementation for object types.
+ *
+ * @author     Marcel Werk
+ * @copyright  2001-2011 WoltLab GmbH
+ * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @package    com.woltlab.wcf
+ * @subpackage system.option
+ * @category   Community Framework
+ */
+abstract class AbstractOptionType implements IOptionType {
+       /**
+        * @see wcf\system\option\IOptionType::validate()
+        */
+       public function validate(Option $option, $newValue) {}
+       
+       /**
+        * @see wcf\system\option\IOptionType::getData()
+        */
+       public function getData(Option $option, $newValue) {
+               return $newValue;
+       }
+       
+       /**
+        * @see wcf\system\option\IOptionType::getCSSClassName()
+        */
+       public function getCSSClassName() {
+               return '';
+       }
+}
index 9ec93a3923f7ea39a433841c5b410996a21a6821..a2064f2c29afaefb9327b0b42806f1931c1a4d0a 100644 (file)
@@ -39,4 +39,11 @@ interface IOptionType {
         * @return      string
         */
        public function getData(Option $option, $newValue);
+       
+       /**
+        * Returns css class name for this form element. 
+        * 
+        * @return      string
+        */
+       public function getCSSClassName();
 }
index 09266fcc9f464dc3d59ece715c454d06d9d93269..0c755add3b89870c98df30735d707e28b623eba6 100644 (file)
@@ -15,7 +15,7 @@ use wcf\util\StringUtil;
  * @subpackage system.option
  * @category   Community Framework
  */
-class OptionTypeBoolean implements IOptionType, ISearchableUserOption {
+class OptionTypeBoolean extends AbstractOptionType implements ISearchableUserOption {
        /**
         * @see wcf\system\option\IOptionType::getFormElement()
         */
@@ -31,11 +31,6 @@ class OptionTypeBoolean implements IOptionType, ISearchableUserOption {
                return WCF::getTPL()->fetch('optionTypeBoolean');
        }
        
-       /**
-        * @see wcf\system\option\IOptionType::validate()
-        */
-       public function validate(Option $option, $newValue) {}
-       
        /**
         * @see wcf\system\option\IOptionType::getData()
         */
@@ -44,6 +39,13 @@ class OptionTypeBoolean implements IOptionType, ISearchableUserOption {
                return 0;
        }
        
+       /**
+        * @see wcf\system\option\IOptionType::getCSSClassName()
+        */
+       public function getCSSClassName() {
+               return 'reversed';
+       }
+       
        /**
         * @see wcf\system\option\ISearchableUserOption::getSearchFormElement()
         */
index 2569a94b78077b36e3f88cafae95b313398e33e1..b313b8dc6a5a7d08cddacb2274250e767d294b31 100644 (file)
@@ -18,7 +18,7 @@ use wcf\util\DateUtil;
  * @subpackage system.option
  * @category   Community Framework
  */
-class OptionTypeDate implements IOptionType, ISearchableUserOption {
+class OptionTypeDate extends AbstractOptionType implements ISearchableUserOption {
        protected $yearRequired = true;
        
        /**
index ed8d524bc8c5a47e7ff9bf467842d7ea450bf33d..257e8a21cd5438bd854d31519c5f50715a2a4b7e 100644 (file)
@@ -18,7 +18,7 @@ use wcf\util\StringUtil;
  * @subpackage system.option
  * @category   Community Framework
  */
-class OptionTypeRadiobuttons implements IOptionType, ISearchableUserOption {
+class OptionTypeRadiobuttons extends AbstractOptionType implements ISearchableUserOption {
        public $templateName = 'optionTypeRadiobuttons';
 
        /**
@@ -63,13 +63,6 @@ class OptionTypeRadiobuttons implements IOptionType, ISearchableUserOption {
                }
        }
        
-       /**
-        * @see wcf\system\option\IOptionType::getData()
-        */
-       public function getData(Option $option, $newValue) {
-               return $newValue;
-       }
-       
        /**
         * @see wcf\system\option\ISearchableUserOption::getSearchFormElement()
         */
index c555aaf7f03d2ad865d1f1a0eb7f90f0aa11b2fa..381c7d6ede8ee89413cb5900588cd95685c7e3ef 100644 (file)
@@ -17,7 +17,7 @@ use wcf\util\StringUtil;
  * @subpackage system.option
  * @category   Community Framework
  */
-class OptionTypeText implements IOptionType, ISearchableUserOption {
+class OptionTypeText extends AbstractOptionType implements ISearchableUserOption {
        /**
         * input type
         * @var string
@@ -36,18 +36,6 @@ class OptionTypeText implements IOptionType, ISearchableUserOption {
                return WCF::getTPL()->fetch('optionTypeText');
        }
        
-       /**
-        * @see wcf\system\option\IOptionType::validate()
-        */
-       public function validate(Option $option, $newValue) {}
-       
-       /**
-        * @see wcf\system\option\IOptionType::getData()
-        */
-       public function getData(Option $option, $newValue) {
-               return $newValue;
-       }
-       
        /**
         * @see wcf\system\option\ISearchableUserOption::getSearchFormElement()
         */
index 2b3f521d7830b4c915859b1cd71babaea08b3a05..cde2c566889e8fef50a7682b17535e3dbf7d27dd 100644 (file)
@@ -16,7 +16,7 @@ use wcf\util\DateUtil;
  * @subpackage system.option
  * @category   Community Framework
  */
-class OptionTypeTimezone implements IOptionType {
+class OptionTypeTimezone extends AbstractOptionType {
        /**
         * @see wcf\system\option\IOptionType::getFormElement()
         */
@@ -42,11 +42,4 @@ class OptionTypeTimezone implements IOptionType {
                        throw new UserInputException($option->optionName, 'validationFailed');
                }
        }
-       
-       /**
-        * @see wcf\system\option\IOptionType::getData()
-        */
-       public function getData(Option $option, $newValue) {
-               return $newValue;               
-       }
 }