public static function GetList(array $params, $p_order = null, $p_start = 0, $p_limit = 0, &$p_count, $p_skipCache = false)
{
global $g_ado_db;
if (!$p_skipCache && CampCache::IsEnabled()) {
$paramsArray['parameters'] = serialize($params);
$paramsArray['order'] = is_null($p_order) ? 'id' : $p_order;
$paramsArray['start'] = $p_start;
$paramsArray['limit'] = $p_limit;
$cacheListObj = new CampCacheList($paramsArray, __METHOD__);
$issuesList = $cacheListObj->fetchFromCache();
if ($issuesList !== false && is_array($issuesList)) {
return $issuesList;
}
}
if (isset($params['role']) && $params['role'] == 'child') {
$sql = 'SELECT DISTINCT b.fk_article_no FROM context_boxes b, Articles a0' . ' WHERE a0.Number = b.fk_article_no AND ' . ' a0.Type = "dossier" AND ' . ' b.id IN (SELECT c.fk_context_id ' . ' FROM Articles a, context_articles c ' . ' WHERE c.fk_article_no = ' . $params['article'] . ' AND a.Number = c.fk_article_no)';
if (isset($params['published']) && $params['published'] == 'true') {
$sql .= ' AND a0.Published = "Y"';
}
$sql .= ' ORDER BY a0.PublishDate DESC';
} else {
if (isset($params['published']) && $params['published'] == 'true') {
$sql = 'SELECT DISTINCT b.fk_article_no FROM context_articles b, Articles a0' . ' WHERE b.fk_context_id = ' . $params['context_box'] . ' AND ' . ' b.fk_article_no = a0.Number AND ' . ' a0.Published = "Y"' . ' ORDER BY b.id';
} else {
$sql = 'SELECT fk_article_no FROM context_articles' . ' WHERE fk_context_id = ' . $params['context_box'] . ' ORDER BY id';
}
}
if ($p_limit > 0) {
$sql .= ' LIMIT ' . $p_limit;
}
$returnArray = array();
$rows = $g_ado_db->GetAll($sql);
if (is_array($rows)) {
foreach ($rows as $row) {
$returnArray[] = $row['fk_article_no'];
}
}
$p_count = count($returnArray);
return $returnArray;
}