<?
#>> > > > > > > > > > > > > > > >> >> >>>
#! class.loads.php
#! Class file
#! Файл загрузок компонентов, плагинов,модулей и шаблонов
#! Разработку ведет:Jallvar
#>> > > > > > > > > > > > > > > >> >> >>>
class load
{
function template ($template)
{
if(!file_exists("template/".$template."/index.php"))
{
exit("Не могу подключить шаблон!");
}
return require_once("template/".$template."/index.php");
}
function template_load ()
{
$load=$this->template($template);
$load=preg_replace("?HEADER?","СОДЕРЖИМОЕ ФУНКЦИИ site_header",$load)
}
}
?>
Мне надо чтобы ?HEADER? в строке
$load=preg_replace("?HEADER?","СОДЕРЖИМОЕ ФУНКЦИИ site_header",$load) заменилось на содержимое функции site_header(); как это правильно сделать?
Спустя 21 минута, 24 секунды (15.07.2010 - 22:45) tmt0086 написал(а):
можешь скинуть что у тебя в $load ? а то я так чуть догнать не могу)
Спустя 5 часов, 41 минута, 12 секунд (16.07.2010 - 04:26) Wird_34 написал(а):
Не понял что-то в чем сложность, вот функция будет заменять 'HEADER' в локальной переменной $load на то, что вернет функция site_header().
Только имхо тут лучше воспользоваться функцией str_replace:
она быстрее работает.
И еще не понятна задача функции template_load, если она ничего не выводит и ничего не возвращает, а то, что она присваивает переменной $load теряется после ее завершения.
preg_replace('?HEADER?', site_header(), $load)
Только имхо тут лучше воспользоваться функцией str_replace:
str_replace('HEADER', site_header(), $load)
она быстрее работает.
И еще не понятна задача функции template_load, если она ничего не выводит и ничего не возвращает, а то, что она присваивает переменной $load теряется после ее завершения.
Спустя 6 часов, 36 минут, 39 секунд (16.07.2010 - 11:03) jalvar написал(а):
А так можно ? В открытую функцию вызывать?
Спустя 15 минут, 40 секунд (16.07.2010 - 11:19) Wird_34 написал(а):
Что значит в открытую? У тебя функция site_header() является методом класса? Если так то ответ нет.
Спустя 5 минут, 26 секунд (16.07.2010 - 11:24) qpayct написал(а):
jalvar
если я вас правильно понял, вы хотите выполнять пхп скрипт после загрузки страницы? или иначе зачем менять текст на пхп функцию?
если я вас правильно понял, вы хотите выполнять пхп скрипт после загрузки страницы? или иначе зачем менять текст на пхп функцию?
Спустя 6 минут, 12 секунд (16.07.2010 - 11:30) Wird_34 написал(а):
qpayct, разве он не шаблонизатор пишет? Есть шаблон в какой-то хтмлке, он его грузит, заменяет петтерны на сгенерированный код и выводит.
Спустя 3 минуты, 12 секунд (16.07.2010 - 11:34) qpayct написал(а):
Wird_34
тогда надо говорить не "содержимое функции", а "результат функции"
тогда надо говорить не "содержимое функции", а "результат функции"
Спустя 2 часа, 20 минут, 2 секунды (16.07.2010 - 13:54) jalvar написал(а):
Помогите функция str_replace не пашет! Не производит замену констант
он так и выводит _HEADER_
он так и выводит _HEADER_
//Подключение шаблона
function template ($template)
{
if(!file_exists("templates/".$template."/index.php"))
{
exit("Не могу подключить шаблон!");
}
return require_once("templates/".$template."/index.php");
}
//Подключение блоков сайта
function template_load ($template,$system_url)
{
$load=$this->template($template);
$load=str_replace('_URL_', $system_url, $load);
$load=str_replace('_HEADER_', $this->site_header(), $load);
$load=str_replace('_CONTENT_', site_content(), $load);
$load=str_replace('load="RIGHT-BLOCK"', site_right_block(), $load);
$load=str_replace('load="LEFT-BLOCK"', site_left_block(), $load);
echo $load;
}
Спустя 20 минут, 41 секунда (16.07.2010 - 14:14) tomash написал(а):
jalvar
Константа для того и константа! Что содержимое поменять нельзя)))
Константа для того и константа! Что содержимое поменять нельзя)))
Спустя 1 минута, 10 секунд (16.07.2010 - 14:15) linker написал(а):
Все в корне неверно. Что это за конструкция:
return require_once("templates/".$template."/index.php");Что вы ожидаете узреть в $load после выполнения
$load=$this->template($template);Вы думаете $load будет содержать контент файла index.php? Вы ошибаетесь, начните изучать PHP с самого начала.
Спустя 32 минуты, 11 секунд (16.07.2010 - 14:48) jalvar написал(а):
А как это сделать по другому. При echo $load; Шаблон выводится!
Спустя 12 минут, 44 секунды (16.07.2010 - 15:00) linker написал(а):
Шаблон выводится не по echo, а по require_once("templates/".$template."/index.php"); Уберите echo и вы все равно увидите шаблон.
Спустя 2 минуты, 58 секунд (16.07.2010 - 15:03) jalvar написал(а):
Ну и как сделать замену констант?
Спустя 3 минуты, 9 секунд (16.07.2010 - 15:06) linker написал(а):
Во-первых, почему расширение php? Это скрипты, а не шаблоны. Шаблоны, текстовые, хтмльные файлы, а значит работать надо с ними как с обычными файлами:
function template ($template)
{
if(!file_exists("templates/".$template."/index.php"))
{
exit("Не могу подключить шаблон!");
}
return file_get_content("templates/".$template."/index.php");
}
function template_load ($template,$system_url)
{
$load=$this->template($template);
$load=str_replace('_URL_', $system_url, $load);
$load=str_replace('_HEADER_', $this->site_header(), $load);
$load=str_replace('_CONTENT_', site_content(), $load);
$load=str_replace('load="RIGHT-BLOCK"', site_right_block(), $load);
$load=str_replace('load="LEFT-BLOCK"', site_left_block(), $load);
echo $load;
}
Спустя 1 минута, 59 секунд (16.07.2010 - 15:08) jalvar написал(а):
Не понял
Как мне изменить константы ебаны...?
Как мне изменить константы ебаны...?
Спустя 4 минуты, 17 секунд (16.07.2010 - 15:13) linker написал(а):
Что вы не поняли? Я дал код, вставляете и наслаждаетесь.
Спустя 1 час, 42 минуты, 59 секунд (16.07.2010 - 16:56) jalvar написал(а):
Fatal error: Call to undefined function file_get_content() in Z:\home\localhost\www\8cmspupil\class\class.loads.php on line 43
_____________
jallvar.oxnull.net - мой блог.