Add height parameter to makeImg
[banana.git] / banana / misc.inc.php
index ece2883..926cac1 100644 (file)
@@ -33,9 +33,9 @@ function textFormat_translate($format)
 /** Redirect to the page with the given parameter
  * @ref makeLink
  */
-function redirect($params)
+function redirectInBanana($params)
 {
-       header('Location: ' . makeLink($params));
+    header('Location: ' . makeLink($params));
 }
 
 /** Make a link using the given parameters
@@ -53,27 +53,27 @@ function redirect($params)
  */
 function makeLink($params)
 {
-       if (function_exists('hook_makeLink')
-                       && $res = hook_makeLink($params)) {
-               return $res;
-       }
+    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 (count($params) != 0) {
-               $get = '?';
-               foreach ($params as $key=>$value) {
-                       if (strlen($get) != 1) {
-                               $get .= '&';
-                       }
-                       $get .= $key . '=' . $value;
-               }
-       } else {
-               $get = '';
-       }
-
-       return $proto . $host . $file . $get;
+    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
@@ -81,14 +81,44 @@ function makeLink($params)
  */
 function makeHREF($params, $text = null)
 {
-       $link = makeLink($params);
-       if (is_null($text)) {
-               $text = $link;
-       }
-       if ($params['action'] == 'view') {
-               $target = ' target="_blank"';
-       }
-       return '<a href="' . htmlentities($link) . $target . '">' . $text . '</a>';
+    $link = makeLink($params);
+    if (is_null($text)) {
+        $text = $link;
+    }
+    $target = null;
+    if (isset($params['action']) && $params['action'] == 'view') {
+        $target = ' target="_blank"';
+    }
+    return '<a href="' . htmlentities($link) . $target . '">' . $text . '</a>';
+}
+
+/** 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, $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 . '.gif';
+    $url   = $proto . $host . $file; 
+
+    return '<img src="' . $url . '"' . $height . $width . ' alt="' . $alt . '" />';
 }
 
 /********************************************************************************
@@ -245,7 +275,7 @@ function formatDisplayHeader($_header,$_text) {
                 $p = $banana->spool->overview[$p]->parent;
             }
             foreach (array_reverse($par_ok) as $p) {
-                $rsl .= makeHREF(Array('group' => $banana->spool->group), $ndx);
+                $rsl .= makeHREF(Array('group' => $banana->spool->group), $ndx) . ' ';
                 $ndx++;
             }
             return $rsl;
@@ -320,9 +350,9 @@ function displayshortcuts($first = -1) {
 
     if (is_null($artid)) {
         $res .= '[' . makeHREF(Array('group'  => $group,
-                                                                        'action' => 'new'),
-                                                          _b_('Nouveau message'))
-                         . '] ';
+                                     'action' => 'new'),
+                               _b_('Nouveau message'))
+              . '] ';
         if (sizeof($banana->spool->overview)>$banana->tmax) {
             $res .= '<br />';
             $n = intval(log(count($banana->spool->overview), 10))+1;
@@ -331,25 +361,25 @@ function displayshortcuts($first = -1) {
                     $fmt = "[%0{$n}u-%0{$n}u] ";
                 } else {
                     $fmt = '[' . makeHREF(Array('group' => $group,
-                                                                   'first' => $ndx),
-                                                                                 '%0' . $n . 'u-%0' . $n . 'u')
-                                                . '] ';
+                                                'first' => $ndx),
+                                          '%0' . $n . 'u-%0' . $n . 'u')
+                         . '] ';
                 }
                 $res .= sprintf($fmt, $ndx, min($ndx+$banana->tmax-1,sizeof($banana->spool->overview)));
             }
         }
     } else {
         $res .= '[' . makeHREF(Array('group'  => $group,
-                                            'artid'  => $artid,
-                                                                        'action' => 'new'),
-                                                          _b_('RĂ©pondre'))
-                         . '] ';
+                                     'artid'  => $artid,
+                                     'action' => 'new'),
+                               _b_('RĂ©pondre'))
+              . '] ';
         if ($banana->post && $banana->post->checkcancel()) {
             $res .= '[' . makeHREF(Array('group'  => $group,
-                                                    'artid'  => $artid,
-                                                                                'action' => 'cancel'), 
-                                                                  _b_('Annuler ce message'))
-                                 . '] ';
+                                         'artid'  => $artid,
+                                         'action' => 'cancel'), 
+                                   _b_('Annuler ce message'))
+                  . '] ';
         }
     }
     return $res.'</div>';
@@ -462,7 +492,7 @@ function formatbody($_text, $format='plain', $flowed=false)
         foreach ($formatting as $limit=>$mark) {
             $res = preg_replace('@' . $limit . '([^\s]+)' . $limit . '@', "<$mark>\\1</$mark>", $res);
         }
-       }
+    }
 
     if ($format != 'html') {
         global $banana;
@@ -486,11 +516,11 @@ function formatbody($_text, $format='plain', $flowed=false)
         while (preg_match("@(^|<pre>|\n)&gt;@i", $res)) {
             $res  = preg_replace("@(^|<pre>|\n)((&gt;[^\n]*\n)+)@ie",
                 "'\\1</pre><blockquote><pre>'"
-                   .".stripslashes(preg_replace('@(^|<pre>|\n)&gt;[ \\t\\r]*@i', '\\1', '\\2'))"
-                   .".'</pre></blockquote><pre>'",
-                   $res);
+                .".stripslashes(preg_replace('@(^|<pre>|\n)&gt;[ \\t\\r]*@i', '\\1', '\\2'))"
+                .".'</pre></blockquote><pre>'",
+                $res);
         }
-               $res = preg_replace("@<pre>-- ?\n@", "<pre>\n-- \n", $res);
+        $res = preg_replace("@<pre>-- ?\n@", "<pre>\n-- \n", $res);
         $parts = preg_split("/\n-- ?\n/", $res);
     }
 
@@ -509,4 +539,5 @@ function formatbody($_text, $format='plain', $flowed=false)
     }
 }
 
+// vim:set et sw=4 sts=4 ts=4
 ?>