public static function get_slices_for_article($article_id, $clang_id = FALSE, $ctype_id = FALSE, $modultyp_id = FALSE)
    {
        global $REX;
        self::$slices = array();
        $sql = rex_sql::factory();
        $qry = '
SELECT id, re_article_slice_id, modultyp_id, ctype, clang  
FROM ' . $REX['TABLE_PREFIX'] . 'article_slice 
WHERE article_id=' . $article_id;
        if ($clang_id !== FALSE) {
            $qry .= ' AND clang = ' . $clang_id;
        }
        $sql->setQuery($qry);
        while ($sql->hasNext()) {
            self::$slices[$sql->getValue('re_article_slice_id')] = array('id' => $sql->getValue('id'), 'clang_id' => $sql->getValue('clang'), 'ctype_id' => $sql->getValue('ctype'), 'modultyp_id' => $sql->getValue('modultyp_id'));
            $sql->next();
        }
        if (count(self::$slices) > 1) {
            self::order_slices();
        }
        if (count(self::$slices) && $modultyp_id !== FALSE) {
            self::filter_slices_by_modultyp_id($modultyp_id);
        }
        if (count(self::$slices) && $ctype_id !== FALSE) {
            self::filter_slices_by_ctype_id($ctype_id);
        }
        if (count(self::$slices)) {
            foreach (self::$slices as $key => $val) {
                self::$slices[$key] = OOArticleSlice::getArticleSliceById($val['id'], $val['clang_id']);
            }
        }
        return self::$slices;
    }
 function getSlicesOfType($a_type_id)
 {
     return OOArticleSlice::getSlicesForArticleOfType($this->_id, $a_type_id);
 }
 public function getSlice($sliceId, $clangId = false)
 {
     global $REX;
     // set rex vars for this website
     $this->switchRexVars();
     // get article content
     $slice = OOArticleSlice::getArticleSliceById($sliceId, $clangId);
     $sliceContent = $slice->getSlice();
     // restore rex vars for current website
     $REX['WEBSITE_MANAGER']->getCurrentWebsite()->switchRexVars();
     return $sliceContent;
 }
 public static function getSortedSlices($articleId, $clang = false, $moduleId = 0)
 {
     $slices = array();
     $slicesTmp = OOArticleSlice::getSlicesForArticle($articleId, $clang);
     if ($slicesTmp) {
         if (is_array($slicesTmp)) {
             $sliceMap = array();
             $sliceRefMap = array();
             foreach ($slicesTmp as $slice) {
                 $sliceMap[$slice->getId()] = $slice;
                 $sliceRefMap[$slice->_re_article_slice_id] = $slice->getId();
             }
             $nextSlice = $sliceMap[$sliceRefMap[0]];
             while ($nextSlice) {
                 $slices[] = $nextSlice;
                 if (!isset($sliceRefMap[$nextSlice->getId()])) {
                     break;
                 }
                 $nextSlice = $sliceMap[$sliceRefMap[$nextSlice->getId()]];
             }
         } else {
             $slices = array($slicesTmp);
         }
     }
     if ($moduleId > 0) {
         $moduleSlices = array();
         foreach ($slices as $slice) {
             if ($slice->getModuleId() == $moduleId) {
                 $moduleSlices[] = $slice;
             }
         }
         return $moduleSlices;
     } else {
         return $slices;
     }
 }
 function getPreviousSlice()
 {
     return OOArticleSlice::getArticleSliceById($this->_re_article_slice_id);
 }
 /**
  * Alter Alias aus BC Gruenden
  * @deprecated 4.1 - 07.03.2008
  */
 function getPrevSlice()
 {
     return OOArticleSlice::_getSliceWhere('id = ' . $this->_re_article_slice_id . ' AND clang = ' . $this->_clang);
 }