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); }