10-балльная оценка в отзыве о товаре в OpenCart
В OpenCart есть свои встроенные отзывы о товаре. Они имеют перемодерацию, постинг от лица гостя (с указанием имени и самого отзыва), а также имеют возможность выставления оценки к тому или иному товару.
По стандарту в этой CMS оценка выставляется по пятибалльной шкале, где 1 – минимальная оценка, а 5 – максимальная. Передо мной же встала задача расширить эти рамки и увеличить максимальную оценку до 10 пунктов. И о том, как это сделать, пойдет сегодня речь.
Итак, все изменения мы будет вносить в файлы движка. Инструкция рассчитана на OpenCart версий 2.3.*. В остальных же версиях вы делаете по аналогии. В некоторых путях файлов «default» – это папка темы, на которой работает сайт. В вашем же случае файлы вы ищете в своей теме.
1. Подключитесь к вашему сайту по FTP.
2. Далее откройте файл product.tpl в папке /catalog/view/theme/default/template/product/. В нем найдите строки, похожие на:
<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" />
Замените их на:
<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" />
<input type="radio" name="rating" value="6" />
<input type="radio" name="rating" value="7" />
<input type="radio" name="rating" value="8" />
<input type="radio" name="rating" value="9" />
<input type="radio" name="rating" value="10" />
Сохраните изменения и отправьте файл обратно на сайт.
3. Далее откройте файл product.php в папке /catalog/controller/product/. Здесь вы ищете строку, похожую на:
if (empty($this->request->post['rating']) || $this->request->post['rating'] < 0 || $this->request->post['rating'] > 5) {
И в ней «5» замените на «10». Сохраните изменения и отправьте файл обратно на сайт.
4. Затем откройте файл review_form.tpl в папке /admin/view/template/catalog/. Этот файл отвечает за форму редактирования (модерации) отзыва в панели управления.
В нем вы находите строки, похожие на эти:
<label class="radio-inline">
<?php if ($rating == 1) { ?>
<input type="radio" name="rating" value="1" checked="checked" />
1
<?php } else { ?>
<input type="radio" name="rating" value="1" />
1
<?php } ?>
</label>
<label class="radio-inline">
<?php if ($rating == 2) { ?>
<input type="radio" name="rating" value="2" checked="checked" />
2
<?php } else { ?>
<input type="radio" name="rating" value="2" />
2
<?php } ?>
</label>
<label class="radio-inline">
<?php if ($rating == 3) { ?>
<input type="radio" name="rating" value="3" checked="checked" />
3
<?php } else { ?>
<input type="radio" name="rating" value="3" />
3
<?php } ?>
</label>
<label class="radio-inline">
<?php if ($rating == 4) { ?>
<input type="radio" name="rating" value="4" checked="checked" />
4
<?php } else { ?>
<input type="radio" name="rating" value="4" />
4
<?php } ?>
</label>
<label class="radio-inline">
<?php if ($rating == 5) { ?>
<input type="radio" name="rating" value="5" checked="checked" />
5
<?php } else { ?>
<input type="radio" name="rating" value="5" />
5
<?php } ?>
</label>
И заменяете их на:
<label class="radio-inline">
<?php if ($rating == 1) { ?>
<input type="radio" name="rating" value="1" checked="checked" />
1
<?php } else { ?>
<input type="radio" name="rating" value="1" />
1
<?php } ?>
</label>
<label class="radio-inline">
<?php if ($rating == 2) { ?>
<input type="radio" name="rating" value="2" checked="checked" />
2
<?php } else { ?>
<input type="radio" name="rating" value="2" />
2
<?php } ?>
</label>
<label class="radio-inline">
<?php if ($rating == 3) { ?>
<input type="radio" name="rating" value="3" checked="checked" />
3
<?php } else { ?>
<input type="radio" name="rating" value="3" />
3
<?php } ?>
</label>
<label class="radio-inline">
<?php if ($rating == 4) { ?>
<input type="radio" name="rating" value="4" checked="checked" />
4
<?php } else { ?>
<input type="radio" name="rating" value="4" />
4
<?php } ?>
</label>
<label class="radio-inline">
<?php if ($rating == 5) { ?>
<input type="radio" name="rating" value="5" checked="checked" />
5
<?php } else { ?>
<input type="radio" name="rating" value="5" />
5
<?php } ?>
</label>
<label class="radio-inline">
<?php if ($rating == 6) { ?>
<input type="radio" name="rating" value="6" checked="checked" />
6
<?php } else { ?>
<input type="radio" name="rating" value="6" />
6
<?php } ?>
</label>
<label class="radio-inline">
<?php if ($rating == 7) { ?>
<input type="radio" name="rating" value="7" checked="checked" />
7
<?php } else { ?>
<input type="radio" name="rating" value="7" />
7
<?php } ?>
</label>
<label class="radio-inline">
<?php if ($rating == 8) { ?>
<input type="radio" name="rating" value="8" checked="checked" />
8
<?php } else { ?>
<input type="radio" name="rating" value="8" />
8
<?php } ?>
</label>
<label class="radio-inline">
<?php if ($rating == 9) { ?>
<input type="radio" name="rating" value="9" checked="checked" />
9
<?php } else { ?>
<input type="radio" name="rating" value="9" />
9
<?php } ?>
</label>
<label class="radio-inline">
<?php if ($rating == 10) { ?>
<input type="radio" name="rating" value="10" checked="checked" />
10
<?php } else { ?>
<input type="radio" name="rating" value="10" />
10
<?php } ?>
</label>
Сохраняете изменения и здесь, и файл также отправляете обратно на сайт.
5. Последним шагом делаем еще одно редактирование. Открываете файл review.php в папке /admin/controller/catalog/ и ищете строку, похожую на:
if (!isset($this->request->post['rating']) || $this->request->post['rating'] < 0 || $this->request->post['rating'] > 5) {
И по аналогии с 3 шагом меняете «5» на «10».
Сохраняете изменения в файле. Отправляете его на сайт.
На этом смена максимальной оценки в отзыве закончена. В принципе, инструкция подробно расписана, и по аналогии с ней вы можете сделать любую другую нужную вам максимальную оценку в отзывах OpenCart.