Exemplo n.º 1
0
 /**
  * Load page IDs from product categories table
  *
  * @param mixed          $varValue
  * @param \DataContainer $dc
  *
  * @return mixed
  */
 public function load($varValue, \DataContainer $dc)
 {
     $objCategories = ProductCategory::findBy('pid', $dc->id);
     SubtableVersion::initialize($dc->table, $dc->id, ProductCategory::getTable(), null === $objCategories ? array() : $objCategories->fetchAll());
     return null === $objCategories ? array() : $objCategories->fetchEach('page_id');
 }
Exemplo n.º 2
0
 /**
  * Get categories (pages) assigned to this product
  *
  * @param bool $blnPublished Only return published categories (pages)
  *
  * @return \PageModel[]
  */
 public function getCategories($blnPublished = false)
 {
     $key = $blnPublished ? 'published' : 'all';
     if (null === $this->arrCategories || !isset($this->arrCategories[$key])) {
         if ($blnPublished) {
             $objCategories = ProductCategory::findByPidForPublishedPages($this->getProductId());
         } else {
             $objCategories = ProductCategory::findBy('pid', $this->getProductId());
         }
         $this->arrCategories[$key] = null === $objCategories ? array() : $objCategories->fetchEach('page_id');
         // Sort categories by the backend drag&drop
         $arrOrder = deserialize($this->orderPages);
         if (!empty($arrOrder) && is_array($arrOrder)) {
             $this->arrCategories[$key] = array_unique(array_merge(array_intersect($arrOrder, $this->arrCategories[$key]), $this->arrCategories[$key]));
         }
     }
     return $this->arrCategories[$key];
 }