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



我遇到的问题是页面上的各种翻译使用 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来实现?

澄清一下:

像"example.com?lang=us"这样的网址正在服务器上发出请求。请求Input::get('lang') = 'us'

像"example.com/:lang?/"这样的 url 正在使用 Laravel 路由系统来访问 slug 的参数。这看起来像"example.com/us/page",请求看起来像this.param('lang') = 'us'

这两种方法都适用于您的系统,具体取决于您设置语言的方式。

我的建议是设计您的网站时考虑到动态值并使用这样的集合。

CMS页面中的PHP代码:

function onStart() {
$language = Input::get('lang'); //check for a language request
$languages = [ //build language array
'dk' => [
'place' => 'European',
'selected' => false,
'value' => 'eu'
],
'fr-ca' => [
'place' => 'North America',
'selected' => false,
'value' => 'na'
]
];
if (isset($languages[$language])) {
$languages[$language]['selected'] = true; //see if the language request is in the array then set selected to true
}
$this['languages'] = $languages; //return languages to the page
}

在页面的标记侧,您可以执行此操作- 使用twig,您只需设置一个for循环设置变量并检查是否选择了该语言。

<form id="contact-form" method="post" class="form-contact" enctype="multipart/form-data">
<div id="form-platform" class="form-platform--radio-group">
{% for language in languages %}
<label class="radio--button" for="option-{{ language.value}}">
<input class="form__input" type="radio" id="option-{{ language.value }}" name="platform"
value="{{ language.value | upper }}" {% if language.selected %}checked{% endif %} >
<i></i>
<span class="radio--label">{{ language.place }}</span>
</label>
{% endfor %}
</div>                            
</form>

最新更新