r1643 + "still" isn't always the right expression
[racktables] / inc / functions.php
index 5bd7d8c7ba8694563ae5135e89ea90bcdd2274d3..2a2f1ba0119f4c7e038343221ce9a6287dad4627 100644 (file)
@@ -550,23 +550,23 @@ function getIPAddress ($ip=0)
        $ret['name'] = '';
        $ret['reserved'] = 'no';
        global $dbxlink;
-       $query =
+       $query1 =
                "select ".
                "name, reserved ".
                "from IPAddress ".
                "where ip = INET_ATON('$ip') and (reserved = 'yes' or name != '')";
-       $result = $dbxlink->query ($query);
-       if ($result == NULL)
+       $result1 = $dbxlink->query ($query1);
+       if ($result1 == NULL)
                return NULL;
-       if ($row = $result->fetch (PDO::FETCH_ASSOC))
+       if ($row = $result1->fetch (PDO::FETCH_ASSOC))
        {
                $ret['exists'] = 1;
                $ret['name'] = $row['name'];
                $ret['reserved'] = $row['reserved'];
        }
-       $result->closeCursor();
+       $result1->closeCursor();
 
-       $query =
+       $query2 =
                "select ".
                "IPBonds.object_id as object_id, ".
                "IPBonds.name as name, ".
@@ -578,9 +578,9 @@ function getIPAddress ($ip=0)
                "where IPBonds.ip=INET_ATON('$ip') ".
                "and chapter_name = 'RackObjectType' " .
                "order by RackObject.id, IPBonds.name";
-       $result = $dbxlink->query ($query);
+       $result2 = $dbxlink->query ($query2);
        $count=0;
-       while ($row = $result->fetch (PDO::FETCH_ASSOC))
+       while ($row = $result2->fetch (PDO::FETCH_ASSOC))
        {
                $ret['bonds'][$count]['object_id'] = $row['object_id'];
                $ret['bonds'][$count]['name'] = $row['name'];
@@ -593,7 +593,7 @@ function getIPAddress ($ip=0)
                $count++;
                $ret['exists'] = 1;
        }
-       $result->closeCursor();
+       $result2->closeCursor();
 
        return $ret;
 }
@@ -1126,4 +1126,44 @@ function getObjectCount ($rackData)
        return count ($objects);
 }
 
+// Perform substitutions and return resulting string
+function apply_macros ($macros, $subject)
+{
+       $ret = $subject;
+       foreach ($macros as $search => $replace)
+               $ret = str_replace ($search, $replace, $ret);
+       return $ret;
+}
+
+// Make sure the string is always wrapped with LF characters
+function lf_wrap ($str)
+{
+       $ret = trim ($str, "\r\n");
+       if (!empty ($ret))
+               $ret .= "\n";
+       return $ret;
+}
+
+// Adopted from Mantis BTS code.
+function string_insert_hrefs ($s)
+{
+       if (getConfigVar ('DETECT_URLS') != 'yes')
+               return $s;
+       # Find any URL in a string and replace it by a clickable link
+       $s = preg_replace( '/(([[:alpha:]][-+.[:alnum:]]*):\/\/(%[[:digit:]A-Fa-f]{2}|[-_.!~*\';\/?%^\\\\:@&={\|}+$#\(\),\[\][:alnum:]])+)/se',
+               "'<a href=\"'.rtrim('\\1','.').'\">\\1</a> [<a href=\"'.rtrim('\\1','.').'\" target=\"_blank\">^</a>]'",
+               $s);
+       $s = preg_replace( '/\b' . email_regex_simple() . '\b/i',
+               '<a href="mailto:\0">\0</a>',
+               $s);
+       return $s;
+}
+
+// Idem.
+function email_regex_simple ()
+{
+       return "(([a-z0-9!#*+\/=?^_{|}~-]+(?:\.[a-z0-9!#*+\/=?^_{|}~-]+)*)" . # recipient
+       "\@((?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?))"; # @domain
+}
+
 ?>