function store(&$pParamHash) { // we have already done all the permission checking needed for this user to upload an image $pParamHash['no_perm_check'] = TRUE; $this->StartTrans(); if (CommerceProduct::verify($pParamHash) && LibertyMime::store($pParamHash)) { if (isset($pParamHash['pID'])) { $this->mProductsId = zen_db_prepare_input($pParamHash['pID']); } if ($this->isValid()) { $action = 'update_product'; $this->mDb->associateUpdate(TABLE_PRODUCTS, $pParamHash['product_store'], array('products_id' => $this->mProductsId)); } else { $pParamHash['product_store']['content_id'] = $pParamHash['content_id']; $action = 'insert_product'; $this->mDb->associateInsert(TABLE_PRODUCTS, $pParamHash['product_store']); $this->mProductsId = zen_db_insert_id(TABLE_PRODUCTS, 'products_id'); $this->mDb->query("insert into " . TABLE_PRODUCTS_TO_CATEGORIES . " ( `products_id`, `categories_id` ) values (?,?)", array($this->mProductsId, $pParamHash['product_store']['master_categories_id'])); } $languages = zen_get_languages(); for ($i = 0, $n = sizeof($languages); $i < $n; $i++) { $language_id = $languages[$i]['id']; $bindVars = array(); if (!empty($pParamHash['products_name'][$language_id])) { $bindVars['products_name'] = substr(zen_db_prepare_input($pParamHash['products_name'][$language_id]), 0, 64); } if (!empty($pParamHash['products_description'][$language_id])) { $bindVars['products_description'] = zen_db_prepare_input($pParamHash['products_description'][$language_id]); } if (!empty($pParamHash['products_url'][$language_id])) { $bindVars['products_url'] = substr(zen_db_prepare_input($pParamHash['products_url'][$language_id]), 0, 255); } if ($action == 'insert_product') { $bindVars['products_id'] = $this->mProductsId; $bindVars['language_id'] = $language_id; $this->mDb->associateInsert(TABLE_PRODUCTS_DESCRIPTION, $bindVars); } elseif ($action == 'update_product') { if (!empty($bindVars)) { $query = "UPDATE " . TABLE_PRODUCTS_DESCRIPTION . " SET `" . implode(array_keys($bindVars), '`=?, `') . '`=?' . " WHERE `products_id` =? AND `language_id`=?"; $bindVars['products_id'] = $this->mProductsId; $bindVars['language_id'] = $language_id; $this->mDb->query($query, $bindVars); } } } // add meta tags for ($i = 0, $n = sizeof($languages); $i < $n; $i++) { $language_id = $languages[$i]['id']; $bindVars = array(); if (!empty($pParamHash['metatags_title'][$language_id])) { $bindVars['metatags_title'] = zen_db_prepare_input($pParamHash['metatags_title'][$language_id]); } if (!empty($pParamHash['metatags_keywords'][$language_id])) { $bindVars['metatags_keywords'] = zen_db_prepare_input($pParamHash['metatags_keywords'][$language_id]); } if (!empty($pParamHash['metatags_description'][$language_id])) { $bindVars['metatags_description'] = zen_db_prepare_input($pParamHash['metatags_description'][$language_id]); } $this->mDb->query("DELETE FROM " . TABLE_META_TAGS_PRODUCTS_DESCRIPTION . " WHERE `products_id`=?", array($this->mProductsId)); if (!empty($bindVars)) { if (!empty($bindVars)) { $bindVars['products_id'] = $this->mProductsId; $bindVars['language_id'] = $language_id; $this->mDb->associateInsert(TABLE_META_TAGS_PRODUCTS_DESCRIPTION, $bindVars); } } $this->storeProductImage($pParamHash); } } $this->CompleteTrans(); $this->load(); return count($this->mErrors) == 0; }