当前位置: 首页>>代码示例>>PHP>>正文


PHP CI::ProductOptions方法代码示例

本文整理汇总了PHP中CI::ProductOptions方法的典型用法代码示例。如果您正苦于以下问题:PHP CI::ProductOptions方法的具体用法?PHP CI::ProductOptions怎么用?PHP CI::ProductOptions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CI的用法示例。


在下文中一共展示了CI::ProductOptions方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: index

 public function index($slug)
 {
     $product = \CI::Products()->slug($slug);
     if (!$product) {
         throw_404();
     } else {
         $product->images = json_decode($product->images, true);
         if ($product->images) {
             $product->images = array_values($product->images);
         } else {
             $product->images = [];
         }
         //set product options
         $data['options'] = \CI::ProductOptions()->getProductOptions($product->id);
         $data['posted_options'] = \CI::session()->flashdata('option_values');
         //get related items
         $data['related'] = $product->related_products;
         //create view variable
         $data['page_title'] = $product->name;
         $data['meta'] = $product->meta;
         $data['seo_title'] = !empty($product->seo_title) ? $product->seo_title : $product->name;
         $data['product'] = $product;
         //load the view
         $this->view('product', $data);
     }
 }
开发者ID:thijmenvenus,项目名称:GoCart3,代码行数:26,代码来源:Product.php

示例2: index

 public function index($slug)
 {
     $product = \CI::Products()->slug($slug);
     //echo '<pre>'; print_r($product);exit;
     if (!$product) {
         throw_404();
     } else {
         $product->images = json_decode($product->images, true);
         if ($product->images) {
             $product->images = array_values($product->images);
         } else {
             $product->images = [];
         }
         // get documents
         $data['documents'] = \CI::Products()->get_documents($product->id);
         //echo \CI::db()->last_query(); print_r($data['documents']);exit;
         //echo $product->manufacturers;exit;
         // get parameter of product
         $data['get_parameters_of_product'] = \CI::Products()->get_parameters_of_product($product->id, $product->primary_category, $product->manufacturers);
         //echo '<pre>'; print_r($data['documents']);exit;
         //set product options
         $data['options'] = \CI::ProductOptions()->getProductOptions($product->id);
         $data['posted_options'] = \CI::session()->flashdata('option_values');
         //get related items
         $data['related'] = $product->related_products;
         //create view variable
         $data['page_title'] = $product->name;
         $data['meta'] = $product->meta;
         $data['seo_title'] = !empty($product->seo_title) ? $product->seo_title : $product->name;
         $data['product'] = $product;
         //load the view
         $this->view('product', $data);
     }
 }
开发者ID:lekhangyahoo,项目名称:gonline,代码行数:34,代码来源:Product.php

示例3: insertItem

 public function insertItem($data = [])
 {
     $product = false;
     $quantity = 1;
     $postedOptions = false;
     $downloads = false;
     $combine = false;
     //is this an item from a separate cart being combined?
     extract($data);
     if (is_int($product)) {
         $product = \CI::Products()->getProduct($product);
         if (!$product) {
             return json_encode(['error' => lang('error_product_not_found')]);
         }
         //Clean up the product for the orderItems database
         $product = $this->cleanProduct($product);
         //get downloadable files
         $downloads = \CI::DigitalProducts()->getAssociationsByProduct($product->product_id);
     }
     $update = false;
     if (empty($product->hash)) {
         $product->hash = md5(json_encode($product) . json_encode($postedOptions));
         //set defaults for new items
         $product->coupon_discount = 0;
         $product->coupon_discount_quantity = 0;
         $product->coupon_code = '';
     } else {
         if (!$combine) {
             //this is an update
             $update = true;
         }
     }
     $product->order_id = $this->cart->id;
     //loop through the products in the cart and make sure we don't have this in there already. If we do get those quantities as well
     $qty_count = $quantity;
     $this->getCartItems();
     // refresh the cart items
     foreach ($this->items as $item) {
         if (intval($item->product_id) == intval($product->product_id)) {
             if ($item->hash != $product->hash) {
                 $qty_count = $qty_count + $item->quantity;
             }
         }
         if ($item->hash == $product->hash && !$update) {
             //if the item is already in the cart, send back a message
             return json_encode(['message' => lang('item_already_added')]);
         }
     }
     if (!config_item('allow_os_purchase') && (bool) $product->track_stock) {
         $stock = \CI::Products()->getProduct($product->product_id);
         if ($stock->quantity < $qty_count) {
             return json_encode(['error' => sprintf(lang('not_enough_stock'), $stock->name, $stock->quantity)]);
         }
     }
     if (!$quantity || $quantity <= 0 || $product->fixed_quantity == 1) {
         $product->quantity = 1;
     } else {
         $product->quantity = $quantity;
     }
     //create save options array here for use later.
     $saveOptions = [];
     if (!$update && $product->product_id) {
         //set the base "total_price"
         if ($product->saleprice > 0) {
             $product->total_price = $product->saleprice;
         } else {
             $product->total_price = $product->price;
         }
         //set base "total_weight"
         $product->total_weight = $product->weight;
         $productOptions = \CI::ProductOptions()->getProductOptions($product->product_id);
         //option error vars
         $optionError = false;
         $optionErrorMessage = lang('option_error') . '<br/>';
         //lets validate the options
         foreach ($productOptions as $productOption) {
             // are we missing any required values?
             $optionValue = false;
             if (!empty($postedOptions[$productOption->id])) {
                 $optionValue = $postedOptions[$productOption->id];
             }
             if ((int) $productOption->required && !$optionValue) {
                 $optionError = true;
                 $optionErrorMessage .= "- " . $productOption->name . '<br/>';
                 continue;
                 // don't bother processing this particular option any further
             }
             //create options to save to the database in case we get past the errors
             if ($productOption->type == 'checklist') {
                 if (is_array($optionValue)) {
                     foreach ($optionValue as $ov) {
                         foreach ($productOption->values as $productOptionValue) {
                             if ($productOptionValue->id == $ov) {
                                 $saveOptions[] = ['option_name' => $productOption->name, 'value' => $productOptionValue->value, 'price' => $productOptionValue->price, 'weight' => $productOptionValue->weight];
                                 $product->total_weight += $productOptionValue->weight;
                                 $product->total_price += $productOptionValue->price;
                             }
                         }
                     }
                 }
//.........这里部分代码省略.........
开发者ID:berkapavel,项目名称:GoCart3,代码行数:101,代码来源:GoCart.php

示例4: giftCardForm

 public function giftCardForm($id = false, $duplicate = false)
 {
     $this->product_id = $id;
     \CI::load()->library('form_validation');
     \CI::load()->model(array('ProductOptions', 'Categories'));
     \CI::form_validation()->set_error_delimiters('<div class="error">', '</div>');
     $data['categories'] = \CI::Categories()->get_categories_tiered();
     $data['page_title'] = lang('giftcard_product_form');
     $data['groups'] = \CI::Customers()->get_groups();
     //default values are empty if the product is new
     $data['id'] = '';
     $data['sku'] = '';
     $data['primary_category'] = '';
     $data['name'] = '';
     $data['slug'] = '';
     $data['description'] = '';
     $data['excerpt'] = '';
     $data['track_stock'] = '';
     $data['seo_title'] = '';
     $data['meta'] = '';
     $data['is_giftcard'] = 1;
     $data['taxable'] = '';
     $data['images'] = [];
     $data['product_categories'] = [];
     $data['product_files'] = [];
     foreach ($data['groups'] as $group) {
         $data['enabled_' . $group->id] = '';
     }
     //create the photos array for later use
     $data['photos'] = [];
     if ($id) {
         // get product & options data
         $data['ProductOptions'] = \CI::ProductOptions()->getProductOptions($id);
         $product = \CI::Products()->find($id, true);
         //if the product does not exist, redirect them to the product list with an error
         if (!$product) {
             \CI::session()->set_flashdata('error', lang('error_not_found'));
             redirect('admin/products');
         }
         //helps us with the slug generation
         $this->product_name = \CI::input()->post('slug', $product->slug);
         //set values to db values
         $data['id'] = $id;
         $data['sku'] = $product->sku;
         $data['primary_category'] = $product->primary_category;
         $data['name'] = $product->name;
         $data['seo_title'] = $product->seo_title;
         $data['meta'] = $product->meta;
         $data['slug'] = $product->slug;
         $data['description'] = $product->description;
         $data['excerpt'] = $product->excerpt;
         $data['quantity'] = $product->quantity;
         $data['taxable'] = $product->taxable;
         $data['fixed_quantity'] = $product->fixed_quantity;
         $data['is_giftcard'] = $product->is_giftcard;
         foreach ($data['groups'] as $group) {
             $data['enabled_' . $group->id] = $product->{'enabled_' . $group->id};
         }
         //make sure we haven't submitted the form yet before we pull in the images/related products from the database
         if (!\CI::input()->post('submit')) {
             $data['product_categories'] = [];
             foreach ($product->categories as $product_category) {
                 $data['product_categories'][] = $product_category->id;
             }
             $data['related_products'] = $product->related_products;
             $data['images'] = (array) json_decode($product->images);
         }
     }
     if (!is_array($data['product_categories'])) {
         $data['product_categories'] = [];
     }
     //no error checking on these
     \CI::form_validation()->set_rules('caption', 'Caption');
     \CI::form_validation()->set_rules('primary_photo', 'Primary');
     \CI::form_validation()->set_rules('sku', 'lang:sku', 'trim');
     \CI::form_validation()->set_rules('seo_title', 'lang:seo_title', 'trim');
     \CI::form_validation()->set_rules('meta', 'lang:meta_data', 'trim');
     \CI::form_validation()->set_rules('name', 'lang:name', 'trim|required|max_length[64]');
     \CI::form_validation()->set_rules('slug', 'lang:slug', 'trim');
     \CI::form_validation()->set_rules('description', 'lang:description', 'trim');
     \CI::form_validation()->set_rules('excerpt', 'lang:excerpt', 'trim');
     \CI::form_validation()->set_rules('taxable', 'lang:taxable', 'trim|numeric');
     \CI::form_validation()->set_rules('fixed_quantity', 'lang:fixed_quantity', 'trim|numeric');
     \CI::form_validation()->set_rules('option[giftcard_values]', 'lang:giftcard_values', 'required');
     foreach ($data['groups'] as $group) {
         \CI::form_validation()->set_rules('enabled_' . $group->id, lang('enabled') . '(' . $group->name . ')', 'trim|numeric');
     }
     /*
     if we've posted already, get the photo stuff and organize it
     if validation comes back negative, we feed this info back into the system
     if it comes back good, then we send it with the save item
     
     submit button has a value, so we can see when it's posted
     */
     if ($duplicate) {
         $data['id'] = false;
     }
     if (\CI::input()->post('submit')) {
         //reset the product options that were submitted in the post
         $data['ProductOptions'] = \CI::input()->post('option');
//.........这里部分代码省略.........
开发者ID:vandona,项目名称:v3,代码行数:101,代码来源:AdminProducts.php

示例5: save

 public function save($product, $options = false, $categories = false)
 {
     if ($product['id']) {
         CI::db()->where('id', $product['id']);
         CI::db()->update('products', $product);
         $id = $product['id'];
     } else {
         CI::db()->insert('products', $product);
         $id = CI::db()->insert_id();
     }
     //loop through the product options and add them to the db
     if ($options !== false) {
         // wipe the slate
         CI::ProductOptions()->clearOptions($id);
         // save edited values
         $count = 1;
         foreach ($options as $option) {
             $values = $option['values'];
             unset($option['values']);
             $option['product_id'] = $id;
             $option['sequence'] = $count;
             CI::ProductOptions()->saveOption($option, $values);
             $count++;
         }
     }
     if ($categories !== false) {
         if ($product['id']) {
             //get all the categories that the product is in
             $cats = $this->getProductCategories($id);
             //generate cat_id array
             $ids = [];
             foreach ($cats as $c) {
                 $ids[] = $c->id;
             }
             //eliminate categories that products are no longer in
             foreach ($ids as $c) {
                 if (!in_array($c, $categories)) {
                     CI::db()->delete('category_products', array('product_id' => $id, 'category_id' => $c));
                 }
             }
             //add products to new categories
             foreach ($categories as $c) {
                 if (!in_array($c, $ids)) {
                     CI::db()->insert('category_products', array('product_id' => $id, 'category_id' => $c));
                 }
             }
         } else {
             //new product add them all
             foreach ($categories as $c) {
                 CI::db()->insert('category_products', array('product_id' => $id, 'category_id' => $c));
             }
         }
     }
     //return the product id
     return $id;
 }
开发者ID:RetinaInc,项目名称:GoCart3,代码行数:56,代码来源:Products.php


注:本文中的CI::ProductOptions方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。