Example #1
0
 /**
  * Get the CSS style attribute for the specified HTML element
  *
  * @param string $which
  * @param array $additionalStyles An array of additional styles to merge
  * @return string
  */
 public function getCss($which, $additionalStyles = null)
 {
     $output = '';
     $rules = array();
     // Merge in the form style settings
     switch ($which) {
         case 'input':
         case 'textarea':
             if (($backgroundColour = $this->_form->getElementBackgroundColour()) !== null) {
                 $rules = array_merge($rules, $backgroundColour);
             }
             if (($borderColour = $this->_form->getElementBorderColour()) !== null) {
                 $rules = array_merge($rules, $borderColour);
             }
             if (($textColour = $this->_form->getElementTextColour()) !== null) {
                 $rules = array_merge($rules, $textColour);
             }
             break;
         case 'label':
             if (($textColour = $this->_form->getLabelTextColour()) !== null) {
                 $rules = array_merge($rules, $textColour);
             }
             break;
     }
     // Merge in the global styles
     if (($globalStyle = $this->_form->getStyle($which)) !== null) {
         $rules = array_merge($rules, $globalStyle);
     }
     // Merge in the element styles
     if (($style = $this->getStyle($which)) !== null) {
         $rules = array_merge($rules, $style);
     }
     // Merge in extra element-specific styles
     $rules = $this->getExtraCss($which, $rules);
     // Merge in additional styles
     if (is_array($additionalStyles)) {
         foreach ($additionalStyles as $key => $value) {
             $additionalStyles[$key] = new CSSRule($key);
             $additionalStyles[$key]->addValue(array($value));
         }
         $rules = array_merge($rules, $additionalStyles);
     }
     // Generate the style tag if we have any rules
     if (count($rules)) {
         $output = "style='";
         foreach ($rules as $rule) {
             $output .= $rule->__toString();
         }
         $output .= "'";
     }
     return $output;
 }