powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / нужен простой шаблонизатор(template engine)
12 сообщений из 12, страница 1 из 1
нужен простой шаблонизатор(template engine)
    #38694782
pavlickm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в котором можно реализовать выбор случайного элемента из нескольки представленных
например
{{ random(['apple', 'orange', 'citrus']) }}
пример возможного вывода "citrus"

либо информация как самому это реализовать
...
Рейтинг: 0 / 0
нужен простой шаблонизатор(template engine)
    #38694783
pavlickm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл уточнить, язык php
...
Рейтинг: 0 / 0
нужен простой шаблонизатор(template engine)
    #38694861
angular
...
Рейтинг: 0 / 0
нужен простой шаблонизатор(template engine)
    #38694880
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavlickmв котором можно реализовать выбор случайного элемента из нескольки представленных
например
{{ random(['apple', 'orange', 'citrus']) }}
пример возможного вывода "citrus"

либо информация как самому это реализовать

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
<?php
class TemplatorLite{
	private $_aliases;
	private $_path;
	
	public static function instance($path, $aliases = array()){
		if (mb_substr($path, 0, 1)!=="/") $path = realpath($_SERVER["DOCUMENT_ROOT"]."/".$path);
		$inst = new self($aliases);
		return $inst->parse($path);
	}
	
	public function include($path, $aliases = array()){
		if (mb_substr($path, 0, 1)!=="/") $path = realpath(dirname($this->_path)."/".$path);
		$inst = new self(array_merge($this->_aliases, $aliases));
		return $inst->parse($path);
	}
	
	public function __construct($aliases = array()){
		$this->_aliases = $aliases;
	}
	
	private function parse($path){
		$this->_path = $path;
    		extract($this->_aliases);
    		ob_start();
    		include $this->_path;
    		return ob_get_clean();
	}
}



соответственно TemplateLite::instance("path.php", array("param1"=>$param1, "param2"=>$param2)); вернёт распарсенный шаблон path.php с подстановкой соответствующих алиасов. В шаблонах доступны вставки кода php как в yii. Вот пример шаблона:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<div><h1>Галерея</h1></div>
<?php foreach($galleries as $gallery): ?>
<div style="overflow: hidden;">
	<h2><?= $gallery->title ?></h2>
	<?php foreach($gallery->Images as $image): ?>
	<a class="fancybox" href="/images/gallery/<?= $image->file ?>" rel='group<?= $gallery->id ?>'>
		<img src="/images/gallery/previews/<?= $image->file ?>" width="128" height="128" style="float: left; margin-right: 20px; margin-bottom: 20px;">
	</a>
	<?php endforeach; ?>
</div>
<?php endforeach; ?>



также в шаблонах доступна функция include, которая работает как и instance, но в ней путь без предшествующего слэша считается относительно самого файла шаблона-родителя (для реализации разбиения шаблона на подшаблоны это очень удобно).

P.S. вообще по хорошему "случайный выбор" - это уже логика выбора значения для вывода, а значит находится должно в файле логики, а не шаблона. Потому хорошо бы такие вещи в шаблонах не делать.
Ну а так, в представленном шаблонизаторе это делается так:
Код: php
1.
2.
3.
//html
<?php $values = array("a", "b", "c"); echo $values[rand(0,count($values))] ?>
//html
...
Рейтинг: 0 / 0
нужен простой шаблонизатор(template engine)
    #38694893
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подняли интересную тему!!! а почему лудше учить не один язык пхп, а кучу языков шаблонизаторов???
...
Рейтинг: 0 / 0
нужен простой шаблонизатор(template engine)
    #38694895
Фотография FishHook
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453подняли интересную тему!!! а почему лудше учить не один язык пхп, а кучу языков шаблонизаторов???
Действительно. Зачем куча языков, если есть русский.
Ты же знаешь русский? Ну и пиши на нем.
...
Рейтинг: 0 / 0
нужен простой шаблонизатор(template engine)
    #38695012
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453подняли интересную тему!!! а почему лудше учить не один язык пхп, а кучу языков шаблонизаторов???

Незачем... шаблонизаторы - это просто для разделения логики и вёрстки... а уже спец синтаксис - это просто извраты "умников". Сам сначала подобное мудрил, а в итоге дошёл до того, что написал выше.
...
Рейтинг: 0 / 0
нужен простой шаблонизатор(template engine)
    #38695015
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FishHookalex564657498765453подняли интересную тему!!! а почему лудше учить не один язык пхп, а кучу языков шаблонизаторов???
Действительно. Зачем куча языков, если есть русский.
Ты же знаешь русский? Ну и пиши на нем.

Это не одно и то же. Даже совсем не похоже.
Если бы я жил в России и не знал бы о существовании других стран (например транспорт не развит и никто никуда не путешествует), как думаете, почему у нас в стране не пытаются создать какой-то новый язык и подсадить на него людей? Потому что это никому не надо... нигде этим не занимаются и никто не захочет этим заниматься. Языки развиваются сами собой (эволюционируют) и приходят к простоте и полноте выражения мыслей.

В программировании всё так же... Люди что-то придумывают... реализовывают... потом размножают на уже созданные языки... снова придумывают... снова размножают.... потом многие понимают, что что-то мешает... это уберают... чего-то не хватает - добавляют... А потом когда собирается много идей создают новый язык, который скорее всего должен быть удобнее других... Но часто это не так)))... А языки в шаблонизаторах - это вообще урезанные версии для тех, кто не может освоить основы программирования (принципы устройства циклов, условий, синтаксис нормального языка и т.д.).

А ещё чаще шаблонизаторы создают просто из-за того, что не знают, что можно сделать легче и удобнее средствами самого языка (как в php например) :)
...
Рейтинг: 0 / 0
нужен простой шаблонизатор(template engine)
    #38695027
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрalex564657498765453подняли интересную тему!!! а почему лудше учить не один язык пхп, а кучу языков шаблонизаторов???

Незачем... шаблонизаторы - это просто для разделения логики и вёрстки... а уже спец синтаксис - это просто извраты "умников". Сам сначала подобное мудрил, а в итоге дошёл до того, что написал выше.

PHP - сам по себе шаблонизатор.
...
Рейтинг: 0 / 0
нужен простой шаблонизатор(template engine)
    #38695292
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453подняли интересную тему!!! а почему лудше учить не один язык пхп, а кучу языков шаблонизаторов???

http://twig.sensiolabs.org/ раздел "Why yet another template engine?"
...
Рейтинг: 0 / 0
нужен простой шаблонизатор(template engine)
    #38695561
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow,

Просто рекламный трюк. Кто мне в пхп помкшает вывести экранированные данные так?
Код: php
1.
<?=  e($data) ?>


При этом e() будет учитывать кодировку шаблона сама )

Так по всем указанным там пунктам. Только как сказали - тут явный плюс в том, что учить ничего не надо.
...
Рейтинг: 0 / 0
нужен простой шаблонизатор(template engine)
    #38695574
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПри этом e() будет учитывать кодировку шаблона сама )

чего? код покажи, да.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / нужен простой шаблонизатор(template engine)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]