'; if (!empty($title)) { echo '' . stripslashes($title) . ' - ' . NOMAPPLICATION . ''; } else { echo '' . NOMAPPLICATION . ''; } echo ' '; if ('en' !== $locale) { echo ' '; } echo ' '; if (is_file($_SERVER['DOCUMENT_ROOT'] . "/nav/nav.js")) { echo ''; } echo '
'; } /** * Function allowing to generate poll's url * @param string $id The poll's id * @param bool $admin True to generate an admin URL, false for a public one * @param string $vote_id (optional) The vote's unique id * @param string|null $action * @param string|null $action_value * @return string The poll's URL. */ public static function getUrlSondage(string $id, bool $admin = false, string $vote_id = '', string $action = null, string $action_value = null): string { // URL-Encode $action_value $action_value = $action_value ? self::base64url_encode($action_value) : null; if (URL_PROPRE) { if ($admin === true) { $url = self::get_server_name() . $id . '/admin'; } else { $url = self::get_server_name() . $id; } if ($vote_id !== '') { $url .= '/vote/' . $vote_id . "#edit"; } elseif ($action) { if ($action_value) { $url .= '/action/' . $action . '/' . $action_value; } else { $url .= '/action/' . $action; } } } else { if ($admin === true) { $url = self::get_server_name() . 'adminstuds.php?poll=' . $id; } else { $url = self::get_server_name() . 'studs.php?poll=' . $id; } if ($vote_id !== '') { $url .= '&vote=' . $vote_id . "#edit"; } elseif ($action) { if ($action_value) { $url .= '&' . $action . "=" . $action_value; } else { $url .= '&' . $action . "="; } } } return $url; } /** * This method pretty prints an object to the page framed by pre tags. * * @param mixed $object The object to print. */ public static function debug($object): void { echo '
';
        print_r($object);
        echo '
'; } public static function table(string $tableName): string { return TABLENAME_PREFIX . $tableName; } public static function markdown(string $md, bool $clear=false, bool $line=true): string { $parseDown = new Parsedown(); $parseDown ->setBreaksEnabled(true) ->setSafeMode(true) ; if ($line) { $html = $parseDown->line($md); } else { $md = preg_replace_callback( '#( ){2,}#', static function ($m) { return str_repeat(' ', strlen($m[0])); }, $md ); $html = $parseDown->text($md); } $text = strip_tags($html); return $clear ? $text : $html; } public static function htmlEscape(string $html): string { return htmlentities($html, ENT_HTML5 | ENT_QUOTES); } public static function htmlMailEscape(string $html): string { return htmlspecialchars($html, ENT_HTML5 | ENT_QUOTES); } public static function csvEscape(string $text): string { $escaped = str_replace(['"', "\r\n", "\n"], ['""', '', ''], $text); $escaped = preg_replace("/^(=|\+|\-|\@)/", "'$1", $escaped); return '"' . $escaped . '"'; } public static function cleanFilename(string $title): string { $cleaned = preg_replace('[^a-zA-Z0-9._-]', '_', $title); return preg_replace(' {2,}', ' ', $cleaned); } public static function fromPostOrDefault(string $postKey, ?string $default = '') { return !empty($_POST[$postKey]) ? $_POST[$postKey] : $default; } public static function base64url_encode(string $input): string { return rtrim(strtr(base64_encode($input), '+/', '-_'), '='); } public static function base64url_decode(string $input): string { return base64_decode(str_pad(strtr($input, '-_', '+/'), strlen($input) % 4, '=', STR_PAD_RIGHT), true); } }