是否可以在If语句的OctoberCMS中使用URL参数?

问题描述 投票:0回答:1

我遇到的问题是页面上的各种翻译使用URL参数来动态填写表单的内容。表单上有单选按钮,我想根据URL参数在默认情况下检查其中一个。

例如,如果URL显示?lang=dk,我希望选中欧洲单选按钮,但是如果显示?lang=fr-ca,则希望它选中北美:

<form id="contact-form" method="post" class="form-contact" enctype="multipart/form-data">
  <div id="form-platform" class="form-platform--radio-group">
    <label class="radio--button" for="option-na">
        <input class="form__input" type="radio" id="option-na" name="platform"
               value="NA">
        <i></i>
        <span class="radio--label">North America</span>
    </label>

    <label class="radio--button" for="option-eu">
        <input class="form__input" type="radio" id="option-eu" name="platform"
               value="EU">
        <i></i>
        <span class="radio--label">Europe</span>
    </label>
</div>                            
</form>

到目前为止,我已经尝试使用this.param,但到目前为止仍未成功。

我是使用Javascript来实现所需功能的唯一选择,还是使用OctoberCMS可以做到这一点?

javascript html octobercms
1个回答
0
投票

使用{{ this.param.lang }}是在OctoberCMS中获取URL参数的正确方法,但是将?lang=dk放在这样的URL中将不起作用。

相反,在OctoberCMS后端,您需要将页面的URL设置为:lang放在希望URL参数放置的位置。

因此,对于首页,URL不是/,而是/:lang/:lang?。 '?'是使其成为可选。

完成此操作后,如果您通过yoursite.com/dk访问站点,则{{ this.param.lang }}的值为dk

然后您可以通过以下步骤完成您要使用表单的操作:

<form id="contact-form" method="post" class="form-contact" enctype="multipart/form-data">
    <div id="form-platform" class="form-platform--radio-group">
        <label class="radio--button" for="option-na">
            <input class="form__input" type="radio" id="option-na" name="platform"
                value="NA" {{ this.param.lang == 'fr-ca' : 'checked' }}>
            <i></i>
            <span class="radio--label">North America</span>
        </label>

        <label class="radio--button" for="option-eu">
            <input class="form__input" type="radio" id="option-eu" name="platform"
                value="EU" {{ this.param.lang == 'dk' : 'checked' }}>
            <i></i>
            <span class="radio--label">Europe</span>
        </label>
    </div>                            
</form>

[如果您拥有多语言网站,那么您可能还希望查看OctoberCMS的出色Rainlab Translate插件。使用您的语言设置此插件后,无论URL中包含什么,您都可以使用任何模板中的{{ activeLocale }}变量轻松访问当前语言。

© www.soinside.com 2019 - 2024. All rights reserved.