From 0730a4b53eaa027cc93ce7b78054491a46e88955 Mon Sep 17 00:00:00 2001 From: Olle Haerstedt Date: Fri, 2 Oct 2015 15:02:06 +0200 Subject: [PATCH] Dev: Indentation --- .../SettingsWidget/SettingsWidget.php | 908 +++++++++--------- 1 file changed, 453 insertions(+), 455 deletions(-) diff --git a/application/extensions/SettingsWidget/SettingsWidget.php b/application/extensions/SettingsWidget/SettingsWidget.php index e2196a13918..a12e00ebfea 100644 --- a/application/extensions/SettingsWidget/SettingsWidget.php +++ b/application/extensions/SettingsWidget/SettingsWidget.php @@ -1,524 +1,522 @@ form) { - if ($this->form) - { - echo CHtml::beginForm($this->action, $this->method,$this->formHtmlOptions); - } - else - { - $this->fieldHtmlOptions=array_replace($this->formHtmlOptions,$this->fieldHtmlOptions); - } - echo CHtml::openTag('fieldset', array_replace($this->fieldHtmlOptions, array('id' => $this->getId()))); - if (isset($this->title)) - { - echo CHtml::tag('legend', array(), $this->title); - } + echo CHtml::beginForm($this->action, $this->method,$this->formHtmlOptions); + } + else + { + $this->fieldHtmlOptions=array_replace($this->formHtmlOptions,$this->fieldHtmlOptions); + } + echo CHtml::openTag('fieldset', array_replace($this->fieldHtmlOptions, array('id' => $this->getId()))); + if (isset($this->title)) + { + echo CHtml::tag('legend', array(), $this->title); } + } - public function endForm() + public function endForm() + { + echo CHtml::closeTag('fieldset'); + if ($this->form) { - echo CHtml::closeTag('fieldset'); - if ($this->form) - { - echo CHtml::endForm(); - } + echo CHtml::endForm(); } - public function init() { - parent::init(); + } + public function init() { + parent::init(); - // Register assets. - Yii::app()->getClientScript()->registerPackage('jquery'); - Yii::app()->getClientScript()->registerCssFile(App()->getAssetManager()->publish(dirname(__FILE__) . '/assets/settingswidget.css')); - Yii::app()->getClientScript()->registerScriptFile(App()->getAssetManager()->publish(dirname(__FILE__) . '/assets/settingswidget.js')); + // Register assets. + Yii::app()->getClientScript()->registerPackage('jquery'); + Yii::app()->getClientScript()->registerCssFile(App()->getAssetManager()->publish(dirname(__FILE__) . '/assets/settingswidget.css')); + Yii::app()->getClientScript()->registerScriptFile(App()->getAssetManager()->publish(dirname(__FILE__) . '/assets/settingswidget.js')); - // Add default form class. - $this->formHtmlOptions['class'] = isset($this->formHtmlOptions['class']) ? $this->formHtmlOptions['class'] . " settingswidget form-horizontal" : 'settingswidget form-horizontal'; + // Add default form class. + $this->formHtmlOptions['class'] = isset($this->formHtmlOptions['class']) ? $this->formHtmlOptions['class'] . " settingswidget form-horizontal" : 'settingswidget form-horizontal'; - // Start form - $this->beginForm(); - } + // Start form + $this->beginForm(); + } - protected function renderButton($label, $metaData) + protected function renderButton($label, $metaData) + { + //Button can come from 2 system, by pluginSettings>settings>button ot by by pluginSettings>buttons + if (is_string($metaData)) { - //Button can come from 2 system, by pluginSettings>settings>button ot by by pluginSettings>buttons - if (is_string($metaData)) - { - $label = $metaData; - $metaData = array( - 'htmlOptions'=>array(), - ); - } + $label = $metaData; + $metaData = array( + 'htmlOptions'=>array(), + ); + } - $metaData['class'][]='btn'; - if (isset($metaData['type']) && $metaData['type'] == 'link') - { - $metaData['class'][]='btn-link'; - $metaData['class'][]='button'; - } - $htmlOptions = $this->htmlOptions($metaData); + $metaData['class'][]='btn'; + if (isset($metaData['type']) && $metaData['type'] == 'link') + { + $metaData['class'][]='btn-link'; + $metaData['class'][]='button'; + } + $htmlOptions = $this->htmlOptions($metaData); - if (isset($metaData['type']) && $metaData['type'] == 'link') - { - return CHtml::link($label,$metaData['href'],$htmlOptions); // This allow cancel without js - } - elseif(isset($metaData['type'])) - { - $htmlOptions['type']=$metaData['type']; - if(!empty($metaData['name']) && is_string($metaData['name'])) - $htmlOptions['name']=$metaData['name']; - return CHtml::htmlButton($label, $htmlOptions); - } - elseif(isset($htmlOptions['type'])) // Allow type button or cancel in pluginSettings>settings>button - { - return CHtml::htmlButton($label, $htmlOptions); - } - else - { - return CHtml::submitButton($label, $htmlOptions); - } + if (isset($metaData['type']) && $metaData['type'] == 'link') + { + return CHtml::link($label,$metaData['href'],$htmlOptions); // This allow cancel without js + } + elseif(isset($metaData['type'])) + { + $htmlOptions['type']=$metaData['type']; + if(!empty($metaData['name']) && is_string($metaData['name'])) + $htmlOptions['name']=$metaData['name']; + return CHtml::htmlButton($label, $htmlOptions); + } + elseif(isset($htmlOptions['type'])) // Allow type button or cancel in pluginSettings>settings>button + { + return CHtml::htmlButton($label, $htmlOptions); + } + else + { + return CHtml::submitButton($label, $htmlOptions); } + } - protected function renderButtons() + protected function renderButtons() + { + if(!empty($this->buttons)) { - if(!empty($this->buttons)) + $aHtmlButtons=array(); + foreach ($this->buttons as $label => $htmlOptions) { - $aHtmlButtons=array(); - foreach ($this->buttons as $label => $htmlOptions) + if (is_string($htmlOptions)) { - if (is_string($htmlOptions)) - { - $label = $htmlOptions; - $htmlOptions=array( - 'htmlOptions'=>array() - ); - } - $aHtmlButtons[]= $this->renderButton($label, $htmlOptions); + $label = $htmlOptions; + $htmlOptions=array( + 'htmlOptions'=>array() + ); } - echo CHtml::tag('div', array('class' => 'buttons control-group'),implode($aHtmlButtons)); + $aHtmlButtons[]= $this->renderButton($label, $htmlOptions); } + echo CHtml::tag('div', array('class' => 'buttons control-group'),implode($aHtmlButtons)); } + } - protected function renderSetting($name, $metaData, $form = null, $return = false,$wrapper='div') + protected function renderSetting($name, $metaData, $form = null, $return = false,$wrapper='div') + { + // No type : invalid setting + if(!isset($metaData['type'])) + return ""; + // Fix $metaData + $metaData=$this->fixMetaData($name, $metaData); + // Fix $name + if (isset($this->prefix)) { - // No type : invalid setting - if(!isset($metaData['type'])) - return ""; - // Fix $metaData - $metaData=$this->fixMetaData($name, $metaData); - // Fix $name - if (isset($this->prefix)) - { - $name = "{$this->prefix}[$name]"; - } - if ($metaData['localized']) - { - $name = "{$name}[{$metaData['language']}]"; - } - // Find function - $function = "render{$metaData['type']}"; - - // Construct the content - // The labels - $content = $this->renderLabel($name, $metaData); - // The control - $content .= CHtml::openTag('div',$metaData['controlOptions']); - // The input - $content .= $this->$function($name, $metaData, $form); - // The help - $content .= $this->renderHelp($name, $metaData); - $content .= CHtml::closeTag('div'); - - $result=CHtml::tag($wrapper,array('class'=>"setting control-group setting-{$metaData['type']}", 'data-name' => $name),$content); - - if($return) - return $result; - else - echo $result; + $name = "{$this->prefix}[$name]"; } - - protected function renderSettings() + if ($metaData['localized']) { - echo CHtml::openTag('ul',array('class'=>"settings-list")); - foreach($this->settings as $name => $metaData) - { - $this->renderSetting($name, $metaData, null, false,'li'); - } - echo CHtml::closeTag('ul'); + $name = "{$name}[{$metaData['language']}]"; } + // Find function + $function = "render{$metaData['type']}"; + + // Construct the content + // The labels + $content = $this->renderLabel($name, $metaData); + // The control + $content .= CHtml::openTag('div',$metaData['controlOptions']); + // The input + $content .= $this->$function($name, $metaData, $form); + // The help + $content .= $this->renderHelp($name, $metaData); + $content .= CHtml::closeTag('div'); + + $result=CHtml::tag($wrapper,array('class'=>"setting control-group setting-{$metaData['type']}", 'data-name' => $name),$content); + + if($return) + return $result; + else + echo $result; + } - - - public function run() { - parent::run(); - - // Render settings - $this->renderSettings(); - // Render buttons - $this->renderButtons(); - // End form - $this->endForm(); + protected function renderSettings() + { + echo CHtml::openTag('ul',array('class'=>"settings-list")); + foreach($this->settings as $name => $metaData) + { + $this->renderSetting($name, $metaData, null, false,'li'); } + echo CHtml::closeTag('ul'); + } - /** - * fix metaData for a setting : set default etc. - * - */ - public function fixMetaData($name,$metaData){ - $defaults = array( - 'class' => array(), - 'htmlOptions'=>array(), - 'type' => 'string', - 'htmlOptions' => array(), - 'labelOptions' => array( // html option for the control-label part (not the label, but the wrapper) - 'class' => "default" - ), - 'help'=> null, - 'controlOptions'=> array(// html option for the control-option part (wrapper of input(s)) - 'class' => "default" - ), - 'localized'=>false, - ); - $metaData = array_merge($defaults, $metaData); + public function run() { + parent::run(); - // col-sm-X is here for bootsrap 3 when ready - $metaData['labelOptions']['class'].=" control-label col-sm-5"; - // Set the witdth of control-option according to existence of label - if(!isset($metaData['label'])) - $metaData['controlOptions']['class'].=" col-sm-12"; - else - $metaData['controlOptions']['class'].=" col-sm-7"; - $metaData['controlOptions']['class'].=" controls"; + // Render settings + $this->renderSettings(); + // Render buttons + $this->renderButtons(); + // End form + $this->endForm(); + } - if (is_string($metaData['class'])) + + /** + * fix metaData for a setting : set default etc. + * + */ + public function fixMetaData($name,$metaData){ + + $defaults = array( + 'class' => array(), + 'htmlOptions'=>array(), + 'type' => 'string', + 'htmlOptions' => array(), + 'labelOptions' => array( // html option for the control-label part (not the label, but the wrapper) + 'class' => "default" + ), + 'help'=> null, + 'controlOptions'=> array(// html option for the control-option part (wrapper of input(s)) + 'class' => "default" + ), + 'localized'=>false, + ); + $metaData = array_merge($defaults, $metaData); + + // col-sm-X is here for bootsrap 3 when ready + $metaData['labelOptions']['class'].=" control-label col-sm-5"; + // Set the witdth of control-option according to existence of label + if(!isset($metaData['label'])) + $metaData['controlOptions']['class'].=" col-sm-12"; + else + $metaData['controlOptions']['class'].=" col-sm-7"; + $metaData['controlOptions']['class'].=" controls"; + + if (is_string($metaData['class'])) + { + $metaData['class'] = array($metaData['class']); + } + // Handle localization. + if ($metaData['localized']) + { + $name = "{$name}[{$metaData['language']}]"; + if (isset($metaData['current']) && is_array($metaData['current']) && isset($metaData['current'][$metaData['language']])) { - $metaData['class'] = array($metaData['class']); + $metaData['current'] = $metaData['current'][$metaData['language']]; } - // Handle localization. - if ($metaData['localized']) + else { - $name = "{$name}[{$metaData['language']}]"; - if (isset($metaData['current']) && is_array($metaData['current']) && isset($metaData['current'][$metaData['language']])) - { - $metaData['current'] = $metaData['current'][$metaData['language']]; - } - else - { - unset($metaData['current']); - } + unset($metaData['current']); } + } - // Handle styles - if (isset($metaData['style']) && is_array($metaData['style'])) + // Handle styles + if (isset($metaData['style']) && is_array($metaData['style'])) + { + $style = ''; + foreach($metaData['style'] as $key => $value) { - $style = ''; - foreach($metaData['style'] as $key => $value) - { - $style .= "$key : $value;"; - } - $metaData['style'] = $style; + $style .= "$key : $value;"; } - return $metaData; - } - /** - * render label according to type and $metaData['label'] - * - */ - public function renderLabel($name,$metaData){ - if(!isset($metaData['label'])) - return ""; - if(!in_array($metaData['type'],array('list','boolean','logo','link','info'))) - return CHtml::label($metaData['label'], $name, $metaData['labelOptions']); - else - return CHtml::tag('div',$metaData['labelOptions'], $metaData['label']); - } - /** - * render help/desscription according to type and $metaData['help'] - * - */ - public function renderHelp($name,$metaData){ - if(!is_string($metaData['help'])) - return ""; - return CHtml::tag('div', array('class' => 'help-block'),$metaData['help']);// p is more clean but have class in adminstyle + $metaData['style'] = $style; } + return $metaData; + } + /** + * render label according to type and $metaData['label'] + * + */ + public function renderLabel($name,$metaData){ + if(!isset($metaData['label'])) + return ""; + if(!in_array($metaData['type'],array('list','boolean','logo','link','info'))) + return CHtml::label($metaData['label'], $name, $metaData['labelOptions']); + else + return CHtml::tag('div',$metaData['labelOptions'], $metaData['label']); + } + /** + * render help/desscription according to type and $metaData['help'] + * + */ + public function renderHelp($name,$metaData){ + if(!is_string($metaData['help'])) + return ""; + return CHtml::tag('div', array('class' => 'help-block'),$metaData['help']);// p is more clean but have class in adminstyle + } - /*********************************************************************** - * Settings renderers. - **********************************************************************/ + /*********************************************************************** + * Settings renderers. + **********************************************************************/ - public function renderBoolean($name, array $metaData, $form = null) - { - $htmlOptions = $this->htmlOptions($metaData,$form,array('container'=> false, 'separator' => '')); - $value = isset($metaData['current']) ? $metaData['current'] : ''; - return CHtml::radioButtonList($name, $value, array( - 0 => 'False', - 1 => 'True' - ), $htmlOptions); - } + public function renderBoolean($name, array $metaData, $form = null) + { + $htmlOptions = $this->htmlOptions($metaData,$form,array('container'=> false, 'separator' => '')); + $value = isset($metaData['current']) ? $metaData['current'] : ''; + return CHtml::radioButtonList($name, $value, array( + 0 => 'False', + 1 => 'True' + ), $htmlOptions); + } - public function renderCheckbox($name, array $metaData, $form = null) - { + public function renderCheckbox($name, array $metaData, $form = null) + { - $htmlOptions = $this->htmlOptions($metaData,$form); - $value = isset($metaData['current']) ? (bool) $metaData['current'] : false; - return CHtml::checkBox($name, $value,$htmlOptions); - } + $htmlOptions = $this->htmlOptions($metaData,$form); + $value = isset($metaData['current']) ? (bool) $metaData['current'] : false; + return CHtml::checkBox($name, $value,$htmlOptions); + } - public function renderFloat($name, array $metaData, $form = null) - { - $htmlOptions = $this->htmlOptions($metaData,$form,array('step'=>'any'));// step can be replaced by plugin developer - $value = isset($metaData['current']) ? $metaData['current'] : ''; - return CHtml::numberField($name, $value, $htmlOptions); - } + public function renderFloat($name, array $metaData, $form = null) + { + $htmlOptions = $this->htmlOptions($metaData,$form,array('step'=>'any'));// step can be replaced by plugin developer + $value = isset($metaData['current']) ? $metaData['current'] : ''; + return CHtml::numberField($name, $value, $htmlOptions); + } - public function renderHtml($name, array $metaData, $form = null) - { - $value = isset($metaData['current']) ? $metaData['current'] : ''; - $metaData['class'][] = 'htmleditor'; - $htmlOptions = $this->htmlOptions($metaData,$form); - $editorOptions = array_merge(array( - 'html' => true, - ), isset($metaData['editorOptions']) ? $metaData['editorOptions'] : array()); - return Chtml::tag('div', $htmlOptions, - $this->widget('bootstrap.widgets.TbHtml5Editor', array( - 'name' => $name, - 'value' => $value, - 'width' => '100%', - 'editorOptions' => $editorOptions, - ), true) - ); - } - - public function renderInfo($name, array $metaData, $form = null) - { - $value = isset($metaData['content']) ? $metaData['content'] : ''; - if (is_array($value)) { throw new CException('wrong type' . $name); } - $htmlOptions = $this->htmlOptions($metaData); - return Chtml::tag('div',$htmlOptions,$value); - } + public function renderHtml($name, array $metaData, $form = null) + { + $value = isset($metaData['current']) ? $metaData['current'] : ''; + $metaData['class'][] = 'htmleditor'; + $htmlOptions = $this->htmlOptions($metaData,$form); + $editorOptions = array_merge(array( + 'html' => true, + ), isset($metaData['editorOptions']) ? $metaData['editorOptions'] : array()); + return Chtml::tag('div', $htmlOptions, + $this->widget('bootstrap.widgets.TbHtml5Editor', array( + 'name' => $name, + 'value' => $value, + 'width' => '100%', + 'editorOptions' => $editorOptions, + ), true) + ); + } - public function renderInt($name, array $metaData, $form = null) - { - $value = isset($metaData['current']) ? $metaData['current'] : ''; - if (is_array($value)) { throw new CException('wrong type' . $name); } - $htmlOptions = $this->htmlOptions($metaData,$form,array('step'=> 1,'pattern' => '\d+')); - return CHtml::numberField($name, $value, $htmlOptions); - } + public function renderInfo($name, array $metaData, $form = null) + { + $value = isset($metaData['content']) ? $metaData['content'] : ''; + if (is_array($value)) { throw new CException('wrong type' . $name); } + $htmlOptions = $this->htmlOptions($metaData); + return Chtml::tag('div',$htmlOptions,$value); + } - public function renderJson($name, array $metaData, $form = null) - { - $value = isset($metaData['current']) ? $metaData['current'] : ''; - $metaData['class'][] = 'jsoneditor-wrapper'; - $htmlOptions = array_merge($metaData['htmlOptions'],array('class'=>implode(' ',$metaData['class']))); - $htmlOptions = $this->htmlOptions($metaData,$form); - $editorOptions = array_merge(array( - 'mode' => 'form', - 'modes' => array('form', 'code', 'tree', 'text') - ), isset($metaData['editorOptions']) ? $metaData['editorOptions'] : array()); - return $this->widget('ext.yii-jsoneditor.JsonEditor', array( - 'name' => $name, - 'value' => $value, - 'editorOptions' => $editorOptions - ), true); - } + public function renderInt($name, array $metaData, $form = null) + { + $value = isset($metaData['current']) ? $metaData['current'] : ''; + if (is_array($value)) { throw new CException('wrong type' . $name); } + $htmlOptions = $this->htmlOptions($metaData,$form,array('step'=> 1,'pattern' => '\d+')); + return CHtml::numberField($name, $value, $htmlOptions); + } - public function renderLogo($name, array $metaData, $form = null) - { - $alt=isset($metaData['alt']) ? $metaData['alt'] : ''; - $htmlOptions = $this->htmlOptions($metaData); - return CHtml::image($metaData['path'],$alt,$htmlOptions); - } - - public function renderRadio($name, array $metaData, $form = null) - { - $value = isset($metaData['current']) ? $metaData['current'] : (isset($metaData['default']) ? $metaData['default'] : null); - $htmlOptions = $this->htmlOptions($metaData,$form); - return CHtml::radioButtonList($name, $value, $metaData['options'],$htmlOptions); - } - - public function renderRelevance($name, array $metaData, $form = null) - { - $metaData['class'][] = 'relevance'; - $htmlOptions = $this->htmlOptions($metaData,$form); - $value = isset($metaData['current']) ? $metaData['current'] : ''; - return CHtml::textArea($name, $value, $htmlOptions); + public function renderJson($name, array $metaData, $form = null) + { + $value = isset($metaData['current']) ? $metaData['current'] : ''; + $metaData['class'][] = 'jsoneditor-wrapper'; + $htmlOptions = array_merge($metaData['htmlOptions'],array('class'=>implode(' ',$metaData['class']))); + $htmlOptions = $this->htmlOptions($metaData,$form); + $editorOptions = array_merge(array( + 'mode' => 'form', + 'modes' => array('form', 'code', 'tree', 'text') + ), isset($metaData['editorOptions']) ? $metaData['editorOptions'] : array()); + return $this->widget('ext.yii-jsoneditor.JsonEditor', array( + 'name' => $name, + 'value' => $value, + 'editorOptions' => $editorOptions + ), true); + } + + public function renderLogo($name, array $metaData, $form = null) + { + $alt=isset($metaData['alt']) ? $metaData['alt'] : ''; + $htmlOptions = $this->htmlOptions($metaData); + return CHtml::image($metaData['path'],$alt,$htmlOptions); + } + + public function renderRadio($name, array $metaData, $form = null) + { + $value = isset($metaData['current']) ? $metaData['current'] : (isset($metaData['default']) ? $metaData['default'] : null); + $htmlOptions = $this->htmlOptions($metaData,$form); + return CHtml::radioButtonList($name, $value, $metaData['options'],$htmlOptions); + } + + public function renderRelevance($name, array $metaData, $form = null) + { + $metaData['class'][] = 'relevance'; + $htmlOptions = $this->htmlOptions($metaData,$form); + $value = isset($metaData['current']) ? $metaData['current'] : ''; + return CHtml::textArea($name, $value, $htmlOptions); + } + + public function renderSelect($name, array $metaData, $form = null) + { + $value = isset($metaData['current']) ? $metaData['current'] : (isset($metaData['default']) ? $metaData['default'] : null); + $htmlOptions = $this->htmlOptions($metaData,$form); + $select2Options=array_merge( + array( + 'minimumResultsForSearch' => 1000, + 'dropdownAutoWidth'=> true, + 'width' => "js: function(){ return Math.max.apply(null, $(this.element).find('option').map(function() { return $(this).text().length; }))+'em' }", + ),(isset($metaData['selectOptions']) ? $metaData['selectOptions'] : array()) + ); + $properties = array( + 'data' => $metaData['options'], + 'name' => $name, + 'value' => $value, + 'options' => $select2Options, + 'htmlOptions'=>$htmlOptions, + ); + $properties['events']=isset($metaData['events']) ? $metaData['events'] : array(); + // allow to submit the form when this element changes + if (isset($metaData['submitonchange']) && $metaData['submitonchange']) { + $properties['events']['change']='js: function(e) { this.form.submit();}'; } + //return App()->getController()->widget('ext.bootstrap.widgets.TbSelect2', $properties, true); - public function renderSelect($name, array $metaData, $form = null) - { - $value = isset($metaData['current']) ? $metaData['current'] : (isset($metaData['default']) ? $metaData['default'] : null); - $htmlOptions = $this->htmlOptions($metaData,$form); - $select2Options=array_merge( - array( - 'minimumResultsForSearch' => 1000, - 'dropdownAutoWidth'=> true, - 'width' => "js: function(){ return Math.max.apply(null, $(this.element).find('option').map(function() { return $(this).text().length; }))+'em' }", - ),(isset($metaData['selectOptions']) ? $metaData['selectOptions'] : array()) - ); - $properties = array( - 'data' => $metaData['options'], - 'name' => $name, + return App()->getController()->widget('yiiwheels.widgets.select2.WhSelect2', array( + 'name' => $name, + 'data' => $metaData['options'], + 'pluginOptions' => array( 'value' => $value, - 'options' => $select2Options, - 'htmlOptions'=>$htmlOptions, - ); - $properties['events']=isset($metaData['events']) ? $metaData['events'] : array(); - // allow to submit the form when this element changes - if (isset($metaData['submitonchange']) && $metaData['submitonchange']) { - $properties['events']['change']='js: function(e) { this.form.submit();}'; - } - //return App()->getController()->widget('ext.bootstrap.widgets.TbSelect2', $properties, true); - - return App()->getController()->widget('yiiwheels.widgets.select2.WhSelect2', array( - 'name' => $name, - 'data' => $metaData['options'], - 'pluginOptions' => array( - 'value' => $value, - - 'options' => $select2Options, - ), - - 'htmlOptions' => $htmlOptions - ), true); - } - public function renderString($name, array $metaData, $form = null) - { - $value = isset($metaData['current']) ? $metaData['current'] : ''; - $htmlOptions = $this->htmlOptions($metaData,$form,array('size'=>50)); - return CHtml::textField($name, $value, $htmlOptions); - } + 'options' => $select2Options, + ), - public function renderEmail($name, array $metaData, $form = null) - { - $value = isset($metaData['current']) ? $metaData['current'] : ''; - $htmlOptions = $this->htmlOptions($metaData,$form,array('size'=>50)); - return CHtml::emailField($name, $value, $htmlOptions); - } + 'htmlOptions' => $htmlOptions + ), true); + } - public function renderText($name, array $metaData, $form = null) - { - $value = isset($metaData['current']) ? $metaData['current'] : ''; - $htmlOptions = $this->htmlOptions($metaData,$form); - return CHtml::textArea($name, $value, $htmlOptions); - } + public function renderString($name, array $metaData, $form = null) + { + $value = isset($metaData['current']) ? $metaData['current'] : ''; + $htmlOptions = $this->htmlOptions($metaData,$form,array('size'=>50)); + return CHtml::textField($name, $value, $htmlOptions); + } - public function renderPassword($name, array $metaData, $form = null) - { - $value = isset($metaData['current']) ? $metaData['current'] : ''; - $htmlOptions = $this->htmlOptions($metaData,$form,array('autocomplete'=>'off','size'=>50)); - return CHtml::passwordField($name,$value,$htmlOptions); - } + public function renderEmail($name, array $metaData, $form = null) + { + $value = isset($metaData['current']) ? $metaData['current'] : ''; + $htmlOptions = $this->htmlOptions($metaData,$form,array('size'=>50)); + return CHtml::emailField($name, $value, $htmlOptions); + } - public function renderLink($name, array $metaData, $form = null) + public function renderText($name, array $metaData, $form = null) + { + $value = isset($metaData['current']) ? $metaData['current'] : ''; + $htmlOptions = $this->htmlOptions($metaData,$form); + return CHtml::textArea($name, $value, $htmlOptions); + } + + public function renderPassword($name, array $metaData, $form = null) + { + $value = isset($metaData['current']) ? $metaData['current'] : ''; + $htmlOptions = $this->htmlOptions($metaData,$form,array('autocomplete'=>'off','size'=>50)); + return CHtml::passwordField($name,$value,$htmlOptions); + } + + public function renderLink($name, array $metaData, $form = null) + { + $metaData['class'][] = 'btn btn-link'; + $metaData['text']=isset($metaData['text'])?$metaData['text']:$metaData['label']; + $htmlOptions = $this->htmlOptions($metaData,$form,array('id' => $name)); + return CHtml::link($metaData['text'], $metaData['link'], $htmlOptions); + } + + public function renderList($name, array $metaData, $form = null) + { + $out = ''; + $id = $name; + $headers = ''; + $cells = ''; + foreach ($metaData['items'] as $itemName => $itemMetaData) { - $metaData['class'][] = 'btn btn-link'; - $metaData['text']=isset($metaData['text'])?$metaData['text']:$metaData['label']; - $htmlOptions = $this->htmlOptions($metaData,$form,array('id' => $name)); - return CHtml::link($metaData['text'], $metaData['link'], $htmlOptions); + $headers .= CHtml::tag('th', array(), $itemMetaData['label']); + //$itemMetaData['title']=$itemMetaData['label']; + unset($itemMetaData['label']); + $itemMetaData['controlOptions']['class']=(isset($itemMetaData['controlOptions']['class']))?$itemMetaData['controlOptions']['class']:'default'; + //$cells .= CHtml::tag('td', array(), $this->renderSetting($itemName . '[]', $itemMetaData, $form, true,false)); + // TODO $itemMetaData['htmlOtions']['id']=$itemName.$key or something like this + $cells .= $this->renderSetting($itemName . '[]', $itemMetaData, $form, true,'td'); } + $headers .= CHtml::tag('th'); + $cells .= CHtml::tag('td', array(), $this->widget('bootstrap.widgets.TbButtonGroup', array( + 'type' => 'link', + 'buttons' => array( + array('icon' => 'icon-minus', 'htmlOptions' => array('class' => 'remove')), + array('icon' => 'icon-plus', 'htmlOptions' => array('class' => 'add')), + ) + + ), true)); + $out .= CHtml::openTag('table',array('class'=>'settings activecell')); + // Create header row. + $out .= CHtml::openTag('thead'); + $out .= CHtml::openTag('tr'); + $out .= $headers; + $out .= CHtml::closeTag('tr'); + $out .= CHtml::closeTag('thead'); + // Create cells. + $out .= CHtml::openTag('tbody'); + $out .= CHtml::openTag('tr'); + $out .= $cells; + $out .= CHtml::closeTag('tr'); + $out .= CHtml::closeTag('tbody'); + $out .= CHtml::closeTag('table'); + + return $out; + } + + /* Return htmlOptions for an input od seting + * + * @param array metaData : completMetaData of setting + * @param string form form to be used + * @param array aDefault default htmlOptions to use + * @param array aForced forced htmlOptions to use + */ + public function htmlOptions(array $metaData, $form = null,array $aDefault = array(),array $aForced = array()) + { - public function renderList($name, array $metaData, $form = null) + if(isset($metaData['htmlOptions']) && is_array($metaData['htmlOptions'])) { - $out = ''; - $id = $name; - $headers = ''; - $cells = ''; - foreach ($metaData['items'] as $itemName => $itemMetaData) - { - $headers .= CHtml::tag('th', array(), $itemMetaData['label']); - //$itemMetaData['title']=$itemMetaData['label']; - unset($itemMetaData['label']); - $itemMetaData['controlOptions']['class']=(isset($itemMetaData['controlOptions']['class']))?$itemMetaData['controlOptions']['class']:'default'; - //$cells .= CHtml::tag('td', array(), $this->renderSetting($itemName . '[]', $itemMetaData, $form, true,false)); - // TODO $itemMetaData['htmlOtions']['id']=$itemName.$key or something like this - $cells .= $this->renderSetting($itemName . '[]', $itemMetaData, $form, true,'td'); - } - $headers .= CHtml::tag('th'); - $cells .= CHtml::tag('td', array(), $this->widget('bootstrap.widgets.TbButtonGroup', array( - 'type' => 'link', - 'buttons' => array( - array('icon' => 'icon-minus', 'htmlOptions' => array('class' => 'remove')), - array('icon' => 'icon-plus', 'htmlOptions' => array('class' => 'add')), - ) - - ), true)); - $out .= CHtml::openTag('table',array('class'=>'settings activecell')); - // Create header row. - $out .= CHtml::openTag('thead'); - $out .= CHtml::openTag('tr'); - $out .= $headers; - $out .= CHtml::closeTag('tr'); - $out .= CHtml::closeTag('thead'); - // Create cells. - $out .= CHtml::openTag('tbody'); - $out .= CHtml::openTag('tr'); - $out .= $cells; - $out .= CHtml::closeTag('tr'); - $out .= CHtml::closeTag('tbody'); - $out .= CHtml::closeTag('table'); - - return $out; + $htmlOptions=$metaData['htmlOptions']; } - - /* Return htmlOptions for an input od seting - * - * @param array metaData : completMetaData of setting - * @param string form form to be used - * @param array aDefault default htmlOptions to use - * @param array aForced forced htmlOptions to use - */ - public function htmlOptions(array $metaData, $form = null,array $aDefault = array(),array $aForced = array()) + else { - - if(isset($metaData['htmlOptions']) && is_array($metaData['htmlOptions'])) - { - $htmlOptions=$metaData['htmlOptions']; - } - else - { - $htmlOptions=array(); - } - // If metadata have a class, replace actual class - if(!empty($metaData['class']) && is_array($metaData['class'])) - $htmlOptions['class']=implode(' ',$metaData['class']); - // If metadata have style, replace actual style - if(!empty($metaData['style']) && is_string($metaData['style'])) - $htmlOptions['style']=$metaData['style']; - if (isset($metaData['readOnly'])) - $metaData['htmlOptions']["readonly"]= $metaData['readOnly']; - - return array_merge(array('form'=>$form),$aDefault,$htmlOptions,$aForced); + $htmlOptions=array(); } + // If metadata have a class, replace actual class + if(!empty($metaData['class']) && is_array($metaData['class'])) + $htmlOptions['class']=implode(' ',$metaData['class']); + // If metadata have style, replace actual style + if(!empty($metaData['style']) && is_string($metaData['style'])) + $htmlOptions['style']=$metaData['style']; + if (isset($metaData['readOnly'])) + $metaData['htmlOptions']["readonly"]= $metaData['readOnly']; + + return array_merge(array('form'=>$form),$aDefault,$htmlOptions,$aForced); } - -?> +}