逐浪CMS外库使用的一点点经验分享

返回逐浪CMS技术讨论区
0回复贴,共1页,点击数:654

逐浪CMS强大的数据处理给我们带来了很多的方便。

特别是当建立站群的时候,灵活的外库应用不但令数据相对独立还更加的安全。

那逐浪CMS如何调用外部数据库呢?

下面咱们通过一个案例来交流一下。

我有两个站,一个三友网总站:www.3j99.com,下面还有一个子站威海三友网 http://weihai.3j99.com

这两个网站的数据库都是独立的。网站很多地方都是通过外部数据库来进行交互的。

其中子站有一个全国楼市的栏目资料列表就是从总站调用出来的

首先咱们要先建立外库链接

image.png

image.png

image.png

名称可以随意填写,只要自己能区分出哪个外库就可以了。连接符串这里安数据的链接写上去就可以了。

然后保存,也可以先测试再保存。

测试成功后,外库链接就建立好了

下一步:写标签

标签的写法基本都是一样的,就是在选择数据库的时候,一定要选择外库的,不然始终是调用的本库

image.png

然后就是写标签,标签的字段选择和参数都安外库的逻辑进行填写,和正常的写标签没啥不一样的地方

image.png

image.png

标签内容这里就有地方需要注意啦

比如我们调用文章内容页链接的时候一般会写上{ZL:GetInfoUrl({Field="GeneralID"/})/},而在外库使用的时候,这个扩展函数标签是得不到这个ID的内容页链接的,得到是本库的链接,所以呢我们还需要稍微区别一下,比如我是这样写的

动态页:https://www.3j99.com/Item/{Field="GeneralID"/}.aspx

静态页:https://www.3j99.com/news/{Field="GeneralID"/}shtml

因为我这个栏目下没有别的目录所以这样写静态也可以

如果下面还有栏目1、栏目2、栏目3,这样写就不太合适了,如下图这种关系

image.png

以ID6做为FirstNodeID调用的话,动态的好说,都是/Item/{Field="GeneralID"/}.aspx那静态的呢?这个标签就不好写了。

但有类似的事情我也遇到过。这种情况可以通过js跳转。

就是我们写标签的时候写成动态链接地址:/Item/{Field="GeneralID"/}.aspx  网页首选访问.aspx网页,然后网页js分析URL后,跳转到静态。

下面我把这个JS也分享一下:

<script type="text/javascript">    
var url = window.location.href;    
var preg = /\.aspx/;  //分析是否是静态  
if(preg.test(url)){    
window = location.href = "{ZL:GetInfoUrl({Field="GeneralID"/})/}";    
}    
</script>

因为已经访问了.aspx网页,所以前端已经跳转到外库的链接了,这时候我们再通过{ZL:GetInfoUrl({Field="GeneralID"/})/}标签就可以得到静态地址,就可以实现跳转了。

当然如果本来就是用动态网页的,这种情况就不需要这么麻烦了。

下面是重点:

所有的链接,包括网页的、图片的,都一定要带有域名。如:http://www.3j99.com{ZL:GetInfoUrl({Field="GeneralID"/})/}或者http://www.3j99.com{Field="TopImg"/}"

否则就跳不到所要到的地址的。


上面这就是我在使用外库的一点点经验,逐浪CMS的开放度比较高,需要大家在使用的时候灵活的运用一下

1楼 2019/08/03 15:04
您未登录,没有发贴权限[点此登录]