我正在编写一个与插件配合使用的模块,以便为网站创建上下文背景。
前提是:如果用户在主页上,则背景图像是插件参数中指定的默认值。
如果用户位于类别列表页面上,则背景图像是(自定义)组件参数中指定的默认值。
如果用户在文章列表页面上,则背景图像是(自定义)类别参数中指定的默认值。
如果用户在文章页面上,则背景图像是(自定义)文章参数中指定的默认值。
为了让这更有趣,我编写了自己的组件来显示配置文件而不是文章。它们以完全相同的方式工作,但可能不包含Content组件所做的所有编码。我编写自定义组件的原因超出了这个问题的范围。
该插件创建并添加基本标记到页面,这在整个站点中都可以正常工作。主页完全符合我的要求。
该模块应该添加样式表等。到文档的标题,它没关系。问题是该模块应该首先确定上下文,然后从给定的上下文加载参数。这是我的问题:我找不到代码来确定上下文并按照上述规则读取参数。
我把它作为一个插件尝试(没有模块的帮助),但作为内容插件,它在主页上不起作用,并且作为系统插件,它无法访问内容参数。我还考虑过两个插件一起工作,但这似乎是不好的做法。也许是一个新的插件既不是内容也不是系统,但可以访问这两个上下文?
附加信息:
我编写了许多代表不同实体组的组件。每个组件都有自己独特的参数,但在所有组件中也有一些常见的参数。每个组件都具有与核心Joomla“横幅”和“联系”组件相同的“实例化”功能。常见参数的一个示例是'gallery'参数;每个组件都有一个'gallery'参数,每个'instance'都可以选择拥有自己的值。 “gallery”参数包含文件夹的文件夹URL,其中包含与特定组件实例相关的图像。
如何将这一切结合在一起的一个例子:
我有一个名为'driver'的组件,它将作为容器 - 你猜对了 - 驱动程序。在组件管理菜单中,我可以添加驱动程序,指定其名称,年龄等。我可以为驱动程序添加面部照片和图库URL。
当站点端的用户加载驱动程序页面时,我希望代码加载来自gallery文件夹的所有图像,以及要在后台轮换的图像。我希望能够随时添加/删除/替换图像,而无需参考驱动程序的选项页面。只是为了使它变得更加复杂,当每个背景图像加载时,从图像中读取EXIF元数据,并在页面底部的前景中显示缩略图。
现在,这一切都完美地在网站的根目录中运行,并且大部分工作在整个过程中。倒下的部分是从模块中检索来自驱动程序“实例”的变量。当然,我可以编写一些整洁的SQL和db调用,但是肯定有一种方法可以让模块检索组件,类别和文章参数吗?
答案 0 :(得分:0)
您是否尝试过moduleclass_sfx? 定义一个css类,如:
.myModule {
background-image: url('myimage.png');
}
.myComponent {
background-image: url('mycompimage.png');
}
.myArticle {
background-image: url('myarticleimage.png');
}
然后在模块class_sfx的每个模块/组件参数选项上输入带尾随空格的所需类(例如:“myComponent”(不带引号))。
另一种方法可能是定义组件/模块参数并调用:
<body style="background-image: url('/path_to_image_folder/<php echo $params->get('param_name') ?>');">
或者可能没有理解你的问题,但希望它有所帮助。