[Phpmyadmin-git] [SCM] phpMyAdmin branch, master, updated. RELEASE_3_4_3_1-11903-g17cd1eb

Michal Čihař nijel at users.sourceforge.net
Mon Jul 25 12:10:39 CEST 2011


The branch, master has been updated
       via  17cd1ebe2ba549b575f47f9a3bba512b8358ea7a (commit)
      from  c3daf8bc52fde16549e5672061febfa1e03a4ae6 (commit)


- Log -----------------------------------------------------------------
commit 17cd1ebe2ba549b575f47f9a3bba512b8358ea7a
Author: Michal Čihař <mcihar at suse.cz>
Date:   Mon Jul 25 12:11:17 2011 +0200

    Use single function for bbcode implementation

-----------------------------------------------------------------------

Summary of changes:
 libraries/config/config_functions.lib.php |   30 +---------------------------
 libraries/sanitizing.lib.php              |   19 +++++++++++++----
 2 files changed, 16 insertions(+), 33 deletions(-)

diff --git a/libraries/config/config_functions.lib.php b/libraries/config/config_functions.lib.php
index 31d4305..7b71748 100644
--- a/libraries/config/config_functions.lib.php
+++ b/libraries/config/config_functions.lib.php
@@ -17,35 +17,9 @@
  */
 function PMA_lang($lang_key)
 {
-    static $search, $replace;
-
-    // some quick cache'ing
-    if ($search === null) {
-        $replace_pairs = array(
-            '<'         => '<',
-            '>'         => '>',
-            '[em]'      => '<em>',
-            '[/em]'     => '</em>',
-            '[strong]'  => '<strong>',
-            '[/strong]' => '</strong>',
-            '[code]'    => '<code>',
-            '[/code]'   => '</code>',
-            '[kbd]'     => '<kbd>',
-            '[/kbd]'    => '</kbd>',
-            '[br]'      => '<br />',
-            '[sup]'     => '<sup>',
-            '[/sup]'    => '</sup>');
-        if (defined('PMA_SETUP')) {
-            $replace_pairs['[a at Documentation.html'] = '[a at ../Documentation.html';
-        }
-        $search = array_keys($replace_pairs);
-        $replace = array_values($replace_pairs);
-    }
     $message = isset($GLOBALS["strConfig$lang_key"]) ? $GLOBALS["strConfig$lang_key"] : $lang_key;
-    $message = str_replace($search, $replace, $message);
-    // replace [a@"$1"]$2[/a] with <a href="$1">$2</a>
-    $message = preg_replace('#\[a@("?)([^\]]+)\1\]([^\[]+)\[/a\]#e',
-        "PMA_lang_link_replace('$2', '$3')", $message);
+
+    $message = PMA_sanitize($message);
 
     if (func_num_args() == 1) {
         return $message;
diff --git a/libraries/sanitizing.lib.php b/libraries/sanitizing.lib.php
index b308f1c..d0d3ba8 100644
--- a/libraries/sanitizing.lib.php
+++ b/libraries/sanitizing.lib.php
@@ -50,15 +50,24 @@ function PMA_sanitize($message, $escape = false, $safe = false)
         '[sup]'      => '<sup>',
         '[/sup]'      => '</sup>',
     );
+    if (defined('PMA_SETUP')) {
+        $replace_pairs['[a at Documentation.html'] = '[a at ../Documentation.html';
+    } else {
+        $replace_pairs['[a at Documentation.html'] = '[a at ./Documentation.html';
+    }
     $message = strtr($message, $replace_pairs);
 
-    $pattern = '/\[a@([^"@]*)@([^]"]*)\]/';
+    $pattern = '/\[a@([^"@]*)(@([^]"]*))?\]/';
 
     if (preg_match_all($pattern, $message, $founds, PREG_SET_ORDER)) {
         $valid_links = array(
             'http',  // default http:// links (and https://)
-            './Do',  // ./Documentation
         );
+        if (defined('PMA_SETUP')) {
+            $valid_links[] = '../D';  // ./Documentation
+        } else {
+            $valid_links[] = './Do';  // ./Documentation
+        }
 
         foreach ($founds as $found) {
             // only http... and ./Do... allowed
@@ -66,15 +75,15 @@ function PMA_sanitize($message, $escape = false, $safe = false)
                 return $message;
             }
             // a-z and _ allowed in target
-            if (! empty($found[2]) && preg_match('/[^a-z_]+/i', $found[2])) {
+            if (! empty($found[3]) && preg_match('/[^a-z_]+/i', $found[3])) {
                 return $message;
             }
         }
 
         if (substr($found[1], 0, 4) == 'http') {
-            $message = preg_replace($pattern, '<a href="' . PMA_linkURL($found[1]) . '" target="\2">', $message);
+            $message = preg_replace($pattern, '<a href="' . PMA_linkURL($found[1]) . '" target="\3">', $message);
         } else {
-            $message = preg_replace($pattern, '<a href="\1" target="\2">', $message);
+            $message = preg_replace($pattern, '<a href="\1" target="\3">', $message);
         }
     }
 


hooks/post-receive
-- 
phpMyAdmin




More information about the Git mailing list