1 <?php
2 /**
3 * Виджет "Избранные товары"
4 * Позволяет разместить в боковой колонке избранные товары (из модуля catalog_favorite)
5 *
6 * @package widgets
7 * @author menedem
8 */
9 class FavoriteProductsSidebarWidget extends SidebarWidget {
10
11 static $show_empty_widget = false; // показывать виджет при отсутствии товаров в избранном
12
13 public $needObjects = array(
14 'FavoritePage' => 'Page'
15 );
16
17 private $favoritePage = false;
18
19 private function getFavoritePage() {
20 if (!$this->favoritePage) {
21 $this->favoritePage = DataObject::get_one('FavoritePage');
22 }
23 return $this->favoritePage;
24 }
25
26 function FavoriteProducts($count=0) {
27 if ($page = $this->getFavoritePage()) {
28 if ($products = $page->ShowFavoriteProducts()) {
29 if ($count > 0) {
30 return $products->getRange(0, $count);
31 }
32 return $products;
33 }
34 }
35 }
36
37 function FavoriteProductsCount() {
38 if ($page = $this->getFavoritePage()) {
39 return $page->FavoriteCount();
40 }
41 }
42
43 function FavoritePage() {
44 return $this->getFavoritePage();
45 }
46
47 function hasContent() {
48 if (self::$show_empty_widget || $this->FavoriteProductsCount()) {
49 return true;
50 }
51 return false;
52 }
53
54 function getMoreLink() {
55 if ($page = $this->getFavoritePage()) {
56 return $page->Link();
57 }
58 return false;
59 }
60 }