Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在joomla中创建注册表中的选择框_Php_Joomla_Joomla3.0 - Fatal编程技术网

Php 如何在joomla中创建注册表中的选择框

Php 如何在joomla中创建注册表中的选择框,php,joomla,joomla3.0,Php,Joomla,Joomla3.0,如何在joomla的注册表中创建选择框 我尝试使用dynamic在我的注册表中添加生日 从1950年到当前年份的选项值。如何使用循环或动态代码添加年份 这是我的密码 <field name="joinyear" type="list" description="COM_USERS_REGISTER_JOINYEAR_LABEL" filter="string" label="COM_USERS_REGISTER_JOINYEAR_DESC"

如何在joomla的注册表中创建选择框

我尝试使用dynamic在我的注册表中添加生日

从1950年到当前年份的选项值。如何使用循环或动态代码添加年份

这是我的密码

<field name="joinyear" type="list"
        description="COM_USERS_REGISTER_JOINYEAR_LABEL"
        filter="string"
        label="COM_USERS_REGISTER_JOINYEAR_DESC"
        message="COM_USERS_REGISTER_JOINYEAR_DESC"
        required="true">
    <option value="2013">2013</option>
    <option value="2012">2012</option>
    <option value="2011">2011</option>
    .
    .
    .
    .
    .
    <option value="1950">1950</option>
</field>

2013
2012
2011
.
.
.
.
.
1950

实际上,我建议您创建自己的列表类型: 创建一个目录/models/fields/year.php,它将扩展/libraries/joomla/form/fields/list.php中定义的JFormFieldList类

并在此处添加以下代码:

<?php
defined('JPATH_PLATFORM') or die;

JFormHelper::loadFieldClass('list');

class JFormFieldYear extends JFormFieldList
{
    protected $type = 'Year';

    protected function getOptions()
    {
        $options = array();         
        $yearNow = date('Y');

        for ($i = 1950; $i <= $yearNow; $i++)
        {
            $tmp = JHtml::_('select.option', $i, $i, 'value', 'text', false);
            $options[] = $tmp;
        }

        reset($options);

        return $options;
    }
}

您好,正如您在下面所看到的,我写了一篇关于如何扩展standart joomla表单字段类型的简短教程,如果有任何问题,请随时提问。@di3sel:很好的教程,但我在/models/fields/year.php中创建了新的目录和文件,并且在\components\com\u users\models\forms\registration.xml文件中更新了代码。但我只看到文本框而没有选择框确保在registration.xml中以如下内容开头:您需要在字段集声明中添加include path。
<field name="joinyear" type="year"
        description="COM_USERS_REGISTER_JOINYEAR_LABEL"
        filter="string"
        label="COM_USERS_REGISTER_JOINYEAR_DESC"
        message="COM_USERS_REGISTER_JOINYEAR_DESC"
        required="true" />