Joomla 1.6从1.5升级

时间:2011-05-05 14:41:19

标签: php joomla joomla1.6

http://docs.joomla.org/Adding_a_multiple_item_select_list_parameter_type

有关向模块添加自定义参数类型的方法的文档,如果查看底部回合,则会出现以下行: 将参数值保存到数据库

有人可以告诉我,如果有任何关于如何在Joomla 1.6中执行此操作的文档,因为我无法在任何地方找到它吗?

我完全理解这是如何工作的,您需要将自定义选项(例如:从多选输入框中选择列表)绑定到父级,以便它能够将选择保存到数据库。

提前谢谢。

编辑添加了代码

protected function getInput()
    {

        $options = array();
        $attr = '';

        $attr .= ' multiple="multiple"';
        $attr .= ' style="width:220px;height:160px;"';

        // Get the database instance
        $db = JFactory::getDbo();
        // Build the select query
        $query = 'SELECT params FROM jos_modules'
            . ' WHERE module="mod_pmailer_subscription"';
        $db->setQuery($query);
        $params = $db->loadObjectList();

        // Decode the options to get thje api key and url
        $options = json_decode($params[0]->params, true);

        // Create a new API utility class
        $api = new PMailerSubscriptionApiV1_0(
            $options['enterprise_url'],
            $options['pmailer_api_key']
        );

        // Get the lists needed for subscription
        $response = $api->getLists();

        // Make a default entry for the dropdown
        $lists = array('0' => 'Please select a list');

        // Builds the options for the dropdown
        foreach ( $response['data'] as $list )
        {
            $lists[$list['list_id']]['id']    = $list['list_id'];
            $lists[$list['list_id']]['title'] = $list['list_name'];
        }

        // The dropdown output
        return JHTML::_(
            'select.genericlist',
            $lists,
            'jform[params][list_id]',
            trim($attr),
            'id',
            'title',
            $options['list_id']
        );

    }

1 个答案:

答案 0 :(得分:3)

Checkout this,如何将JParams转换为JForm

编辑:

我检查了论坛,发现你正在使用

// Builds the options for the dropdown
foreach ( $response['data'] as $list )
{
   $lists[$list['list_id']] = $list['list_name'];
}

但是在JHTML中,你传递了文本和值字段的id和title,

使用

    // Builds the options for the dropdown
    foreach ( $response['data'] as $list )
    {
        $lists[$list['list_id']]['id']    = $list['list_id'];
        $lists[$list['list_id']]['title'] = $list['list_name'];
    }