Version: current

     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 }

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -