Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Последние отзывы на главной


free

Recommended Posts

Сделал тут небольшой обзор как вывести последние отзывы в колонку на главную страницу, может кому будет интересно.

- Один явный недостаток, по моему мнению нет стрелок для прокрутке, у кого будет время может доработать и оформить модулем ;)

Да у меня версия опен карта 1.4.7, на других не тестил, но тут все прозрачно, если хотять по минимуму знать MVC структуру, PHP, SQL :)

1. в модель добавляем выборку последних отзывов, у меня последние 10

// ---------------------------last review----------------------
public function getLastReview() {
$query = $this->db->query("SELECT d.name, r.* FROM " . DB_PREFIX . "review r, oc_product_description d where r.product_id=d.product_id and r.status = 1 order by date_added desc LIMIT 0 , 10");

return $query->rows;
}

//  ----------------------------------------------------------

2.в шаблоне для правой колонки colum_right.tpl добавляем


<!-- last review -->
  <?php if ($reviews) { ?>
   <div class="box lastreview">
<div class="top"><img src="catalog/view/theme/default/image/bestsellers.png" alt="" /><?php echo "Отзывы" ?></div>
<div class="middle">
<div id="jqnewsVert">

<?php if ($reviews) { ?>
<?php foreach ($reviews as $review) { ?>
<div class="content"><b>
<strong><a href="<?php echo $review['url']; ?>"><?php echo $review['name']; ?></a></strong>
<br/>
<?php echo $review['author']; ?></b> | <img src="catalog/view/theme/default/image/stars_<?php echo $review['rating'] . '.png'; ?>" alt="<?php echo $review['stars']; ?>" /><br />
<?php echo $review['date_added']; ?><br />
<br />
<?php echo $review['text']; ?></div>
<?php } ?>
<?php } else { ?>
<div class="content"><?php echo $text_no_reviews; ?></div>
<?php } ?>

</div>
</div>
<div class="bottom"> </div>
</div>
<?php } ?>
<!-- end last review -->

3. В контроллере colum_right.php добавляем:

//---------------------- last review -----------------------------
$this->load->model('catalog/review');

$this->data['reviews'] = array();

$results = $this->model_catalog_review->getLastReview();


foreach ($results as $result) {

$text="";
$words = explode(" ", nl2br(strip_tags($result['text'])));
if ( count($words) > 10 ) {
$text = join(" ", array_slice($words, 0, 10));
$text = $text . " ...";
} else {
$text = nl2br(strip_tags($result['text']));
}

$tmp = $this->model_catalog_product->getProductAlias($result['product_id']);

if ($tmp == '0') {
$url = HTTP_SERVER . 'index.php?route=product/product&product_id=' . $result['product_id'];
} else {
$url = $this->model_catalog_product->getProductAlias($result['product_id']);
}

		 $this->data['reviews'][] = array(
'name'   => $result['name'],
		 'author'	 => $result['author'],
'rating'	 => $result['rating'],
'url'  => $url,
//'text'	   => nl2br(strip_tags($result['text'])),
'text'	   => $text,
		 'stars'	  => sprintf($this->language->get('text_stars'), $result['rating']),
		 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added']))
		 );
	   }

//---------------------End last review------------------------------------------------

4. Слайд блоков на странице делаю при помощи скрипта jqNewsV2.0.js (б.., так и не смог его прикрепить, сливайте если что тут http://moiotdyh.ru/c...y/jqNewsV2.0.js или в инете)

не забываем его подключить

<script src="catalog/view/javascript/jquery/jqNewsV2.0.js" type="text/javascript"></script>

5. Стили юзаю следующие

.lastreview h4 {margin: 0px;margin-bottom: 5px;color: orange;}
#jqnewsVert {overflow: hidden; height: 370px;}
#jqnewsVert div {display: block; overflow: hidden;}
#jqnewsOriz{height: 220px; width: 250%;overflow: hidden; margin:auto;}
#jqnewsOriz div{float:left;height: 220px; width: 150px;margin: 5px; display:block;overflow: hidden;text-align: center;}

тут еще и для горизонтального расположения

6. надеюсь ничего не забыл

Змінено користувачем free
Надіслати
Поділитися на інших сайтах


По пунктам

1. /www/catalog/model/catalog/review.php

2. /www/catalog/view/theme/default/template/common/column_right.tpl

3. /www/catalog/controller/common/column_right.php

4. Прописываем javascript в /www/catalog/view/theme/default/template/common/header.tpl

5. стили в вашем css шаблона, стандартный тут /www/catalog/view/theme/default/stylesheet/stylesheet.css

Надіслати
Поділитися на інших сайтах


Спасибо за подробное описание.

Все действия сделал как Вы описали.

Вот в третьем пункте уже ошибка: Fatal error: Call to undefined method ModelCatalogProduct::getProductAlias() in U:homeshop1wwwcatalogcontrollercommoncolumn_right.php on line 60

Строка 60: $tmp = $this->model_catalog_product->getProductAlias($result['product_id']);

В чем тут причина ошибки???

Текущая версия ocStore (OpenCart) ocStore v0.2.2 (OpenCart 1.4.9.4) выпущена 2-го Июня, 2011

Надіслати
Поділитися на інших сайтах


О, это я себе както давно нарисовал функцию чтобы выводился ЧПУ в ссылка, в последних камментах (потом нашел более элегантное решение, но как говорится все временное становится постоянным :))

Короче делаем так, строчки

$tmp = $this->model_catalog_product->getProductAlias($result['product_id']);

if ($tmp == '0') {

$url = HTTP_SERVER . 'index.php?route=product/product&product_id=' . $result['product_id'];

} else {

$url = $this->model_catalog_product->getProductAlias($result['product_id']);

}

заменяешь просто на:

$url = HTTP_SERVER . 'index.php?route=product/product&product_id=' . $result['product_id'];

Должно помочь

Надіслати
Поділитися на інших сайтах


Ну вот сдвиг пошел, но вот опять ошибка. Как ее устранить?

Изображение

Вот что выдает: : Invalid argument supplied for foreach() in on line WarningU:homeshop1wwwcatalogviewthemedefaulttemplatecommoncolumn_right.tpl13

Зашел в column_right.tpl

13 строка: <?php foreach ($reviews as $review) { ?>

14 строка:<div class="content"><b>

15 строка:<strong><a href="<?php echo $review['url']; ?>"><?php echo $review['name']; ?></a></strong>

16 строка:<br/>

17 строка:<?php echo $review['author']; ?></b> | <img src="catalog/view/theme/default/image/stars_<?php echo $review['rating'] . '.png'; ?>" alt="<?php echo $review['stars'];

18 строка :?>" /><br />

19 строка:<?php echo $review['date_added']; ?><br />

20 строка:<br />

21 строка:<?php echo $review['text']; ?></div>

22 строка:<?php } ?>

23 строка:<?php } else { ?>

24 строка:<div class="content"><?php echo $text_no_reviews; ?></div>

25 строка:<?php } ?> .......... И Т.Д.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.