Beispiel #1
0
 public function saveForm(&$product)
 {
     if (!isset($product->product_id)) {
         return;
     }
     $product_id = (int) $product->product_id;
     $app = JFactory::getApplication();
     if (!$app->isAdmin()) {
         if (!hikaserial::initMarket()) {
             return;
         }
         if (!hikamarket::acl('product_edit_plugin_hikaserial')) {
             return;
         }
     }
     $formData = JRequest::getVar('data', array(), '', 'array');
     if (empty($formData) || empty($formData['hikaserial']['form'])) {
         return;
     }
     $serialData = $formData['hikaserial'];
     if (!$app->isAdmin()) {
         if (isset($serialData[$product_id])) {
             $serialData = $serialData[$product_id];
         } else {
             $serialData = array();
         }
     }
     $packs = array();
     if (isset($serialData['pack_qty']) && isset($serialData['pack_id'])) {
         $packs = array_combine($serialData['pack_id'], $serialData['pack_qty']);
     }
     $query = 'DELETE FROM ' . hikaserial::table('product_pack') . ' WHERE product_id = ' . $product_id;
     $this->db->setQuery($query);
     $this->db->query();
     if (!empty($packs)) {
         $query = 'INSERT IGNORE INTO ' . hikaserial::table('product_pack') . ' (`product_id`, `pack_id`, `quantity`) VALUES ';
         $data = array();
         foreach ($packs as $id => $qty) {
             if ((int) $qty > 0) {
                 $data[] = '(' . $product_id . ', ' . (int) $id . ', ' . (int) $qty . ')';
             }
             if (count($data) >= 50) {
                 $this->db->setQuery($query . implode(',', $data));
                 $this->db->query();
                 $data = array();
             }
         }
         if (count($data) > 0) {
             $this->db->setQuery($query . implode(',', $data));
             $this->db->query();
             $data = array();
         }
     }
     $this->refreshQuantity($product);
 }
Beispiel #2
0
 public function useselection()
 {
     if (!hikaserial::initMarket()) {
         return false;
     }
     if (!hikamarket::loginVendor()) {
         return false;
     }
     $marketConfig = hikamarket::config();
     if (!$marketConfig->get('frontend_edition', 0)) {
         return false;
     }
     if (!hikamarket::acl('product_edit_plugin_hikaserial')) {
         return hikamarket::deny('vendor', JText::sprintf('HIKAM_ACTION_DENY', JText::sprintf('HIKAM_ACT_PLUGIN', HIKASERIAL_NAME)));
     }
     JRequest::setVar('layout', 'useselection');
     return parent::display();
 }
Beispiel #3
0
 public function onAfterProductUpdate(&$product)
 {
     if (!$this->init()) {
         return;
     }
     $app = JFactory::getApplication();
     if (!$app->isAdmin() & !hikaserial::initMarket()) {
         return;
     }
     $class = hikaserial::get('class.product');
     $class->saveForm($product);
 }