为您的主题添加模块或小部件的新位置是很直接的。我们将在现有的“top-a”和“top-b”位置下面称为“top-c”。您的主题文件夹内的以下文件需要编辑:
- templateDetails.xml(Joomla)
- config.xml中
- /layouts/template.php
- /layouts/module.php
- /js/template.js
为主题XML文件添加一个新的位置
打开Joomla 的templateDetails.xml文件或WordPress 的template.xml。在这里你需要添加你的新职位(top-c),让你的CMS知道它的存在。只需复制现有位置的条目并重新命名即可,如下例所示:
<positions>
...
<position>top-a</position>
<position>top-b</position>
<position>top-c</position>
<position>bottom-a</position>
...
</positions>
定义新位置的模块布局选项
打开config.xml,找到一个已经存在的位置。例如,从“top-b”复制代码,将其粘贴到它下面并重新命名:
<field name="top-c" type="layout" default="equal" label="Top C Layout" description="Select a grid layout for this module position." />
这使您可以在管理的主题选项中定义新位置的布局。
将新位置添加到主模板文件
打开layouts / template.php,你会看到主题的基本标记。这是定义在新位置上发布的模块应该在哪里呈现的文件。像以前一样,您应该从现有位置复制代码并将其放在需要的位置,然后重新命名。在我的例子中,我使用了“top-b”代码,将其粘贴到下面并进行了自定义:
<?php if ($this['modules']->count('top-c')) : ?>
<section id="top-c">
<div class="grid-block">
<?php echo $this['modules']->render('top-c', array('layout'=>$this['config']->get('top-c'))); ?>
</div>
</section>
<?php endif; ?>
注意:你可以用你自己的风格重写template.php。只需将/layouts/template.php复制到/styles/YOUR_STYLE/layouts/template.php。
定义新位置的默认模块样式
打开layouts / module.php并在这里设置一个默认的模块样式,为你的新位置添加代码。在我的例子中,我想让样式“line”成为top-c的默认样式:
// set default module types
if ($style == '') {
if ($module->position == 'top-a') $style = 'line';
if ($module->position == 'top-b') $style = 'line';
if ($module->position == 'top-c') $style = 'line';
...
}
注意:如果你创建了一个主题风格,并且想添加一些新的模块风格,你可以覆盖默认的module.php文件。只需将/layouts/module.php复制到/styles/YOUR_STYLE/layouts/module.php。
匹配模块高度
要匹配同一行中模块的高度,请打开js / template.js。在matchHeight()函数中查找已经存在的条目。在我的例子中,我复制了#top-b的条目,并将其重命名为#top-c。
$('#top-c .grid-h').matchHeight('.deepest');
更新你的CSS
如果您想对新添加的模块位置或在该位置发布的模块进行样式化,则需要更新/css/layouts.css文件。在我们的例子中,将所有应用于top-a和bottom-a的CSS添加到我们的新位置是有意义的。
更新你的风格(JOOMLA)
为了使您的新模块位置与您选择的样式一起工作,您必须在主题的模板管理器中单击“保存”。这会从你的“config.xml”中生成一个新的“config”文件。