From e7f9932f6d5bb67dac0de33e9d52d439d9a1a6bf Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 08 Jul 2022 09:57:05 +0800
Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/farmer-cms

---
 src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java |   54 ++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 36 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java b/src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java
index ce47824..c85e75e 100644
--- a/src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java
+++ b/src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java
@@ -2,10 +2,12 @@
 
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.xcong.farmer.cms.core.handler.DataParserHandler;
 import com.xcong.farmer.cms.core.tag.TagsEnum;
 import com.xcong.farmer.cms.core.template.Configuration;
+import com.xcong.farmer.cms.core.template.TemplateConfiguration;
 import groovy.lang.Binding;
 import groovy.lang.GroovyShell;
 import org.apache.commons.text.StringSubstitutor;
@@ -52,22 +54,6 @@
         this.parserData = parserData;
     }
 
-    public static void main(String[] args) {
-//        String data = "{id=[1,2,3], page=1, limit=5, field=art}";
-//        Articles articles = new AttrNode().parserTag(data, Articles.class);
-
-//        String value = "{id=${col.id}, page=1, limit=5, field=art}";
-//        String pattern = "(?<=\\$\\{)[\\s\\S]*?(?=\\})";
-//        Matcher matcher = Pattern.compile(pattern).matcher(value);
-//        while (matcher.find()) {
-//            String group = matcher.group();
-//            System.out.println(1);
-//        }
-
-
-        System.out.println(1);
-    }
-
     private boolean isNeedEmpty() {
         Elements children = this.element.children();
         if (CollUtil.isNotEmpty(children)) {
@@ -86,7 +72,32 @@
         return false;
     }
 
+    public void staticPath() {
+        // 设置img的链接访问
+        if ("img".equals(this.element.tagName())) {
+            String src = this.element.attr("src");
+            if (StrUtil.isNotBlank(STATIC_URL)) {
+                this.element.attr("src", STATIC_URL + src);
+            }
+        }
+
+        if ("link".equals(this.element.tagName())) {
+            String src = this.element.attr("href");
+            if (StrUtil.isNotBlank(STATIC_URL)) {
+                this.element.attr("href", STATIC_URL + src);
+            }
+        }
+
+        if ("script".equals(this.element.tagName())) {
+            String src = this.element.attr("src");
+            if (StrUtil.isNotBlank(STATIC_URL)) {
+                this.element.attr("src", STATIC_URL + src);
+            }
+        }
+    }
+
     public void parser() {
+        staticPath();
         // 判断是否为最小节点,如果是且没有特殊标签,则跳过清空
         if (!isNeedEmpty()) {
             return;
@@ -112,6 +123,7 @@
             i++;
 
             try {
+                Template.TAGS.add(tagsEnum.getName());
                 // {id=${col.id}, page=1, limit=5, field=art} ${col.id} 形式需先设置值
                 String tagValue = attributes.get(tagsEnum.getName());
                 tagValue = attrValueFormat(tagValue);
@@ -139,6 +151,10 @@
     public void runDataInject() {
         Attributes attributes = this.element.attributes();
         for (Attribute attribute : attributes) {
+            if (attribute.getKey().startsWith("\\$")) {
+                Template.TAGS.add(attribute.getKey());
+            }
+
             String key = attribute.getKey().replaceAll("\\$", "");
             String value = attribute.getValue();
 
@@ -158,9 +174,7 @@
                 this.element.removeAttr("class");
                 this.element.attr("class", evaluate);
             } else if (value.contains( "${")) {
-
                 String result = attrValueFormat(value);
-                System.out.println(result);
                 if ("text".equals(key)) {
                     this.element.text(result);
                 } else {
@@ -258,4 +272,8 @@
     public void systemData(Map<String, Object> systemData) {
         this.systemData = systemData;
     }
+
+    public Object getSystemDataValue(String key) {
+        return this.systemData.get(key);
+    }
 }

--
Gitblit v1.9.1