Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何告诉页面在Joomla中使用不同的PHP文件_Php_Templates_Joomla - Fatal编程技术网

如何告诉页面在Joomla中使用不同的PHP文件

如何告诉页面在Joomla中使用不同的PHP文件,php,templates,joomla,Php,Templates,Joomla,所以基本上我有一个模板,除了一个页面-画廊页面-我想让它看起来不同,因此我必须从.php文件中取出一些代码,但显然我不想从index.php中取出它,因为那样会影响所有页面 我的问题基本上是如何告诉Gallery页面(菜单项)使用这个不同的.php文件-Gallery.php-就像在WordPress中可以为页面使用不同的.php文件一样 我知道您应该使用模板管理器将菜单项“分配”到不同的模板,但它如何知道要为单独的模板引用哪个文件。是否必须在服务器上创建另一个包含不同index.php的文件夹

所以基本上我有一个模板,除了一个页面-画廊页面-我想让它看起来不同,因此我必须从.php文件中取出一些代码,但显然我不想从index.php中取出它,因为那样会影响所有页面

我的问题基本上是如何告诉Gallery页面(菜单项)使用这个不同的.php文件-Gallery.php-就像在WordPress中可以为页面使用不同的.php文件一样


我知道您应该使用模板管理器将菜单项“分配”到不同的模板,但它如何知道要为单独的模板引用哪个文件。是否必须在服务器上创建另一个包含不同index.php的文件夹

无需创建另一个文件夹或index.php

您只需为Gallery页面的菜单项指定不同的模板即可

转到Joomla administration,从admin的顶部菜单中选择
菜单
,选择gallery所在的菜单,然后执行以下操作:

菜单管理器->编辑菜单项->模板样式(左下角下拉菜单)=您可以选择要用于此菜单项的模板


希望这对你有帮助

首先,了解Joomla的工作原理很重要。Joomla只有一个文件。框架使用当前模板中的index.php创建被请求的页面。该文件基本上定义了相对于组件将要显示的内容放置模块的位置。Joomla知道如何基于URL的查询字符串(如果打开了SEF URL,则可以发布变量)构建页面。URL将告诉Joomla提供内容的组件以及内容的itemID

组件是代码从一页到另一页不同的地方。例如,照片库组件将具有显示图像的代码,而表单组件将具有显示联系人表单的代码。php从不更改,它只是从组件加载代码

itemID是等式的重要部分,因为它是如何将不同的模块分配给模块管理器中的特定页面的。当您为Gallery创建菜单项时,它会被分配一个itemID,然后您可以使用该ID为该页面分配各种模块或模板。当您创建一个模块(如登录模块或菜单模块)时,您将其放置在一个位置,然后将其分配给所有页面、一组页面,以及除一组页面外的所有页面


通常我不会使用多个模板,除非页面中存在结构差异。您可以使用页面类后缀为每个菜单项分配唯一的ID,这样您就可以使用唯一的CSS控制每个页面。

感谢您的回复,但是我仍然不清楚它如何知道如何使用包含不同代码的php文件。例如,如果我将“我的库”菜单项设置为“模板-库”。是什么使它与我的默认模板不同?因为我所做的更改与php文件中的代码有关,所以我必须编辑index.php,但如果我这样做,那么它会对每个页面都进行更改,不是吗?好的,如果我理解正确,您想复制当前模板,对index.php进行一些小的更改,以便将其用于您的图库吗?如果这是您想要的,那么只需在模板管理器中复制它,编辑index.php,然后分配它。为什么你需要知道joomla是如何转换的?我真的认为你不必走那么深:)我真的不需要知道它是如何转换的。。我只需要知道,当index.php连接到所有页面时,如何更改index.php将只更改其中一个页面。如果我在模板管理器中复制模板,它不会复制实际的模板,应该是吗?它所做的只是给了我一个新的“样式”,但它仍然使用与我的原始默认样式完全相同的文件夹,因此如果我编辑它,它将使用完全相同的index.php。。编辑每一页。你是对的!它只会创造一种新的风格。。。我知道的唯一方法是编辑另一个已安装的模板(删除所有内容,复制您试图编辑的模板的内容),然后分配给库…是的,这就是我害怕的。。看起来他们真的需要一个更好的方法来处理这件事。。我希望我能告诉它在这一页上使用gallery.php而不是index.php,这会像WordPress那样解决所有问题。我相信我看到了一种可能的方法,就是在index.php中包含你想使用if语句删除的代码,如果它在该页面上,那么就删除该代码,但我不认为你可以在库中这样做,可能是在articlepage或FrontPage Joomla的什么版本上!你在用什么?(不要担心,只是在评论中看到了对风格的引用)谢谢你的回复Brent。我单独制作的页面是一种结构差异,不是由模块设置的,因此我认为我必须使用单独的模板。这没什么大不了的,我只是想确保我做的是正确的方式,而不仅仅是解决问题。你也应该看看可折叠模块的位置。我们构建复杂的网站,从一个页面到另一个页面的布局非常不同,很少需要使用多个模板。通过使用内置的菜单分配和页面类后缀,您可以控制很多内容。即使是结构上看起来不同的布局——比如一个页面上的左栏和右栏,然后是下一个页面上的两个右栏——都可以通过更改CSS在同一个模板内完成。