- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要修改 joomla3 搜索模块来搜索 5 个不同的搜索类别,因此我更改了模块 form.xml 文件并添加了五个单选按钮,我想要的是从数据库中为该单选按钮分配特定的类别 ID,
这里是form.xml
<field name="type" type="radio"
label="COM_BANNERS_FIELD_TYPE_LABEL" description="COM_BANNERS_FIELD_TYPE_DESC"
default="0" class="inputbox"
>
<option value="0">Classifields</option>
<option value="1">Company</option>
<option value="2">Government</option>
<option value="3">Religious</option>
<option value="4">Personal Names</option>
</field>
这是 view/tmpl/default.php
<form action="<?php echo JRoute::_(JomdirectoryHelperRoute::getCategoryRoute('')); ?>" method="post" name="jomdirectoryFormSearch" id="jomdirectoryFormSearch">
<div class="control-group">
<div class="controls1">
<?= $form->getInput('type') ?>
</div>
</div>
最佳答案
您拥有的default.php不是来自Joomla的搜索模块。它看起来来自一个叫做 JomDirectory 的东西。 Joomla 的搜索模块如下所示:
https://github.com/joomla/joomla-cms/blob/staging/modules/mod_search/tmpl/default.php
要分配类别 ID 值并获取表单的它们,您实际上需要将类别 ID 放入选项值中。像这样:
<field name="cat_id" type="radio"
label="COM_BANNERS_FIELD_TYPE_LABEL" description="COM_BANNERS_FIELD_TYPE_DESC"
default="0" class="inputbox"
>
<option value="58">Classifields</option> <!-- 58 is the category id -->
<option value="13">Company</option> <!-- 13 is the cat id -->
<option value="25">Government</option> <!-- etc -->
<option value="39">Religious</option>
<option value="47">Personal Names</option>
</field>
现在要将该类别发送到 com_search(或您实际使用的任何组件),您必须从表单帖子中检索类别 ID。在 joomla 中,您将使用 JInput:
<?php
$input = JFactory::getApplication()->getInput();
$catid = $input->getInt('cat_id');
?>
您需要将 $cat_id 变量插入到搜索查询中才能返回这些结果。
一些重要的注意事项:
1) 不要修改核心 Joomla。您可以使用模板覆盖来完成表单工作。也就是说,要做你想做的事需要一些插件来修改 Joomla 的搜索查询(这样你就不会修改核心代码)
2) 有一些扩展可以通过您只需安装和使用的插件来正确执行此操作:http://extensions.joomla.org/extensions/search-a-indexing/site-search/12819
关于php - 如何为 joomla 3 自定义字段传递类别 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21677525/
我是一名优秀的程序员,十分优秀!