簡體   English   中英

TYPO3 Fluid現在將日期添加到URL

[英]TYPO3 Fluid add date now to URL

我知道如何在PHP中將數據添加到URL,但是現在這是帶有Fluid的TYPO3。 我現在需要將日期添加到如下網址

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

但是如何在TYPO3 + FLUID中做到這一點?

添加/編輯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()}">

然后,我在form.html文件的模板/ www / typo3conf / ext / powermail / Resources / Private / Templates / Forms中添加了這樣的名稱空間。

{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()}

您可以使用f:format.date viewhelper以給定的格式輸出日期,如下所示:

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

如果參數date為空(不為null),則f:format.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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM