浏览代码

增加reserved 字段

stanley-king 8 年之前
父节点
当前提交
c615166b37
共有 2 个文件被更改,包括 56 次插入4 次删除
  1. 44 4
      helper/special/block_filter.php
  2. 12 0
      test/TestRegex.php

+ 44 - 4
helper/special/block_filter.php

@@ -59,10 +59,50 @@ class block_filter
     {
         if($show_type == 'goods_top')
         {
-            $level = intval($reserved);
-            if($level > 0) {
-                return $this->topimages($level);
-            } else {
+            $regxp = '/([^=#]+=[^#]*)[#]?/i';
+            $val = preg_match_all($regxp,$reserved,$match);
+            if($val == false) return $reserved;
+
+            $items = [];
+            if(count($match) == 2)
+            {
+                foreach($match[1] as $val)
+                {
+                    $kv = preg_split('/=/',$val);
+                    if(!empty($kv))
+                    {
+                        $k = trim($kv[0]);
+                        $v = trim($kv[1]);
+                        if(!empty($k)) {
+                            $items[$k] = $v;
+                        }
+                    }
+                }
+            }
+            if(array_key_exists('top',$items))
+            {
+                $top = intval($items['top']);
+                if($top > 0)
+                {
+                    $result = [];
+                    foreach ($items as $key => $val)
+                    {
+                        if($key == 'top') {
+                            $url = urlencode($this->topimages(intval($val)));
+                            $data = "image={$url}";
+                        } else {
+                            $val = urlencode($val);
+                            $data = "{$key}={$val}";
+                        }
+                        $result[] = $data;
+                    }
+                    return implode("#",$result);
+                }
+                else {
+                    return $reserved;
+                }
+            }
+            else {
                 return $reserved;
             }
         }

+ 12 - 0
test/TestRegex.php

@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * Created by PhpStorm.
+ * User: stanley-king
+ * Date: 2017/5/19
+ * Time: 下午2:00
+ */
+class TestRegex extends PHPUnit_Framework_TestCase
+{
+
+}