|
pissflaps ↓
|
 |
|
09 Ноябрь, 2010, 07:50:38
|
НЕ ХУЕТА!
ХУЕТА!
|
Карма: 5
Сообщений: 152 Сила слова: 3.29
|
Вот смотрите, задача: есть некая переменная/массив , которые нужно прогнать через шаблон и получить в итоге результат в виде конечного html, ну т.е. вот теоретический пример
template.tpl:
<h1>{$myVarOnTemplate}</h1>
$myvar = "olololo";
$output = $smarty->команда($myvar,"myVarOnTemplate","template.tpl");
$smarty->assign("myblock",$output); где $output уже содержит <h1>olololo</h1>
|
|
|
|
|
Записан
|
|
|
|
|
Professor ↓
|
 |
|
09 Ноябрь, 2010, 08:13:18 , спустя 22 минуты 40 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Адекваты Карма: 30
Сообщений: 2074 Сила слова: 1.45
|
Ты лучше скажи для чего нужно, а то не совсем понятно что хочешь
|
|
|
|
|
Записан
|
|
|
|
|
KaFe ↓
|
 |
|
09 Ноябрь, 2010, 08:34:22 , спустя 21 минуту 4 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Сраный Тролль Карма: -13346
Сообщений: 1727 Сила слова: -772.79
|
pissflaps, если я правильно понял, то это извращение какое то.
|
|
|
|
|
Записан
|
|
|
|
|
pissflaps ↓
|
 |
|
09 Ноябрь, 2010, 09:35:49 , спустя 1 час 1 минуту 27 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Карма: 5
Сообщений: 152 Сила слова: 3.29
|
Ничё не извращение, это обычная необходимость.
Это необходимо для того чтобы динамически собирать множество данных в указанную переменную и отображать на шаблоне.
Т.е. к примеру возьмём динамически меняющие блоки (с разными типами: авторизация, голосования) для разных публикаций и соответственно с разными шаблонами. Порнографию в виде {if .... == 'vote'}{include file=""}{/if} я не собираюсь делать. Есть шаблон template к примеру такого вида
<div id="left">{$blocks.left} </div>
<div id="center">{$content} </div>
<div id="right">{$blocks.right} </div>
Сейчас это заменяет нативный шаблон php, завёрнутый в ob_start.
Мне не совсем нравится, что в моём движке используются нативные шаблоны и шаблоны на smarty.
На данный момент я встретил, только один способ решения этого вопроса:
http://www.linux.org.ru/forum/web-development/3192946#comment-3195086
|
|
|
|
|
Записан
|
|
|
|
|
Professor ↓
|
 |
|
09 Ноябрь, 2010, 10:01:17 , спустя 25 минут 28 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Адекваты Карма: 30
Сообщений: 2074 Сила слова: 1.45
|
А чем не подходит?
$smarty->assign($file,"news");
{include file="$file.tpl"}
|
|
|
|
|
Записан
|
|
|
|
|
pissflaps ↓
|
 |
|
09 Ноябрь, 2010, 10:20:31 , спустя 19 минут 14 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Карма: 5
Сообщений: 152 Сила слова: 3.29
|
Professor, ну как тебе сказать
цикл:
смотри ты предлагаешь создать массив примерно такого вида:
[php ]
array[0]['template'] = "example_1.tpl"
array[0]['data'] = $data
assign (array)
array[1]['template'] = "another_2.tpl"
array[1]['data'] = $data
assign (array)
array[n ]['template'] = "n"
array[n ]['data'] = $data
assign (array)
[/php ]
А затем как ты говоришь в цикле загружать {include file= "$n.template"} и соответственно отображать данные.
Фактически этот вариант решает конкретно мою задачу. Я о нём тоже думал, но почему-то предпочёл использовать в данном случае пока нативный шаблон и уже результат его заносить на шаблон smarty (имхо идиотизм высшей марки ).
Я думал всё-таки как-то можно было бы заюзать smarty шаблон для конкретной переменной до вывода самого основного шаблона, но ты вижу понял смысл, спасиб всё равно за идеи. {++ +215+++ } Но вариант
[php ]template.tpl:
<h1> {$myVarOnTemplate}</h1>
$myvar = "olololo";
$output = $smarty->команда ($myvar, "myVarOnTemplate", "template.tpl");
$smarty-> assign("myblock", $output); [/php ]
почему-то мне всё равно гораздо симпатичнее
|
|
|
|
|
Записан
|
|
|
|
|
pissflaps ↓
|
 |
|
09 Ноябрь, 2010, 10:35:14 , спустя 14 минут 43 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
Карма: 5
Сообщений: 152 Сила слова: 3.29
|
+ в карму тебе
хотя professor пойду я всё-таки в сторону
array[i ]['template'] = "example_1.tpl"
array[i ]['data'] = $data
{include file= "$n.template"}
|
|
|
|
|
Записан
|
|
|
|
|
Professor ↓
|
 |
|
09 Ноябрь, 2010, 10:43:10 , спустя 7 минут 56 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Адекваты Карма: 30
Сообщений: 2074 Сила слова: 1.45
|
Твой вариант
template.tpl:
<h1>{$myVarOnTemplate}</h1>
index.php:
$myvar = "olololo";
$output = $smarty->команда($myvar,"myVarOnTemplate","template.tpl");
$smarty->assign("myblock",$output);
$smarty->display('template.tpl');
мой вариант
template.tpl:
{include file= "$file.tpl"}
news.tpl:
<h1> {$myVarOnTemplate}</h1>
index.php:
$myvar = "olololo";
$smarty-> assign("file", "news");
$smarty-> assign("myVarOnTemplate", "olololo");
$smarty-> display('template.tpl');
Про какие массивы ты говоришь?
А если есть массивы то покажи как с ними будет выглядеть твой предполагаемый(желаемый) вариант.
|
|
|
|
|
Записан
|
|
|
|
|
pissflaps ↓
|
 |
|
09 Ноябрь, 2010, 10:43:48 , спустя 38 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Карма: 5
Сообщений: 152 Сила слова: 3.29
|
Тема закрыта :) Не парься.
|
|
|
|
|
Записан
|
|
|
|
|
Strate ↓
|
 |
|
21 Ноябрь, 2010, 12:53:20 , спустя 11 дней 2 часа 9 минут 32 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
|
Карма: 1
Сообщений: 12 Сила слова: 8.33
|
$smarty->fetch() ?
|
|
|
|
|
Записан
|
|
|
|
|