Beispiel #1
0
 function store($new = false)
 {
     if (hikashop_getCID('user_id') != hikashop_loadUser()) {
         return false;
     }
     $app = JFactory::getApplication();
     $class = hikashop_get('class.user');
     $class->fields_whitelist = array('user_id', 'user_partner_activated', 'user_partner_email');
     $config =& hikashop_config();
     if ($config->get('allow_currency_selection')) {
         $class->fields_whitelist[] = 'user_currency_id';
     }
     $status = $class->saveForm();
     if ($status) {
         if (!HIKASHOP_J30) {
             $app->enqueueMessage(JText::_('HIKASHOP_SUCC_SAVED'), 'success');
         } else {
             $app->enqueueMessage(JText::_('HIKASHOP_SUCC_SAVED'));
         }
         if (!$new) {
             JRequest::setVar('cid', $status);
         } else {
             JRequest::setVar('cid', 0);
         }
         JRequest::setVar('fail', null);
     } else {
         $app->enqueueMessage(JText::_('ERROR_SAVING'), 'error');
         if (!empty($class->errors)) {
             foreach ($class->errors as $oneError) {
                 $app->enqueueMessage($oneError, 'error');
             }
         }
     }
     return $status;
 }
Beispiel #2
0
 static function createCoupon($code, $card, $discountCurrencyId)
 {
     if (empty($code)) {
         return false;
     }
     $created = new JDate($card->created);
     $created = $created->toUnix();
     $expires = new JDate($card->expires);
     $expires = $expires->toUnix();
     $class = hikashop_get('class.discount');
     $discount = new stdClass();
     $discount->discount_id = hikashop_getCID('discount_id');
     $discount->discount_start = $created;
     $discount->discount_end = $expires;
     $discount->discount_code = $code;
     $discount->discount_type = 'coupon';
     $discount->discount_flat_amount = $card->amount_available;
     $discount->discount_minimum_order = $card->min_amount_total;
     $discount->discount_quota = 0;
     $discount->discount_used_times = 0;
     $discount->discount_published = 1;
     $discount->discount_currency_id = $discountCurrencyId;
     $discount->discount_category_childs = 0;
     $discount->discount_auto_load = 0;
     $discount->discount_access = 'all';
     $discount->discount_tax_id = 0;
     $discount->discount_minimum_products = 0;
     $discount->discount_quota_per_user = 0;
     $discount->discount_affiliate = 0;
     $status = $class->save($discount);
     if ($status) {
         return self::getCouponData($code);
     }
     return false;
 }
Beispiel #3
0
 function form()
 {
     $warehouse_id = hikashop_getCID('warehouse_id');
     $class = hikashop_get('class.warehouse');
     if (!empty($warehouse_id)) {
         $element = $class->get($warehouse_id, true);
         $task = 'edit';
     } else {
         $element = new stdClass();
         $element->warehouse_published = 1;
         $task = 'add';
     }
     hikashop_setTitle(JText::_($this->nameForm), $this->icon, $this->ctrl . '&task=' . $task . '&warehouse=' . $warehouse_id);
     $this->toolbar = array('save', array('name' => 'save2new', 'display' => version_compare(JVERSION, '1.7', '>=')), 'apply', 'cancel', '|', array('name' => 'pophelp', 'target' => $this->ctrl . '-listing'));
     $editor = hikashop_get('helper.editor');
     $editor->name = 'data[warehouse][warehouse_description]';
     $editor->content = @$element->warehouse_description;
     $this->assignRef('editor', $editor);
     $this->assignRef('element', $element);
     $toggle = hikashop_get('helper.toggle');
     $this->assignRef('toggle', $toggle);
     $warehouse = hikashop_get('type.warehouse');
     $this->assignRef('warehouse', $warehouse);
     $popup = hikashop_get('helper.popup');
     $this->assignRef('popup', $popup);
 }
Beispiel #4
0
 function form()
 {
     $currency_id = hikashop_getCID('currency_id', false);
     $class = hikashop_get('class.currency');
     if (!empty($currency_id)) {
         $element = $class->get($currency_id);
         $task = 'edit';
     } else {
         $element = JRequest::getVar('fail');
         if (empty($element)) {
             $element = new stdClass();
             $element->currency_published = 1;
             $element->currency_format = '%i';
             $element->currency_rate = 1.0;
             $element->currency_flat_fee = 0;
             $element->currency_percent_fee = 0;
             $class->checkLocale($element);
         }
         $task = 'add';
     }
     hikashop_setTitle(JText::_($this->nameForm), $this->icon, $this->ctrl . '&task=' . $task . '&currency_id=' . $currency_id);
     $this->toolbar = array('save', 'apply', 'cancel', '|', array('name' => 'pophelp', 'target' => $this->ctrl . '-form'));
     $this->assignRef('element', $element);
     $signpos = hikashop_get('type.signpos');
     $this->assignRef('signpos', $signpos);
 }
Beispiel #5
0
 function options(&$params)
 {
     $this->id = $params->get('id');
     $this->name = str_replace('[]', '', $params->get('name'));
     $this->element = $params->get('value');
     $this->pricetaxType = hikashop_get('type.pricetax');
     $this->discountDisplayType = hikashop_get('type.discount_display');
     $this->priceDisplayType = hikashop_get('type.priceDisplay');
     $this->arr = array(JHTML::_('select.option', '-1', JText::_('HIKA_INHERIT')), JHTML::_('select.option', '1', JText::_('HIKASHOP_YES')), JHTML::_('select.option', '0', JText::_('HIKASHOP_NO')));
     $this->arr[0]->class = 'btn-primary';
     $this->arr[1]->class = 'btn-success';
     $this->arr[2]->class = 'btn-danger';
     $this->type = 'cart';
     if (preg_match('/wishlist/', $this->name)) {
         $this->type = 'wishlist';
     }
     $cid = JRequest::getInt('id', '');
     if (empty($cid)) {
         $cid = hikashop_getCID();
     }
     $modulesClass = hikashop_get('class.modules');
     $module = $modulesClass->get($cid);
     if (empty($this->element)) {
         $this->element = $module->hikashop_params;
     }
     $config = hikashop_config();
     $this->default_params = $config->get('default_params');
 }
Beispiel #6
0
 function saveForm()
 {
     $entry = new stdClass();
     $entry->entry_id = hikashop_getCID('entry_id');
     $formData = JRequest::getVar('data', array(), '', 'array');
     jimport('joomla.filter.filterinput');
     $safeHtmlFilter =& JFilterInput::getInstance(null, null, 1, 1);
     foreach ($formData['entry'] as $column => $value) {
         hikashop_secureField($column);
         $entry->{$column} = $safeHtmlFilter->clean($value, 'string');
     }
     $status = $this->save($entry);
     if (JRequest::getVar('tmpl', '') == 'component') {
         if ($status) {
             $url = hikashop_completeLink('order&task=edit&cid=' . $entry->order_id, false, true);
             echo '<html><head><script type="text/javascript">parent.window.location.href=\'' . $url . '\';</script></head><body></body></html>';
             exit;
         } else {
             $app = JFactory::getApplication();
             if (version_compare(JVERSION, '1.6', '<')) {
                 $session =& JFactory::getSession();
                 $session->set('application.queue', $app->_messageQueue);
             }
             echo '<html><head><script type="text/javascript">javascript: history.go(-1);</script></head><body></body></html>';
             exit;
         }
     }
     return $status;
 }
Beispiel #7
0
 function apply_table()
 {
     if ($this->store()) {
         echo '<html><head><script type="text/javascript">parent.window.location.href=\'' . hikashop_completeLink('report&task=edit&cid[]=' . hikashop_getCID('widget_id'), false, true) . '\';</script></head><body></body></html>';
         exit;
     }
 }
Beispiel #8
0
 function fetchElement($name, $value, &$node, $control_name)
 {
     if (!(include_once rtrim(JPATH_ADMINISTRATOR, DS) . DS . 'components' . DS . 'com_hikashop' . DS . 'helpers' . DS . 'helper.php')) {
         return 'This module can not work without the Hikashop Component';
     }
     $config =& hikashop_config();
     if (!hikashop_isAllowed($config->get('acl_modules_manage', 'all'))) {
         return 'Access to the HikaShop options of the modules is restricted';
     }
     $id = hikashop_getCID('id');
     if (!empty($id)) {
         $app = JFactory::getApplication();
         if ($app->isAmdin()) {
             $link = JRoute::_('index.php?option=com_hikashop&ctrl=modules&task=edit&cid[]=' . $id);
         } else {
             $link = JURI::base() . 'administrator/index.php?option=com_hikashop&ctrl=modules&task=edit&cid[]=' . $id;
         }
         $text = '<a title="' . JText::_('HIKASHOP_OPTIONS') . '"  href="' . $link . '" >' . JText::_('HIKASHOP_OPTIONS') . '</a>';
         $config =& hikashop_config();
         $level = $config->get('params_' . $id);
     } else {
         $text = JText::_('HIKASHOP_OPTIONS_EDIT');
     }
     return $text;
 }
Beispiel #9
0
 function saveForm()
 {
     $limit = new stdClass();
     $limit->limit_id = hikashop_getCID('limit_id');
     $formData = JRequest::getVar('data', array(), '', 'array');
     jimport('joomla.filter.filterinput');
     $safeHtmlFilter =& JFilterInput::getInstance(null, null, 1, 1);
     foreach ($formData['limit'] as $column => $value) {
         hikashop_secureField($column);
         if (is_array($value)) {
             $value = implode(',', $value);
         }
         $limit->{$column} = $safeHtmlFilter->clean(strip_tags($value), 'string');
     }
     if (!empty($limit->limit_start)) {
         $limit->limit_start = hikashop_getTime($limit->limit_start);
     }
     if (!empty($limit->limit_end)) {
         $limit->limit_end = hikashop_getTime($limit->limit_end);
     }
     if (empty($limit->limit_id)) {
         $limit->limit_created = time();
     }
     $limit->limit_modified = time();
     $status = $this->save($limit);
     return $status;
 }
Beispiel #10
0
 function saveForm()
 {
     $discount = new stdClass();
     $discount->discount_id = hikashop_getCID('discount_id');
     $formData = JRequest::getVar('data', array(), '', 'array');
     jimport('joomla.filter.filterinput');
     $safeHtmlFilter =& JFilterInput::getInstance(null, null, 1, 1);
     $nameboxes = array('discount_product_id', 'discount_category_id', 'discount_zone_id');
     foreach ($formData['discount'] as $column => $value) {
         hikashop_secureField($column);
         if (in_array($column, $nameboxes)) {
             if ($column == 'discount_zone_id') {
                 $discount->{$column} = array();
                 foreach ($value as $i => $v) {
                     $discount->{$column}[] = $safeHtmlFilter->clean(strip_tags($v), 'string');
                 }
             } else {
                 JArrayHelper::toInteger($value);
             }
             $discount->{$column} = $value;
         } else {
             $discount->{$column} = $safeHtmlFilter->clean(strip_tags($value), 'string');
         }
     }
     foreach ($nameboxes as $namebox) {
         if (!isset($discount->{$namebox})) {
             $discount->{$namebox} = '';
         }
     }
     if (!empty($discount->discount_category_id) && !empty($discount->discount_product_id)) {
         $app = JFactory::getApplication();
         $app->enqueueMessage('If you set both categories and products in a discount/coupon, only the products will be taken into account.', 'error');
     }
     if (!empty($discount->discount_start)) {
         $discount->discount_start = hikashop_getTime($discount->discount_start);
     }
     if (!empty($discount->discount_end)) {
         $discount->discount_end = hikashop_getTime($discount->discount_end);
     }
     if (!empty($discount->discount_id) && !empty($discount->discount_code)) {
         $query = 'SELECT discount_id FROM ' . hikashop_table('discount') . ' WHERE discount_code  = ' . $this->database->Quote($discount->discount_code) . ' LIMIT 1';
         $this->database->setQuery($query);
         $res = $this->database->loadResult();
         if (!empty($res) && $res != $discount->discount_id) {
             $app = JFactory::getApplication();
             $app->enqueueMessage(JText::_('DISCOUNT_CODE_ALREADY_USED'), 'error');
             JRequest::setVar('fail', $discount);
             return false;
         }
     }
     $status = $this->save($discount);
     if (!$status) {
         JRequest::setVar('fail', $discount);
         $app = JFactory::getApplication();
         $app->enqueueMessage(JText::_('DISCOUNT_CODE_ALREADY_USED'));
     }
     return $status;
 }
Beispiel #11
0
 protected function getInput()
 {
     if (!defined('DS')) {
         define('DS', DIRECTORY_SEPARATOR);
     }
     if (!function_exists('hikashop_config') && !(include_once rtrim(JPATH_ADMINISTRATOR, DS) . DS . 'components' . DS . 'com_hikashop' . DS . 'helpers' . DS . 'helper.php')) {
         return 'This module can not work without the Hikashop Component';
     }
     $config =& hikashop_config();
     $id = JRequest::getInt('id');
     if (HIKASHOP_J30 && !in_array(@$_REQUEST['option'], array('com_falang', 'com_joomfish'))) {
         if (preg_match('/hikashopmodule/', $this->name)) {
             $associated = false;
             $cid = JRequest::getVar('id', '');
             if (empty($cid)) {
                 $cid = hikashop_getCID();
             }
             foreach ($config->values as $name => $values) {
                 if (preg_match('#menu_[0-9]#', $name)) {
                     $params = unserialize(base64_decode($values->config_value));
                     $modules = array();
                     if (isset($params['modules'])) {
                         $modules = explode(',', $params['modules']);
                     }
                     if (in_array($cid, $modules)) {
                         $associated = str_replace('menu_', '', $values->config_namekey);
                         break;
                     }
                 }
             }
             if ($associated) {
                 $app = JFactory::getApplication();
                 $app->enqueueMessage(JText::sprintf('USE_MENU_SETTINGS_INSTEAD_OF_ASSOCIATED_ONES', JRoute::_('index.php?option=com_menus&view=item&layout=edit&id=' . $associated)));
             }
             $layout = 'modules';
         } else {
             $layout = 'cartmodules';
         }
         $empty = '';
         jimport('joomla.html.parameter');
         $params = new HikaParameter($empty);
         $js = '';
         $params->set('id', $this->id);
         $params->set('name', $this->name);
         $params->set('value', $this->value);
         $content = hikashop_getLayout($layout, 'options', $params, $js, true);
         $text = '</div></div>' . $content . '<div><div>';
     } elseif (!empty($id)) {
         if (!hikashop_isAllowed($config->get('acl_modules_manage', 'all'))) {
             return 'Access to the HikaShop options of the modules is restricted';
         }
         $text = '<a style="float:left;" title="' . JText::_('HIKASHOP_OPTIONS') . '"  href="' . JRoute::_('index.php?option=com_hikashop&ctrl=modules&fromjoomla=1&task=edit&cid[]=' . $id) . '" >' . JText::_('HIKASHOP_OPTIONS') . '</a>';
     } else {
         $text = JText::_('HIKASHOP_OPTIONS_EDIT');
     }
     return $text;
 }
Beispiel #12
0
 function saveForm()
 {
     $category_id = hikashop_getCID('category_id');
     if (!empty($category_id)) {
         $oldCategory = $this->get($category_id);
     }
     $fieldsClass = hikashop_get('class.field');
     $element = $fieldsClass->getInput('category', $oldCategory);
     if (empty($element)) {
         return false;
     }
     $main = JRequest::getVar('main_category', 0, '', 'int');
     if ($main) {
         $element->category_parent_id = 0;
     } else {
         $element->category_type = '';
     }
     $element->category_description = JRequest::getVar('category_description', '', '', 'string', JREQUEST_ALLOWRAW);
     $translationHelper = hikashop_get('helper.translation');
     $translationHelper->getTranslations($element);
     $config =& hikashop_config();
     if ($config->get('alias_auto_fill', 1) && empty($element->category_alias)) {
         $this->addAlias($element);
         if ($config->get('sef_remove_id', 0) && (int) $element->alias > 0) {
             $element->alias = $config->get('alias_prefix', 'p') . $element->alias;
         }
         $element->category_alias = $element->alias;
         unset($element->alias);
     }
     if (!empty($element->category_alias)) {
         $query = 'SELECT category_id FROM ' . hikashop_table('category') . ' WHERE category_alias=' . $this->database->Quote($element->category_alias);
         $this->database->setQuery($query);
         $element_with_same_alias = $this->database->loadResult();
         if (!empty($element_with_same_alias) && (empty($element->category_id) || $element_with_same_alias != $element->category_id)) {
             $app = JFactory::getApplication();
             $app->enqueueMessage(JText::_('ELEMENT_WITH_SAME_ALIAS_ALREADY_EXISTS'), 'error');
             JRequest::setVar('fail', $element);
             return false;
         }
     }
     $autoKeyMeta = (int) $config->get('auto_keywords_and_metadescription_filling', 0);
     if ($autoKeyMeta) {
         $seoHelper = hikashop_get('helper.seo');
         $seoHelper->autoFillKeywordMeta($element, 'category');
     }
     $status = $this->save($element);
     if ($status) {
         $translationHelper->handleTranslations('category', $status, $element);
         $fileClass = hikashop_get('class.file');
         $fileClass->storeFiles('category', $status);
     } else {
         JRequest::setVar('fail', $element);
     }
     return $status;
 }
Beispiel #13
0
 function fetchElement($name, $value, &$node, $control_name)
 {
     if (!(include_once rtrim(JPATH_ADMINISTRATOR, DS) . DS . 'components' . DS . 'com_hikashop' . DS . 'helpers' . DS . 'helper.php')) {
         return 'This plugin can not work without the Hikashop Component';
     }
     $id = hikashop_getCID('id');
     if (!empty($id)) {
         $text = '<a title="' . JText::_('Trigger') . '"  href="' . JRoute::_('index.php?option=com_hikashop&ctrl=plugins&task=trigger&function=' . $value . '&cid=' . $id . '&' . hikashop_getFormToken() . '=1') . '" >' . JText::_('Trigger') . '</a>';
     }
     return $text;
 }
Beispiel #14
0
 function store($new = false)
 {
     $app = JFactory::getApplication();
     $cartClass = hikashop_get('class.cart');
     $data = JRequest::getVar('data', '0');
     $cart_id = hikashop_getCID('cart_id');
     $cart_type = $data['cart']['cart_type'];
     $cart_name = $data['cart']['cart_name'];
     $cart_user = 0;
     if (!empty($data['user']['user_id'])) {
         $cart_user = (int) $data['user']['user_id'];
     }
     $cart = new stdClass();
     $cart->cart_id = $cart_id;
     if (!empty($cart_user)) {
         $userClass = hikashop_get('class.user');
         $user = $userClass->get($cart_user);
         $cart->user_id = $user->user_cms_id;
     }
     $cart->cart_modified = time();
     $cart->cart_type = $cart_type;
     $cart->cart_name = $cart_name;
     if (isset($data['cart']['cart_coupon'])) {
         $cart->cart_coupon = $data['cart']['cart_coupon'];
     }
     $status = $cartClass->save($cart);
     $formData = JRequest::getVar('item', array(), '', 'array');
     if ($status) {
         if (!empty($formData)) {
             JRequest::setVar($cart_type . '_id', $cart_id);
             JRequest::setVar('cart_type', $cart_type);
             $cartClass->update($formData, 0, 0, 'item');
         }
     }
     if ($status) {
         if (!HIKASHOP_J30) {
             $app->enqueueMessage(JText::_('HIKASHOP_SUCC_SAVED'), 'success');
         } else {
             $app->enqueueMessage(JText::_('HIKASHOP_SUCC_SAVED'));
         }
         JRequest::setVar('cid', $status);
         JRequest::setVar('fail', null);
     } else {
         $app->enqueueMessage(JText::_('ERROR_SAVING'), 'error');
         if (!empty($class->errors)) {
             foreach ($class->errors as $oneError) {
                 $app->enqueueMessage($oneError, 'error');
             }
         }
     }
     return $status;
 }
Beispiel #15
0
 function save_translation()
 {
     $category_id = hikashop_getCID('category_id');
     $class = hikashop_get('class.category');
     $element = $class->get($category_id);
     if (!empty($element->category_id)) {
         $class = hikashop_get('helper.translation');
         $class->getTranslations($element);
         $class->handleTranslations('category', $element->category_id, $element);
     }
     $document = JFactory::getDocument();
     $document->addScriptDeclaration('window.top.hikashop.closeBox();');
 }
Beispiel #16
0
 function getInput()
 {
     if (!defined('DS')) {
         define('DS', DIRECTORY_SEPARATOR);
     }
     if (!function_exists('hikashop_getCID') && !(include_once rtrim(JPATH_ADMINISTRATOR, DS) . DS . 'components' . DS . 'com_hikashop' . DS . 'helpers' . DS . 'helper.php')) {
         return 'This plugin can not work without the Hikashop Component';
     }
     $id = hikashop_getCID('extension_id');
     if (!empty($id)) {
         $text = '<fieldset class="radio"><a id="' . $this->id . '" title="' . JText::_('Trigger') . '"  href="' . JRoute::_('index.php?option=com_hikashop&ctrl=plugins&task=trigger&function=' . $this->value . '&cid=' . $id . '&' . hikashop_getFormToken() . '=1') . '" >' . JText::_('Trigger') . '</a></fieldset>';
     }
     return $text;
 }
Beispiel #17
0
 function saveForm()
 {
     $element = new stdClass();
     $element->warehouse_id = hikashop_getCID('warehouse_id');
     $formData = JRequest::getVar('data', array(), '', 'array');
     jimport('joomla.filter.filterinput');
     $safeHtmlFilter =& JFilterInput::getInstance(null, null, 1, 1);
     foreach ($formData['warehouse'] as $column => $value) {
         hikashop_secureField($column);
         $element->{$column} = $safeHtmlFilter->clean(strip_tags($value), 'string');
     }
     $class = hikashop_get('helper.translation');
     $class->getTranslations($element);
     $status = $this->save($element);
     return $status;
 }
Beispiel #18
0
 function form()
 {
     $tabs = hikashop_get('helper.tabs');
     $email_log_id = hikashop_getCID('email_log_id');
     $email_logClass = hikashop_get('class.email_log');
     if (!empty($email_log_id)) {
         $element = $email_logClass->get($email_log_id, true);
         $task = 'edit';
     }
     hikashop_setTitle(JText::_($this->nameForm), $this->icon, $this->ctrl . '&task=' . $task . '&email_log=' . $email_log_id);
     $this->toolbar = array('cancel', '|', array('name' => 'pophelp', 'target' => $this->ctrl . '-listing'));
     $email_order_id = array('order_admin_notification', 'order_creation_notification', 'order_status_notification', 'order_notification', 'payment_notification', 'order_cancel');
     $email_product_id = array('contact_request', 'new_comment');
     $email_user_id = array('user_account', 'user_account_admin_notification');
     if (in_array($element->email_log_name, $email_product_id)) {
         $productClass = hikashop_get('class.product');
         $productClass->getProducts($element->email_log_ref_id);
         if (isset($productClass->products[$element->email_log_ref_id])) {
             $fullProduct = $productClass->products[$element->email_log_ref_id];
         } elseif (isset($productClass->all_products[$element->email_log_ref_id]) && isset($productClass->all_products[$element->email_log_ref_id]->product_parent_id)) {
             $productClass->getProducts($productClass->all_products[$element->email_log_ref_id]->product_parent_id);
             $fullProduct = $productClass->products[$productClass->all_products[$element->email_log_ref_id]->product_parent_id];
         }
         if (isset($fullProduct->product_name) && !empty($fullProduct->product_name)) {
             $this->assignRef('email_product_name', $fullProduct->product_name);
         }
     }
     if (in_array($element->email_log_name, $email_order_id)) {
         $orderClass = hikashop_get('class.order');
         $fullOrder = $orderClass->get($element->email_log_ref_id);
         if (isset($fullOrder->order_number) && !empty($fullOrder->order_number)) {
             $this->assignRef('email_order_number', $fullOrder->order_number);
         }
     }
     if (in_array($element->email_log_name, $email_user_id)) {
         $userClass = hikashop_get('class.user');
         $fullUser = $userClass->get($element->email_log_ref_id);
         if (isset($fullUser->name) && !empty($fullUser->name)) {
             $this->assignRef('email_user_name', $fullUser->name);
         }
     }
     $this->assignRef('email_order_id', $email_order_id);
     $this->assignRef('email_product_id', $email_product_id);
     $this->assignRef('email_user_id', $email_user_id);
     $this->assignRef('tabs', $tabs);
     $this->assignRef('element', $element);
 }
Beispiel #19
0
 function saveForm()
 {
     $element = new stdClass();
     $element->waitlist_id = hikashop_getCID('waitlist_id');
     $formData = JRequest::getVar('data', array(), '', 'array');
     jimport('joomla.filter.filterinput');
     $safeHtmlFilter =& JFilterInput::getInstance(null, null, 1, 1);
     foreach ($formData['waitlist'] as $column => $value) {
         hikashop_secureField($column);
         $element->{$column} = $safeHtmlFilter->clean(strip_tags($value), 'string');
     }
     if (!empty($element->date)) {
         $element->date = hikashop_getTime($element->date);
     }
     $result = $this->save($element);
     return $result;
 }
Beispiel #20
0
 function edit()
 {
     if (JRequest::getInt('fromjoomla')) {
         $app = JFactory::getApplication();
         $context = 'com_modules.edit.module';
         $id = hikashop_getCID('id');
         if ($id) {
             $values = (array) $app->getUserState($context . '.id');
             $index = array_search((int) $id, $values, true);
             if (is_int($index)) {
                 unset($values[$index]);
                 $app->setUserState($context . '.id', $values);
             }
         }
     }
     return parent::edit();
 }
Beispiel #21
0
 function saveForm()
 {
     $element = new stdClass();
     $element->massaction_id = hikashop_getCID('massaction_id');
     $formData = JRequest::getVar('data', array(), '', 'array');
     foreach ($formData['massaction'] as $column => $value) {
         hikashop_secureField($column);
         $element->{$column} = strip_tags($value);
     }
     $this->_retreiveData($element, 'trigger');
     $this->_retreiveData($element, 'filter');
     $this->_retreiveData($element, 'action');
     $class = hikashop_get('helper.translation');
     $class->getTranslations($element);
     $result = $this->save($element);
     if ($result) {
         $class->handleTranslations('massaction', $result, $element);
         JRequest::setVar('cid', $result);
     }
     return $result;
 }
Beispiel #22
0
 function saveForm()
 {
     $element = new stdClass();
     $element->banner_id = hikashop_getCID('banner_id');
     $formData = JRequest::getVar('data', array(), '', 'array');
     jimport('joomla.filter.filterinput');
     $safeHtmlFilter =& JFilterInput::getInstance(null, null, 1, 1);
     foreach ($formData['banner'] as $column => $value) {
         hikashop_secureField($column);
         $element->{$column} = $safeHtmlFilter->clean($value);
         if ($column != 'banner_comment') {
             $element->{$column} = strip_tags($element->{$column});
         }
     }
     $class = hikashop_get('helper.translation');
     $class->getTranslations($element);
     $result = $this->save($element);
     if ($result) {
         $class->handleTranslations('banner', $result, $element);
     }
     return $result;
 }
Beispiel #23
0
 function saveForm()
 {
     $zone = new stdClass();
     $zone->zone_id = hikashop_getCID('zone_id');
     $formData = JRequest::getVar('data', array(), '', 'array');
     $status = false;
     if (!empty($formData['zone'])) {
         jimport('joomla.filter.filterinput');
         $safeHtmlFilter = JFilterInput::getInstance(null, null, 1, 1);
         foreach ($formData['zone'] as $column => $value) {
             hikashop_secureField($column);
             $zone->{$column} = $safeHtmlFilter->clean(strip_tags($value), 'string');
         }
         $status = $this->save($zone);
         if (!$status) {
             JRequest::setVar('fail', $zone);
             $app =& JFactory::getApplication();
             $app->enqueueMessage(JText::_('DUPLICATE_ZONE'), 'error');
         }
     }
     return $status;
 }
Beispiel #24
0
 function fetchElement($name, $value, &$node, $control_name)
 {
     if (!(include_once rtrim(JPATH_ADMINISTRATOR, DS) . DS . 'components' . DS . 'com_hikashop' . DS . 'helpers' . DS . 'helper.php')) {
         return 'This module can not work without the Hikashop Component';
     }
     $id = hikashop_getCID('cid');
     $plugins = hikashop_get('class.plugins');
     $plugin = $plugins->get($id);
     $name = @$plugin->element;
     if (@$plugin->folder == 'hikashopshipping') {
         $group = 'shipping';
     } elseif (@$plugin->folder == 'hikashop') {
         $group = 'plugin';
     } else {
         $group = 'payment';
     }
     $config =& hikashop_config();
     if (!hikashop_isAllowed($config->get('acl_plugins_manage', 'all'))) {
         return 'Access to the HikaShop options of the plugins is restricted';
     }
     $text = '<a style="float:left;" title="' . JText::_('HIKASHOP_OPTIONS') . '"  href="' . JRoute::_('index.php?option=com_hikashop&ctrl=plugins&task=listing&name=' . $name . '&plugin_type=' . $group) . '" >' . JText::_('HIKASHOP_OPTIONS') . '</a>';
     return $text;
 }
Beispiel #25
0
 function saveForm()
 {
     $taxation = new stdClass();
     $taxation->taxation_id = hikashop_getCID('taxation_id');
     $formData = JRequest::getVar('data', array(), '', 'array');
     jimport('joomla.filter.filterinput');
     $safeHtmlFilter =& JFilterInput::getInstance(null, null, 1, 1);
     foreach ($formData['taxation'] as $column => $value) {
         hikashop_secureField($column);
         if (in_array($column, array('zone_namekey', 'taxation_type'))) {
             if (is_array($value)) {
                 $value = implode(',', $value);
                 if ($column == 'taxation_type' && !empty($value)) {
                     $value = ',' . $value . ',';
                 }
             }
         }
         $taxation->{$column} = $safeHtmlFilter->clean(strip_tags($value), 'string');
     }
     if (!isset($taxation->taxation_type)) {
         $taxation->taxation_type = '';
     }
     if (!isset($taxation->zone_namekey)) {
         $taxation->zone_namekey = '';
     }
     if (!empty($taxation->taxation_date_start)) {
         $taxation->taxation_date_start = hikashop_getTime($taxation->taxation_date_start);
     }
     if (!empty($taxation->taxation_date_end)) {
         $taxation->taxation_date_end = hikashop_getTime($taxation->taxation_date_end);
     }
     if (!empty($taxation->taxation_site_id) && $taxation->taxation_site_id == '[unselected]') {
         $taxation->taxation_site_id = '';
     }
     return $this->save($taxation);
 }
Beispiel #26
0
 function saveForm()
 {
     $element = new stdClass();
     $element->badge_id = hikashop_getCID('badge_id');
     $formData = JRequest::getVar('data', array(), '', 'array');
     jimport('joomla.filter.filterinput');
     $safeHtmlFilter = JFilterInput::getInstance(null, null, 1, 1);
     $nameboxes = array('badge_discount_id', 'badge_category_id', 'badge_product_id');
     foreach ($formData['badge'] as $column => $value) {
         hikashop_secureField($column);
         if (in_array($column, $nameboxes)) {
             JArrayHelper::toInteger($value);
             $element->{$column} = ',' . implode(',', $value) . ',';
         } else {
             $element->{$column} = $safeHtmlFilter->clean(strip_tags($value), 'string');
         }
     }
     foreach ($nameboxes as $namebox) {
         if (!isset($element->{$namebox})) {
             $element->{$namebox} = '';
         }
     }
     if (!empty($element->badge_start)) {
         $element->badge_start = hikashop_getTime($element->badge_start);
     }
     if (!empty($element->badge_end)) {
         $element->badge_end = hikashop_getTime($element->badge_end);
     }
     $class = hikashop_get('class.file');
     $element->badge_image = $class->saveFile();
     if (empty($element->badge_image)) {
         unset($element->badge_image);
     }
     $status = $this->save($element);
     return $status;
 }
Beispiel #27
0
 function saveForm()
 {
     $element = new stdClass();
     $element->characteristic_id = hikashop_getCID('characteristic_id');
     $formData = JRequest::getVar('data', array(), '', 'array');
     jimport('joomla.filter.filterinput');
     $safeHtmlFilter =& JFilterInput::getInstance(null, null, 1, 1);
     foreach ($formData['characteristic'] as $column => $value) {
         hikashop_secureField($column);
         $element->{$column} = $safeHtmlFilter->clean($value, 'string');
     }
     $element->values = JRequest::getVar('characteristic', array(), '', 'array');
     JArrayHelper::toInteger($element->values);
     $element->values_ordering = JRequest::getVar('characteristic_ordering', array(), '', 'array');
     JArrayHelper::toInteger($element->values);
     JArrayHelper::toInteger($element->values_ordering);
     $status = $this->save($element);
     if (!$status) {
         JRequest::setVar('fail', $element);
     } elseif (@$element->characteristic_parent_id == 0) {
         $this->updateValues($element, $status);
     }
     return $status;
 }
Beispiel #28
0
 function saveForm()
 {
     $app = JFactory::getApplication();
     $filter = new stdClass();
     $filter->filter_id = hikashop_getCID('filter_id');
     $problem = false;
     $new = empty($filter->filter_id);
     $formData = JRequest::getVar('data', array(), '', 'array');
     jimport('joomla.filter.filterinput');
     $safeHtmlFilter =& JFilterInput::getInstance(null, null, 1, 1);
     foreach ($formData['filter'] as $column => $value) {
         hikashop_secureField($column);
         if (is_array($value)) {
             $value = implode(',', $value);
         }
         $filter->{$column} = $safeHtmlFilter->clean($value, 'string');
     }
     if (empty($filter->filter_name)) {
         $app->enqueueMessage(JText::_('SPECIFY_A_NAME'), 'error');
         $problem = true;
     }
     if (empty($filter->filter_id)) {
         $filter->filter_namekey = $filter->filter_name;
         $search = explode(",", "ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,e,i,ø,u");
         $replace = explode(",", "c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,e,i,o,u");
         $test = str_replace($search, $replace, $filter->filter_namekey);
         $filter->filter_namekey = preg_replace('#[^a-z0-9_-]#i', '', $test);
         if (empty($test)) {
             $filter->filter_namekey = 'filter';
         }
         $query = 'SELECT MAX(`filter_id`) FROM ' . hikashop_table('filter');
         $this->database->setQuery($query);
         $last_pid = (int) $this->database->loadResult() + 1;
         $filter->filter_namekey .= '_' . $last_pid;
     }
     if ($formData['filter']['filter_type'] == 'text') {
         $value = $safeHtmlFilter->clean(@$formData['filter']['filter_data_text'], 'array');
         $filter->filter_data = serialize($value);
     } else {
         if ($formData['filter']['filter_type'] == 'cursor') {
             $value = $safeHtmlFilter->clean(@$formData['filter']['filter_data_cursor'], 'string');
             $filter->filter_data = serialize($value);
         } else {
             $value = $safeHtmlFilter->clean(@$formData['filter']['filter_data'], 'string');
             $filter->filter_data = serialize($value);
         }
     }
     if ($formData['filter']['filter_type'] == 'checkbox' && $formData['filter']['filter_data'] == 'sort') {
         $app->enqueueMessage(JText::sprintf('NOT_COMPAT_WITH_SORTING', JText::_('FIELD_CHECKBOX'), JText::_('FIELD_RADIO')));
         $filter->filter_type = 'radio';
     }
     if ($formData['filter']['filter_type'] == 'multipledropdown' && $formData['filter']['filter_data'] == 'sort') {
         $app->enqueueMessage(JText::sprintf('NOT_COMPAT_WITH_SORTING', JText::_('FIELD_MULTIPLEDROPDOWN'), JText::_('FIELD_SINGLEDROPDOWN')));
         $filter->filter_type = 'singledropdown';
     }
     if (($formData['filter']['filter_type'] == 'checkbox' || $formData['filter']['filter_type'] == 'radio' || $formData['filter']['filter_type'] == 'cursor') && @$formData['filter']['title_position'] == 'inside') {
         $app->enqueueMessage(JText::_('NO_TITLE_INSIDE'));
         $filter->filter_options['title_position'] = 'top';
     } else {
         $filter->filter_options['title_position'] = $safeHtmlFilter->clean(@$formData['filter']['title_position'], 'string');
     }
     if (empty($formData['filter']['filter_currencies']) && $formData['filter']['filter_data'] == 'price' && $formData['filter']['filter_type'] != 'text' && $formData['filter']['filter_type'] != 'cursor') {
         $app->enqueueMessage(JText::_('NO_CURRENCY_SELECTED'));
         $formData['filter']['filter_currencies'] = array(0 => 1);
     }
     if (empty($formData['filter']['filter_category_id'])) {
         $filter->filter_category_id = '';
     }
     if ($formData['filter']['filter_data'] == 'custom_field') {
         $found = false;
         if (!empty($formData['filter']['custom_field'])) {
             $filters = '';
             if (!empty($formData['filter']['filter_category_id'])) {
                 if ($formData['filter']['filter_category_childs']) {
                     $categories_filter = array();
                     $categoryClass = hikashop_get('class.category');
                     $childs = $categoryClass->getChildren($formData['filter']['filter_category_id'], true);
                     foreach ($childs as $cat) {
                         $categories_filter[] = 'field_categories LIKE \'%,' . $cat->category_id . ',%\'';
                     }
                     $filters = implode(' OR ', $categories_filter);
                 }
                 if (!is_array($formData['filter']['filter_category_id'])) {
                     $formData['filter']['filter_category_id'] = array($formData['filter']['filter_category_id']);
                 }
                 foreach ($formData['filter']['filter_category_id'] as $category_id) {
                     if (!empty($filters)) {
                         $filters .= 'OR ';
                     }
                     $filters .= 'field_categories LIKE \'%,' . (int) $category_id . ',%\'';
                 }
             }
             if (!empty($filters)) {
                 $filters .= ' OR ';
             }
             $database = JFactory::getDBO();
             $database->setQuery('SELECT * FROM ' . hikashop_table('field') . ' WHERE (' . $filters . 'field_categories LIKE "all") AND field_table IN ("product") AND field_published=1');
             $fields = $database->loadObjectList('field_realname');
             if (!empty($fields)) {
                 foreach ($fields as $field) {
                     if ($field->field_namekey == $formData['filter']['custom_field']) {
                         $filter->filter_options['custom_field'] = $safeHtmlFilter->clean($formData['filter']['custom_field'], 'string');
                         $found = true;
                         break;
                     }
                 }
             }
         }
         if (!$found) {
             $app->enqueueMessage(JText::_('CUSTOM_FIELD_NOT_AVAILABLE_FOR_CATEGORY'));
             if (!empty($fields)) {
                 $fields = reset($fields);
                 $filter->filter_options['custom_field'] = $fields->field_namekey;
             } else {
                 $filter->filter_options['custom_field'] = '';
             }
         }
     }
     $filterValues = JRequest::getVar('filter_values', array(), '', 'array');
     if (!empty($filterValues)) {
         $filterValuesFinal = array();
         foreach ($filterValues['value'] as $key => $value) {
             if (is_numeric($value)) {
                 $filterValuesFinal[] = $safeHtmlFilter->clean($key, 'string') . '::' . $safeHtmlFilter->clean($value, 'string');
             }
         }
         $filter->filter_value = implode("\n", $filterValuesFinal);
     }
     $filter->filter_options['column_width'] = $safeHtmlFilter->clean($formData['filter']['column_width'], 'string');
     if (!empty($formData['filter']['filter_size'])) {
         $filter->filter_options['filter_size'] = $safeHtmlFilter->clean($formData['filter']['filter_size'], 'string');
     } else {
         $filter->filter_options['filter_size'] = 1;
     }
     if ($formData['filter']['filter_type'] == 'cursor') {
         $filter->filter_options['cursor_number'] = $safeHtmlFilter->clean($formData['filter']['cursor_number'], 'string');
         if (empty($formData['filter']['cursor_min'])) {
             $formData['filter']['cursor_min'] = '0';
         }
         if (!strlen($formData['filter']['cursor_max']) || $formData['filter']['cursor_min'] == $formData['filter']['cursor_max']) {
             $app->enqueueMessage(JText::_('MIN_MAX_NOT_SET'), 'error');
             $problem = true;
         }
         $filter->filter_options['cursor_min'] = $safeHtmlFilter->clean($formData['filter']['cursor_min'], 'string');
         $filter->filter_options['cursor_max'] = $safeHtmlFilter->clean($formData['filter']['cursor_max'], 'string');
         $filter->filter_options['cursor_step'] = $safeHtmlFilter->clean($formData['filter']['cursor_step'], 'string');
         $filter->filter_options['cursor_effect'] = $safeHtmlFilter->clean($formData['filter']['cursor_effect'], 'string');
         $filter->filter_options['cursor_width'] = $safeHtmlFilter->clean($formData['filter']['cursor_width'], 'string');
         $filter->filter_options['cursor_width'] = $safeHtmlFilter->clean($formData['filter']['cursor_width'], 'string');
         $filter->filter_options['title_position'] = $safeHtmlFilter->clean($formData['filter']['title_position_cursor'], 'string');
     }
     if (!empty($formData['filter']['defined_limits'])) {
         $filter->filter_options['defined_limits'] = $safeHtmlFilter->clean(@$formData['filter']['defined_limits'], 'string');
     }
     if ($formData['filter']['filter_data'] == 'price') {
         $filter->filter_options['currencies'] = $safeHtmlFilter->clean(@$formData['filter']['filter_currencies'], 'array');
     }
     if ($formData['filter']['filter_type'] == 'text') {
         $filter->filter_options['max_char'] = $safeHtmlFilter->clean($formData['filter']['max_char'], 'string');
         $filter->filter_options['textBoxSize'] = $safeHtmlFilter->clean($formData['filter']['textBoxSize'], 'string');
         $filter->filter_options['searchProcessing'] = $safeHtmlFilter->clean($formData['filter']['searchProcessing'], 'string');
     }
     if ($formData['filter']['filter_data'] == 'characteristic') {
         $filter->filter_options['filter_charac'] = $safeHtmlFilter->clean($formData['filter']['filter_charac'], 'string');
     }
     if ($formData['filter']['filter_data'] == 'information' || $formData['filter']['filter_type'] == 'cursor') {
         if ($formData['filter']['product_information'] == 'weight' && $formData['filter']['filter_type'] != 'cursor' || $formData['filter']['filter_data_cursor'] == 'weight' && $formData['filter']['filter_type'] == 'cursor') {
             $filter->filter_options['information_unit'] = $safeHtmlFilter->clean($formData['filter']['weight_unit'], 'string');
         } else {
             $filter->filter_options['information_unit'] = $safeHtmlFilter->clean($formData['filter']['dimension_unit'], 'string');
         }
     }
     if ($formData['filter']['filter_type'] != 'cursor') {
         $filter->filter_options['product_information'] = $safeHtmlFilter->clean($formData['filter']['product_information'], 'string');
     } else {
         $filter->filter_options['product_information'] = $safeHtmlFilter->clean($formData['filter']['filter_data'], 'string');
     }
     $filter->filter_options['button_align'] = $safeHtmlFilter->clean($formData['filter']['button_align'], 'string');
     if ($formData['filter']['filter_data'] == 'sort') {
         if (isset($formData['filter']['sort_by'])) {
             $filter->filter_options['sort_by'] = $safeHtmlFilter->clean($formData['filter']['sort_by'], 'array');
         } else {
             $app->enqueueMessage(JText::_('CHOOSE_SORT_OPTIONS'), 'error');
             $problem = true;
         }
     }
     $filter->filter_options['parent_category_id'] = $safeHtmlFilter->clean($formData['filter']['parent_category_id'], 'string');
     unset($filter->column_width);
     unset($filter->title_position);
     unset($filter->filter_size);
     unset($filter->cursor_number);
     unset($filter->cursor_min);
     unset($filter->cursor_max);
     unset($filter->filter_currencies);
     unset($filter->max_char);
     unset($filter->defined_limits);
     unset($filter->filter_charac);
     unset($filter->sort_by);
     unset($filter->product_information);
     unset($filter->custom_field);
     unset($filter->filter_data_text);
     unset($filter->filter_data_cursor);
     unset($filter->button_align);
     unset($filter->dimension_unit);
     unset($filter->weight_unit);
     unset($filter->information_unit);
     unset($filter->parent_category_id);
     unset($filter->textBoxSize);
     unset($filter->cursor_step);
     unset($filter->cursor_effect);
     unset($filter->cursor_width);
     unset($filter->title_position_cursor);
     unset($filter->searchProcessing);
     if ($problem) {
         JRequest::setVar('fail', $filter);
     } else {
         $status = $this->save($filter);
         if ($new && $status) {
             $orderClass = hikashop_get('helper.order');
             $orderClass->pkey = 'filter_id';
             $orderClass->table = 'filter';
             $orderClass->orderingMap = 'filter_ordering';
             $orderClass->reOrder();
         }
         JRequest::setVar('filter_id', $filter->filter_id);
         return $status;
     }
     return false;
 }
Beispiel #29
0
 function &_order($type)
 {
     $order_id = hikashop_getCID('order_id');
     $app = JFactory::getApplication();
     if (empty($order_id)) {
         $order_id = $app->getUserState('com_hikashop.order_id');
     }
     if (!empty($order_id)) {
         $class = hikashop_get('class.order');
         $order = $class->loadFullOrder($order_id, $type == 'order' ? true : false);
     }
     if (empty($order)) {
         $app->redirect(hikashop_completeLink('order&task=listing', false, true));
     }
     $config =& hikashop_config();
     $this->assignRef('config', $config);
     $store = str_replace(array("\r\n", "\n", "\r"), array('<br/>', '<br/>', '<br/>'), $config->get('store_address', ''));
     if (JText::_($store) != $store) {
         $store = JText::_($store);
     }
     if (!empty($order->order_payment_id)) {
         $pluginsPayment = hikashop_get('type.plugins');
         $pluginsPayment->type = 'payment';
         $this->assignRef('payment', $pluginsPayment);
     }
     if (!empty($order->order_shipping_id)) {
         $pluginsShipping = hikashop_get('type.plugins');
         $pluginsShipping->type = 'shipping';
         $this->assignRef('shipping', $pluginsShipping);
         $shippingClass = hikashop_get('class.shipping');
         $this->assignRef('shippingClass', $shippingClass);
         if (empty($order->order_shipping_method)) {
             $shippings_data = array();
             $shipping_ids = explode(';', $order->order_shipping_id);
             foreach ($shipping_ids as $key) {
                 $shipping_data = '';
                 list($k, $w) = explode('@', $key);
                 $shipping_id = $k;
                 if (isset($order->shippings[$shipping_id])) {
                     $shipping = $order->shippings[$shipping_id];
                     $shipping_data = $shipping->shipping_name;
                 } else {
                     foreach ($order->products as $order_product) {
                         if ($order_product->order_product_shipping_id == $key) {
                             if (!is_numeric($order_product->order_product_shipping_id)) {
                                 $shipping_name = $this->getShippingName($order_product->order_product_shipping_method, $shipping_id);
                                 $shipping_data = $shipping_name;
                             } else {
                                 $shipping_method_data = $this->shippingClass->get($shipping_id);
                                 $shipping_data = $shipping_method_data->shipping_name;
                             }
                             break;
                         }
                     }
                     if (empty($shipping_data)) {
                         $shipping_data = '[ ' . $key . ' ]';
                     }
                 }
                 $shippings_data[] = $shipping_data;
             }
             $order->order_shipping_method = $shippings_data;
         }
     }
     $this->assignRef('store_address', $store);
     $this->assignRef('element', $order);
     $this->assignRef('order', $order);
     $this->assignRef('invoice_type', $type);
     $display_type = 'frontcomp';
     $this->assignRef('display_type', $display_type);
     $currencyClass = hikashop_get('class.currency');
     $this->assignRef('currencyHelper', $currencyClass);
     $fieldsClass = hikashop_get('class.field');
     $this->assignRef('fieldsClass', $fieldsClass);
     if (is_string($order->order_shipping_method)) {
         $currentShipping = hikashop_import('hikashopshipping', $order->order_shipping_method);
     } else {
         $currentShipping = hikashop_import('hikashopshipping', reset($order->order_shipping_method));
     }
     $this->assignRef('currentShipping', $currentShipping);
     $fields = array();
     if (hikashop_level(2)) {
         $null = null;
         $fields['entry'] = $fieldsClass->getFields('frontcomp', $null, 'entry');
         $fields['item'] = $fieldsClass->getFields('frontcomp', $null, 'item');
         $fields['order'] = $fieldsClass->getFields('', $null, 'order');
     }
     $this->assignRef('fields', $fields);
     return $order;
 }
Beispiel #30
0
    function form()
    {
        $app = JFactory::getApplication();
        $doc = JFactory::getDocument();
        $fieldid = hikashop_getCID('field_id');
        $fieldsClass = hikashop_get('class.field');
        if (!empty($fieldid)) {
            $field = $fieldsClass->getField($fieldid);
            $data = null;
            $allFields = $fieldsClass->getFields('', $data, $field->field_table);
        } else {
            $field = new stdClass();
            if (hikashop_level(1)) {
                $field->field_table = $app->getUserStateFromRequest($this->paramBase . ".filter_table", 'filter_table', 'product', 'string');
            } else {
                $field->field_table = 'address';
            }
            $field->field_published = 1;
            $field->field_type = 'text';
            $field->field_backend = 1;
            $allFields = null;
        }
        $this->assignRef('allFields', $allFields);
        $fieldTitle = '';
        if (!empty($field->field_id)) {
            $fieldTitle = ' : ' . $field->field_namekey;
        }
        hikashop_setTitle(JText::_('FIELD') . $fieldTitle, 'field', 'field&task=edit&field_id=' . $fieldid);
        $jsDrop = '';
        if (HIKASHOP_BACK_RESPONSIVE && $app->isAdmin()) {
            $jsDrop = 'jQuery(input3).chosen();';
        }
        hikashop_loadJslib('jquery');
        $script = '
		function addLine() {
			window.hikashop.dupRow("hikashop_field_values_table_template", {
				"TITLE":"field_values[title][]",
				"VALUE":"field_values[value][]",
				"DISABLED":"field_values[disabled][]"
			})
		}

		function setVisible(value){
			if(value=="product" || value=="item" || value=="category"){
				document.getElementById(\'category_field\').style.display = "";
			}else{
				document.getElementById(\'category_field\').style.display = \'none\';
			}
		}';
        $doc->addScriptDeclaration($script);
        $this->toolbar = array('save', 'apply', 'cancel', '|', array('name' => 'pophelp', 'target' => 'field-form'));
        $this->assignRef('field', $field);
        $this->assignRef('fieldsClass', $fieldsClass);
        $fieldType = hikashop_get('type.fields');
        $this->assignRef('fieldtype', $fieldType);
        $zoneType = hikashop_get('type.zone');
        $this->assignRef('zoneType', $zoneType);
        $allowType = hikashop_get('type.allow');
        $this->assignRef('allowType', $allowType);
        $displayOptions = array();
        $this->assignRef('displayOptions', $displayOptions);
        if (hikashop_level(1)) {
            $tabletype = hikashop_get('type.table');
            $this->assignRef('tabletype', $tabletype);
        }
        if (hikashop_level(2)) {
            $limitParent = hikashop_get('type.limitparent');
            $this->assignRef('limitParent', $limitParent);
            if (!empty($field->field_options['product_id'])) {
                $product = hikashop_get('class.product');
                $element = $product->get($field->field_options['product_id']);
                $this->assignRef('element', $element);
            }
        }
        $categories = array();
        if (isset($this->field->field_categories)) {
            $this->field->field_categories = $this->field->field_categories;
            $this->categories = explode(",", $this->field->field_categories);
            unset($this->categories[0]);
            unset($this->categories[count($this->categories)]);
            if (!empty($this->categories)) {
                foreach ($this->categories as $k => $cat) {
                    if (!isset($categories[$k])) {
                        $categories[$k] = new stdClass();
                    }
                    $categories[$k]->category_id = $cat;
                }
                $db = JFactory::getDBO();
                $db->setQuery('SELECT * FROM ' . hikashop_table('category') . ' WHERE category_id IN (' . implode(',', $this->categories) . ')');
                $cats = $db->loadObjectList('category_id');
                foreach ($this->categories as $k => $cat) {
                    if (!empty($cats[$cat])) {
                        $categories[$k]->category_name = $cats[$cat]->category_name;
                    } else {
                        $categories[$k]->category_name = JText::_('CATEGORY_NOT_FOUND');
                    }
                }
            }
            $this->categories = $categories;
        }
        JHTML::_('behavior.modal');
        $popup = hikashop_get('helper.popup');
        $this->assignRef('popup', $popup);
        $nameboxType = hikashop_get('type.namebox');
        $this->assignRef('nameboxType', $nameboxType);
        JPluginHelper::importPlugin('hikashop');
        $dispatcher = JDispatcher::getInstance();
        $dispatcher->trigger('onCustomfieldEdit', array(&$field, &$this));
    }