У меня есть синтаксис PPH из файла Prestashop:
<select name = "deadline" id = "deadline" onclick = "dead_line_all()">
<option value = "235959" selected = "selected">'.$this->l('NONE').'</option>';
for($hours=0; $hours<24; $hours++)
for($mins=0; $mins<60; $mins+=30)
$this->_html .= '
<option value = "'.str_pad($hours,2,'0',STR_PAD_LEFT).''.str_pad($mins,2,'0',STR_PAD_LEFT).'00"> '.str_pad($hours,2,'0',STR_PAD_LEFT).':'.str_pad($mins,2,'0',STR_PAD_LEFT).'
</option>';
$this->_html .= ' </select>
Как изменить его на синтаксис Smarty в шаблоне Smarty (xxx.tpl)?






Есть два способа сделать это. Сначала просто назначьте этот выбранный html переменной smarty в файле php и распечатайте в xxx.tpl. php-файл
<?php
$html .= '<select name = "deadline" id = "deadline"
onclick = "dead_line_all()">';'
$html .= '<option value = "235959" selected = "selected">--Select--</option>';
for($hours=0; $hours<24; $hours++){
for($mins=0; $mins<60; $mins+=30){
$html .= '<option value = "'.str_pad($hours,2,'0',STR_PAD_LEFT).''.str_pad($mins,2,'0',STR_PAD_LEFT).'00">'.str_pad($hours,2,'0',STR_PAD_LEFT).':'.str_pad($mins,2,'0',STR_PAD_LEFT).'</option>';
}
}
$html .= '</select>';
$smarty->assign('select',$html);
?>
Файл шаблона xxx.tpl
{$select}
это напечатает выбранный html в файле шаблона.
2.Вторая опция в коде в файле шаблона xxx.tpl.
<select name = "deadline" id = "deadline" onclick = "dead_line_all()">
<option value = "235959" selected = "selected">Select</option>
{for $hour=0 to 24}
<option value = "{$hour|str_pad:2:0:STR_PAD_LEFT}:30">{$hour|str_pad:2:0:STR_PAD_LEFT}:30</option>
<option value = "{$hour|str_pad:2:0:STR_PAD_LEFT}:60">{$hour|str_pad:2:0:STR_PAD_LEFT}:60</option>
{/for}
</select>
также вам необходимо создать новый плагин-модификатор Smarty для функции str_pad.
<?php
function smarty_modifier_str_pad($string,$length,$pad_string,$pad_type) {
return str_pad($string,$length,$pad_string,$pad_type);
}
$smarty->registerPlugin(Smarty\Smarty::PLUGIN_MODIFIER, 'str_pad', 'smarty_modifier_str_pad');
?>
для получения дополнительной информации о добавлении модификаторов https://smarty-php.github.io/smarty/stable/api/extending/modifiers/
второй пример для последней библиотеки Smarty
Вы исследовали или пробовали что-нибудь . Где ты застрял? Есть ли какая-то конкретная причина, по которой нам не следует просто указать вам на умную документацию о циклах? В решении какой актуальной проблемы вам нужна наша помощь? См. также Как спросить