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

[Решено] Ошибка при добавлении отзыва к товару

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

Здраствуйте!

Версия магазина: ocStore v1.5.4.1 rus

Из изменений: Установлен также шаблон Technics_for_live_ocstore_v1.5.4

Хостинг: у хостера. Магазин установился без проблем, шаблон тоже.

Поиск проблемы на вашем форуме результата не дал.

С движком магазина ранее не работал, в программировании - чайник.

Проблема:

Столкнулся с ошибкой при добавлении отзыва к товару: Название отзыва должно быть от 3 до 25 символов!

При этом имя автора указывается в соответствии с требуемыми ограничениями. Через админ-панель Каталог - Отзывы, отзыв добавляется нормально без проблем.

Исходя из логики ошибки, решил пробовать править ограничение длины имени автора отзыва в файле product.php находящийся в catalog/controller/product . В строке 497 этого файла нашел следующий код:

if ((utf8_strlen($this->request->post['name']) < 3) || (utf8_strlen($this->request->post['name']) > 25))

При изменении 3 на любое другое число кроме 0 ошибка повторялась. При значении минимальной длины равной нулю, содержание отзыва передается на утверждение в админ-панель, но с пустым полем Автор. В базе данных в таблице review

в столбце author соответственно тоже пустые ячейки. Получается, что форма созданая на страние товара для имени автора отзыва не передает в БД никаких значений? Вот код файлов product.tpl и review.tpl может причина в установленном шаблоне...

Путь к этим файлам: catalog/view/theme/electronics/template/product

product.tpl:

<?php } ?>

<?php if ($review_status) { ?>

<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"><?php echo $button_continue; ?></a></div>

</div>

</div>

<?php } ?>

<?php if ($products) { ?>

<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/electronics/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /></div>

<?php } ?>

review.tpl:

<?php if ($reviews) { ?>

<?php foreach ($reviews as $review) { ?>

<div class="review-list">

<div class="author"><b><?php echo $review['author']; ?></b> <?php echo $text_on; ?> <?php echo $review['date_added']; ?></div>

<div class="rating"><img src="catalog/view/theme/electronics/image/stars-<?php echo $review['rating'] . '.png'; ?>" alt="<?php echo $review['reviews']; ?>" /></div>

<div class="text"><?php echo $review['text']; ?></div>

</div>

<?php } ?>

<div class="pagination"><?php echo $pagination; ?></div>

<?php } else { ?>

<div class="content"><?php echo $text_no_reviews; ?></div>

<?php } ?>

Из-за чего могла возникнуть такая ошибка и где еще может таиться подвох?

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


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

замените "utf8_" на "mb_" в функциях и проверьте.

возможно это связано с настройками сервера.

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

  • +1 1

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


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

Попробовал заменить "utf8_" на "mb_" в функциях как вы посоветовали - не помогло, к сожалению. Тогда по вашему предположению задумался над настройками сервера. Решил проверить следующим способом: на другой мой свободный домен на этом сервере поставил движек как он есть с вашего сайта без всяких там шаблонов. И отзывы на нем работают как тому положено быть. Значит, получается беда таится всё-таки в файлах шаблона... Но с другой стороны я пробовал из дефаултовской темы сборки заменять тпл файлы product.tpl и review.tpl в новой теме и безрезультатно. А где там еще может быть проблема? И подскажите пожалуйста еще, вы сказали что тема поднималась, но я не нашел нигде такого обсуждения, может вы можете поделиться ссылкой на такую тему? Понятно что проблема неочевидная, но кто то же должен был её решить раз она возникала не только у меня...

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


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

Решилась проблема! Как и думалось дело оказалось в установленном шаблоне. А именно в форме обратной связи которая была реализована при помощи javascript. Происходил какой то конфликт... После удаления скрипта отзыв стал отправляться без ошибки! Тему можно закрывать. Спасибо всем кто пытался думать над моей проблемой.

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


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

вы бы точнее описали - какая форма, какой скрипт, какие файлы :wink:

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


Ссылка на сообщение
Поделиться на другие сайты
вы бы точнее описали - какая форма, какой скрипт, какие файлы :wink:

форма в которой покупатель указывает свое имя, e-mail и собственно свой вопрос и эта информация приходит на e-mail магазина. Форма была спрятана в правой части сайта и выезжала при активации. Это была доработка автора шаблона который был у него приобретен. Обратился к нему когда уже точно понял что проблема именно в шаблоне. Файлы скрипта считаю вылаживать было бы не корректно по отношению к автору, а так бы поделился.

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


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

Решилась проблема! Как и думалось дело оказалось в установленном шаблоне. А именно в форме обратной связи которая была реализована при помощи javascript. Происходил какой то конфликт... После удаления скрипта отзыв стал отправляться без ошибки! Тему можно закрывать. Спасибо всем кто пытался думать над моей проблемой.

Но это не решение проблемы - как же тогда форма обратной связи???

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


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

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

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

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

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

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

Войти

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

Войти

  • Последние посетители   0 пользователей онлайн

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

×

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

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