X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=banana%2Fmisc.inc.php;h=c3215fcbbd5f4d33a7ab2beab11400ffca8698a9;hb=ce4c7bf6cd5ae4b7dab28ef6c17fd25f7b926e85;hp=a72e6cf7bf1c65cd81d3643ae94d58a6ddcd6650;hpb=4cc7f7784c76df6d5c618bada3ebc07e8d994849;p=banana.git diff --git a/banana/misc.inc.php b/banana/misc.inc.php index a72e6cf..c3215fc 100644 --- a/banana/misc.inc.php +++ b/banana/misc.inc.php @@ -13,19 +13,250 @@ function _b_($str) { return utf8_decode(dgettext('banana', utf8_encode($str))); } +function to_entities($str) { + require_once dirname(__FILE__).'/utf8.php'; + return utf8entities(htmlentities($str, ENT_NOQUOTES, 'UTF-8')); +} + +function is_utf8($s) { return iconv('utf-8', 'utf-8', $s) == $s; } + +function textFormat_translate($format) +{ + switch (strtolower($format)) { + case 'plain': return _b_('Texte brut'); + case 'richtext': return _b_('Texte enrichi'); + case 'html': return _b_('HTML'); + default: return $format; + } +} + +/** Redirect to the page with the given parameter + * @ref makeLink + */ +function redirectInBanana($params) +{ + header('Location: ' . makeLink($params)); +} + +/** Make a link using the given parameters + * @param ARRAY params, the parameters with + * key => value + * Known key are: + * - group = group name + * - artid/first = article id the the group + * - subscribe = to show the subscription page + * - action = action to do (new, cancel, view) + * - part = to show the given MIME part of the article + * - pj = to get the given attachment + * - xface = to make a link to an xface + * + * Can be overloaded by defining a hook_makeLink function + */ +function makeLink($params) +{ + if (function_exists('hook_makeLink') + && $res = hook_makeLink($params)) { + return $res; + } + $proto = empty($_SERVER['HTTPS']) ? 'http://' : 'https://'; + $host = $_SERVER['HTTP_HOST']; + $file = $_SERVER['PHP_SELF']; + + if (isset($params['xface'])) { + $file = dirname($file) . '/xface.php'; + $get = 'face=' . urlencode(base64_encode($params['xface'])); + } else if (count($params) != 0) { + $get = '?'; + foreach ($params as $key=>$value) { + if (strlen($get) != 1) { + $get .= '&'; + } + $get .= $key . '=' . $value; + } + } else { + $get = ''; + } + + return $proto . $host . $file . $get; +} + +/** Format a link to be use in a link + * @ref makeLink + */ +function makeHREF($params, $text = null, $popup = null, $class = null) +{ + $link = makeLink($params); + if (is_null($text)) { + $text = $link; + } + if (!is_null($popup)) { + $popup = ' title="' . $popup . '"'; + } + if (!is_null($class)) { + $class = ' class="' . $class . '"'; + } + $target = null; + if (isset($params['action']) && $params['action'] == 'view') { + $target = ' target="_blank"'; + } + return '' . $text . ''; +} + +/** Format tree images links + * @param img STRING Image name (without extension) + * @param alt STRING alternative string + * @param width INT to force width of the image (null if not defined) + * + * This function can be overloaded by defining hook_makeImg() + */ +function makeImg($img, $alt, $height = null, $width = null) +{ + if (function_exists('hook_makeImg') + && $res = hook_makeImg($img, $alt, $height, $width)) { + return $res; + } + + if (!is_null($width)) { + $width = ' width="' . $width . '"'; + } + if (!is_null($height)) { + $height = ' height="' . $height . '"'; + } + + $proto = empty($_SERVER['HTTPS']) ? 'http://' : 'https://'; + $host = $_SERVER['HTTP_HOST']; + $file = dirname($_SERVER['PHP_SELF']) . '/img/' . $img; + $url = $proto . $host . $file; + + return '' . $alt . ''; +} + +/** Make a link using an image + */ +function makeImgLink($params, $img, $alt, $height = null, $width = null, $class = null) +{ + return makeHREF($params, + makeImg($img, ' [' . $alt . ']', $height, $width), + $alt, + $class); +} + +/******************************************************************************** + * HTML STUFF + * Taken from php.net + */ + +/** + * @return string + * @param string + * @desc Strip forbidden tags and delegate tag-source check to removeEvilAttributes() + */ +function removeEvilTags($source) +{ + $allowedTags = '