]*)hs="([1-9][0-9]?)"([^>]*)>)', '', $fileContent); $sbContent = rplc(sboard_generate($realPage)); $fileContent = str_replace('', $sbContent, $fileContent); if (preg_match('(
(.*)
)s', $fileContent, $article)) { //article body $article = trim($article[1]); } else { $article = ''; } if (preg_match('((.*))s', $fileContent, $title)) { //article title $title = trim($title[1]); } else { $title = ''; } if (preg_match('((.*))s', $fileContent, $date)) { //article release time $date = trim($date[1]); } else { $date = null; } if (preg_match('((.*))s', $fileContent, $author)) { //article author $author = trim($author[1]); } else { $author = null; } $languages = ['cs', 'en', 'de']; if (preg_match('(]*)cs(e?)="([^"]*)"([^>]*)>)', $fileContent, $cs)) { //article czech version link $aliases['cs'] = ($cs[2] == 'e' ? '*' : '') . trim($cs[3]); } if (preg_match('(]*)en(e?)="([^"]*)"([^>]*)>)', $fileContent, $en)) { //article english version link $aliases['en'] = ($en[2] == 'e' ? '*' : '') . trim($en[3]); } if (preg_match('(]*)de(e?)="([^"]*)"([^>]*)>)', $fileContent, $de)) { //article german version link $aliases['de'] = ($de[2] == 'e' ? '*' : '') . trim($de[3]); } if (preg_match('()', $fileContent, $menuUrl)) { //article menu url $menuUrl = trim($menuUrl[1]); //language box generator foreach ($languages as $language) { if (isset($aliases[$language]) && str_starts_with($aliases[$language], '*')) { $langPanel .= rplc('' . $language . ''); } else { if (isset($aliases[$language]) && file_exists('pages/' . $language . '/' . $aliases[$language] . '.pg')) { $langPanel .= rplc('' . $language . ''); } } } //end of language box generator } else { $menuUrl = null; } $author = $realPageType == 1 || $author === null ? '' : rplc($author); /*if($realPageType==0){ if(empty($date)){ $date=date(rplc("%dateFormat%"),filemtime($realPage)); } } */ if ($menuUrl === null || !file_exists($menuUrl)) { $menuUrl = 'main'; } $menu = rplc(file_get_contents('pages/' . $lang . '/' . $menuUrl . '.mn')); $article = rplc($article); if (preg_match('()', $fileContent, $gotoUrl)) { if ($page == $gotoUrl[1]) { $logrecursive = fopen('syntax.log', 'a+'); if (!preg_match('(' . preg_quote($realPage) . '\n)', file_get_contents('recursive.log'))) { fwrite($logrecursive, $realPage . "\n"); mail($mainMail, "Presmerovaci smycka https://krk.tojnar.cz/lob2011/$realPage", 'Stranka se presmerovava sama na sebe'); } fclose($logrecursive); readPage('error/recursive'); } else { readPage($gotoUrl[1]); } } if (strpos($fileContent, '') != false) { $eu = true; } else { $eu = false; } if (empty($title) && empty($article)) { $logsyntax = fopen('syntax.log', 'a+'); if (!preg_match('(' . preg_quote($realPage) . '\n)', file_get_contents('syntax.log'))) { fwrite($logsyntax, $realPage . "\n"); mail($mainMail, "Chyba syntaxe https://krk.tojnar.cz/lob2011/$realPage", 'Nerozpoznan titulek a clanek'); } fclose($logsyntax); readPage('error/syntax'); return false; } elseif (empty($title)) { $logsyntax = fopen('syntax.log', 'a+'); if (!preg_match('(' . preg_quote($realPage) . '\n)', file_get_contents('syntax.log'))) { fwrite($logsyntax, $realPage . "\n"); mail($mainMail, "Chyba syntaxe https://krk.tojnar.cz/lob2011/$realPage", 'Nerozpoznan titulek'); } fclose($logsyntax); readPage('error/syntax'); return false; } elseif (empty($article)) { $logsyntax = fopen('syntax.log', 'a+'); if (!preg_match('(' . preg_quote($realPage) . '\n)', file_get_contents('syntax.log'))) { fwrite($logsyntax, $realPage . "\n"); mail($mainMail, "Chyba syntaxe https://krk.tojnar.cz/lob2011/$realPage", 'Nerozpoznan clanek'); } fclose($logsyntax); readPage('error/syntax'); return false; } else { return true; } } function author(string $author): ?string { global $realPageType; if ($realPageType == 0) { if (empty($author)) { return rplc('%unknownAuthor%'); } else { return $author; } } else { return null; } } function toDate(?string $dateStr): ?string { if (!empty($dateStr)) { $dateStr = explode(' ', $dateStr); $dateStr = $dateStr[0]; $dateStr = explode('-', $dateStr); $year = $dateStr[0]; $month = ltrim($dateStr[1], '0'); $day = ltrim($dateStr[2], '0'); return str_replace(['%y%', '%m%', '%d%'], [$year, $month, $day], rplc('%date%')); } else { return null; } } function isReleased(?string $datetimeStr): bool { if ($datetimeStr === null || $datetimeStr === '') { // Empty date = release immediately return true; } $datetime = explode(' ', $datetimeStr); if (!isset($datetime[1])) { $datetime[1] = '00:00'; } [$year, $month, $day] = explode('-', $datetime[0]); $month = ltrim($month, '0'); $day = ltrim($day, '0'); [$hour, $minute] = explode(':', $datetime[1]); if (date('Y') >= $year) { if (date('m') >= $month) { if (date('d') >= $day) { if (date('H') >= $hour) { if (date('i') >= $minute) { return true; } else { return false; } } else { return false; } } else { return false; } } else { return false; } } else { return false; } } function toTime(?string $dateStr): ?string { if (!empty($dateStr)) { $time = explode(' ', $dateStr); return $time[1] ?? null; } else { return null; } }