/**
  * Sets up the form.
  * 
  * Alternatively you may use load_{instantiated class name} method.
  */
 public function load($oAdminWidget)
 {
     $_oOption = AmazonAutoLinks_Option::getInstance();
     $_bAPIConnected = $_oOption->isAPIConnected();
     if (!$_bAPIConnected) {
         $this->addSettingField(array('field_id' => '_message_dummy_id', 'type' => '_message', 'description' => array(sprintf(__('Please set up API keys first from <a href="%1$s">this page</a>.', 'amazon-auto-links'), AmazonAutoLinks_PluginUtility::getAPIAuthenticationPageURL())), 'attributes' => array('name' => '')));
         return;
     }
     $_aClasses = array('AmazonAutoLinks_FormFields_Widget_ContxtualProduct', 'AmazonAutoLinks_FormFields_Unit_CommonAdvanced', 'AmazonAutoLinks_FormFields_Button_Selector', 'AmazonAutoLinks_FormFields_Unit_Cache', 'AmazonAutoLinks_FormFields_Unit_Template', 'AmazonAutoLinks_FormFields_Widget_Visibility');
     $this->_addFieldsByFieldClass($_aClasses);
     // Product filters
     $this->addSettingSections(array('title' => __('Product Filters', 'amazon-auto-links'), 'section_id' => 'product_filters', 'collapsible' => array('collapsed' => true, 'type' => 'button', 'container' => 'section')));
     // Set the target section.
     $this->addSettingFields('product_filters');
     // Add fields
     $this->_addFieldsByFieldClass(array('AmazonAutoLinks_FormFields_ProductFilter', 'AmazonAutoLinks_FormFields_ProductFilter_Image'));
 }
 /**
  * Returns field definition arrays.
  * 
  * Pass an empty string to the parameter for meta box options. 
  * 
  * @return      array
  */
 public function get($sFieldIDPrefix = '', $sUnitType = 'category')
 {
     $_oOption = $this->oOption;
     $_bAPIConnected = $this->oOption->isAPIConnected();
     $_sDel = $_bAPIConnected ? '' : "delete-line";
     $_iMaxCol = $this->oOption->getMaxSupportedColumnNumber();
     $_aItemFormat = AmazonAutoLinks_UnitOption_Base::getDefaultItemFormat();
     $_aFields = array(array('field_id' => $sFieldIDPrefix . 'template_id', 'type' => 'select', 'title' => __('Template Name', 'amazon-auto-links'), 'tip' => __('Sets a default template for this unit.', 'amazon-auto-links'), 'label' => $this->oTemplateOption->getActiveTemplateLabels(), 'default' => $this->oTemplateOption->getDefaultTemplateIDByUnitType($sUnitType)), array('field_id' => $sFieldIDPrefix . 'column', 'title' => __('Number of Columns', 'amazon-auto-links'), 'type' => 'number', 'attributes' => array('class' => $_iMaxCol > 1 ? '' : 'disabled', 'disabled' => $_iMaxCol > 1 ? null : 'disabled', 'max' => $_iMaxCol), 'after_input' => "<div style='margin:auto; width:100%; clear: both;'><img src='" . AmazonAutoLinks_Registry::getPluginURL('asset/image/columns.gif') . "' title='" . __('The number of columns', 'amazon-auto-links') . "' style='width:220px; margin-top: 8px;' /></div>", 'tip' => __('This option requires a column supported template to be activated.'), 'description' => $_iMaxCol > 1 ? '' : ' ' . sprintf(__('Get one <a href="%1$s" target="_blank">here</a>!'), 'http://en.michaeluno.jp/amazon-auto-links-pro/'), 'default' => 4, 'delimiter' => ''), array('field_id' => $sFieldIDPrefix . 'item_format', 'type' => 'textarea', 'title' => __('Item Format', 'amazon-auto-links'), 'attributes' => array('class' => $_oOption->isAdvancedAllowed() ? '' : 'read-only', 'readonly' => $_oOption->isAdvancedAllowed() ? null : 'raedonly', 'rows' => 6, 'style' => 'width: 96%'), 'default' => $_aItemFormat['item_format'], 'description' => __('Sets the layout of the product. The following variables are available.', 'amazon-auto-links') . '<br />' . "<code>%href%</code> - " . __('product link url', 'amazon-auto-links') . '<br />' . "<code>%title%</code> - " . __('title with HTML tags defined in the Title Format option', 'amazon-auto-links') . '<br />' . "<code>%title_text%</code> - " . __('title without HTML tags', 'amazon-auto-links') . '<br />' . "<code>%image%</code> - " . __('thumbnail with HTML tags defined in the Image Format option', 'amazon-auto-links') . '<br />' . "<code class='{$_sDel}'>%image_set%</code> - " . __('sub-images.', 'amazon-auto-links') . '<br />' . "<code>%description%</code> - " . __('description with HTML tags', 'amazon-auto-links') . '<br />' . "<code>%description_text%</code> - " . __('description without HTML tags', 'amazon-auto-links') . '<br />' . "<code class='{$_sDel}'>%price%</code> - " . __('product price.', 'amazon-auto-links') . '<br />' . "<code class='{$_sDel}'>%rating%</code> - " . __('user rating.', 'amazon-auto-links') . '<br />' . "<code class='{$_sDel}'>%review%</code> - " . __('customer review.', 'amazon-auto-links') . '<br />' . "<code>%button%</code> - " . __('store link button.', 'amazon-auto-links') . '<br />' . "<code>%disclaimer%</code> - " . __('disclaimer for the product information.', 'amazon-auto-links') . '<br />' . ($_bAPIConnected ? null : sprintf('* <span class="warning">' . __('Some items need <a href="%1$s">API</a> to be set up.', 'amazon-auto-links') . "</span>", AmazonAutoLinks_PluginUtility::getAPIAuthenticationPageURL()))), array('field_id' => $sFieldIDPrefix . 'title_format', 'title' => __('Title Format', 'amazon-auto-links'), 'type' => 'textarea', 'default' => $_aItemFormat['title_format'], 'attributes' => array('rows' => 6, 'class' => $_oOption->isAdvancedAllowed() ? '' : 'read-only', 'readonly' => $_oOption->isAdvancedAllowed() ? null : 'readonly', 'style' => 'width: 96%'), 'description' => __('Sets the layout of the title.', 'amazon-auto-links') . '<br />' . '<code>%href%</code> - ' . __('product link url', 'amazon-auto-links') . '<br />' . '<code>%title_text%</code> - ' . __('title', 'amazon-auto-links') . '<br />' . '<code>%description_text%</code> - ' . __('description without HTML tags', 'amazon-auto-links')), array('field_id' => $sFieldIDPrefix . 'image_format', 'title' => __('Image Format', 'amazon-auto-links'), 'type' => 'textarea', 'attributes' => array('rows' => 6, 'class' => $_oOption->isAdvancedAllowed() ? '' : 'read-only', 'readonly' => $_oOption->isAdvancedAllowed() ? null : 'readonly', 'style' => 'width: 96%'), 'default' => $_aItemFormat['image_format'], 'description' => __('Sets the layout of the image.', 'amazon-auto-links') . '<br />' . '<code>%href%</code> - ' . __('product link url', 'amazon-auto-links') . '<br />' . '<code>%title_text%</code> - ' . __('title', 'amazon-auto-links') . '<br />' . '<code>%src%</code> - ' . __('image url', 'amazon-auto-links') . '<br />' . '<code>%max_width%</code> - ' . __('image size', 'amazon-auto-links') . '<br />' . '<code>%description_text%</code> - ' . __('description without HTML tags', 'amazon-auto-links')));
     // Insert common field arguments.
     $_bIsDisabled = !$_oOption->isAdvancedAllowed();
     if (!$_bIsDisabled) {
         return $_aFields;
     }
     $_sOpeningTag = $_bIsDisabled ? "<div class='upgrade-to-pro' style='margin:0; padding:0; display: inline-block;' title='" . __('Please consider upgrading to Pro to use this feature!', 'amazon-auto-links') . "'>" : "";
     $_sClosingTag = $_bIsDisabled ? "</div>" : "";
     foreach ($_aFields as &$_aField) {
         if ($sFieldIDPrefix . 'template_id' === $_aField['field_id']) {
             continue;
         }
         $_aField = array('before_fieldset' => $_sOpeningTag, 'after_fieldset' => $_sClosingTag) + $_aField;
     }
     return $_aFields;
 }