如何告诉页面在 Joomla 中使用不同的 PHP 文件
所以基本上我有一个模板,用于除了一个页面之外的每个页面 - 画廊页面 - 我希望它看起来不同,因此我必须从 .php 文件中取出一些代码,但显然我不这样做不想将其从index.php 中取出,因为这会影响所有页面。
我的问题基本上是如何告诉图库页面(菜单项)使用这个不同的 .php 文件 - gallery.php - 就像在 WordPress 中如何为页面提供不同的 .php 文件一样。
我知道您应该使用模板管理器将菜单项“分配”到不同的模板,但它如何知道为单独的模板引用哪个文件。您是否必须在服务器上创建另一个包含不同index.php 的文件夹?
So basically I have a template that I use for every single page besides one page - The gallery page - I want it to look a different way therefore I have to take some of the code out of the .php file, but obviously I don't want to take it out of the index.php because that will affect all the pages then.
My question is basically how do I tell the Gallery page (Menu item) to use this different .php file - gallery.php - Much like how in WordPress you can have different .php files for pages.
I know that you are supposed to use the template manager to "Assign" menu items to different templates but how does it know what file to reference for the separate template. Do you have to create another folder on your server that would contain a different index.php?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
无需创建另一个文件夹或index.php
您所需要做的就是为图库页面的菜单项分配不同的模板。
转到 Joomla 管理,从管理的顶部菜单中选择
菜单
,选择您的图库所在的菜单,然后执行以下操作:菜单管理器 ->编辑菜单项->模板样式
(左下角下拉菜单)=您可以选择要用于此菜单项的模板。希望这对您有帮助!
No need to create another folder or index.php
All you need is to assign a different template for the menu item for your Gallery page.
Go to Joomla administration, select
Menus
from the top menu in admin, select the menu where is your gallery based and do the following:Menu manager -> Edit menu item -> Template style
(bottom left dropdown) = you can choose which template you want to use for this menu item.Hope this helps you!
首先,了解 Joomla 的工作原理很重要。 Joomla 中只有一个文件。该框架使用当前模板中的index.php 来创建所请求的页面。该文件基本上定义了相对于组件将要显示的内容可以放置模块的位置。 Joomla 知道如何基于 URL 的查询字符串(或者如果您打开了 SEF URL,则发布变量)构建页面。 URL 将告诉 Joomla 哪个组件将提供内容以及内容的 itemID。
组件是一个页面与另一个页面的代码不同的地方。例如,照片库组件将具有显示图像的代码,而表单组件将具有显示联系表单的代码。 Index.php 永远不会改变,它只是从组件加载代码。
itemID 是方程式的重要部分,因为它是您可以将不同模块分配给模块管理器中的特定页面的方式。当您为图库创建菜单项时,它会被分配一个 itemID,然后您可以使用该 itemID 为该页面分配各种模块或模板。当您创建一个模块(如登录模块或菜单模块)时,您将其放置在一个位置,然后将其分配给所有页面、选择的页面、除选择的页面之外的所有页面。
一般来说,除非页面存在结构差异,否则我不会使用多个模板。您可以仅使用页面类后缀为每个菜单项分配唯一的 ID,以便您可以使用唯一的 CSS 控制每个页面。
First it is important to understand how Joomla works. There is only one file in Joomla ever. The framework uses index.php from the current template to create the page being requested. That file basically defines where you can put modules relative to the content that the component is going to display. Joomla knows how to build a page based on the query string of the URL (or variables posted if you have SEF URLs turned on). The URL will tell Joomla what component will be supplying the content, and the itemID of the content.
The component is where the code is different from one page to another. For example, a photo gallery component will have the code to display images while a form component will have the code to display a contact form. Index.php never changes, it just loads the code from the component.
The itemID is the important part of the equation because it is how you can assign different modules to a particular page in the module manager. When you create a menu item for Gallery, it gets assigned a itemID that you can then use to assign various modules or templates to that page. When you create a module (like a login module or menu module) you put it in a position, then assign it to all pages, a selection of pages, of all but a selection of pages.
Generally I don't use multiple templates unless there is a structural difference in the pages. You can just use the page class suffix to assign unique IDs to each menu item so you can then control each page with unique CSS.