php - 如何为 joomla 3 自定义字段传递类别 ID

标签 php mysql joomla module joomla3.0

我需要修改 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/

相关文章:

php - 基于 XMPP 协议(protocol)的 Google Cloud Messaging(使用 PHP 和 XMPPHP 的服务器)。它是如何工作的?

php - 从其他页面获取内容并使用 URL 参数

MySQL过程循环错误

php - echo jQuery 函数中的 php 变量

php - 如何将 "ТеÑ"(俄语单词)转换为可读的内容?

php - "Read More"按钮在 PHP、MySQL CMS 中停止工作

php - 安全高效地存储/提供网站图像

php - 将注释放在可创建语句的中间

html - 努力摆脱模板上的黑框

php - 具有 Postgres 数据库连接的 Joomla 3.4 组件