将JavaScript添加到Joomla网站的头部

8
我已经学习了一些Joomla的教程,但是我仍然不理解它的工作原理。这让我感到很困惑,因为我从未遇到过一种让我无从下手的东西。我不是要求免费帮助,只是想知道该去哪里或者基本的工作原理。
我只需要将Panoramio javascript添加到Joomla网站的部分中。在WordPress中,我只需下载header.php模板并开始编写代码。
理解Joomla太困难了。我知道不能直接粘贴到“文章”页面上,所以我是否需要安装某种扩展或工具才能使其工作?
我看过一篇关于在我的模板中编辑index.php的文章,但我甚至找不到它。我是唯一一个完全不理解Joomla的人吗?即使是初学者文档也似乎假定我已经熟悉他们的系统。先谢谢你了。
6个回答

8

在添加代码时,请注意要添加到哪些文件中。编辑模板文件夹中的index.php等核心文件可能不是最佳方案。如果存在模板更新,该文件将被覆盖。所以请记住这点。

在添加脚本之前,获取当前模板名称是一个好主意:

$app = JFactory::getApplication();
$template = $app->getTemplate();

您可以使用以下代码将.js文件导入到<head>标签中:
$doc = JFactory::getDocument(); //only include if not already included
$doc->addScript(JUri::root() . 'templates/' . $template . '/file.js');

或者您可以像这样在那里添加JavaScript:
$doc = JFactory::getDocument();
$js = "
       //javascript goes here
      ";
$doc->addScriptDeclaration($js);

希望这能有所帮助。

谢谢。只有一件事,以便我了解Joomla的工作原理。 我是将您的代码(当然还包括我的更改)直接粘贴到php页面(即头、索引等)中… 还是Joomla使用某种界面将您的代码粘贴到其中? 我看到很多人在论坛上建议粘贴此类代码.. 但我还没有看到他们说它们被粘贴到哪里。 - LITguy
1
你可以将代码复制并粘贴到模板文件夹下的index.php中,或者如果你只想在一个页面上导入它,你可以通过文章和使用DirectPHPSourcerer来添加它。 - Lodder

1
你可以编辑index.php文件和其他模板文件,如css等。
前往:扩展->模板管理器
选择模板选项卡
在左侧第二个位置,您会看到:“模板名称”详细信息和文件,您可以直接在服务器上编辑任何模板文件。
菜单可能会根据Joomla版本而变化,但这是一般的想法。

不过在修改之前,我总是会先复制一个副本。当你打开一个模板时,这个选项就自带了。 - Elin

0

你绝对不是唯一一个有这种情况的人。Joomla被设计成可以处理你需要它做的任何事情,这使得它变得相当复杂。

如果你希望脚本在整个站点中可用,你最好将脚本添加到你提到的模板index.php文件中。如果你只需要它用于特定的模块或组件,则应该在那里加载它。在你的情况下,由于你对Joomla还比较新,我们只需让它加载即可!

导航到你的基本Joomla目录(安装Joomla的位置)并寻找模板文件夹。在其中,你应该有几个文件夹。希望你知道你当前正在使用哪个模板,打开那个文件夹,里面应该有一个index.php文件。这个文件的顶部应该类似于Wordpress的header.php文件。在头元素中添加你的脚本标签,它就会加载。

如果你不知道你当前模板的名称,进入后端Extensions->Template Manager。那里应该有两个带右边星号的选项卡。一个应该标记为“administrator”,另一个应该标记为“site”。在templates文件夹中你要寻找的文件夹名称应该与“site”模板的名称相匹配。


我已经到达了“站点”部分。这里有标签,如全局、配置文件、布局、主题等。我还看到他们正在使用的“主题”(我没有自己安装)。我还看到“T3框架”等词语,这可能会给出一些线索。我是否应该在某个文件管理器中字面上看到一个“index.php”文件? - LITguy
看起来这是JAT3框架,我正在学习“块”,这可能是这个头部的位置。 - LITguy
你不在核心 Joomla 中,因此对于那些不是使用你正在使用的框架的专家来说,提供建议真的非常困难。在正常的 Joomla 模板中,在模板管理器中,你可以从 com_templates 的模板视图中访问 index 文件... 扩展 > 模板 > 点击模板选项卡或侧边栏链接(具体取决于 Joomla 的哪个版本)。 - Elin

0

以下是一个关于你需要做什么的快速教程:

  • Joomla! 模板位于 /templates 文件夹中(找到你的模板)
  • 在其中找到 index.php 文件(你需要在那里更改内容)
  • 在其中你会发现一个带有一些 PHP 代码的 HTML 页面
  • 找到 <head> 标签

如何添加这个:

$doc->addScript($this->baseurl.'/templates/'.$this->template.'/javascript/YOURSCRIPT.js', 'text/javascript');

确保这行代码已经存在:

$doc = JFactory::getDocument();

注:因为你没有说明你使用的 Joomla! 版本,所以这个例子来自 Joomla! 2.5,当前的 LTS 版本。

P.S. 你也可以在 <head> 标签后面正常地插入脚本。


当您提到它在“/templates/”文件夹中时,您是指我需要FTP访问权限,还是需要在模板管理器中找到一个index.php页面?谢谢。 - LITguy
看起来这是所谓的JAT3框架…提到“blocks”而不是我称之为php页面?哈哈,这真疯狂,但似乎更接近黄金之路。 - LITguy

0

我不是JavaScript专家,但我有一个AJAX应用程序,而且在不修改任何模板文件的情况下完美运行。问题是它将JavaScript添加到页面底部,而不是头部。我不知道这是否是一个问题,但对我来说它有效。

1)转到“扩展”->“模块管理器”

2)创建一个新模块。将其命名为JavaScript Footer(例如)

3)在“详细信息”选项卡下,将“显示标题”设置为隐藏,将“位置”设置为调试,将“状态”设置为已发布,并将“访问权限”设置为公共

4)在“自定义输出”选项卡下,键入 <script type="text/javascript" src="http://yourdomain.com/yourscript.js"></script>

我从来没有理解为什么有些脚本在头部,而其他脚本在body底部(例如Google Analytics),但对我来说它有效。


-1
Joomla和WordPress相当不同。实际上,在自定义Joomla模板时,index.php是相当无用的。您将需要在模板文件夹中的blocks中探索模板块。例如,要在头部添加脚本,只需编辑目录your_template/blocks中的header.php即可。

这不是正确的。与WordPress不同,Joomla的index.php文件包含完整的模板输出,除非您使用将索引文件拆分为部分的框架。 - Robert Went

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接