确定在 Joomla 中生成线条的位置
Identify where a line is being generated in Joomla
TLDR: 我如何确定调用 <jdoc:include type="head" />
时添加的内容?
为了避免为 friends/family 创建另一个站点,这次我在 AWS 上设置了一个 Joomla 3 的副本,交出了信誉并认为 "Job well done"... 更多傻瓜我.
不知何故 Joomla 的配置方式会抛出 JS 异常。具体来说,有些东西试图调用 jQuery 并收到未定义的错误。请注意,在出现错误的行 之后调用了 jQuery.noConflict();
。
不用说,相关人员并不真正知道他们做了什么,因为他们按照指南添加了他们再也找不到的联系表。
话已经说完了。 强调.
我如何追踪 plugin/extension/template 在输出中添加了特定行?
有问题的脚本被直接转储到主页中,没有 linked 并且是半缩小的。
我希望它出现在外部脚本文件之后,就在会话保持活动 Ajax 请求之前,这将是一个足够好的指针。
脚本的美化版本看起来像这样...
jQuery(window).on('load', function() {
new JCaption('img.caption');
});
jQuery(document).ready(function() {
jQuery('.hasTooltip').tooltip({
"html": true,
"container": "body"
});
});
jQuery(document).ready(function() {
jQuery('.hasPopover').popover({
"html": true,
"trigger": "hover focus",
"container": "body"
});
});
jQuery.noConflict();
$(document).ready(function() {
$("#contact-form").validate({
rules: {
/* Lots of validation rules */
},
highlight: function(label) {
$(label).closest(".control-group").addClass("error");
},
success: function(label) {
label.addClass("valid").closest(".control-group").addClass("success");
}
});
});
window.setInterval(function() {
var r;
try {
r = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP")
} catch (e) {}
if (r) {
r.open("GET", "./", true);
r.send(null)
}
}, 840000);
看起来它正在尝试验证联系表格,因此很可能是罪魁祸首,但网站上没有(至少,working/visible 没有)。
在该块之后是一个非 jQuery Ajax 主页请求(每 14 分钟?)我认为这是某种形式的会话保持活动。具有讽刺意味的是,这并不依赖于 jQuery.
我查看了模板的 component.php
,整个部分似乎是通过 <jdoc:include type="head" />
添加的
链中的下一个 link 是什么?我看不到任何指定 head
包含内容的文件或 xml 块。
关于错误:
您可以阅读 javascript 不工作的原因 here。
所以您会在其中找到修复程序。
关于文件的查找方法:
只需在以下文件夹中搜索 $("#contact-form")
:
components/
modules/
templates
它是一个模块,所以它可能对您的调查有用,如果您跟踪此错误是在每个页面中还是仅在某些页面中。
如果它在所有页面中,可能文件在 templates
或组件文件夹中,否则它是一个模块。
如果它是一个模块,您只需要进入后端并检查在损坏的页面中启用的模块。
希望对你有用。
TLDR: 我如何确定调用 <jdoc:include type="head" />
时添加的内容?
为了避免为 friends/family 创建另一个站点,这次我在 AWS 上设置了一个 Joomla 3 的副本,交出了信誉并认为 "Job well done"... 更多傻瓜我.
不知何故 Joomla 的配置方式会抛出 JS 异常。具体来说,有些东西试图调用 jQuery 并收到未定义的错误。请注意,在出现错误的行 之后调用了 jQuery.noConflict();
。
不用说,相关人员并不真正知道他们做了什么,因为他们按照指南添加了他们再也找不到的联系表。
话已经说完了。 强调.
我如何追踪 plugin/extension/template 在输出中添加了特定行?
有问题的脚本被直接转储到主页中,没有 linked 并且是半缩小的。
我希望它出现在外部脚本文件之后,就在会话保持活动 Ajax 请求之前,这将是一个足够好的指针。
脚本的美化版本看起来像这样...
jQuery(window).on('load', function() {
new JCaption('img.caption');
});
jQuery(document).ready(function() {
jQuery('.hasTooltip').tooltip({
"html": true,
"container": "body"
});
});
jQuery(document).ready(function() {
jQuery('.hasPopover').popover({
"html": true,
"trigger": "hover focus",
"container": "body"
});
});
jQuery.noConflict();
$(document).ready(function() {
$("#contact-form").validate({
rules: {
/* Lots of validation rules */
},
highlight: function(label) {
$(label).closest(".control-group").addClass("error");
},
success: function(label) {
label.addClass("valid").closest(".control-group").addClass("success");
}
});
});
window.setInterval(function() {
var r;
try {
r = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP")
} catch (e) {}
if (r) {
r.open("GET", "./", true);
r.send(null)
}
}, 840000);
看起来它正在尝试验证联系表格,因此很可能是罪魁祸首,但网站上没有(至少,working/visible 没有)。
在该块之后是一个非 jQuery Ajax 主页请求(每 14 分钟?)我认为这是某种形式的会话保持活动。具有讽刺意味的是,这并不依赖于 jQuery.
我查看了模板的 component.php
,整个部分似乎是通过 <jdoc:include type="head" />
链中的下一个 link 是什么?我看不到任何指定 head
包含内容的文件或 xml 块。
关于错误:
您可以阅读 javascript 不工作的原因 here。
所以您会在其中找到修复程序。
关于文件的查找方法:
只需在以下文件夹中搜索 $("#contact-form")
:
components/
modules/
templates
它是一个模块,所以它可能对您的调查有用,如果您跟踪此错误是在每个页面中还是仅在某些页面中。
如果它在所有页面中,可能文件在 templates
或组件文件夹中,否则它是一个模块。
如果它是一个模块,您只需要进入后端并检查在损坏的页面中启用的模块。
希望对你有用。