$cfgDir = '/var/www/html/content/news';
$cfgDb = 'news.db';
$cfgTable = 'news';
$cfgPrefix = 'nws';
$cfgLink = 'news';
$cfgTopSort = 'tardix';
$cfgSortMode = 'date';
$availableFlags = require '/var/www/html/core/lang/flags.php';
$siteLang = $lang ?? 'fr';
$activeLang = $_GET['db_lang'] ?? $siteLang;
$allItems = [];
$allTags = [];
$existingLangs = [];
if (is_dir($cfgDir)) {
foreach (glob($cfgDir . '/*', GLOB_ONLYDIR) as $dir) {
$folderLang = basename($dir);
$dbPath = $dir . '/' . $cfgDb;
if (file_exists($dbPath)) {
$existingLangs[] = $folderLang;
}
if ($folderLang === $activeLang) {
if (file_exists($dbPath)) {
try {
$pdo = new PDO('sqlite:' . $dbPath);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->query("SELECT * FROM " . $cfgTable);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as &$row) {
$row['lang'] = $folderLang;
if (!empty($row['tags'])) {
$tagsArray = explode(' ', $row['tags']);
foreach ($tagsArray as $tag) {
$cleanTag = trim($tag);
if ($cleanTag !== '') $allTags[] = $cleanTag;
}
}
}
$allItems = array_merge($allItems, $rows);
} catch (PDOException $e) {
}
}
foreach (glob($dir . '/*.php') as $phpFile) {
$filename = basename($phpFile);
if ($filename === 'main.php' || $filename === 'index.php') continue;
$linkName = basename($phpFile, '.php');
$content = file_get_contents($phpFile);
preg_match_all('/\$page_([a-z_]+)\s*=\s*[\'"](.*?)[\'"];/is', $content, $matches);
if (!empty($matches[1])) {
$meta = ['lang' => $folderLang, 'link_href' => $linkName];
foreach ($matches[1] as $index => $key) {
$meta[$key] = $matches[2][$index];
}
if (!empty($meta['title'])) {
if (!empty($meta['tags'])) {
$tagsArray = explode(' ', $meta['tags']);
foreach ($tagsArray as $tag) {
$cleanTag = trim($tag);
if ($cleanTag !== '') $allTags[] = $cleanTag;
}
}
$allItems[] = $meta;
}
}
}
}
}
}
$uniqueTags = array_unique($allTags);
sort($uniqueTags);
if ($cfgSortMode === 'random') {
shuffle($allItems);
}
usort($allItems, function($a, $b) use ($activeLang, $cfgTopSort, $cfgSortMode) {
if ($a['lang'] === $activeLang && $b['lang'] !== $activeLang) return -1;
if ($a['lang'] !== $activeLang && $b['lang'] === $activeLang) return 1;
$aTop = (strpos($a['section_id'] ?? '', $cfgTopSort) === 0) ? 0 : 1;
$bTop = (strpos($b['section_id'] ?? '', $cfgTopSort) === 0) ? 0 : 1;
if ($aTop !== $bTop) return $aTop - $bTop;
if ($cfgSortMode === 'date') {
$dateA = strtotime($a['date'] ?? '1970-01-01');
$dateB = strtotime($b['date'] ?? '1970-01-01');
return $dateB <=> $dateA;
}
if ($cfgSortMode === 'alpha') {
return strcmp($a['title'] ?? '', $b['title'] ?? '');
}
return 0;
});
$imgBase = isset($img) ? $img : '';
?>