Я использую codeigniter с smarty.
У меня есть умный класс: https://hastebin.com/milulomido.xml
Он выполняет свою работу, но не расширяет смарт-тег {$my_tag}
до его действительного значения , если этот тег хранится в базе данных . В этом случае он просто напечатает {$my_tag}
буквально.
Пример того, как материал берется из БД:
/**
* Get the selected page from the database
* @param String $page
* @return Array
*/
public function getPage($page)
{
$this->db->select('*')->from('pages')->where('identifier', $page);
$query = $this->db->get();
if($query->num_rows() > 0)
{
$result = $query->result_array();
return $result[0];
}
return null;
}
Я думаю, что мне нужно отредактировать этот класс Smarty (первая ссылка), чтобы исправить мою проблему, но я не знаю как. У меня есть некоторые идеи, но они звучат хакерски (например, проанализировать все в $data
и извлечь найденные теги smarty, затем назначить их в качестве переменных Smarty или получить второй раз содержимое, но это ужасно и приводит к ошибкам).