Для преобразования синтаксиса PHP в синтаксис Smarty

У меня есть синтаксис 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)?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Есть два способа сделать это. Сначала просто назначьте этот выбранный 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

Другие вопросы по теме