added url parsing stuff
authorlkehresman <lkehresman@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Wed, 5 Apr 2000 14:30:54 +0000 (14:30 +0000)
committerlkehresman <lkehresman@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Wed, 5 Apr 2000 14:30:54 +0000 (14:30 +0000)
git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@388 7612ce4b-ef26-0410-bec9-ea0150e637f0

ChangeLog
functions/strings.php
functions/url_parser.php [new file with mode: 0644]

index 4d6b5c3..d099ec5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 Version 0.4pre1 -- Development
 ------------------------------
-- Added option to configure default folder directory.  ex: ~/mail
+- Parsing the body for URLs and translating them to links
+- Added option to configure default folder directory. ie: ~/mail
 - Configuration script added: config/conf.pl
 - Addressbook with LDAP support
 - Big speed improvements with folder listing
index 44f1d12..44158c5 100644 (file)
@@ -92,6 +92,7 @@
    }
 
    function translateText($body, $wrap_at, $charset) {
+      include ("../functions/url_parser.php");
       /** Add any parsing you want to in here */
       $body = trim($body);
       $body_ary = explode("\n", $body);
             $line = "<TT><FONT COLOR=000000>$line</FONT></TT><BR>\n";
          }
 
+         $line = parseUrl ($line);
          $new_body[$i] = "$line";
       }
       $bdy = implode("\n", $new_body);
diff --git a/functions/url_parser.php b/functions/url_parser.php
new file mode 100644 (file)
index 0000000..0a64d65
--- /dev/null
@@ -0,0 +1,49 @@
+<?
+   /* URL Passing code to allow links from with in emails */
+
+   $url_parser_php = true;
+
+   function replaceBlock ($in, $replace, $start, $end) {
+      $begin = substr($in,0,$start);
+      $end   = substr($in,$end,strlen($in)-$end);
+      $ret   = $begin.$replace.$end;
+      return $ret;
+   }
+
+   function parseUrl ($body) {
+      #Possible ways a URL could finish.
+
+      $poss_ends=array(" ","\n","\r","<",".&nbsp","&nbsp");
+      $done=False;
+      while (!$done) {
+         #Look for when a URL starts
+         $where = strpos($body,"http:",$start);
+         if ($where) {
+            # Find the end of that URL
+            reset($poss_ends); $end=0; 
+            while (list($key, $val) = each($poss_ends)) {
+               $enda = strpos($body,$val,$where);
+               if ($end == 0) $end = $enda;
+               if ($enda < $end and $enda != 0) $end = $enda;
+            } 
+            #Extract URL
+            $url = substr($body,$where,$end-$where);
+            #Replace URL with HyperLinked Url
+            if ($url != "") {
+               $url_str = "<a href=\"$url\" target=\"_blank\">$url</a>";
+               #    $body = str_replace($url,$url_str,$body); 
+               $body = replaceBlock($body,$url_str,$where,$end);
+               $start = strpos($body,"</a>",$where);
+            } else { 
+               $start = $where + 7; 
+            } 
+         } else {
+            $done=true;
+         }
+      }
+
+      return $body;
+   }
+
+?>
+