00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 class Mage_Googleoptimizer_Block_Adminhtml_Catalog_Product_Edit_Tab_Googleoptimizer
00035 extends Mage_Adminhtml_Block_Catalog_Form implements Mage_Adminhtml_Block_Widget_Tab_Interface
00036 {
00037
00038 protected function _prepareForm()
00039 {
00040 $form = new Varien_Data_Form();
00041
00042 $fieldset = $form->addFieldset('googleoptimizer_fields',
00043 array('legend'=>Mage::helper('googleoptimizer')->__('Google Optimizer Scripts'))
00044 );
00045
00046 if ($this->getProduct()->getStoreId() == '0') {
00047 Mage::helper('googleoptimizer')->setStoreId(Mage::app()->getDefaultStoreView());
00048 } else {
00049 Mage::helper('googleoptimizer')->setStoreId($this->getProduct()->getStoreId());
00050 }
00051
00052
00053 $disabledScriptsFields = false;
00054 $values = array();
00055 if ($this->getGoogleOptimizer() && $this->getGoogleOptimizer()->getData()) {
00056 $disabledScriptsFields = true;
00057 $values = $this->getGoogleOptimizer()->getData();
00058 $checkedUseDefault = true;
00059 if ($this->getGoogleOptimizer()->getStoreId() == $this->getProduct()->getStoreId()) {
00060 $checkedUseDefault = false;
00061 $disabledScriptsFields = false;
00062 $fieldset->addField('code_id', 'hidden', array('name' => 'code_id'));
00063 }
00064
00065
00066 if ($this->getProduct()->getStoreId() != '0') {
00067 $fieldset->addField('store_flag', 'checkbox',
00068 array(
00069 'name' => 'store_flag',
00070 'value' => '1',
00071 'label' => Mage::helper('googleoptimizer')->__('Use Default Values'),
00072 'class' => 'checkbox',
00073 'required' => false,
00074 'onchange' => 'googleOptimizerScopeAction()',
00075 )
00076 )->setIsChecked($checkedUseDefault);
00077 }
00078 }
00079
00080 $fieldset->addField('conversion_page', 'select',
00081 array(
00082 'name' => 'conversion_page',
00083 'label' => Mage::helper('googleoptimizer')->__('Conversion Page'),
00084 'values'=> Mage::getModel('googleoptimizer/adminhtml_system_config_source_googleoptimizer_conversionpages')->toOptionArray(),
00085 'class' => 'select googleoptimizer validate-googleoptimizer',
00086 'required' => false,
00087 'onchange' => 'googleOptimizerConversionPageAction(this)'
00088 )
00089 );
00090
00091 if ($this->getProduct()->getStoreId() == '0' && !Mage::app()->isSingleStoreMode()) {
00092 $fieldset->addField('conversion_page_url', 'note',
00093 array(
00094 'name' => 'conversion_page_url',
00095 'label' => Mage::helper('googleoptimizer')->__('Conversion Page URL'),
00096 'text' => Mage::helper('googleoptimizer')->__('Please select store view to see the URL')
00097 )
00098 );
00099 } else {
00100 $fieldset->addField('conversion_page_url', 'text',
00101 array(
00102 'name' => 'conversion_page_url',
00103 'label' => Mage::helper('googleoptimizer')->__('Conversion Page URL'),
00104 'class' => 'input-text',
00105 'readonly' => 'readonly',
00106 'required' => false,
00107 'note' => Mage::helper('googleoptimizer')->__('Please copy and paste this value to experiment edit form')
00108 )
00109 );
00110 }
00111
00112 $fieldset->addField('export_controls', 'text', array('name' => 'export_controls'));
00113
00114 $fieldset->addField('control_script', 'textarea',
00115 array(
00116 'name' => 'control_script',
00117 'label' => Mage::helper('googleoptimizer')->__('Control Script'),
00118 'class' => 'textarea googleoptimizer validate-googleoptimizer',
00119 'required' => false,
00120 )
00121 );
00122 $fieldset->addField('tracking_script', 'textarea',
00123 array(
00124 'name' => 'tracking_script',
00125 'label' => Mage::helper('googleoptimizer')->__('Tracking Script'),
00126 'class' => 'textarea googleoptimizer validate-googleoptimizer',
00127 'required' => false,
00128 )
00129 );
00130 $fieldset->addField('conversion_script', 'textarea',
00131 array(
00132 'name' => 'conversion_script',
00133 'label' => Mage::helper('googleoptimizer')->__('Conversion Script'),
00134 'class' => 'textarea googleoptimizer validate-googleoptimizer',
00135 'required' => false,
00136 )
00137 );
00138
00139 $attributes = Mage::helper('googleoptimizer')->getProductAttributes($this->getProduct());
00140 $fieldset->addField('attributes', 'multiselect',
00141 array(
00142 'name' => 'attributes',
00143 'label' => Mage::helper('googleoptimizer')->__('Attributes'),
00144 'class' => 'googleoptimizer validate-googleoptimizer validate-googleoptimizer-attributes',
00145 'values' => $attributes,
00146 'required' => false,
00147 'onchange' => 'googleOptimizerAttributesCheckAction(this)',
00148 'note' => Mage::helper('googleoptimizer')->__('Limit is 8 attributes only.')
00149 )
00150 );
00151
00152 if (Mage::helper('googleoptimizer')->getConversionPagesUrl()
00153 && $this->getGoogleOptimizer()
00154 && $this->getGoogleOptimizer()->getConversionPage())
00155 {
00156 $form->getElement('conversion_page_url')
00157 ->setValue(Mage::helper('googleoptimizer')
00158 ->getConversionPagesUrl()->getData($this->getGoogleOptimizer()->getConversionPage())
00159 );
00160 }
00161
00162 if ($disabledScriptsFields) {
00163 foreach ($fieldset->getElements() as $element) {
00164 if ($element->getType() == 'textarea' || $element->getType() == 'select') {
00165 $element->setDisabled($disabledScriptsFields);
00166 }
00167 }
00168 $form->getElement('export_controls')->setDisabled($disabledScriptsFields);
00169 }
00170
00171 $fakeEntityAttribute = Mage::getModel('catalog/resource_eav_attribute');
00172
00173 foreach ($fieldset->getElements() as $element) {
00174 if ($element->getId() != 'store_flag') {
00175 $element->setEntityAttribute($fakeEntityAttribute);
00176 }
00177 }
00178
00179 $form->getElement('export_controls')->setRenderer(
00180 $this->getLayout()->createBlock('adminhtml/catalog_form_renderer_googleoptimizer_import')
00181 );
00182
00183 $form->addValues($values);
00184 $form->setFieldNameSuffix('googleoptimizer');
00185 $this->setForm($form);
00186
00187 return parent::_prepareForm();
00188 }
00189
00190 public function getProduct()
00191 {
00192 return Mage::registry('product');
00193 }
00194
00195 public function getGoogleOptimizer()
00196 {
00197 return $this->getProduct()->getGoogleOptimizerScripts();
00198 }
00199
00200 public function getTabLabel()
00201 {
00202 return Mage::helper('googleoptimizer')->__('Product View Optimization');
00203 }
00204
00205 public function getTabTitle()
00206 {
00207 return Mage::helper('googleoptimizer')->__('Product View Optimization');
00208 }
00209
00210 public function canShowTab()
00211 {
00212 if (Mage::helper('googleoptimizer')->isOptimizerActive($this->getProduct()->getStoreId())
00213 && $this->getProduct()->getAttributeSetId())
00214 {
00215 return true;
00216 }
00217 return false;
00218 }
00219
00220 public function isHidden()
00221 {
00222 return false;
00223 }
00224
00225 }