rock Posted December 7, 2011 Share Posted December 7, 2011 Как сделать что бы товар не отображался в магазине, если он закончился? Перерыл весь форум, но ответа не нашел для своей версии Opencart 1.5.1 Было бы вообще идеально если бы кнопка добавить в корзину, менялась бы на нет в наличии. Буду очень благодарен за помощь! Link to comment Share on other sites More sharing options...
freelancer Posted December 7, 2011 Share Posted December 7, 2011 . in_stock.zip 1 Link to comment Share on other sites More sharing options... rock Posted December 8, 2011 Author Share Posted December 8, 2011 freelancer, спасибо огромное, вечером буду пробовать. Link to comment Share on other sites More sharing options... rock Posted December 8, 2011 Author Share Posted December 8, 2011 Не получается. Помогите кому не сложно. Вот product.php <?php class ControllerProductProduct extends Controller { private $error = array(); public function index() { $this->language->load('product/product'); $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); $this->load->model('catalog/category'); if (isset($this->request->get['path'])) { $path = ''; foreach (explode('_', $this->request->get['path']) as $path_id) { if (!$path) { $path = $path_id; } else { $path .= '_' . $path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path), 'separator' => $this->language->get('text_separator') ); } } } $this->load->model('catalog/manufacturer'); if (isset($this->request->get['manufacturer_id'])) { $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_brand'), 'href' => $this->url->link('product/manufacturer'), 'separator' => $this->language->get('text_separator') ); $manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($this->request->get['manufacturer_id']); if ($manufacturer_info) { $this->data['breadcrumbs'][] = array( 'text' => $manufacturer_info['name'], 'href' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $this->request->get['manufacturer_id']), 'separator' => $this->language->get('text_separator') ); } } if (isset($this->request->get['filter_name']) || isset($this->request->get['filter_tag'])) { $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . $this->request->get['filter_name']; } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . $this->request->get['filter_tag']; } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_search'), 'href' => $this->url->link('product/search', $url), 'separator' => $this->language->get('text_separator') ); } if (isset($this->request->get['product_id'])) { $product_id = $this->request->get['product_id']; } else { $product_id = 0; } $this->load->model('catalog/product'); $product_info = $this->model_catalog_product->getProduct($product_id); $this->data['product_info'] = $product_info; if ($product_info) { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['manufacturer_id'])) { $url .= '&manufacturer_id=' . $this->request->get['manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . $this->request->get['filter_name']; } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . $this->request->get['filter_tag']; } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } $this->data['breadcrumbs'][] = array( 'text' => $product_info['name'], 'href' => $this->url->link('product/product', $url . '&product_id=' . $this->request->get['product_id']), 'separator' => $this->language->get('text_separator') ); $this->document->setTitle($product_info['name']); $this->document->setDescription($product_info['meta_description']); $this->document->setKeywords($product_info['meta_keyword']); $this->document->addLink($this->url->link('product/product', 'product_id=' . $this->request->get['product_id']), 'canonical'); $this->data['heading_title'] = $product_info['name']; $this->data['text_select'] = $this->language->get('text_select'); $this->data['text_manufacturer'] = $this->language->get('text_manufacturer'); $this->data['text_model'] = $this->language->get('text_model'); $this->data['text_reward'] = $this->language->get('text_reward'); $this->data['text_points'] = $this->language->get('text_points'); $this->data['text_discount'] = $this->language->get('text_discount'); $this->data['text_stock'] = $this->language->get('text_stock'); $this->data['text_price'] = $this->language->get('text_price'); $this->data['text_tax'] = $this->language->get('text_tax'); $this->data['text_discount'] = $this->language->get('text_discount'); $this->data['text_option'] = $this->language->get('text_option'); $this->data['text_qty'] = $this->language->get('text_qty'); $this->data['text_minimum'] = sprintf($this->language->get('text_minimum'), $product_info['minimum']); $this->data['text_or'] = $this->language->get('text_or'); $this->data['text_write'] = $this->language->get('text_write'); $this->data['text_note'] = $this->language->get('text_note'); $this->data['text_share'] = $this->language->get('text_share'); $this->data['text_wait'] = $this->language->get('text_wait'); $this->data['text_tags'] = $this->language->get('text_tags'); $this->data['entry_name'] = $this->language->get('entry_name'); $this->data['entry_review'] = $this->language->get('entry_review'); $this->data['entry_rating'] = $this->language->get('entry_rating'); $this->data['entry_good'] = $this->language->get('entry_good'); $this->data['entry_bad'] = $this->language->get('entry_bad'); $this->data['entry_captcha'] = $this->language->get('entry_captcha'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['button_upload'] = $this->language->get('button_upload'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->load->model('catalog/review'); $this->data['tab_description'] = $this->language->get('tab_description'); $this->data['tab_attribute'] = $this->language->get('tab_attribute'); $this->data['tab_review'] = sprintf($this->language->get('tab_review'), $this->model_catalog_review->getTotalReviewsByProductId($this->request->get['product_id'])); $this->data['tab_related'] = $this->language->get('tab_related'); $this->data['product_id'] = $this->request->get['product_id']; $this->data['manufacturer'] = $product_info['manufacturer']; $this->data['manufacturers'] = $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $product_info['manufacturer_id']); $this->data['model'] = $product_info['model']; $this->data['reward'] = $product_info['reward']; $this->data['points'] = $product_info['points']; if ($product_info['quantity'] <= 0) { $this->data['stock'] = $product_info['stock_status']; } elseif ($this->config->get('config_stock_display')) { $this->data['stock'] = $product_info['quantity']; } else { $this->data['stock'] = $this->language->get('text_instock'); } $this->load->model('tool/image'); if ($product_info['image']) { $this->data['popup'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')); } else { $this->data['popup'] = ''; } if ($product_info['image']) { $this->data['thumb'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_thumb_width'), $this->config->get('config_image_thumb_height')); } else { $this->data['thumb'] = ''; } $this->data['images'] = array(); $results = $this->model_catalog_product->getProductImages($this->request->get['product_id']); foreach ($results as $result) { $this->data['images'][] = array( 'popup' => $this->model_tool_image->resize($result['image'] , $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), 'thumb' => $this->model_tool_image->resize($result['image'], $this->config->get('config_image_additional_width'), $this->config->get('config_image_additional_height')) ); } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $this->data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))); } else { $this->data['price'] = false; } if ((float)$product_info['special']) { $this->data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax'))); } else { $this->data['special'] = false; } if ($this->config->get('config_tax')) { $this->data['tax'] = $this->currency->format((float)$product_info['special'] ? $product_info['special'] : $product_info['price']); } else { $this->data['tax'] = false; } $discounts = $this->model_catalog_product->getProductDiscounts($this->request->get['product_id']); $this->data['discounts'] = array(); foreach ($discounts as $discount) { $this->data['discounts'][] = array( 'quantity' => $discount['quantity'], 'price' => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) ); } $this->data['options'] = array(); foreach ($this->model_catalog_product->getProductOptions($this->request->get['product_id']) as $option) { if ($option['type'] == 'select' || $option['type'] == 'radio' || $option['type'] == 'checkbox') { $option_value_data = array(); foreach ($option['option_value'] as $option_value) { if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) { $option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'price' => (float)$option_value['price'] ? $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) : false, 'price_prefix' => $option_value['price_prefix'] ); } } $this->data['options'][] = array( 'product_option_id' => $option['product_option_id'], 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'option_value' => $option_value_data, 'required' => $option['required'] ); } elseif ($option['type'] == 'text' || $option['type'] == 'textarea' || $option['type'] == 'file' || $option['type'] == 'date' || $option['type'] == 'datetime' || $option['type'] == 'time') { $this->data['options'][] = array( 'product_option_id' => $option['product_option_id'], 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'option_value' => $option['option_value'], 'required' => $option['required'] ); } } if ($product_info['minimum']) { $this->data['minimum'] = $product_info['minimum']; } else { $this->data['minimum'] = 1; } $this->data['review_status'] = $this->config->get('config_review_status'); $this->data['reviews'] = sprintf($this->language->get('text_reviews'), (int)$product_info['reviews']); $this->data['rating'] = (int)$product_info['rating']; $this->data['description'] = html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8'); $this->data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']); $this->data['products'] = array(); $results = $this->model_catalog_product->getProductRelated($this->request->get['product_id']); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_related_width'), $this->config->get('config_image_related_height')); } else { $image = false; } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'price' => $price, 'special' => $special, 'rating' => $rating, 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', 'product_id=' . $result['product_id']), ); } $this->data['tags'] = array(); $results = $this->model_catalog_product->getProductTags($this->request->get['product_id']); foreach ($results as $result) { $this->data['tags'][] = array( 'tag' => $result['tag'], 'href' => $this->url->link('product/search', 'filter_tag=' . $result['tag']) ); } $this->model_catalog_product->updateViewed($this->request->get['product_id']); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/product.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/product.tpl'; } else { $this->template = 'default/template/product/product.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['manufacturer_id'])) { $url .= '&manufacturer_id=' . $this->request->get['manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . $this->request->get['filter_name']; } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . $this->request->get['filter_tag']; } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/product', $url . '&product_id=' . $product_id), 'separator' => $this->language->get('text_separator') ); $this->document->setTitle($this->language->get('text_error')); $this->data['heading_title'] = $this->language->get('text_error'); $this->data['text_error'] = $this->language->get('text_error'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) { $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl'; } else { $this->template = 'default/template/error/not_found.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } } public function review() { $this->language->load('product/product'); $this->load->model('catalog/review'); $this->data['text_no_reviews'] = $this->language->get('text_no_reviews'); if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } $this->data['reviews'] = array(); $review_total = $this->model_catalog_review->getTotalReviewsByProductId($this->request->get['product_id']); $results = $this->model_catalog_review->getReviewsByProductId($this->request->get['product_id'], ($page - 1) * 5, 5); foreach ($results as $result) { $this->data['reviews'][] = array( 'author' => $result['author'], 'text' => strip_tags($result['text']), 'rating' => (int)$result['rating'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$review_total), 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])) ); } $pagination = new Pagination(); $pagination->total = $review_total; $pagination->page = $page; $pagination->limit = 5; $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('product/product/review', 'product_id=' . $this->request->get['product_id'] . '&page={page}'); $this->data['pagination'] = $pagination->render(); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/review.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/review.tpl'; } else { $this->template = 'default/template/product/review.tpl'; } $this->response->setOutput($this->render()); } public function write() { $this->language->load('product/product'); $this->load->model('catalog/review'); $json = array(); if ((strlen(utf8_decode($this->request->post['name'])) < 3) || (strlen(utf8_decode($this->request->post['name'])) > 25)) { $json['error'] = $this->language->get('error_name'); } if ((strlen(utf8_decode($this->request->post['text'])) < 25) || (strlen(utf8_decode($this->request->post['text'])) > 1000)) { $json['error'] = $this->language->get('error_text'); } if (!$this->request->post['rating']) { $json['error'] = $this->language->get('error_rating'); } if (!isset($this->session->data['captcha']) || ($this->session->data['captcha'] != $this->request->post['captcha'])) { $json['error'] = $this->language->get('error_captcha'); } if (($this->request->server['REQUEST_METHOD'] == 'POST') && !isset($json['error'])) { $this->model_catalog_review->addReview($this->request->get['product_id'], $this->request->post); $json['success'] = $this->language->get('text_success'); } $this->load->library('json'); $this->response->setOutput(Json::encode($json)); } public function captcha() { $this->load->library('captcha'); $captcha = new Captcha(); $this->session->data['captcha'] = $captcha->getCode(); $captcha->showImage(); } public function upload() { $this->language->load('product/product'); $json = array(); if (isset($this->request->files['file']['name']) && $this->request->files['file']['name']) { if ((strlen(utf8_decode($this->request->files['file']['name'])) < 3) || (strlen(utf8_decode($this->request->files['file']['name'])) > 128)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($this->request->files['file']['name'], '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (($this->request->server['REQUEST_METHOD'] == 'POST') && !isset($json['error'])) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($this->request->files['file']['name']) . '.' . md5(rand()); // Hide the uploaded file name sop people can not link to it directly. $this->load->library('encryption'); $encryption = new Encryption($this->config->get('config_encryption')); $json['file'] = $encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->load->library('json'); $this->response->setOutput(Json::encode($json)); } } ?> Вот tpl. <?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?> <div id="content"><?php echo $content_top; ?> <div class="breadcrumb"> <?php foreach ($breadcrumbs as $breadcrumb) { ?> <?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a> <?php } ?> </div> <h1><?php echo $heading_title; ?></h1> <div class="product-info"> <?php if ($thumb || $images) { ?> <div class="left"> <?php if ($thumb) { ?> <div class="image"><a href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>" class="fancybox" rel="fancybox"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" id="image" /></a></div> <?php } ?> <?php if ($images) { ?> <div class="image-additional"> <?php foreach ($images as $image) { ?> <a href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>" class="fancybox" rel="fancybox"><img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a> <?php } ?> </div> <?php } ?> </div> <?php } ?> <div class="right"> <div class="description"> <?php if ($manufacturer) { ?> <span><?php echo $text_manufacturer; ?></span> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a><br /> <?php } ?> <span><?php echo $text_model; ?></span> <?php echo $model; ?><br /> <span><?php echo $text_reward; ?></span> <?php echo $reward; ?><br /> <span><?php echo $text_stock; ?></span> <?php echo $stock; ?></div> <?php if ($price) { ?> <div class="price"><?php echo $text_price; ?> <?php if (!$special) { ?> <?php echo $price; ?> <?php } else { ?> <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span> <?php } ?> <br /> <?php if ($tax) { ?> <span class="price-tax"><?php echo $text_tax; ?> <?php echo $tax; ?></span><br /> <?php } ?> <?php if ($points) { ?> <span class="reward"><small><?php echo $text_points; ?> <?php echo $points; ?></small></span> <br /> <?php } ?> <?php if ($discounts) { ?> <br /> <div class="discount"> <?php foreach ($discounts as $discount) { ?> <?php echo sprintf($text_discount, $discount['quantity'], $discount['price']); ?><br /> <?php } ?> </div> <?php } ?> </div> <?php } ?> <?php if ($options) { ?> <div class="options"> <h2><?php echo $text_option; ?></h2> <br /> <?php foreach ($options as $option) { ?> <?php if ($option['type'] == 'select') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <select name="option[<?php echo $option['product_option_id']; ?>]"> <option value=""><?php echo $text_select; ?></option> <?php foreach ($option['option_value'] as $option_value) { ?> <option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?> <?php if ($option_value['price']) { ?> (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>) <?php } ?> </option> <?php } ?> </select> </div> <br /> <?php } ?> <?php if ($option['type'] == 'radio') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <?php foreach ($option['option_value'] as $option_value) { ?> <input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /> <label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?> <?php if ($option_value['price']) { ?> (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>) <?php } ?> </label> <br /> <?php } ?> </div> <br /> <?php } ?> <?php if ($option['type'] == 'checkbox') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <?php foreach ($option['option_value'] as $option_value) { ?> <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /> <label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"> <?php echo $option_value['name']; ?> <?php if ($option_value['price']) { ?> (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>) <?php } ?> </label> <br /> <?php } ?> </div> <br /> <?php } ?> <?php if ($option['type'] == 'text') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" /> </div> <br /> <?php } ?> <?php if ($option['type'] == 'textarea') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <textarea name="option[<?php echo $option['product_option_id']; ?>]" cols="40" rows="5"><?php echo $option['option_value']; ?></textarea> </div> <br /> <?php } ?> <?php if ($option['type'] == 'file') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <a id="button-option-<?php echo $option['product_option_id']; ?>" class="button"><span><?php echo $button_upload; ?></span></a> <input type="hidden" name="option[<?php echo $option['product_option_id']; ?>]" value="" /> </div> <br /> <?php } ?> <?php if ($option['type'] == 'date') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="date" /> </div> <br /> <?php } ?> <?php if ($option['type'] == 'datetime') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="datetime" /> </div> <br /> <?php } ?> <?php if ($option['type'] == 'time') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="time" /> </div> <br /> <?php } ?> <?php } ?> </div> <?php } ?> <div class="cart"> <div><?php echo $text_qty; ?> <input type="text" name="quantity" size="2" value="<?php echo $minimum; ?>" /> <input type="hidden" name="product_id" size="2" value="<?php echo $product_id; ?>" /> <a id="button-cart" class="button"><span><?php echo $button_cart; ?></span></a></div> <div><span> <?php echo $text_or; ?> </span></div> <div><a onclick="addToWishList('<?php echo $product_id; ?>');"><?php echo $button_wishlist; ?></a><br /> <a onclick="addToCompare('<?php echo $product_id; ?>');"><?php echo $button_compare; ?></a></div> <?php if ($minimum > 1) { ?> <div class="minimum"><?php echo $text_minimum; ?></div> <?php } ?> </div> <?php if ($review_status) { ?> <div class="review"> <div><img src="catalog/view/theme/default/image/stars-<?php echo $rating; ?>.png" alt="<?php echo $reviews; ?>" /> <a onclick="$('a[href=\'#tab-review\']').trigger('click');"><?php echo $reviews; ?></a> | <a onclick="$('a[href=\'#tab-review\']').trigger('click');"><?php echo $text_write; ?></a></div> <div class="share"><!-- AddThis Button BEGIN --> <div class="addthis_default_style"><a class="addthis_button_compact"><?php echo $text_share; ?></a> <a class="addthis_button_email"></a><a class="addthis_button_print"></a> <a class="addthis_button_facebook"></a> <a class="addthis_button_twitter"></a></div> <script type="text/javascript" src="http-~~-//s7.addthis.com/js/250/addthis_widget.js"></script> <!-- AddThis Button END --> </div> </div> <?php } ?> </div> </div> <span class="tab-title"><?php echo $tab_description; ?></span> <div id="tab-description" class="tab-content"><?php echo $description; ?></div> <?php if ($attribute_groups) { ?> <span class="tab-title"><?php echo $tab_attribute; ?></span> <div id="tab-attribute" class="tab-content"> <table class="attribute"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> <?php } ?> <?php if ($review_status) { ?> <span class="tab-title"><?php echo $tab_review; ?></span> <div id="tab-review" class="tab-content"> <div id="review"></div> <h2 id="review-title"><?php echo $text_write; ?></h2> <b><?php echo $entry_name; ?></b><br /> <input type="text" name="name" value="" /> <br /> <br /> <b><?php echo $entry_review; ?></b> <textarea name="text" cols="40" rows="8" style="width: 98%;"></textarea> <span style="font-size: 11px;"><?php echo $text_note; ?></span><br /> <br /> <b><?php echo $entry_rating; ?></b> <span><?php echo $entry_bad; ?></span> <input type="radio" name="rating" value="1" /> <input type="radio" name="rating" value="2" /> <input type="radio" name="rating" value="3" /> <input type="radio" name="rating" value="4" /> <input type="radio" name="rating" value="5" /> <span><?php echo $entry_good; ?></span><br /> <br /> <b><?php echo $entry_captcha; ?></b><br /> <input type="text" name="captcha" value="" /> <br /> <img src="index.php?route=product/product/captcha" alt="" id="captcha" /><br /> <br /> <div class="buttons"> <div class="right"><a id="button-review" class="button"><span><?php echo $button_continue; ?></span></a></div> </div> </div> <?php } ?> <?php if ($products) { ?> <span class="tab-title"><?php echo $tab_related; ?> (<?php echo count($products); ?>)</span> <div id="tab-related" class="tab-content"> <div class="box-product"> <?php foreach ($products as $product) { ?> <div> <?php if ($product['thumb']) { ?> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" /></a></div> <?php } ?> <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div> <?php if ($product['price']) { ?> <div class="price"> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php } else { ?> <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span> <?php } ?> </div> <?php } ?> <?php if ($product['rating']) { ?> <div class="rating"><img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /></div> <?php } ?> <a onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button"><span><?php echo $button_cart; ?></span></a></div> <?php } ?> </div> </div> <?php } ?> <?php if ($tags) { ?> <div class="tags"><b><?php echo $text_tags; ?></b> <?php foreach ($tags as $tag) { ?> <a href="<?php echo $tag['href']; ?>"><?php echo $tag['tag']; ?></a>, <?php } ?> </div> <?php } ?> <?php echo $content_bottom; ?></div> <script type="text/javascript"><!-- $('.fancybox').fancybox({cyclic: true}); //--></script> <script type="text/javascript"><!-- $('#button-cart').bind('click', function() { $.ajax({ url: 'index.php?route=checkout/cart/update', type: 'post', data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['warning']) { $('#notification').html('<div class="warning" style="display: none;">' + json['error']['warning'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>'); $('.warning').fadeIn('slow'); } for (i in json['error']) { $('#option-' + i).after('<span class="error">' + json['error'][i] + '</span>'); } } if (json['success']) { $('#notification').html('<div class="attention" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>'); $('.attention').fadeIn('slow'); $('#cart_total').html(json['total']); var image = $('#image').offset(); var cart = $('#cart').offset(); $('#image').before('<img src="' + $('#image').attr('src') + '" id="temp" style="position: absolute; top: ' + image.top + 'px; left: ' + image.left + 'px;" />'); params = { top : cart.top + 'px', left : cart.left + 'px', opacity : 0.0, width : $('#cart').width(), height : $('#cart').height() }; $('#temp').animate(params, 'slow', false, function () { $('#temp').remove(); }); } } }); }); //--></script> <?php if ($options) { ?> <script type="text/javascript" src="catalog/view/javascript/jquery/ajaxupload.js"></script> <?php foreach ($options as $option) { ?> <?php if ($option['type'] == 'file') { ?> <script type="text/javascript"><!-- new AjaxUpload('#button-option-<?php echo $option['product_option_id']; ?>', { action: 'index.php?route=product/product/upload', name: 'file', autoSubmit: true, responseType: 'json', onSubmit: function(file, extension) { $('#button-option-<?php echo $option['product_option_id']; ?>').after('<img src="catalog/view/theme/default/image/loading.gif" id="loading" style="padding-left: 5px;" />'); }, onComplete: function(file, json) { $('.error').remove(); if (json.success) { alert(json.success); $('input[name=\'option[<?php echo $option['product_option_id']; ?>]\']').attr('value', json.file); } if (json.error) { $('#option-<?php echo $option['product_option_id']; ?>').after('<span class="error">' + json.error + '</span>'); } $('#loading').remove(); } }); //--></script> <?php } ?> <?php } ?> <?php } ?> <script type="text/javascript"><!-- $('#review .pagination a').live('click', function() { $('#review').slideUp('slow'); $('#review').load(this.href); $('#review').slideDown('slow'); return false; }); $('#review').load('index.php?route=product/product/review&product_id=<?php echo $product_id; ?>'); $('#button-review').bind('click', function() { $.ajax({ type: 'POST', url: 'index.php?route=product/product/write&product_id=<?php echo $product_id; ?>', dataType: 'json', data: 'name=' + encodeURIComponent($('input[name=\'name\']').val()) + '&text=' + encodeURIComponent($('textarea[name=\'text\']').val()) + '&rating=' + encodeURIComponent($('input[name=\'rating\']:checked').val() ? $('input[name=\'rating\']:checked').val() : '') + '&captcha=' + encodeURIComponent($('input[name=\'captcha\']').val()), beforeSend: function() { $('.success, .warning').remove(); $('#button-review').attr('disabled', true); $('#review-title').after('<div class="attention"><img src="catalog/view/theme/default/image/loading.gif" alt="" /> <?php echo $text_wait; ?></div>'); }, complete: function() { $('#button-review').attr('disabled', false); $('.attention').remove(); }, success: function(data) { if (data.error) { $('#review-title').after('<div class="warning">' + data.error + '</div>'); } if (data.success) { $('#review-title').after('<div class="success">' + data.success + '</div>'); $('input[name=\'name\']').val(''); $('textarea[name=\'text\']').val(''); $('input[name=\'rating\']:checked').attr('checked', ''); $('input[name=\'captcha\']').val(''); } } }); }); //--></script> <script type="text/javascript"><!-- $('#tabs a').tabs(); //--></script> <script type="text/javascript" src="catalog/view/javascript/jquery/ui/jquery-ui-timepicker-addon.js"></script> <script type="text/javascript"><!-- if ($.browser.msie && $.browser.version == 6) { $('.date, .datetime, .time').bgIframe(); } $('.date').datepicker({dateFormat: 'yy-mm-dd'}); $('.datetime').datetimepicker({ dateFormat: 'yy-mm-dd', timeFormat: 'h:m' }); $('.time').timepicker({timeFormat: 'h:m'}); //--></script> <?php echo $footer; ?> Link to comment Share on other sites More sharing options... rock Posted December 8, 2011 Author Share Posted December 8, 2011 Или подскажите что в этих файлах поменять. Только поподробней плиз. Link to comment Share on other sites More sharing options... freelancer Posted December 9, 2011 Share Posted December 9, 2011 это для каталога. для продукта посмотрите как я сделал и сделайте по аналогии. 1 Link to comment Share on other sites More sharing options... Evgeny Posted December 9, 2011 Share Posted December 9, 2011 .Подскажите,куда нужно скопировать Ваш файлик. Link to comment Share on other sites More sharing options... rock Posted December 10, 2011 Author Share Posted December 10, 2011 это для каталога. для продукта посмотрите как я сделал и сделайте по аналогии. freelancer Спасибо, все получилось. Я так понял что это изменение меняет только значок в каталоге на нет в наличии? Просто когда переходиш на страницу товара, его можно добавить в корзину. Можно-ли зделать что-бы товар нельзя было дабавлять в корзину? Link to comment Share on other sites More sharing options... xsobakax Posted December 10, 2011 Share Posted December 10, 2011 хороший вопрос. как известно, многие магазины не удаляют товары, даже которых нет на складе (может, их подвезут позже, а может и нет). это крайне полезно для индексации роботами. человек перешел, конкретный товар не нашел , но может ознакомится с аналогом и сделать заказ тем не менее. присоединяюсь к вопросу, в идеале, как только заканчивается товар, то происходят след.действия: 1. рядом с товаром пишется "нет на складе" 2. кнопка "в корзину" становится неактивна или хотя бы 2ой пункт, первую фразу можно и руками прописывать, не смертельно. Link to comment Share on other sites More sharing options... freelancer Posted December 10, 2011 Share Posted December 10, 2011 1й пункт уже реализован движком in_stock2.zip 1 Link to comment Share on other sites More sharing options... pavlov1979 Posted December 11, 2011 Share Posted December 11, 2011 1й пункт уже реализован движком Подскажите,куда что нужно залить,желательно по пунктам Заранее спасибо! Link to comment Share on other sites More sharing options... freelancer Posted December 11, 2011 Share Posted December 11, 2011 у меня в профиле краткая инструкция по применению патчей 1 Link to comment Share on other sites More sharing options... xsobakax Posted December 12, 2011 Share Posted December 12, 2011 скачал сам патч, потом программу Tortoise SVN. она только из контекстного меню вызывается. и плюс, я не понимаю, как пропатчить файлы на удаленном сервере. жаль что нельзя просто скопировать , как обычные модули. Link to comment Share on other sites More sharing options... freelancer Posted December 12, 2011 Share Posted December 12, 2011 почему ж нельзя? можно по ssh. или качайте на свой компутер, патчите и выкладывайте на сервер 1 Link to comment Share on other sites More sharing options... rock Posted December 12, 2011 Author Share Posted December 12, 2011 freelancer, ОГРОМНОЕ Вам спасибо!!! :rolleyes: Все работает, все как я и хотел. xsobakax, там все можно руками поменять, делов на 5 минут. freelancer, а у вас нет случаем патча, что-бы товар который закончился отображался в самом конце списка категорий? Link to comment Share on other sites More sharing options... xsobakax Posted December 12, 2011 Share Posted December 12, 2011 попробовал руками - как обычно не получилось. у меня что-то вообще с этим тяжело. меняю куски нужные, все делаю вроде правильно - сайт "висит". где что не так - ума не приложу. Link to comment Share on other sites More sharing options... freelancer Posted December 12, 2011 Share Posted December 12, 2011 freelancer, ОГРОМНОЕ Вам спасибо!!! :rolleyes: Все работает, все как я и хотел. спасибоfreelancer, а у вас нет случаем патча, что-бы товар который закончился отображался в самом конце списка категорий?скрипт написать не сложно, времени нет 1 Link to comment Share on other sites More sharing options... rock Posted December 12, 2011 Author Share Posted December 12, 2011 спасибо скрипт написать не сложно, времени нет Ну и так все отлично. Главное, что есть такие люди как Вы, которые не пройдут мимо, а помогут таким как я (я в этом деле новичок). Ещё раз спасибо. Link to comment Share on other sites More sharing options... rock Posted December 12, 2011 Author Share Posted December 12, 2011 попробовал руками - как обычно не получилось. у меня что-то вообще с этим тяжело. меняю куски нужные, все делаю вроде правильно - сайт "висит". где что не так - ума не приложу. А шаблон у вас какой стоит?Просто в патчах у freelancer, прописан путь catalog/view/theme/default/template/product/product.tpl, тоесть шаблон default. Может у вас стоит шаблон не default, а какойто другой? Если другой то путь будет catalog/view/theme/ваш шаблон/template/product/product.tpl Link to comment Share on other sites More sharing options... xsobakax Posted December 15, 2011 Share Posted December 15, 2011 все верно, шаблон у меня не default. но я менял этот путь, соответственно. и все равно ) Link to comment Share on other sites More sharing options... Evgeny Posted December 16, 2011 Share Posted December 16, 2011 Доброго времени суток!Могли бы Вы подсказать,как сделать,что бы если товар продан,то он не отображается в списке товаров и клиент его не может увидеть. Т.е. выключить товар когда покупают последний. Т.к. товар штучный и второго такого не будет. Шаблон default. Opencart 1.5.1.3 Заранее спасибо! Link to comment Share on other sites More sharing options... monax Posted December 16, 2011 Share Posted December 16, 2011 Т.е. выключить товар когда покупают последний.Такие манипуляции негативно повлияют на индексацию сайта. Link to comment Share on other sites More sharing options... Evgeny Posted December 16, 2011 Share Posted December 16, 2011 Такие манипуляции негативно повлияют на индексацию сайта.Ну и ладно :) Для меня важнее - минимум лишней информации на сайте и отсутствие сомнения у клиента в выборе товара,в связи с показом кончившегося(и более ни когда не появившегося) товара. Link to comment Share on other sites More sharing options... chump Posted December 17, 2011 Share Posted December 17, 2011 у меня почему-то не патчится. tortoise пишет, что не находит этих файлов и имена файлов подсвечиваются красным... Link to comment Share on other sites More sharing options... chump Posted December 17, 2011 Share Posted December 17, 2011 попробовал руками - тоже не получается, просто белая страница открывается... Link to comment Share on other sites More sharing options... Prev 1 2 Next Page 1 of 2 Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 0 Go to topic listing Similar Content Оповещение администратору о том, что товар закончился By Nijest, January 14 2 replies 185 views shelkunov February 2 В «сопутствующие товары» отображать только те, что есть в наличии. By impulze100500, February 4 9 replies 324 views komo2000 March 14 Мультимагазин в модулях отображаются товары с разных сайтов By mirek, March 16 3 replies 123 views spectre March 16 Заказы иногда не отображаются в админке, с непонятной периодичностью (в базе есть) By gevals, February 28 заказ админка (and 1 more) Tagged with: заказ админка список заказов покупателя 1 reply 117 views bogdan281989 February 28 Не правильно отображается текст, цены и не которые закладки в админ панели. By danchick17, February 20 1 reply 82 views danchick17 February 20 Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Поддержка и ответы на вопросы Общие вопросы Что бы товар не отображался если он закончился Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения Alta — тема для админ панели By impulze100500 Sorting modules in layout Drag&Drop By markimax Additional services for SAP modules By S_A_P Opencart ChatGPT - artificial intelligence content generator By kabantejay Custom Email By Parallax × Existing user? Sign In Sign Up Shopping section Back Purchased extensions Invoices Whishlist Alternative Contacts Forums News ocStore Back Official site Demo ocStore 3.0.3.2 Demo ocStore 2.3.0.2.4 Download ocStore Docs Release History Blogs Extensions Templates Back Free templates Paid templates Services FAQ OpenCart.Pro Back Demo Buy Compare × Create New... Important Information On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice. I accept
rock Posted December 8, 2011 Author Share Posted December 8, 2011 freelancer, спасибо огромное, вечером буду пробовать. Link to comment Share on other sites More sharing options...
rock Posted December 8, 2011 Author Share Posted December 8, 2011 Не получается. Помогите кому не сложно. Вот product.php <?php class ControllerProductProduct extends Controller { private $error = array(); public function index() { $this->language->load('product/product'); $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); $this->load->model('catalog/category'); if (isset($this->request->get['path'])) { $path = ''; foreach (explode('_', $this->request->get['path']) as $path_id) { if (!$path) { $path = $path_id; } else { $path .= '_' . $path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path), 'separator' => $this->language->get('text_separator') ); } } } $this->load->model('catalog/manufacturer'); if (isset($this->request->get['manufacturer_id'])) { $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_brand'), 'href' => $this->url->link('product/manufacturer'), 'separator' => $this->language->get('text_separator') ); $manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($this->request->get['manufacturer_id']); if ($manufacturer_info) { $this->data['breadcrumbs'][] = array( 'text' => $manufacturer_info['name'], 'href' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $this->request->get['manufacturer_id']), 'separator' => $this->language->get('text_separator') ); } } if (isset($this->request->get['filter_name']) || isset($this->request->get['filter_tag'])) { $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . $this->request->get['filter_name']; } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . $this->request->get['filter_tag']; } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_search'), 'href' => $this->url->link('product/search', $url), 'separator' => $this->language->get('text_separator') ); } if (isset($this->request->get['product_id'])) { $product_id = $this->request->get['product_id']; } else { $product_id = 0; } $this->load->model('catalog/product'); $product_info = $this->model_catalog_product->getProduct($product_id); $this->data['product_info'] = $product_info; if ($product_info) { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['manufacturer_id'])) { $url .= '&manufacturer_id=' . $this->request->get['manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . $this->request->get['filter_name']; } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . $this->request->get['filter_tag']; } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } $this->data['breadcrumbs'][] = array( 'text' => $product_info['name'], 'href' => $this->url->link('product/product', $url . '&product_id=' . $this->request->get['product_id']), 'separator' => $this->language->get('text_separator') ); $this->document->setTitle($product_info['name']); $this->document->setDescription($product_info['meta_description']); $this->document->setKeywords($product_info['meta_keyword']); $this->document->addLink($this->url->link('product/product', 'product_id=' . $this->request->get['product_id']), 'canonical'); $this->data['heading_title'] = $product_info['name']; $this->data['text_select'] = $this->language->get('text_select'); $this->data['text_manufacturer'] = $this->language->get('text_manufacturer'); $this->data['text_model'] = $this->language->get('text_model'); $this->data['text_reward'] = $this->language->get('text_reward'); $this->data['text_points'] = $this->language->get('text_points'); $this->data['text_discount'] = $this->language->get('text_discount'); $this->data['text_stock'] = $this->language->get('text_stock'); $this->data['text_price'] = $this->language->get('text_price'); $this->data['text_tax'] = $this->language->get('text_tax'); $this->data['text_discount'] = $this->language->get('text_discount'); $this->data['text_option'] = $this->language->get('text_option'); $this->data['text_qty'] = $this->language->get('text_qty'); $this->data['text_minimum'] = sprintf($this->language->get('text_minimum'), $product_info['minimum']); $this->data['text_or'] = $this->language->get('text_or'); $this->data['text_write'] = $this->language->get('text_write'); $this->data['text_note'] = $this->language->get('text_note'); $this->data['text_share'] = $this->language->get('text_share'); $this->data['text_wait'] = $this->language->get('text_wait'); $this->data['text_tags'] = $this->language->get('text_tags'); $this->data['entry_name'] = $this->language->get('entry_name'); $this->data['entry_review'] = $this->language->get('entry_review'); $this->data['entry_rating'] = $this->language->get('entry_rating'); $this->data['entry_good'] = $this->language->get('entry_good'); $this->data['entry_bad'] = $this->language->get('entry_bad'); $this->data['entry_captcha'] = $this->language->get('entry_captcha'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['button_upload'] = $this->language->get('button_upload'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->load->model('catalog/review'); $this->data['tab_description'] = $this->language->get('tab_description'); $this->data['tab_attribute'] = $this->language->get('tab_attribute'); $this->data['tab_review'] = sprintf($this->language->get('tab_review'), $this->model_catalog_review->getTotalReviewsByProductId($this->request->get['product_id'])); $this->data['tab_related'] = $this->language->get('tab_related'); $this->data['product_id'] = $this->request->get['product_id']; $this->data['manufacturer'] = $product_info['manufacturer']; $this->data['manufacturers'] = $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $product_info['manufacturer_id']); $this->data['model'] = $product_info['model']; $this->data['reward'] = $product_info['reward']; $this->data['points'] = $product_info['points']; if ($product_info['quantity'] <= 0) { $this->data['stock'] = $product_info['stock_status']; } elseif ($this->config->get('config_stock_display')) { $this->data['stock'] = $product_info['quantity']; } else { $this->data['stock'] = $this->language->get('text_instock'); } $this->load->model('tool/image'); if ($product_info['image']) { $this->data['popup'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')); } else { $this->data['popup'] = ''; } if ($product_info['image']) { $this->data['thumb'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_thumb_width'), $this->config->get('config_image_thumb_height')); } else { $this->data['thumb'] = ''; } $this->data['images'] = array(); $results = $this->model_catalog_product->getProductImages($this->request->get['product_id']); foreach ($results as $result) { $this->data['images'][] = array( 'popup' => $this->model_tool_image->resize($result['image'] , $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), 'thumb' => $this->model_tool_image->resize($result['image'], $this->config->get('config_image_additional_width'), $this->config->get('config_image_additional_height')) ); } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $this->data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))); } else { $this->data['price'] = false; } if ((float)$product_info['special']) { $this->data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax'))); } else { $this->data['special'] = false; } if ($this->config->get('config_tax')) { $this->data['tax'] = $this->currency->format((float)$product_info['special'] ? $product_info['special'] : $product_info['price']); } else { $this->data['tax'] = false; } $discounts = $this->model_catalog_product->getProductDiscounts($this->request->get['product_id']); $this->data['discounts'] = array(); foreach ($discounts as $discount) { $this->data['discounts'][] = array( 'quantity' => $discount['quantity'], 'price' => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) ); } $this->data['options'] = array(); foreach ($this->model_catalog_product->getProductOptions($this->request->get['product_id']) as $option) { if ($option['type'] == 'select' || $option['type'] == 'radio' || $option['type'] == 'checkbox') { $option_value_data = array(); foreach ($option['option_value'] as $option_value) { if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) { $option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'price' => (float)$option_value['price'] ? $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) : false, 'price_prefix' => $option_value['price_prefix'] ); } } $this->data['options'][] = array( 'product_option_id' => $option['product_option_id'], 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'option_value' => $option_value_data, 'required' => $option['required'] ); } elseif ($option['type'] == 'text' || $option['type'] == 'textarea' || $option['type'] == 'file' || $option['type'] == 'date' || $option['type'] == 'datetime' || $option['type'] == 'time') { $this->data['options'][] = array( 'product_option_id' => $option['product_option_id'], 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'option_value' => $option['option_value'], 'required' => $option['required'] ); } } if ($product_info['minimum']) { $this->data['minimum'] = $product_info['minimum']; } else { $this->data['minimum'] = 1; } $this->data['review_status'] = $this->config->get('config_review_status'); $this->data['reviews'] = sprintf($this->language->get('text_reviews'), (int)$product_info['reviews']); $this->data['rating'] = (int)$product_info['rating']; $this->data['description'] = html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8'); $this->data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']); $this->data['products'] = array(); $results = $this->model_catalog_product->getProductRelated($this->request->get['product_id']); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_related_width'), $this->config->get('config_image_related_height')); } else { $image = false; } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'price' => $price, 'special' => $special, 'rating' => $rating, 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', 'product_id=' . $result['product_id']), ); } $this->data['tags'] = array(); $results = $this->model_catalog_product->getProductTags($this->request->get['product_id']); foreach ($results as $result) { $this->data['tags'][] = array( 'tag' => $result['tag'], 'href' => $this->url->link('product/search', 'filter_tag=' . $result['tag']) ); } $this->model_catalog_product->updateViewed($this->request->get['product_id']); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/product.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/product.tpl'; } else { $this->template = 'default/template/product/product.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['manufacturer_id'])) { $url .= '&manufacturer_id=' . $this->request->get['manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . $this->request->get['filter_name']; } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . $this->request->get['filter_tag']; } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/product', $url . '&product_id=' . $product_id), 'separator' => $this->language->get('text_separator') ); $this->document->setTitle($this->language->get('text_error')); $this->data['heading_title'] = $this->language->get('text_error'); $this->data['text_error'] = $this->language->get('text_error'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) { $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl'; } else { $this->template = 'default/template/error/not_found.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } } public function review() { $this->language->load('product/product'); $this->load->model('catalog/review'); $this->data['text_no_reviews'] = $this->language->get('text_no_reviews'); if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } $this->data['reviews'] = array(); $review_total = $this->model_catalog_review->getTotalReviewsByProductId($this->request->get['product_id']); $results = $this->model_catalog_review->getReviewsByProductId($this->request->get['product_id'], ($page - 1) * 5, 5); foreach ($results as $result) { $this->data['reviews'][] = array( 'author' => $result['author'], 'text' => strip_tags($result['text']), 'rating' => (int)$result['rating'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$review_total), 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])) ); } $pagination = new Pagination(); $pagination->total = $review_total; $pagination->page = $page; $pagination->limit = 5; $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('product/product/review', 'product_id=' . $this->request->get['product_id'] . '&page={page}'); $this->data['pagination'] = $pagination->render(); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/review.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/review.tpl'; } else { $this->template = 'default/template/product/review.tpl'; } $this->response->setOutput($this->render()); } public function write() { $this->language->load('product/product'); $this->load->model('catalog/review'); $json = array(); if ((strlen(utf8_decode($this->request->post['name'])) < 3) || (strlen(utf8_decode($this->request->post['name'])) > 25)) { $json['error'] = $this->language->get('error_name'); } if ((strlen(utf8_decode($this->request->post['text'])) < 25) || (strlen(utf8_decode($this->request->post['text'])) > 1000)) { $json['error'] = $this->language->get('error_text'); } if (!$this->request->post['rating']) { $json['error'] = $this->language->get('error_rating'); } if (!isset($this->session->data['captcha']) || ($this->session->data['captcha'] != $this->request->post['captcha'])) { $json['error'] = $this->language->get('error_captcha'); } if (($this->request->server['REQUEST_METHOD'] == 'POST') && !isset($json['error'])) { $this->model_catalog_review->addReview($this->request->get['product_id'], $this->request->post); $json['success'] = $this->language->get('text_success'); } $this->load->library('json'); $this->response->setOutput(Json::encode($json)); } public function captcha() { $this->load->library('captcha'); $captcha = new Captcha(); $this->session->data['captcha'] = $captcha->getCode(); $captcha->showImage(); } public function upload() { $this->language->load('product/product'); $json = array(); if (isset($this->request->files['file']['name']) && $this->request->files['file']['name']) { if ((strlen(utf8_decode($this->request->files['file']['name'])) < 3) || (strlen(utf8_decode($this->request->files['file']['name'])) > 128)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($this->request->files['file']['name'], '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (($this->request->server['REQUEST_METHOD'] == 'POST') && !isset($json['error'])) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($this->request->files['file']['name']) . '.' . md5(rand()); // Hide the uploaded file name sop people can not link to it directly. $this->load->library('encryption'); $encryption = new Encryption($this->config->get('config_encryption')); $json['file'] = $encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->load->library('json'); $this->response->setOutput(Json::encode($json)); } } ?> Вот tpl. <?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?> <div id="content"><?php echo $content_top; ?> <div class="breadcrumb"> <?php foreach ($breadcrumbs as $breadcrumb) { ?> <?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a> <?php } ?> </div> <h1><?php echo $heading_title; ?></h1> <div class="product-info"> <?php if ($thumb || $images) { ?> <div class="left"> <?php if ($thumb) { ?> <div class="image"><a href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>" class="fancybox" rel="fancybox"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" id="image" /></a></div> <?php } ?> <?php if ($images) { ?> <div class="image-additional"> <?php foreach ($images as $image) { ?> <a href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>" class="fancybox" rel="fancybox"><img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a> <?php } ?> </div> <?php } ?> </div> <?php } ?> <div class="right"> <div class="description"> <?php if ($manufacturer) { ?> <span><?php echo $text_manufacturer; ?></span> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a><br /> <?php } ?> <span><?php echo $text_model; ?></span> <?php echo $model; ?><br /> <span><?php echo $text_reward; ?></span> <?php echo $reward; ?><br /> <span><?php echo $text_stock; ?></span> <?php echo $stock; ?></div> <?php if ($price) { ?> <div class="price"><?php echo $text_price; ?> <?php if (!$special) { ?> <?php echo $price; ?> <?php } else { ?> <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span> <?php } ?> <br /> <?php if ($tax) { ?> <span class="price-tax"><?php echo $text_tax; ?> <?php echo $tax; ?></span><br /> <?php } ?> <?php if ($points) { ?> <span class="reward"><small><?php echo $text_points; ?> <?php echo $points; ?></small></span> <br /> <?php } ?> <?php if ($discounts) { ?> <br /> <div class="discount"> <?php foreach ($discounts as $discount) { ?> <?php echo sprintf($text_discount, $discount['quantity'], $discount['price']); ?><br /> <?php } ?> </div> <?php } ?> </div> <?php } ?> <?php if ($options) { ?> <div class="options"> <h2><?php echo $text_option; ?></h2> <br /> <?php foreach ($options as $option) { ?> <?php if ($option['type'] == 'select') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <select name="option[<?php echo $option['product_option_id']; ?>]"> <option value=""><?php echo $text_select; ?></option> <?php foreach ($option['option_value'] as $option_value) { ?> <option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?> <?php if ($option_value['price']) { ?> (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>) <?php } ?> </option> <?php } ?> </select> </div> <br /> <?php } ?> <?php if ($option['type'] == 'radio') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <?php foreach ($option['option_value'] as $option_value) { ?> <input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /> <label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?> <?php if ($option_value['price']) { ?> (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>) <?php } ?> </label> <br /> <?php } ?> </div> <br /> <?php } ?> <?php if ($option['type'] == 'checkbox') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <?php foreach ($option['option_value'] as $option_value) { ?> <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /> <label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"> <?php echo $option_value['name']; ?> <?php if ($option_value['price']) { ?> (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>) <?php } ?> </label> <br /> <?php } ?> </div> <br /> <?php } ?> <?php if ($option['type'] == 'text') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" /> </div> <br /> <?php } ?> <?php if ($option['type'] == 'textarea') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <textarea name="option[<?php echo $option['product_option_id']; ?>]" cols="40" rows="5"><?php echo $option['option_value']; ?></textarea> </div> <br /> <?php } ?> <?php if ($option['type'] == 'file') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <a id="button-option-<?php echo $option['product_option_id']; ?>" class="button"><span><?php echo $button_upload; ?></span></a> <input type="hidden" name="option[<?php echo $option['product_option_id']; ?>]" value="" /> </div> <br /> <?php } ?> <?php if ($option['type'] == 'date') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="date" /> </div> <br /> <?php } ?> <?php if ($option['type'] == 'datetime') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="datetime" /> </div> <br /> <?php } ?> <?php if ($option['type'] == 'time') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="time" /> </div> <br /> <?php } ?> <?php } ?> </div> <?php } ?> <div class="cart"> <div><?php echo $text_qty; ?> <input type="text" name="quantity" size="2" value="<?php echo $minimum; ?>" /> <input type="hidden" name="product_id" size="2" value="<?php echo $product_id; ?>" /> <a id="button-cart" class="button"><span><?php echo $button_cart; ?></span></a></div> <div><span> <?php echo $text_or; ?> </span></div> <div><a onclick="addToWishList('<?php echo $product_id; ?>');"><?php echo $button_wishlist; ?></a><br /> <a onclick="addToCompare('<?php echo $product_id; ?>');"><?php echo $button_compare; ?></a></div> <?php if ($minimum > 1) { ?> <div class="minimum"><?php echo $text_minimum; ?></div> <?php } ?> </div> <?php if ($review_status) { ?> <div class="review"> <div><img src="catalog/view/theme/default/image/stars-<?php echo $rating; ?>.png" alt="<?php echo $reviews; ?>" /> <a onclick="$('a[href=\'#tab-review\']').trigger('click');"><?php echo $reviews; ?></a> | <a onclick="$('a[href=\'#tab-review\']').trigger('click');"><?php echo $text_write; ?></a></div> <div class="share"><!-- AddThis Button BEGIN --> <div class="addthis_default_style"><a class="addthis_button_compact"><?php echo $text_share; ?></a> <a class="addthis_button_email"></a><a class="addthis_button_print"></a> <a class="addthis_button_facebook"></a> <a class="addthis_button_twitter"></a></div> <script type="text/javascript" src="http-~~-//s7.addthis.com/js/250/addthis_widget.js"></script> <!-- AddThis Button END --> </div> </div> <?php } ?> </div> </div> <span class="tab-title"><?php echo $tab_description; ?></span> <div id="tab-description" class="tab-content"><?php echo $description; ?></div> <?php if ($attribute_groups) { ?> <span class="tab-title"><?php echo $tab_attribute; ?></span> <div id="tab-attribute" class="tab-content"> <table class="attribute"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> <?php } ?> <?php if ($review_status) { ?> <span class="tab-title"><?php echo $tab_review; ?></span> <div id="tab-review" class="tab-content"> <div id="review"></div> <h2 id="review-title"><?php echo $text_write; ?></h2> <b><?php echo $entry_name; ?></b><br /> <input type="text" name="name" value="" /> <br /> <br /> <b><?php echo $entry_review; ?></b> <textarea name="text" cols="40" rows="8" style="width: 98%;"></textarea> <span style="font-size: 11px;"><?php echo $text_note; ?></span><br /> <br /> <b><?php echo $entry_rating; ?></b> <span><?php echo $entry_bad; ?></span> <input type="radio" name="rating" value="1" /> <input type="radio" name="rating" value="2" /> <input type="radio" name="rating" value="3" /> <input type="radio" name="rating" value="4" /> <input type="radio" name="rating" value="5" /> <span><?php echo $entry_good; ?></span><br /> <br /> <b><?php echo $entry_captcha; ?></b><br /> <input type="text" name="captcha" value="" /> <br /> <img src="index.php?route=product/product/captcha" alt="" id="captcha" /><br /> <br /> <div class="buttons"> <div class="right"><a id="button-review" class="button"><span><?php echo $button_continue; ?></span></a></div> </div> </div> <?php } ?> <?php if ($products) { ?> <span class="tab-title"><?php echo $tab_related; ?> (<?php echo count($products); ?>)</span> <div id="tab-related" class="tab-content"> <div class="box-product"> <?php foreach ($products as $product) { ?> <div> <?php if ($product['thumb']) { ?> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" /></a></div> <?php } ?> <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div> <?php if ($product['price']) { ?> <div class="price"> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php } else { ?> <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span> <?php } ?> </div> <?php } ?> <?php if ($product['rating']) { ?> <div class="rating"><img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /></div> <?php } ?> <a onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button"><span><?php echo $button_cart; ?></span></a></div> <?php } ?> </div> </div> <?php } ?> <?php if ($tags) { ?> <div class="tags"><b><?php echo $text_tags; ?></b> <?php foreach ($tags as $tag) { ?> <a href="<?php echo $tag['href']; ?>"><?php echo $tag['tag']; ?></a>, <?php } ?> </div> <?php } ?> <?php echo $content_bottom; ?></div> <script type="text/javascript"><!-- $('.fancybox').fancybox({cyclic: true}); //--></script> <script type="text/javascript"><!-- $('#button-cart').bind('click', function() { $.ajax({ url: 'index.php?route=checkout/cart/update', type: 'post', data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['warning']) { $('#notification').html('<div class="warning" style="display: none;">' + json['error']['warning'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>'); $('.warning').fadeIn('slow'); } for (i in json['error']) { $('#option-' + i).after('<span class="error">' + json['error'][i] + '</span>'); } } if (json['success']) { $('#notification').html('<div class="attention" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>'); $('.attention').fadeIn('slow'); $('#cart_total').html(json['total']); var image = $('#image').offset(); var cart = $('#cart').offset(); $('#image').before('<img src="' + $('#image').attr('src') + '" id="temp" style="position: absolute; top: ' + image.top + 'px; left: ' + image.left + 'px;" />'); params = { top : cart.top + 'px', left : cart.left + 'px', opacity : 0.0, width : $('#cart').width(), height : $('#cart').height() }; $('#temp').animate(params, 'slow', false, function () { $('#temp').remove(); }); } } }); }); //--></script> <?php if ($options) { ?> <script type="text/javascript" src="catalog/view/javascript/jquery/ajaxupload.js"></script> <?php foreach ($options as $option) { ?> <?php if ($option['type'] == 'file') { ?> <script type="text/javascript"><!-- new AjaxUpload('#button-option-<?php echo $option['product_option_id']; ?>', { action: 'index.php?route=product/product/upload', name: 'file', autoSubmit: true, responseType: 'json', onSubmit: function(file, extension) { $('#button-option-<?php echo $option['product_option_id']; ?>').after('<img src="catalog/view/theme/default/image/loading.gif" id="loading" style="padding-left: 5px;" />'); }, onComplete: function(file, json) { $('.error').remove(); if (json.success) { alert(json.success); $('input[name=\'option[<?php echo $option['product_option_id']; ?>]\']').attr('value', json.file); } if (json.error) { $('#option-<?php echo $option['product_option_id']; ?>').after('<span class="error">' + json.error + '</span>'); } $('#loading').remove(); } }); //--></script> <?php } ?> <?php } ?> <?php } ?> <script type="text/javascript"><!-- $('#review .pagination a').live('click', function() { $('#review').slideUp('slow'); $('#review').load(this.href); $('#review').slideDown('slow'); return false; }); $('#review').load('index.php?route=product/product/review&product_id=<?php echo $product_id; ?>'); $('#button-review').bind('click', function() { $.ajax({ type: 'POST', url: 'index.php?route=product/product/write&product_id=<?php echo $product_id; ?>', dataType: 'json', data: 'name=' + encodeURIComponent($('input[name=\'name\']').val()) + '&text=' + encodeURIComponent($('textarea[name=\'text\']').val()) + '&rating=' + encodeURIComponent($('input[name=\'rating\']:checked').val() ? $('input[name=\'rating\']:checked').val() : '') + '&captcha=' + encodeURIComponent($('input[name=\'captcha\']').val()), beforeSend: function() { $('.success, .warning').remove(); $('#button-review').attr('disabled', true); $('#review-title').after('<div class="attention"><img src="catalog/view/theme/default/image/loading.gif" alt="" /> <?php echo $text_wait; ?></div>'); }, complete: function() { $('#button-review').attr('disabled', false); $('.attention').remove(); }, success: function(data) { if (data.error) { $('#review-title').after('<div class="warning">' + data.error + '</div>'); } if (data.success) { $('#review-title').after('<div class="success">' + data.success + '</div>'); $('input[name=\'name\']').val(''); $('textarea[name=\'text\']').val(''); $('input[name=\'rating\']:checked').attr('checked', ''); $('input[name=\'captcha\']').val(''); } } }); }); //--></script> <script type="text/javascript"><!-- $('#tabs a').tabs(); //--></script> <script type="text/javascript" src="catalog/view/javascript/jquery/ui/jquery-ui-timepicker-addon.js"></script> <script type="text/javascript"><!-- if ($.browser.msie && $.browser.version == 6) { $('.date, .datetime, .time').bgIframe(); } $('.date').datepicker({dateFormat: 'yy-mm-dd'}); $('.datetime').datetimepicker({ dateFormat: 'yy-mm-dd', timeFormat: 'h:m' }); $('.time').timepicker({timeFormat: 'h:m'}); //--></script> <?php echo $footer; ?> Link to comment Share on other sites More sharing options...
rock Posted December 8, 2011 Author Share Posted December 8, 2011 Или подскажите что в этих файлах поменять. Только поподробней плиз. Link to comment Share on other sites More sharing options...
freelancer Posted December 9, 2011 Share Posted December 9, 2011 это для каталога. для продукта посмотрите как я сделал и сделайте по аналогии. 1 Link to comment Share on other sites More sharing options... Evgeny Posted December 9, 2011 Share Posted December 9, 2011 .Подскажите,куда нужно скопировать Ваш файлик. Link to comment Share on other sites More sharing options... rock Posted December 10, 2011 Author Share Posted December 10, 2011 это для каталога. для продукта посмотрите как я сделал и сделайте по аналогии. freelancer Спасибо, все получилось. Я так понял что это изменение меняет только значок в каталоге на нет в наличии? Просто когда переходиш на страницу товара, его можно добавить в корзину. Можно-ли зделать что-бы товар нельзя было дабавлять в корзину? Link to comment Share on other sites More sharing options... xsobakax Posted December 10, 2011 Share Posted December 10, 2011 хороший вопрос. как известно, многие магазины не удаляют товары, даже которых нет на складе (может, их подвезут позже, а может и нет). это крайне полезно для индексации роботами. человек перешел, конкретный товар не нашел , но может ознакомится с аналогом и сделать заказ тем не менее. присоединяюсь к вопросу, в идеале, как только заканчивается товар, то происходят след.действия: 1. рядом с товаром пишется "нет на складе" 2. кнопка "в корзину" становится неактивна или хотя бы 2ой пункт, первую фразу можно и руками прописывать, не смертельно. Link to comment Share on other sites More sharing options... freelancer Posted December 10, 2011 Share Posted December 10, 2011 1й пункт уже реализован движком in_stock2.zip 1 Link to comment Share on other sites More sharing options... pavlov1979 Posted December 11, 2011 Share Posted December 11, 2011 1й пункт уже реализован движком Подскажите,куда что нужно залить,желательно по пунктам Заранее спасибо! Link to comment Share on other sites More sharing options... freelancer Posted December 11, 2011 Share Posted December 11, 2011 у меня в профиле краткая инструкция по применению патчей 1 Link to comment Share on other sites More sharing options... xsobakax Posted December 12, 2011 Share Posted December 12, 2011 скачал сам патч, потом программу Tortoise SVN. она только из контекстного меню вызывается. и плюс, я не понимаю, как пропатчить файлы на удаленном сервере. жаль что нельзя просто скопировать , как обычные модули. Link to comment Share on other sites More sharing options... freelancer Posted December 12, 2011 Share Posted December 12, 2011 почему ж нельзя? можно по ssh. или качайте на свой компутер, патчите и выкладывайте на сервер 1 Link to comment Share on other sites More sharing options... rock Posted December 12, 2011 Author Share Posted December 12, 2011 freelancer, ОГРОМНОЕ Вам спасибо!!! :rolleyes: Все работает, все как я и хотел. xsobakax, там все можно руками поменять, делов на 5 минут. freelancer, а у вас нет случаем патча, что-бы товар который закончился отображался в самом конце списка категорий? Link to comment Share on other sites More sharing options... xsobakax Posted December 12, 2011 Share Posted December 12, 2011 попробовал руками - как обычно не получилось. у меня что-то вообще с этим тяжело. меняю куски нужные, все делаю вроде правильно - сайт "висит". где что не так - ума не приложу. Link to comment Share on other sites More sharing options... freelancer Posted December 12, 2011 Share Posted December 12, 2011 freelancer, ОГРОМНОЕ Вам спасибо!!! :rolleyes: Все работает, все как я и хотел. спасибоfreelancer, а у вас нет случаем патча, что-бы товар который закончился отображался в самом конце списка категорий?скрипт написать не сложно, времени нет 1 Link to comment Share on other sites More sharing options... rock Posted December 12, 2011 Author Share Posted December 12, 2011 спасибо скрипт написать не сложно, времени нет Ну и так все отлично. Главное, что есть такие люди как Вы, которые не пройдут мимо, а помогут таким как я (я в этом деле новичок). Ещё раз спасибо. Link to comment Share on other sites More sharing options... rock Posted December 12, 2011 Author Share Posted December 12, 2011 попробовал руками - как обычно не получилось. у меня что-то вообще с этим тяжело. меняю куски нужные, все делаю вроде правильно - сайт "висит". где что не так - ума не приложу. А шаблон у вас какой стоит?Просто в патчах у freelancer, прописан путь catalog/view/theme/default/template/product/product.tpl, тоесть шаблон default. Может у вас стоит шаблон не default, а какойто другой? Если другой то путь будет catalog/view/theme/ваш шаблон/template/product/product.tpl Link to comment Share on other sites More sharing options... xsobakax Posted December 15, 2011 Share Posted December 15, 2011 все верно, шаблон у меня не default. но я менял этот путь, соответственно. и все равно ) Link to comment Share on other sites More sharing options... Evgeny Posted December 16, 2011 Share Posted December 16, 2011 Доброго времени суток!Могли бы Вы подсказать,как сделать,что бы если товар продан,то он не отображается в списке товаров и клиент его не может увидеть. Т.е. выключить товар когда покупают последний. Т.к. товар штучный и второго такого не будет. Шаблон default. Opencart 1.5.1.3 Заранее спасибо! Link to comment Share on other sites More sharing options... monax Posted December 16, 2011 Share Posted December 16, 2011 Т.е. выключить товар когда покупают последний.Такие манипуляции негативно повлияют на индексацию сайта. Link to comment Share on other sites More sharing options... Evgeny Posted December 16, 2011 Share Posted December 16, 2011 Такие манипуляции негативно повлияют на индексацию сайта.Ну и ладно :) Для меня важнее - минимум лишней информации на сайте и отсутствие сомнения у клиента в выборе товара,в связи с показом кончившегося(и более ни когда не появившегося) товара. Link to comment Share on other sites More sharing options... chump Posted December 17, 2011 Share Posted December 17, 2011 у меня почему-то не патчится. tortoise пишет, что не находит этих файлов и имена файлов подсвечиваются красным... Link to comment Share on other sites More sharing options... chump Posted December 17, 2011 Share Posted December 17, 2011 попробовал руками - тоже не получается, просто белая страница открывается... Link to comment Share on other sites More sharing options... Prev 1 2 Next Page 1 of 2 Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 0 Go to topic listing Similar Content Оповещение администратору о том, что товар закончился By Nijest, January 14 2 replies 185 views shelkunov February 2 В «сопутствующие товары» отображать только те, что есть в наличии. By impulze100500, February 4 9 replies 324 views komo2000 March 14 Мультимагазин в модулях отображаются товары с разных сайтов By mirek, March 16 3 replies 123 views spectre March 16 Заказы иногда не отображаются в админке, с непонятной периодичностью (в базе есть) By gevals, February 28 заказ админка (and 1 more) Tagged with: заказ админка список заказов покупателя 1 reply 117 views bogdan281989 February 28 Не правильно отображается текст, цены и не которые закладки в админ панели. By danchick17, February 20 1 reply 82 views danchick17 February 20 Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Поддержка и ответы на вопросы Общие вопросы Что бы товар не отображался если он закончился Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения Alta — тема для админ панели By impulze100500 Sorting modules in layout Drag&Drop By markimax Additional services for SAP modules By S_A_P Opencart ChatGPT - artificial intelligence content generator By kabantejay Custom Email By Parallax × Existing user? Sign In Sign Up Shopping section Back Purchased extensions Invoices Whishlist Alternative Contacts Forums News ocStore Back Official site Demo ocStore 3.0.3.2 Demo ocStore 2.3.0.2.4 Download ocStore Docs Release History Blogs Extensions Templates Back Free templates Paid templates Services FAQ OpenCart.Pro Back Demo Buy Compare × Create New... Important Information On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice. I accept
Evgeny Posted December 9, 2011 Share Posted December 9, 2011 .Подскажите,куда нужно скопировать Ваш файлик. Link to comment Share on other sites More sharing options...
rock Posted December 10, 2011 Author Share Posted December 10, 2011 это для каталога. для продукта посмотрите как я сделал и сделайте по аналогии. freelancer Спасибо, все получилось. Я так понял что это изменение меняет только значок в каталоге на нет в наличии? Просто когда переходиш на страницу товара, его можно добавить в корзину. Можно-ли зделать что-бы товар нельзя было дабавлять в корзину? Link to comment Share on other sites More sharing options...
xsobakax Posted December 10, 2011 Share Posted December 10, 2011 хороший вопрос. как известно, многие магазины не удаляют товары, даже которых нет на складе (может, их подвезут позже, а может и нет). это крайне полезно для индексации роботами. человек перешел, конкретный товар не нашел , но может ознакомится с аналогом и сделать заказ тем не менее. присоединяюсь к вопросу, в идеале, как только заканчивается товар, то происходят след.действия: 1. рядом с товаром пишется "нет на складе" 2. кнопка "в корзину" становится неактивна или хотя бы 2ой пункт, первую фразу можно и руками прописывать, не смертельно. Link to comment Share on other sites More sharing options...
freelancer Posted December 10, 2011 Share Posted December 10, 2011 1й пункт уже реализован движком in_stock2.zip 1 Link to comment Share on other sites More sharing options... pavlov1979 Posted December 11, 2011 Share Posted December 11, 2011 1й пункт уже реализован движком Подскажите,куда что нужно залить,желательно по пунктам Заранее спасибо! Link to comment Share on other sites More sharing options... freelancer Posted December 11, 2011 Share Posted December 11, 2011 у меня в профиле краткая инструкция по применению патчей 1 Link to comment Share on other sites More sharing options... xsobakax Posted December 12, 2011 Share Posted December 12, 2011 скачал сам патч, потом программу Tortoise SVN. она только из контекстного меню вызывается. и плюс, я не понимаю, как пропатчить файлы на удаленном сервере. жаль что нельзя просто скопировать , как обычные модули. Link to comment Share on other sites More sharing options... freelancer Posted December 12, 2011 Share Posted December 12, 2011 почему ж нельзя? можно по ssh. или качайте на свой компутер, патчите и выкладывайте на сервер 1 Link to comment Share on other sites More sharing options... rock Posted December 12, 2011 Author Share Posted December 12, 2011 freelancer, ОГРОМНОЕ Вам спасибо!!! :rolleyes: Все работает, все как я и хотел. xsobakax, там все можно руками поменять, делов на 5 минут. freelancer, а у вас нет случаем патча, что-бы товар который закончился отображался в самом конце списка категорий? Link to comment Share on other sites More sharing options... xsobakax Posted December 12, 2011 Share Posted December 12, 2011 попробовал руками - как обычно не получилось. у меня что-то вообще с этим тяжело. меняю куски нужные, все делаю вроде правильно - сайт "висит". где что не так - ума не приложу. Link to comment Share on other sites More sharing options... freelancer Posted December 12, 2011 Share Posted December 12, 2011 freelancer, ОГРОМНОЕ Вам спасибо!!! :rolleyes: Все работает, все как я и хотел. спасибоfreelancer, а у вас нет случаем патча, что-бы товар который закончился отображался в самом конце списка категорий?скрипт написать не сложно, времени нет 1 Link to comment Share on other sites More sharing options... rock Posted December 12, 2011 Author Share Posted December 12, 2011 спасибо скрипт написать не сложно, времени нет Ну и так все отлично. Главное, что есть такие люди как Вы, которые не пройдут мимо, а помогут таким как я (я в этом деле новичок). Ещё раз спасибо. Link to comment Share on other sites More sharing options... rock Posted December 12, 2011 Author Share Posted December 12, 2011 попробовал руками - как обычно не получилось. у меня что-то вообще с этим тяжело. меняю куски нужные, все делаю вроде правильно - сайт "висит". где что не так - ума не приложу. А шаблон у вас какой стоит?Просто в патчах у freelancer, прописан путь catalog/view/theme/default/template/product/product.tpl, тоесть шаблон default. Может у вас стоит шаблон не default, а какойто другой? Если другой то путь будет catalog/view/theme/ваш шаблон/template/product/product.tpl Link to comment Share on other sites More sharing options... xsobakax Posted December 15, 2011 Share Posted December 15, 2011 все верно, шаблон у меня не default. но я менял этот путь, соответственно. и все равно ) Link to comment Share on other sites More sharing options... Evgeny Posted December 16, 2011 Share Posted December 16, 2011 Доброго времени суток!Могли бы Вы подсказать,как сделать,что бы если товар продан,то он не отображается в списке товаров и клиент его не может увидеть. Т.е. выключить товар когда покупают последний. Т.к. товар штучный и второго такого не будет. Шаблон default. Opencart 1.5.1.3 Заранее спасибо! Link to comment Share on other sites More sharing options... monax Posted December 16, 2011 Share Posted December 16, 2011 Т.е. выключить товар когда покупают последний.Такие манипуляции негативно повлияют на индексацию сайта. Link to comment Share on other sites More sharing options... Evgeny Posted December 16, 2011 Share Posted December 16, 2011 Такие манипуляции негативно повлияют на индексацию сайта.Ну и ладно :) Для меня важнее - минимум лишней информации на сайте и отсутствие сомнения у клиента в выборе товара,в связи с показом кончившегося(и более ни когда не появившегося) товара. Link to comment Share on other sites More sharing options... chump Posted December 17, 2011 Share Posted December 17, 2011 у меня почему-то не патчится. tortoise пишет, что не находит этих файлов и имена файлов подсвечиваются красным... Link to comment Share on other sites More sharing options... chump Posted December 17, 2011 Share Posted December 17, 2011 попробовал руками - тоже не получается, просто белая страница открывается... Link to comment Share on other sites More sharing options... Prev 1 2 Next Page 1 of 2 Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 0 Go to topic listing Similar Content Оповещение администратору о том, что товар закончился By Nijest, January 14 2 replies 185 views shelkunov February 2 В «сопутствующие товары» отображать только те, что есть в наличии. By impulze100500, February 4 9 replies 324 views komo2000 March 14 Мультимагазин в модулях отображаются товары с разных сайтов By mirek, March 16 3 replies 123 views spectre March 16 Заказы иногда не отображаются в админке, с непонятной периодичностью (в базе есть) By gevals, February 28 заказ админка (and 1 more) Tagged with: заказ админка список заказов покупателя 1 reply 117 views bogdan281989 February 28 Не правильно отображается текст, цены и не которые закладки в админ панели. By danchick17, February 20 1 reply 82 views danchick17 February 20 Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Поддержка и ответы на вопросы Общие вопросы Что бы товар не отображался если он закончился Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения Alta — тема для админ панели By impulze100500 Sorting modules in layout Drag&Drop By markimax Additional services for SAP modules By S_A_P Opencart ChatGPT - artificial intelligence content generator By kabantejay Custom Email By Parallax
pavlov1979 Posted December 11, 2011 Share Posted December 11, 2011 1й пункт уже реализован движком Подскажите,куда что нужно залить,желательно по пунктам Заранее спасибо! Link to comment Share on other sites More sharing options...
freelancer Posted December 11, 2011 Share Posted December 11, 2011 у меня в профиле краткая инструкция по применению патчей 1 Link to comment Share on other sites More sharing options... xsobakax Posted December 12, 2011 Share Posted December 12, 2011 скачал сам патч, потом программу Tortoise SVN. она только из контекстного меню вызывается. и плюс, я не понимаю, как пропатчить файлы на удаленном сервере. жаль что нельзя просто скопировать , как обычные модули. Link to comment Share on other sites More sharing options... freelancer Posted December 12, 2011 Share Posted December 12, 2011 почему ж нельзя? можно по ssh. или качайте на свой компутер, патчите и выкладывайте на сервер 1 Link to comment Share on other sites More sharing options... rock Posted December 12, 2011 Author Share Posted December 12, 2011 freelancer, ОГРОМНОЕ Вам спасибо!!! :rolleyes: Все работает, все как я и хотел. xsobakax, там все можно руками поменять, делов на 5 минут. freelancer, а у вас нет случаем патча, что-бы товар который закончился отображался в самом конце списка категорий? Link to comment Share on other sites More sharing options... xsobakax Posted December 12, 2011 Share Posted December 12, 2011 попробовал руками - как обычно не получилось. у меня что-то вообще с этим тяжело. меняю куски нужные, все делаю вроде правильно - сайт "висит". где что не так - ума не приложу. Link to comment Share on other sites More sharing options... freelancer Posted December 12, 2011 Share Posted December 12, 2011 freelancer, ОГРОМНОЕ Вам спасибо!!! :rolleyes: Все работает, все как я и хотел. спасибоfreelancer, а у вас нет случаем патча, что-бы товар который закончился отображался в самом конце списка категорий?скрипт написать не сложно, времени нет 1 Link to comment Share on other sites More sharing options... rock Posted December 12, 2011 Author Share Posted December 12, 2011 спасибо скрипт написать не сложно, времени нет Ну и так все отлично. Главное, что есть такие люди как Вы, которые не пройдут мимо, а помогут таким как я (я в этом деле новичок). Ещё раз спасибо. Link to comment Share on other sites More sharing options... rock Posted December 12, 2011 Author Share Posted December 12, 2011 попробовал руками - как обычно не получилось. у меня что-то вообще с этим тяжело. меняю куски нужные, все делаю вроде правильно - сайт "висит". где что не так - ума не приложу. А шаблон у вас какой стоит?Просто в патчах у freelancer, прописан путь catalog/view/theme/default/template/product/product.tpl, тоесть шаблон default. Может у вас стоит шаблон не default, а какойто другой? Если другой то путь будет catalog/view/theme/ваш шаблон/template/product/product.tpl Link to comment Share on other sites More sharing options... xsobakax Posted December 15, 2011 Share Posted December 15, 2011 все верно, шаблон у меня не default. но я менял этот путь, соответственно. и все равно ) Link to comment Share on other sites More sharing options... Evgeny Posted December 16, 2011 Share Posted December 16, 2011 Доброго времени суток!Могли бы Вы подсказать,как сделать,что бы если товар продан,то он не отображается в списке товаров и клиент его не может увидеть. Т.е. выключить товар когда покупают последний. Т.к. товар штучный и второго такого не будет. Шаблон default. Opencart 1.5.1.3 Заранее спасибо! Link to comment Share on other sites More sharing options... monax Posted December 16, 2011 Share Posted December 16, 2011 Т.е. выключить товар когда покупают последний.Такие манипуляции негативно повлияют на индексацию сайта. Link to comment Share on other sites More sharing options... Evgeny Posted December 16, 2011 Share Posted December 16, 2011 Такие манипуляции негативно повлияют на индексацию сайта.Ну и ладно :) Для меня важнее - минимум лишней информации на сайте и отсутствие сомнения у клиента в выборе товара,в связи с показом кончившегося(и более ни когда не появившегося) товара. Link to comment Share on other sites More sharing options... chump Posted December 17, 2011 Share Posted December 17, 2011 у меня почему-то не патчится. tortoise пишет, что не находит этих файлов и имена файлов подсвечиваются красным... Link to comment Share on other sites More sharing options... chump Posted December 17, 2011 Share Posted December 17, 2011 попробовал руками - тоже не получается, просто белая страница открывается... Link to comment Share on other sites More sharing options... Prev 1 2 Next Page 1 of 2 Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 0 Go to topic listing Similar Content Оповещение администратору о том, что товар закончился By Nijest, January 14 2 replies 185 views shelkunov February 2 В «сопутствующие товары» отображать только те, что есть в наличии. By impulze100500, February 4 9 replies 324 views komo2000 March 14 Мультимагазин в модулях отображаются товары с разных сайтов By mirek, March 16 3 replies 123 views spectre March 16 Заказы иногда не отображаются в админке, с непонятной периодичностью (в базе есть) By gevals, February 28 заказ админка (and 1 more) Tagged with: заказ админка список заказов покупателя 1 reply 117 views bogdan281989 February 28 Не правильно отображается текст, цены и не которые закладки в админ панели. By danchick17, February 20 1 reply 82 views danchick17 February 20 Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Поддержка и ответы на вопросы Общие вопросы Что бы товар не отображался если он закончился
xsobakax Posted December 12, 2011 Share Posted December 12, 2011 скачал сам патч, потом программу Tortoise SVN. она только из контекстного меню вызывается. и плюс, я не понимаю, как пропатчить файлы на удаленном сервере. жаль что нельзя просто скопировать , как обычные модули. Link to comment Share on other sites More sharing options...
freelancer Posted December 12, 2011 Share Posted December 12, 2011 почему ж нельзя? можно по ssh. или качайте на свой компутер, патчите и выкладывайте на сервер 1 Link to comment Share on other sites More sharing options... rock Posted December 12, 2011 Author Share Posted December 12, 2011 freelancer, ОГРОМНОЕ Вам спасибо!!! :rolleyes: Все работает, все как я и хотел. xsobakax, там все можно руками поменять, делов на 5 минут. freelancer, а у вас нет случаем патча, что-бы товар который закончился отображался в самом конце списка категорий? Link to comment Share on other sites More sharing options... xsobakax Posted December 12, 2011 Share Posted December 12, 2011 попробовал руками - как обычно не получилось. у меня что-то вообще с этим тяжело. меняю куски нужные, все делаю вроде правильно - сайт "висит". где что не так - ума не приложу. Link to comment Share on other sites More sharing options... freelancer Posted December 12, 2011 Share Posted December 12, 2011 freelancer, ОГРОМНОЕ Вам спасибо!!! :rolleyes: Все работает, все как я и хотел. спасибоfreelancer, а у вас нет случаем патча, что-бы товар который закончился отображался в самом конце списка категорий?скрипт написать не сложно, времени нет 1 Link to comment Share on other sites More sharing options... rock Posted December 12, 2011 Author Share Posted December 12, 2011 спасибо скрипт написать не сложно, времени нет Ну и так все отлично. Главное, что есть такие люди как Вы, которые не пройдут мимо, а помогут таким как я (я в этом деле новичок). Ещё раз спасибо. Link to comment Share on other sites More sharing options... rock Posted December 12, 2011 Author Share Posted December 12, 2011 попробовал руками - как обычно не получилось. у меня что-то вообще с этим тяжело. меняю куски нужные, все делаю вроде правильно - сайт "висит". где что не так - ума не приложу. А шаблон у вас какой стоит?Просто в патчах у freelancer, прописан путь catalog/view/theme/default/template/product/product.tpl, тоесть шаблон default. Может у вас стоит шаблон не default, а какойто другой? Если другой то путь будет catalog/view/theme/ваш шаблон/template/product/product.tpl Link to comment Share on other sites More sharing options... xsobakax Posted December 15, 2011 Share Posted December 15, 2011 все верно, шаблон у меня не default. но я менял этот путь, соответственно. и все равно ) Link to comment Share on other sites More sharing options... Evgeny Posted December 16, 2011 Share Posted December 16, 2011 Доброго времени суток!Могли бы Вы подсказать,как сделать,что бы если товар продан,то он не отображается в списке товаров и клиент его не может увидеть. Т.е. выключить товар когда покупают последний. Т.к. товар штучный и второго такого не будет. Шаблон default. Opencart 1.5.1.3 Заранее спасибо! Link to comment Share on other sites More sharing options... monax Posted December 16, 2011 Share Posted December 16, 2011 Т.е. выключить товар когда покупают последний.Такие манипуляции негативно повлияют на индексацию сайта. Link to comment Share on other sites More sharing options... Evgeny Posted December 16, 2011 Share Posted December 16, 2011 Такие манипуляции негативно повлияют на индексацию сайта.Ну и ладно :) Для меня важнее - минимум лишней информации на сайте и отсутствие сомнения у клиента в выборе товара,в связи с показом кончившегося(и более ни когда не появившегося) товара. Link to comment Share on other sites More sharing options... chump Posted December 17, 2011 Share Posted December 17, 2011 у меня почему-то не патчится. tortoise пишет, что не находит этих файлов и имена файлов подсвечиваются красным... Link to comment Share on other sites More sharing options... chump Posted December 17, 2011 Share Posted December 17, 2011 попробовал руками - тоже не получается, просто белая страница открывается... Link to comment Share on other sites More sharing options... Prev 1 2 Next Page 1 of 2 Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 0 Go to topic listing Similar Content Оповещение администратору о том, что товар закончился By Nijest, January 14 2 replies 185 views shelkunov February 2 В «сопутствующие товары» отображать только те, что есть в наличии. By impulze100500, February 4 9 replies 324 views komo2000 March 14 Мультимагазин в модулях отображаются товары с разных сайтов By mirek, March 16 3 replies 123 views spectre March 16 Заказы иногда не отображаются в админке, с непонятной периодичностью (в базе есть) By gevals, February 28 заказ админка (and 1 more) Tagged with: заказ админка список заказов покупателя 1 reply 117 views bogdan281989 February 28 Не правильно отображается текст, цены и не которые закладки в админ панели. By danchick17, February 20 1 reply 82 views danchick17 February 20 Recently Browsing 0 members No registered users viewing this page.
rock Posted December 12, 2011 Author Share Posted December 12, 2011 freelancer, ОГРОМНОЕ Вам спасибо!!! :rolleyes: Все работает, все как я и хотел. xsobakax, там все можно руками поменять, делов на 5 минут. freelancer, а у вас нет случаем патча, что-бы товар который закончился отображался в самом конце списка категорий? Link to comment Share on other sites More sharing options...
xsobakax Posted December 12, 2011 Share Posted December 12, 2011 попробовал руками - как обычно не получилось. у меня что-то вообще с этим тяжело. меняю куски нужные, все делаю вроде правильно - сайт "висит". где что не так - ума не приложу. Link to comment Share on other sites More sharing options...
freelancer Posted December 12, 2011 Share Posted December 12, 2011 freelancer, ОГРОМНОЕ Вам спасибо!!! :rolleyes: Все работает, все как я и хотел. спасибоfreelancer, а у вас нет случаем патча, что-бы товар который закончился отображался в самом конце списка категорий?скрипт написать не сложно, времени нет 1 Link to comment Share on other sites More sharing options... rock Posted December 12, 2011 Author Share Posted December 12, 2011 спасибо скрипт написать не сложно, времени нет Ну и так все отлично. Главное, что есть такие люди как Вы, которые не пройдут мимо, а помогут таким как я (я в этом деле новичок). Ещё раз спасибо. Link to comment Share on other sites More sharing options... rock Posted December 12, 2011 Author Share Posted December 12, 2011 попробовал руками - как обычно не получилось. у меня что-то вообще с этим тяжело. меняю куски нужные, все делаю вроде правильно - сайт "висит". где что не так - ума не приложу. А шаблон у вас какой стоит?Просто в патчах у freelancer, прописан путь catalog/view/theme/default/template/product/product.tpl, тоесть шаблон default. Может у вас стоит шаблон не default, а какойто другой? Если другой то путь будет catalog/view/theme/ваш шаблон/template/product/product.tpl Link to comment Share on other sites More sharing options... xsobakax Posted December 15, 2011 Share Posted December 15, 2011 все верно, шаблон у меня не default. но я менял этот путь, соответственно. и все равно ) Link to comment Share on other sites More sharing options... Evgeny Posted December 16, 2011 Share Posted December 16, 2011 Доброго времени суток!Могли бы Вы подсказать,как сделать,что бы если товар продан,то он не отображается в списке товаров и клиент его не может увидеть. Т.е. выключить товар когда покупают последний. Т.к. товар штучный и второго такого не будет. Шаблон default. Opencart 1.5.1.3 Заранее спасибо! Link to comment Share on other sites More sharing options... monax Posted December 16, 2011 Share Posted December 16, 2011 Т.е. выключить товар когда покупают последний.Такие манипуляции негативно повлияют на индексацию сайта. Link to comment Share on other sites More sharing options... Evgeny Posted December 16, 2011 Share Posted December 16, 2011 Такие манипуляции негативно повлияют на индексацию сайта.Ну и ладно :) Для меня важнее - минимум лишней информации на сайте и отсутствие сомнения у клиента в выборе товара,в связи с показом кончившегося(и более ни когда не появившегося) товара. Link to comment Share on other sites More sharing options... chump Posted December 17, 2011 Share Posted December 17, 2011 у меня почему-то не патчится. tortoise пишет, что не находит этих файлов и имена файлов подсвечиваются красным... Link to comment Share on other sites More sharing options... chump Posted December 17, 2011 Share Posted December 17, 2011 попробовал руками - тоже не получается, просто белая страница открывается... Link to comment Share on other sites More sharing options... Prev 1 2 Next Page 1 of 2 Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 0
rock Posted December 12, 2011 Author Share Posted December 12, 2011 спасибо скрипт написать не сложно, времени нет Ну и так все отлично. Главное, что есть такие люди как Вы, которые не пройдут мимо, а помогут таким как я (я в этом деле новичок). Ещё раз спасибо. Link to comment Share on other sites More sharing options...
rock Posted December 12, 2011 Author Share Posted December 12, 2011 попробовал руками - как обычно не получилось. у меня что-то вообще с этим тяжело. меняю куски нужные, все делаю вроде правильно - сайт "висит". где что не так - ума не приложу. А шаблон у вас какой стоит?Просто в патчах у freelancer, прописан путь catalog/view/theme/default/template/product/product.tpl, тоесть шаблон default. Может у вас стоит шаблон не default, а какойто другой? Если другой то путь будет catalog/view/theme/ваш шаблон/template/product/product.tpl Link to comment Share on other sites More sharing options...
xsobakax Posted December 15, 2011 Share Posted December 15, 2011 все верно, шаблон у меня не default. но я менял этот путь, соответственно. и все равно ) Link to comment Share on other sites More sharing options...
Evgeny Posted December 16, 2011 Share Posted December 16, 2011 Доброго времени суток!Могли бы Вы подсказать,как сделать,что бы если товар продан,то он не отображается в списке товаров и клиент его не может увидеть. Т.е. выключить товар когда покупают последний. Т.к. товар штучный и второго такого не будет. Шаблон default. Opencart 1.5.1.3 Заранее спасибо! Link to comment Share on other sites More sharing options...
monax Posted December 16, 2011 Share Posted December 16, 2011 Т.е. выключить товар когда покупают последний.Такие манипуляции негативно повлияют на индексацию сайта. Link to comment Share on other sites More sharing options...
Evgeny Posted December 16, 2011 Share Posted December 16, 2011 Такие манипуляции негативно повлияют на индексацию сайта.Ну и ладно :) Для меня важнее - минимум лишней информации на сайте и отсутствие сомнения у клиента в выборе товара,в связи с показом кончившегося(и более ни когда не появившегося) товара. Link to comment Share on other sites More sharing options...
chump Posted December 17, 2011 Share Posted December 17, 2011 у меня почему-то не патчится. tortoise пишет, что не находит этих файлов и имена файлов подсвечиваются красным... Link to comment Share on other sites More sharing options...
chump Posted December 17, 2011 Share Posted December 17, 2011 попробовал руками - тоже не получается, просто белая страница открывается... Link to comment Share on other sites More sharing options...
Recommended Posts