= $timestamp AND description != '' ORDER BY creation_date DESC"; } $result = mysqli_query($GLOBALS['mysql_con'], $query); $articles = []; while ($row = mysqli_fetch_assoc($result)) { $articles[] = $row; } return $articles; }; function get_select_permisions($collection_id, $type) { $query = "SELECT * FROM main_collection_".$type."_link WHERE main_collection_id = ".$collection_id; $result = @mysqli_query($GLOBALS['mysql_con'], $query); $permissions = []; while($row = @mysqli_fetch_array($result)){ array_push($permissions,$row['main_'.$type.'_id']); } return $permissions; } function has_access($user_id, $mandant, $department, $role, $fachbereich, $einricht) { $con = $GLOBALS['mysql_con']; $query = " SELECT * FROM main_contact_department WHERE main_contact_id = " . (int)$user_id; $result = mysqli_query($con, $query); if (!$result) { return false; } while ($row = mysqli_fetch_assoc($result)) { if ( in_array($row['main_mandant_id'], $mandant) && in_array($row['main_department_id'], $department) && in_array($row['main_role_id'], $role) && in_array($row['main_bereich_id'], $fachbereich) && in_array($row['main_einricht_id'], $einricht) ) { return true; } } return false; } // Artikel der letzten 40 Tage für die Zählung der neuen Artikel abrufen $new_articles_period = get_all_knowledgebase_articles(15); // Alle Artikel für die Anzeige der letzten verfügbaren Artikel abrufen $all_articles = get_all_knowledgebase_articles(); // Neue Artikel (für den Zeitraum) nach Benutzerzugriff filtern $new_articles_with_access = []; foreach ($new_articles_period as $article) { $collection_id = $article['id']; $mandant = get_select_permisions($collection_id, 'mandant'); $department = get_select_permisions($collection_id, 'department'); $role = get_select_permisions($collection_id, 'role'); $fachbereich = get_select_permisions($collection_id, 'fachbereich'); $einricht = get_select_permisions($collection_id, 'einricht'); if (has_access($GLOBALS['main_contact']["id"], $mandant, $department, $role, $fachbereich, $einricht)) { $new_articles_with_access[] = $article; } } // Alle Artikel nach Benutzerzugriff filtern, um die letzten 3 anzuzeigen $accessible_articles = []; foreach ($all_articles as $article) { $collection_id = $article['id']; $mandant = get_select_permisions($collection_id, 'mandant'); $department = get_select_permisions($collection_id, 'department'); $role = get_select_permisions($collection_id, 'role'); $fachbereich = get_select_permisions($collection_id, 'fachbereich'); $einricht = get_select_permisions($collection_id, 'einricht'); if (has_access($GLOBALS['main_contact']["id"], $mandant, $department, $role, $fachbereich, $einricht)) { $accessible_articles[] = $article; } } // Nur die letzten 3 verfügbaren Artikel nehmen $last_3_articles = array_slice($accessible_articles, 0, 3); // Ergebnis anzeigen if (count($last_3_articles) > 0) { echo '
";
echo '