当前位置: 首页 > 知识库问答 >
问题:

键入3流体立即将日期添加到URL

唐睿
2023-03-14

我知道如何在PHP中将数据添加到URL,但现在这是使用Fluid的TYPO3。我现在需要在URL中添加日期,如

http://domain.dk/form.html?tx_powermail_pi1[field][30]=DATENOW

但我如何在TYPO3流体中实现这一点?

添加/编辑2014年5月19日。。

我试图使用时间作为预订ID。

好的,我有文件夹/www/typo3conf/ext/powermail/Classes/ViewHelpers

在该文件夹中,我有一个名为BookIdViewHelper的文件。php使用此代码

     <?php
#Booking ID
class BookIdViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {

    /**
     * Renders time()
     *
     * @return int The current timestamp
     */
    public function render() {
        return time();
    }
}

然后我就有了

<a href="http://www.domain.dk/?id=47&tx_powermail_pi1[field][30]={urs:time()}">

然后我在表单中的template/www/typo3conf/ext/powermail/Resources/Private/Templates/Forms中输入。html文件我添加了如下名称空间。

{namespace vh=Tx_Powermail_ViewHelpers}
{namespace urs=Tx_Powermail_ViewHelpers}
<f:layout name="Default" />

Render Powermail Form
{forms}             All Forms with their Pages and their Fields


<f:section name="main">

    <f:flashMessages class="powermail_message powermail_message_error" />

    <f:if condition="{forms}">
        <f:then>
            <f:for each="{forms}" as="form">
                <f:form
                        action="{action}"
                        controller="Forms"
                        enctype="multipart/form-data"
                        class="powermail_form powermail_form_{form.uid} {form.css} {vh:Misc.MorestepClass(activate: '{settings.main.moresteps}', class: 'powermail_morestep')}">
                    <h3>{form.title} - {urs.time()}</h3>
                    <f:render partial="FormError" arguments="{error}" />

                    <f:for each="{form.pages}" as="page">
                        <fieldset class="powermail_fieldset powermail_fieldset_{page.uid} {page.css}">
                            <legend class="powermail_legend">{page.title}</legend>
                            <f:for each="{page.fields}" as="field">
                                <f:render partial="Forms/{vh:String.Upper(string: '{field.type}')}" arguments="{field: field}" />
                            </f:for>
                        </fieldset>
                    </f:for>

                    <f:form.hidden name="form" value="{form.uid}" />
                    <f:render partial="HoneyPod" arguments="{form: form}" />
                </f:form>
            </f:for>
        </f:then>
        <f:else>
            <f:translate key="error_no_form" />
        </f:else>
    </f:if>

</f:section>

但是它不起作用。。我只收到文本{urs:time()}

共有1个答案

韩乐湛
2023-03-14

您可以使用f:格式。date viewhelper以给定格式输出日期,如下所示:

<a href="http://domain.dk/form.html?tx_powermail_pi1[field][30]={f:format.date(date: '', format: 'd.m.Y')}">Link</a>

f:格式。如果参数日期为空(非空),date viewhelper将输出当前日期。

如果您的字段(在本例中是powermail字段)需要时间戳,我建议创建自己的viewhelper,它输出当前时间戳,如下所示。

class TimeViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {

    /**
     * Renders time()
     *
     * @return int The current timestamp
     */
    public function render() {
        return time();
    }

}

用法会像:

<a href="http://domain.dk/form.html?tx_powermail_pi1[field][30]={yournamespace:time()}">Link</a>
 类似资料:
  • 我有几个带有日期的表,我正试图加入这些表来制作一个大表,其中数据按日期分组。 我现在通过左键联接来完成这个任务,从我需要联接的表中生成子选择(其中许多是同一个表,具有不同的查询位置,涉及SUM和COUNT,所以我认为我必须使用子选择)。我遇到的问题是,如果第一个表中没有一个日期,那么即使后续表中有一些行与该日期联接,它也不会显示在表中。我是根据DATE(datetime_column)联接的。 所

  • 我使用React和JSX返回一个输入字段类型"datetime本地"。我希望最小值是我们今天的日期和当前时间。但是我不知道怎么写。 我尝试的是: 当我选择日期时间时,它不起作用,也没有设置最小值。

  • 问题内容: 我正在寻找将X个月添加到JavaScript日期的最简单,最干净的方法。 我宁愿不处理这一年的过渡,也不必编写自己的函数。 有内置的东西可以做到这一点吗? 问题答案: 以下函数在JavaScript中将日期添加月份源。它考虑了年度结转和不同的月份长度: 上面的解决方案涵盖了从比目标月份更长的天数中移动一个月的极端情况。例如。 到2020年2月29日增加十二个月(应该是2021年2月28

  • 问题内容: 我对mysql有一个奇怪的问题。 我正在尝试更改表的列,该列是主键,并且对它定义了auto_increment约束。这也是其他多个表的外键参考。我需要在父级和所有子级中都更改此列的长度。 这将删除父表上的自动增量。添加约束的最佳方法是什么? 以下似乎失败了。 有没有更好的方法来实现这一目标? 编辑:显示创建为(更改后): 变更之前 谢谢! 问题答案: 您无需在MODIFY语句中指定:

  • 为什么我在今天的基础上加上30天就得到了今天的30天,而当我加上20天就得到了今天的30天?? 这是一个样本 “这是控制台”

  • 我一直在尝试创建一个代码来模拟学校的队列(目前还没有),并尝试创建多个图片框并将它们存储在一个列表中。由于某种原因,他们没有出现。。。有人有什么建议吗?