Beispiel #1
0
 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;
 }