为日历字段分配值

时间:2013-03-22 08:31:57

标签: php joomla joomla3.0

我正在使用joomla 3.0。我只是面对简单应用程序的问题。我有一个视图。所以我在模型文件夹下设计了一个xml文件。在view.php中修改了。应该是一个calandar field.I需要为该字段分配当前日期。我怎么能通过php做到这一点? form.xml:

<field name="expired" type="calendar" label="Date"
description="Date" format="%Y-%m-%d %H:%M:%S"
required="true" class="readonly" />

view.html:

$form = $this->get('Form');
$this->form = $form;

如default.php:

<div class="control-group">
<div class="control-label"><?php echo ''Current Date; ?></div>
<div class="controls"><?php echo $this->form->getInput('created'); ?></div>
</div>

如何应用此字段的当前日期?

3 个答案:

答案 0 :(得分:1)

在你的模型中(它应该扩展JModelForm),你需要覆盖方法loadFormData(),类似于(在需要的地方适应):

    // Method to get the data that should be injected in the form.
protected function loadFormData() 
{
    // Check the session for previously entered form data.
    $data = JFactory::getApplication()->getUserState('com_YOURCOMPONENT.edit.YOURVIEW.data', array());
    if (empty($data)) 
    {
        $data = $this->getItem();
    }
    return $data;
}

答案 1 :(得分:1)

您可以在view.html.php文件中使用$this->form->setValue('created', '', date('Y-m-d H:i:s');。 Doc在这里:http://docs.joomla.org/JForm::setValue/11.1

要获取当前日期,您还可以使用JHtml::Datehttp://docs.joomla.org/JHtml::date/11.1)代替date()

答案 2 :(得分:1)

尝试将xml中的字段更改为以下内容:

<field name="expired" 
    type="calendar" 
    label="Date"
    description="Date" 
    format="%Y-%m-%d %H:%M:%S"
    required="true"
    filter="user_utc"
    default="now" 
    class="readonly" />

添加默认“now”将加载当前日期。额外的过滤器会将日期设置为用户时间。