Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

x2关联链接分析

[复制链接]
evenzhou 发表于 2011-6-27 23:01:33 | 显示全部楼层 |阅读模式

最近网络上很多用户问及到关联链接设置无效问题,下面对关联链接处理流程进行分析:
以主题关联链接为例:打开default/forum/viewthead.htm
模版中处理关联链接的地方:
  1. <!--{if $_G['relatedlinks']}-->
  2. <div style="display: none">
  3. <ul>
  4. <!--{loop $_G['relatedlinks'] $key $link}-->
  5. <li><a id="relatedlink_$key" href="$link[url]">$link[name]</a></li>
  6. <!--{/loop}-->
  7. </ul>
  8. </div>
  9. <script type="text/javascript">relatedlinks('postmessage_$_G[forum_firstpid]');</script>
  10. <!--{/if}-->
复制代码
上述代码中的$_G['relatedlinks']的值来自于getrelatedlink();通过这个函数来获取批定类型的关联连接
在这段代码中执行了很多js的函数,首先调用 relatedlinks() 函数在common.js中
  1. function relatedlinks(rlinkmsgid) {
  2. $F('_relatedlinks', arguments);
  3. }
复制代码
现在用户可能有点头痛了,$F是什么呢?,我们搜下common.js不难发现,对$F是有定义的
function $F(func, args, script) 函数实现了对 _relatedlinks函数的处理。并将参数进行处理传递给函数及其判断输入的第一个变量是否是函数和文件加载处理,下面我来看看 _reratedlinks()函数是怎么工作的
打开文件 static/js/common_extra.js

  1. function _relatedlinks(rlinkmsgid)
  2.       
复制代码
首先判断是否存在这个的id或者内容是否符合要求(不包含<script>这样的标签),分别对其$(rlinkmsgid)控件的内容进行处理,将$('relatedlink_'+j)其对应的控件内容进行处理,实现对帖子内容的替换。由于这个的处理是加在编辑器样式之前,如果设置了关键字关联链接,再对其进行样式处理会没有效果的




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-24 00:34 , Processed in 0.020061 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表