Всю ноч сидел ну не могу я разобраться в чем ошибка
Шаблонизатор работает прекрпсно
Но проблемма в том что мне необходимо по средствам php сделать следующее:
В базе 4 строки у каждой номер, титул и название
Как мне сделать так чтобы вытащить из мускула эти 6 записей после чего провернуть черер while и засунуть в шаблон, не вмешивая пхп и html?
Спустя 28 минут, 27 секунд (13.11.2010 - 10:36) Семён написал(а):
Мы чё тут сборище гадалок и знаем что у тебя за шаблонизатор?
У людей похоже вообще крышак съехал последний год, думать мозгами вообще не хотят.
У людей похоже вообще крышак съехал последний год, думать мозгами вообще не хотят.
Спустя 23 минуты, 29 секунд (13.11.2010 - 10:59) Remka написал(а):
Семен побереги амбиции. И поакуратнее со словами. Я чисто физически не смогу сейчас исходники выложить так как нахожусь не зп компьютером, и какая разница какой шаблонизатор? Допустим я туда переменную вывожу
Мне не нужно код писать прошу лиш с мыслями направить.
Есть цикл который поочередно должен брать строки из базы.
После чего заносить принятое в квадратик 50 на 50 пикселей
Я всего напросто спросил возможно ли обойтись одним маленьким шаблоном который в результате работы цикла будет дублироваться?
Или создавать для каждой принимаемой переменной свой маленький шаблончик
И записывать как $text1 второй квадрат $text2 третий text$3
Я уверен что должно быть решение гараздо проще?
Мне не нужно код писать прошу лиш с мыслями направить.
Есть цикл который поочередно должен брать строки из базы.
После чего заносить принятое в квадратик 50 на 50 пикселей
Я всего напросто спросил возможно ли обойтись одним маленьким шаблоном который в результате работы цикла будет дублироваться?
Или создавать для каждой принимаемой переменной свой маленький шаблончик
И записывать как $text1 второй квадрат $text2 третий text$3
Я уверен что должно быть решение гараздо проще?
Спустя 39 минут, 11 секунд (13.11.2010 - 11:39) TMake написал(а):
Для решения твоей задачи есть масса вариантов реализации, довольно сложно вы объяснили суть своей проблемы, попробуйте наглядно привести то что вас затрудняет и тогда вас направят в оптимальную сторону.
Спустя 50 минут, 35 секунд (13.11.2010 - 12:29) Remka написал(а):
У меня есть шаблон
<div width="50" height="50">$text</div>
Есть сам скрипт.
Сейчас точно не помню но изобразиьь постараюсь
<?php
# тут подключаем таблицу бд
$Query = mysql_query ......
# дальше цикл
While($result = mysql_featch_array($Query)){
И вот тут по сути он и должен брать строку из базы
Заносить в шаблон в переменную $text и после чего брать следующую
Строку из базы заносить в тот же шаблон
И в результате нужно получить страничку с квадратами внутри которых текст
}
Я в итоге получил много квадратов
Но текст из базы присутствует только в последнем
Тоесть каждый раз когда цикл проходит он пишет переменную заного
Вот я и не могу додумать как же так сделать чтобы
Переменная осталась одна тоесть $text и вне зависимости от количества квадратов
Вот впринципе и все что у меня не получается.
Еще раз прошу прощенья я сижу с телефона поэтому более развернутой информации дать не смогу.
?>
<div width="50" height="50">$text</div>
Есть сам скрипт.
Сейчас точно не помню но изобразиьь постараюсь
<?php
# тут подключаем таблицу бд
$Query = mysql_query ......
# дальше цикл
While($result = mysql_featch_array($Query)){
И вот тут по сути он и должен брать строку из базы
Заносить в шаблон в переменную $text и после чего брать следующую
Строку из базы заносить в тот же шаблон
И в результате нужно получить страничку с квадратами внутри которых текст
}
Я в итоге получил много квадратов
Но текст из базы присутствует только в последнем
Тоесть каждый раз когда цикл проходит он пишет переменную заного
Вот я и не могу додумать как же так сделать чтобы
Переменная осталась одна тоесть $text и вне зависимости от количества квадратов
Вот впринципе и все что у меня не получается.
Еще раз прошу прощенья я сижу с телефона поэтому более развернутой информации дать не смогу.
?>
Спустя 56 минут (13.11.2010 - 13:25) vagrand написал(а):
Ну так это у тебя не шаблон а HTML с php вставками. По сути и HTML c php вставками может использоваться в качестве шаблона но тогда по архитектуре никаких запросов к БД в шаблонах быть не должно.
Спустя 32 минуты, 13 секунд (13.11.2010 - 13:57) Remka написал(а):
Нет вы меня не поняли.
Я пытпюсь придти к тому чтобы в php небыло элементов html
Меня интересует совершенно другое
Мне нужно чтобы я мог подцепить маленький шаблончик со своим css
К основному дизайну и грубо говоря с помощью цыкла размножить этот маленький шаблончик с разными результатами
Это мне нужно для того чтобы php работал сам по себе и не был завязан с версткой что в дальнейшем позволит мне легко поменять дизайн сайта.
Я пытпюсь придти к тому чтобы в php небыло элементов html
Меня интересует совершенно другое
Мне нужно чтобы я мог подцепить маленький шаблончик со своим css
К основному дизайну и грубо говоря с помощью цыкла размножить этот маленький шаблончик с разными результатами
Это мне нужно для того чтобы php работал сам по себе и не был завязан с версткой что в дальнейшем позволит мне легко поменять дизайн сайта.
Спустя 1 час, 4 минуты, 44 секунды (13.11.2010 - 15:02) TMake написал(а):
Я так понял вы не можете дописывать переменую в цикле и в переменной остается только последнее значение:
while($result=...)
$text .= $result['text'];
while($result=...)
$text .= $result['text'];
Спустя 5 минут, 19 секунд (13.11.2010 - 15:07) walters написал(а):
в уроках на сайте irbis-team.com есть модуль новостей, там то что тебе нужно !
Спустя 11 минут, 16 секунд (13.11.2010 - 15:19) Remka написал(а):
Все я помоему понял
Почему то я про новости не подумал
Доберусь до дома буду глядетб где ошибка
Просто у меня все это через шаблонизатор может в нем дело
Спасибо!
Почему то я про новости не подумал
Доберусь до дома буду глядетб где ошибка
Просто у меня все это через шаблонизатор может в нем дело
Спасибо!
Спустя 1 час, 13 минут, 46 секунд (13.11.2010 - 16:32) linklink26 написал(а):
Берешь smarty и смотришь реализацию.
Спустя 1 час, 5 минут, 17 секунд (13.11.2010 - 17:38) Basili4 написал(а):
linklink26
Вот тоже мне пример и скати смарти не самый лучшый шаблонизатор есть много лучше обратите внимание на twig
Вот тоже мне пример и скати смарти не самый лучшый шаблонизатор есть много лучше обратите внимание на twig
Спустя 6 минут, 55 секунд (13.11.2010 - 17:45) Семён написал(а):
Цитата (Basili4 @ 13.11.2010 - 18:38) |
linklink26 Вот тоже мне пример и скати смарти не самый лучшый шаблонизатор есть много лучше обратите внимание на twig |
Фанат Фабьена?
Спустя 3 дня, 8 часов, 21 минута, 25 секунд (17.11.2010 - 02:06) Remka написал(а):
Вообщем продолжаю тему
задачу осуществил без шаблонизатора все прекрасно работает
но вот когда делаю через шаблонизатор
то почему то результат совершенно другой
может я что не так делаю незнаювообщем
шаблонизатор уже не помню где брал
смотрел smarty ну для меня он пока долек поэтому для начала хотелось бы с этим разобраться
вот сам шаблонизатор
В самом сайте он прекручен примерно вот так
Вот уже какой день ломаю голову и никак не могу додумать.
может сам шаблонизатор как то надо дописать?
Помогите пожалуйста нет сил больше!
задачу осуществил без шаблонизатора все прекрасно работает
но вот когда делаю через шаблонизатор
то почему то результат совершенно другой
может я что не так делаю незнаювообщем
шаблонизатор уже не помню где брал
смотрел smarty ну для меня он пока долек поэтому для начала хотелось бы с этим разобраться
вот сам шаблонизатор
class Template{
public $dir = '.';
public $template = null;
public $copy_template = null;
public $data = array();
public $block_data = array();
public $result = array('info' => '', 'content' => '');
public $template_parse_time = 0;
# Задаём параметры основных переменных подгрузки шаблона
public function set($name , $var){
if (is_array($var) && count($var)){
foreach ($var as $key => $key_var){
$this->set($key , $key_var);
}
}
else{
$this->data[$name] = $var;
}
}
# Обозначаем блоки
public function set_block($name , $var){
if (is_array($var) && count($var)){
foreach ($var as $key => $key_var){
$this->set_block($key , $key_var);
}
}
else{
$this->block_data[$name] = $var;
}
}
# Производим загрузку каркасного шаблона
public function load_template($tpl_name){
$time_before = $this->get_real_time();
if ($tpl_name == '' || !file_exists($this->dir . DIRECTORY_SEPARATOR . $tpl_name)){
die ("Unable to load the template: ". $tpl_name);
return false;
}
$this->template = file_get_contents($this->dir . DIRECTORY_SEPARATOR . $tpl_name);
if (stristr( $this->template, "{include file=" )){
$this->template = preg_replace( "#\\{include file=['\"](.+?)['\"]\\}#ies","\$this->sub_load_template('\\1')", $this->template);
}
if (stristr( $this->template, "{include file=" )){
$this->template = preg_replace( "#\\{include file=['\"](.+?)['\"]\\}#ies","\$this->load_script('\\1')", $this->template);
}
$this->copy_template = $this->template;
$this->template_parse_time += $this->get_real_time() - $time_before;
return true;
}
# Этой функцией загружаем "подшаблоны"
public function sub_load_template($tpl_name){
if ($tpl_name == '' || !file_exists($this->dir . DIRECTORY_SEPARATOR . $tpl_name)){
die ("Unable to load the template: ". $tpl_name);
return false;
}
$template = file_get_contents($this->dir . DIRECTORY_SEPARATOR . $tpl_name);
return $template;
}
# Этой функцией загружаем "подшаблоны для работы с массивами базы"
public function load_block_template($tpl_name, $name , $var){
if ($tpl_name == '' || !file_exists($this->dir . DIRECTORY_SEPARATOR . $tpl_name)){
die ("Unable to load the template: ". $tpl_name);
return false;
}
else{
$template = file_get_contents($this->dir . DIRECTORY_SEPARATOR . $tpl_name);
return $template;
$this->block_data[$name] = $var;
}
}
# Очистка переменных шаблона
public function _clear(){
$this->data = array();
$this->block_data = array();
$this->copy_template = $this->template;
}
public function clear(){
$this->data = array();
$this->block_data = array();
$this->copy_template = null;
$this->template = null;
}
# Полная очистка включая результаты сборки шаблона
public function global_clear(){
$this->data = array();
$this->block_data = array();
$this->result = array();
$this->copy_template = null;
$this->template = null;
}
# Сборка шаблона в единое целое
public function compile($tpl){
$time_before = $this->get_real_time();
foreach ($this->data as $key_find => $key_replace){
$find[] = $key_find;
$replace[] = $key_replace;
}
$result = str_replace($find, $replace, $this->copy_template);
if (count($this->block_data)){
foreach ($this->block_data as $key_find => $key_replace){
$find_preg[] = $key_find;
$replace_preg[] = $key_replace;
}
$result = preg_replace($find_preg, $replace_preg, $result);
}
if (isset($this->result[$tpl])){
$this->result[$tpl] .= $result;
}
else{
$this->result[$tpl] = $result;
}
$this->_clear();
$this->template_parse_time += $this->get_real_time() - $time_before;
}
# Счётчик времени выполнения запросов сборки
public function get_real_time(){
list($seconds, $microSeconds) = explode(' ', microtime());
return (round($seconds, 3));
}
}
В самом сайте он прекручен примерно вот так
$tpl = new Template;
$tpl -> dir =SKIN;
# ВОТ ТУТ ПОДКЛЮЧЕН ФАЙЛ КОТОРЫЙ ПО ССЫЛКЕ ГРУЗИТ КОНКРЕТНЫЙ МОДУЛЬ
# И В САМОМ МОДУЛЕ СЛЕДУЮЩЕЕ
$Query = mysql_query("SELECT * FROM `table`ORDER BY `position`", $DB);
$tpl -> set('{content}', $tpl->sub_load_template('content.tpl'));
#ВОТ ТУТ Я СТАВЛЮ ЦИКЛ КОТОРЫЙ ДОЛЖЕН ИЗ БАЗЫ ВЫДЕРНУТЬ ЗНАЧЕНИЯ ЗАПИХАТЬ В block.tpl И ВЫВЕСТИ В ШАБЛОН {content}
while($result = mysql_fetch_array($Query)){
$tpl -> set('{block}', $tpl->sub_load_template('block.tpl'));
#$tpl -> set('{block_text}', $result['text']);
}
$tpl -> compile('main');
eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');
$tpl -> global_clear();
Вот уже какой день ломаю голову и никак не могу додумать.
может сам шаблонизатор как то надо дописать?
Помогите пожалуйста нет сил больше!
Спустя 1 месяц, 3 дня, 14 часов, 28 минут, 25 секунд (20.12.2010 - 16:34) linklink26 написал(а):
Учи xlst там все стандартно с описаловом.