Перейти к содержанию
kakaohaltiger

[Конфликт с дополнением] Ошибка при попытке оставить отзыв о товаре

Рекомендуемые сообщения

Решил посмотреть как отображается оставленный отзыв о товаре, заполнил поля (имя) и (ваш отзыв), жму продолжить, а мне выдает ошибку: (!Название отзыва должно быть от 3 до 25 символов!) пытался по всякому переписать поля, иногда выдает что (!Текст отзыва должен быть от 25 до 1000 символов!). В чем может быть проблема, подскажите пожалуйста...

 

ocStore © Version 1.5.3.1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что? Никто ни разу не сталкивался с подобным? Ну хоть намекните, куда смотреть, где искать, ну хоть чем-нибудь помогите...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ссылка на сайт?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

покажите содержимое catalog/controller/product/product.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

спрятал под спойлер в след посте (не сразу разобрался как это сделать)

 

это Вы формой быстрого заказа баловались? =))

 

входящие письма:

Вопрос: 534535От кого: 534535<dgfg@f.oo>
Кому: operator@4my-phone.ru

Сегодня, 10:14
кенкенкнкен

 

:-D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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')
);

if ($product_info['seo_title']) {
$this->document->setTitle($product_info['seo_title']);
} else {
$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['seo_h1'] = $product_info['seo_h1'];

$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['type'] == 'image') {
$option_value_data = array();

foreach ($option['option_value'] as $option_value) {
if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) {
if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) {
$price = $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
} else {
$price = false;
}

$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'],
'image' => $this->model_tool_image->resize($option_value['image'], 50, 50),
'price' => $price,
'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_on'] = $this->language->get('text_on');
$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' => $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 ($this->request->server['REQUEST_METHOD'] == 'POST') {
if ((utf8_strlen($this->request->post['name']) < 3) || (utf8_strlen($this->request->post['name']) > 25)) {
$json['error'] = $this->language->get('error_name');
}

if ((utf8_strlen($this->request->post['text']) < 25) || (utf8_strlen($this->request->post['text']) > 1000)) {
$json['error'] = $this->language->get('error_text');
}

if (empty($this->request->post['rating'])) {
$json['error'] = $this->language->get('error_rating');
}

if (empty($this->session->data['captcha']) || ($this->session->data['captcha'] != $this->request->post['captcha'])) {
$json['error'] = $this->language->get('error_captcha');
}

if (!isset($json['error'])) {
$this->model_catalog_review->addReview($this->request->get['product_id'], $this->request->post);

$json['success'] = $this->language->get('text_success');
}
}

$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 (!empty($this->request->files['file']['name'])) {
$filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8')));

if ((strlen($filename) < 3) || (strlen($filename) > 64)) {
$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($filename, '.'), 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 (!$json) {
if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) {
$file = basename($filename) . '.' . md5(mt_rand());

// Hide the uploaded file name so people can not link to it directly.
$json['file'] = $this->encryption->encrypt($file);

move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file);
}

$json['success'] = $this->language->get('text_upload');
}

$this->response->setOutput(json_encode($json));
}
}
?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не знаю почему, но значение поля с именем не передается, отсюда и постоянная ошибка, хотя все вроде в норме

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

но Вы же сами видите - выдвет ошибку =(( я уже столько матчасти выкурил... только без систематизированных знаний это только мозги засоряет... вот и ищу помощи у добрых людей...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Люди, ну хотябы дайте совет какой-нибудь... где поискать, что почитать... подскажите, я не ленивый, надо будет - изучу материал, мне бы направление нужное взять...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Аналогичная ошибка =(

 

это поле не передает свой параметр.

<input type="text" name="name" value="" /> 

В product.php Можно сделать так

if ((utf8_strlen($this->request->post['name']) != 0) || (utf8_strlen($this->request->post['name']) > 25)) {

Но в отзывах имя человека видно не будет =((

 

Можно посторонним еще ограничить отправку отзыва. Они смогу его только читать. А кто зарегистрирован смогут его отправить. Файл product.tpl

 <div id="tab-review" class="tab-content">
    <div id="review"></div>
	
    <?php if ($this->customer->isLogged()) { ?>
	
    <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"><?php echo $button_continue; ?></a></div>
    </div>
	
   <?php } ?>

  </div>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

курите автора дополнения

<div class="box-heading">Экспресс заказ</div>

<b>Ваш телефон</b><br />
            <input type="text" name="name" id="name" value="" />
пусть не использует родные для opencart имена полей в формах.
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

курите автора дополнения

 

<div class="box-heading">Экспресс заказ</div>

<b>Ваш телефон</b><br />
            <input type="text" name="name" id="name" value="" />
пусть не использует родные для opencart имена полей в формах.

 

Эм... не понял... а при чем тут дополнение? Вопрос об отзыве о товарах. Модуль обратной связи в блоке экспресс заказа (кусок которого вы написали) работает исправно. Или это каким-то образом взаимосвязано?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эм... не понял... а при чем тут дополнение? Вопрос об отзыве о товарах. Модуль обратной связи в блоке экспресс заказа (кусок которого вы написали) работает исправно. Или это каким-то образом взаимосвязано?

отключите его на время и посмотрите на работу отзывов

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да, действительно, при отключенном модуле отзывы работают...

модуль этот: https://opencartforum.com/files/file/596-обратная-связь-на-ajax/

автор сволочь за него еще и денег требует... подскажите пожалуйста как исправить ошибку и наказать автора багованного модуля

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если автор дополнения - не вы и он вменяемый - дайте ему ссылку на тему и моё сообщение в частности.

я указал участок кода, который виновен в ваших бедах.

upd:

ну вот - пишите автору в теме поддержки со ссылкой на эту тему.

пусть исправляет.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если автор дополнения - не вы и он вменяемый - дайте ему ссылку на тему и моё сообщение в частности.

я указал участок кода, который виновен в ваших бедах.

Спасибо за подсказку! Буду ругаться с автором модуля.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за подсказку! Буду ругаться с автором модуля.

 

Добрый день. Поправил модуль. За 45 рублей можно было обойтись и без ругательств. 

Для вас достаточно скачать мой обновленный модуль и поменять только один файл:

catalog\view\theme\default\template\module\feedback.tpl

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну, как бы да - ругаться тут не из-за чего.

надо было просто обратиться за поддержкой.

надеюсь, теперь все счастливы и довольны? :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня оказалась проблема в моем шаблоне. Разработчик шаблона помог все исправить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ладно-ладно, погорячился - извините. Ругаться не из-за чего, это правда. Извините. Главное, что оперативно исправили, не пришлось долго ждать, это + в репу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Serg9988
      600.00 руб
      Скачать/Купить дополнение


      Уведомление о наличии PRO Opencart2
      Уведомление о наличии товара PRO
       
      Начиная с версии модуля 9.5, модуль работает только на opencart 2.3.* - 3.0* и OCStore 2.3.*
       
      Краткое описание:
      Модуль позволяет покупателю заказать уведомление о поступлении товара в магазин.
      Модуль заменяет кнопку "Купить" на кнопку "Уведомить", если товара нет на складе или выбранной покупателем опции у товара нет в наличии.
      Работает по:
      количеству товара на складе по количеству опций на товаре по статусу товара  

      Возможности:
       
       История запросов уведомлений от пользователей в панели администратора   Возможность ручного отключения уведомлений   Обработка всего уведомления одним нажатием   Автоматическое уведомление о отправке   on / off Google captcha   Модуль работает с модулями по умолчанию (специальные, последние и другие модули).  Модуль работает на всех страницах   Добавлена настройка - отправлять уведомление после любых изменений в информации о продукте (только если этот продукт имеется на складе)   Модуль может использовать опции товаров (необязательно включается в настройке модуля).  Добавляет информацию о новых уведомлениях на панели управления   Пользователь может видеть историю своих уведомлений   Работает с настраиваемыми темами   Вы можете изменить шаблоны писем С версии 9.6
      возможность добавлять произвольные поля  возможность добавления данных произвольных полей в шаблоны писем  
       

       
       
       
       
      К модулю идет инструкция где подробно описано как установить и настроить модуль. 
      Адаптация, правки вида модуля и другие работы на не стандартном шаблоне делаются за отдельную плату.
       
      Модуль работает на шаблонах:
        moneymaker2
       
      ознакомится с документацией - ДОКУМЕНТАЦИЯ
       
      Системные/технические требования:
      Протестировано на следующих версиях : 
      ocstore 2.0*,2.1*,2.2*.2.3* opencart 2.0*,2.1*,2.2*.2.3*, 3.0*   Модуль не тестировался и его работа не гарантируется на всякого рода зборках ocstore или opencart от студий или отдельных разработчиков. Работа гарантируется только на чистых официальных сборках!
       
      Для работы модуля требуется:
      PHP Version: 5.6.x или выше
      ionCube PHP Loader: 4.5.0+ или выше
       
      Возможности:
       
       

       
       
      В планах реализовать:
      возможность создания собственных полей на форму с возможностью использовать их в письмах отправка уведомлений по смс построение отчетов по заявкам и выгрузка из в Exsel  
       
      Дизайн модуля адаптивен и корректно работает на мобильных устройствах:
       

       
      Установка:
       Скачайте архив с нужной версией модуля. Модуль с версии 9.5 работает только на opencart 2.3 и выше и OCStore 2.3 и выше.  Зайдите в административную панель сайта в раздел "Дополнения/Установка дополнений" и установите модуль  Зайдите в раздел "Дополнения/Менеджер дополнений" и обновите кеш  Зайдите в раздел "Дополнения/Дополнения/Модули" Установите модуль "SM Уведомить о наличии PRO"  Зайдите в редактирование модуля (введите ключ активации или сделайте запрос на получение ключа ) активируйте модуль переведя опцию "Статус" в позицию "Включен.              Сохраните настройки  Подключите модуль на страницы Главная, категории, товары и тд. (Раздел Дизайн/Схемы)  
      Состав модуля:
      полная инструкция с описанием работы и установки модуля; файлы модуля; файл для тестирования настроек сервера;  
      ДЕМО 
      Страница товара с опциями (кнопка купить будет подменена только если выбрать опцию количество которой <=0)
      login/pass - demo/demo
       
      Полное описание:
       
      Все работы по стилизации модуля под ваш шаблон (цвет кнопки, форма размер и тд.) проводяться исключительно на платной основе.
       
      Что нового:
       
      Обновление:
       
      Условия использования:
      Лицензия на модуль выдается на следующих условиях:
      1 лицензия = 1 покупка = 1 доменное имя.
      То есть - один раз купив, вы получаете ключ для работы модуля только на одном доменном имени, одном магазине!
       
      Приобретая лицензию (покупая дополнение), Вы автоматически соглашаетесь со следующими положениями:
       
      Для получения лицензионного ключа напишите мне в личном сообщении от имени того, на кого покупался модуль:
      Название модуля Доменное имя вашего магазина Доменное имя тестовой площадки (если таковая имеется) Ваш адрес электронной почты, куда выслать ключ  
      Дополнительные лицензии вы можете получить купив модуль на сайте http://myopencart.club/
      На 4-ю и более покупку действует скидка. Чтобы получить скидку пишите в личку или на почту.
      Вопросы, пожелания можно писать в форум или на почту support@myopencart.club
       
      Добавил Serg9988 Добавлено 30.03.2016 Категория Письма, почта, рассылки, sms Системные требования Ioncube Loader 4.5.0+ Сайт разработчика http://myopencart.club Старая цена Метод активации По запросу в ЛС Ioncube Loader Требуется OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Не проверялось  
    • От Serg9988
      Уведомление о наличии товара PRO
       
      Начиная с версии модуля 9.5, модуль работает только на opencart 2.3.* - 3.0* и OCStore 2.3.*
       
      Краткое описание:
      Модуль позволяет покупателю заказать уведомление о поступлении товара в магазин.
      Модуль заменяет кнопку "Купить" на кнопку "Уведомить", если товара нет на складе или выбранной покупателем опции у товара нет в наличии.
      Работает по:
      количеству товара на складе по количеству опций на товаре по статусу товара  

      Возможности:
       
       История запросов уведомлений от пользователей в панели администратора   Возможность ручного отключения уведомлений   Обработка всего уведомления одним нажатием   Автоматическое уведомление о отправке   on / off Google captcha   Модуль работает с модулями по умолчанию (специальные, последние и другие модули).  Модуль работает на всех страницах   Добавлена настройка - отправлять уведомление после любых изменений в информации о продукте (только если этот продукт имеется на складе)   Модуль может использовать опции товаров (необязательно включается в настройке модуля).  Добавляет информацию о новых уведомлениях на панели управления   Пользователь может видеть историю своих уведомлений   Работает с настраиваемыми темами   Вы можете изменить шаблоны писем С версии 9.6
      возможность добавлять произвольные поля  возможность добавления данных произвольных полей в шаблоны писем  
       

       
       
       
       
      К модулю идет инструкция где подробно описано как установить и настроить модуль. 
      Адаптация, правки вида модуля и другие работы на не стандартном шаблоне делаются за отдельную плату.
       
      Модуль работает на шаблонах:
        moneymaker2
       
      ознакомится с документацией - ДОКУМЕНТАЦИЯ
       
      Системные/технические требования:
      Протестировано на следующих версиях : 
      ocstore 2.0*,2.1*,2.2*.2.3* opencart 2.0*,2.1*,2.2*.2.3*, 3.0*   Модуль не тестировался и его работа не гарантируется на всякого рода зборках ocstore или opencart от студий или отдельных разработчиков. Работа гарантируется только на чистых официальных сборках!
       
      Для работы модуля требуется:
      PHP Version: 5.6.x или выше
      ionCube PHP Loader: 4.5.0+ или выше
       
      Возможности:
       
       

       
       
      В планах реализовать:
      возможность создания собственных полей на форму с возможностью использовать их в письмах отправка уведомлений по смс построение отчетов по заявкам и выгрузка из в Exsel  
       
      Дизайн модуля адаптивен и корректно работает на мобильных устройствах:
       

       
      Установка:
       Скачайте архив с нужной версией модуля. Модуль с версии 9.5 работает только на opencart 2.3 и выше и OCStore 2.3 и выше.  Зайдите в административную панель сайта в раздел "Дополнения/Установка дополнений" и установите модуль  Зайдите в раздел "Дополнения/Менеджер дополнений" и обновите кеш  Зайдите в раздел "Дополнения/Дополнения/Модули" Установите модуль "SM Уведомить о наличии PRO"  Зайдите в редактирование модуля (введите ключ активации или сделайте запрос на получение ключа ) активируйте модуль переведя опцию "Статус" в позицию "Включен.              Сохраните настройки  Подключите модуль на страницы Главная, категории, товары и тд. (Раздел Дизайн/Схемы)  
      Состав модуля:
      полная инструкция с описанием работы и установки модуля; файлы модуля; файл для тестирования настроек сервера;  
      ДЕМО 
      Страница товара с опциями (кнопка купить будет подменена только если выбрать опцию количество которой <=0)
      login/pass - demo/demo
       
      Полное описание:
       
      Все работы по стилизации модуля под ваш шаблон (цвет кнопки, форма размер и тд.) проводяться исключительно на платной основе.
       
      Что нового:
       
      Обновление:
       
      Условия использования:
      Лицензия на модуль выдается на следующих условиях:
      1 лицензия = 1 покупка = 1 доменное имя.
      То есть - один раз купив, вы получаете ключ для работы модуля только на одном доменном имени, одном магазине!
       
      Приобретая лицензию (покупая дополнение), Вы автоматически соглашаетесь со следующими положениями:
       
      Для получения лицензионного ключа напишите мне в личном сообщении от имени того, на кого покупался модуль:
      Название модуля Доменное имя вашего магазина Доменное имя тестовой площадки (если таковая имеется) Ваш адрес электронной почты, куда выслать ключ  
      Дополнительные лицензии вы можете получить купив модуль на сайте http://myopencart.club/
      На 4-ю и более покупку действует скидка. Чтобы получить скидку пишите в личку или на почту.
      Вопросы, пожелания можно писать в форум или на почту support@myopencart.club
       
    • От alexandrkrot1993
      300 RUB
      Переглянути файл


      Галерея товара в категории

      Галерея товара в категории
      Это продолжение бесплатного модификатора .
      Добавлены настройки - сможете настроить под себя.
      Добавляет миникартинки товаров .
      При наведении на миникартинки, происходит смена главной картинки товара.
      можно настроить

      Добавлены стрелки прокрутки, если картинок много

       
      Данный модуль представлен для default темы, интеграция под разные темы будет происходить постепенно и по запросу в личные сообщения
      Демо
      Перед покупкой напишите свою тему в лс!
       
       
      Автор alexandrkrot1993 долучення 25.10.18 Категорія Слайдшоу, баннеры, галереи Системные требования Сайт разработчика http://pechenki.top Старая цена 350 Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1  
    • От alexandrkrot1993
      Галерея товара в категории
      Это продолжение бесплатного модификатора .
      Добавлены настройки - сможете настроить под себя.
      Добавляет миникартинки товаров .
      При наведении на миникартинки, происходит смена главной картинки товара.
      можно настроить

      Добавлены стрелки прокрутки, если картинок много

       
      Данный модуль представлен для default темы, интеграция под разные темы будет происходить постепенно и по запросу в личные сообщения
      Демо
      Перед покупкой напишите свою тему в лс!
       
       
    • От Timur3294237423428934
      Здравствуйте, не подскажите, как можно при нажатии на товар выводить его не на отдельной странице, а в модальном окне? Сложно ли такое осуществить?
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.