sychoboy
Новичок
есть class main
есть функция GetTitle();
архитектура получается примерно такой
страница index.php вызывает header.php(файл шаблона) и footer.php(файл шаблона)
$KAKUT - объект класса main.
/*************************************/
<?
require($_SERVER["DOCUMENT_ROOT"]."/dir/header.php");
$KAKUT->InitTemplateHeader();
$KAKUT->SetTitle("Главная");
?>
<?
require($_SERVER["DOCUMENT_ROOT"]."/dir//footer.php");
$KAKUT->InitTemplateFooter();
?>
/*************************/
Проблема, в коде шаблона
листинг header.php
/**************************/
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<title><?echo $KAKUT->ShowTitle();?></title>
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<?=$KAKUT->ShowHead();?>
<meta name="viewport" content="initial-scale=1, width=device-width, maximum-scale=1, minimum-scale=1, user-scalable=no">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.js"></script>
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link href="<?=$KAKUT->GetTemplatePath();?>/jquery.fancybox.css" type="text/css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="<?=$KAKUT->GetTemplatePath();?>/css/owl.css" />
<link rel="stylesheet" type="text/css" href="<?=$KAKUT->GetTemplatePath();?>/css/kakut.css" />
<link href="http://allfont.ru/allfont.css?fonts=bookman-old-style-bold" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="<?=$KAKUT->GetTemplatePath();?>/css/font-awesome.min.css">
</head>
<body>
и тд...
/*******************************/
$KAKUT->ShowTitle() возвращает $KAKUT->titile
аналог функции GetTitle, только с буферизацией. Но буферизация не срабатывает.
public function AddBufferContent($callback)
{
ob_start();
$args = array();
$args_num = func_num_args();
if($args_num>1)
for($i=1; $i<$args_num; $i++)
$args[] = func_get_arg($i);
$this->buffer_content[] = ob_get_contents();
//$this->buffer_content[] = "";
$this->buffer_content_type[] = array("F"=>$callback, "P"=>$args);
$this->buffer_man = true;
$this->auto_buffer_cleaned = false;
$this->buffer_man = false;
$this->buffered = true;
if (is_object($GLOBALS["KAKUT"]))
{
$cnt = count($this->buffer_content_type);
for ($i = 0; $i < $cnt; $i++)
{
$this->buffer_content[$i*2+1] = call_user_func_array($this->buffer_content_type[$i]["F"], $this->buffer_content_type[$i]["P"]);
}
}
$content = implode("", $this->buffer_content) . $content;
ob_end_clean();
return $content;
}
public function ShowTitle($property_name="title")
{
return $this->AddBufferContent(array(&$this, "GetTitle"), $property_name);
}
есть функция GetTitle();
архитектура получается примерно такой
страница index.php вызывает header.php(файл шаблона) и footer.php(файл шаблона)
$KAKUT - объект класса main.
/*************************************/
<?
require($_SERVER["DOCUMENT_ROOT"]."/dir/header.php");
$KAKUT->InitTemplateHeader();
$KAKUT->SetTitle("Главная");
?>
<?
require($_SERVER["DOCUMENT_ROOT"]."/dir//footer.php");
$KAKUT->InitTemplateFooter();
?>
/*************************/
Проблема, в коде шаблона
листинг header.php
/**************************/
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<title><?echo $KAKUT->ShowTitle();?></title>
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<?=$KAKUT->ShowHead();?>
<meta name="viewport" content="initial-scale=1, width=device-width, maximum-scale=1, minimum-scale=1, user-scalable=no">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.js"></script>
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link href="<?=$KAKUT->GetTemplatePath();?>/jquery.fancybox.css" type="text/css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="<?=$KAKUT->GetTemplatePath();?>/css/owl.css" />
<link rel="stylesheet" type="text/css" href="<?=$KAKUT->GetTemplatePath();?>/css/kakut.css" />
<link href="http://allfont.ru/allfont.css?fonts=bookman-old-style-bold" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="<?=$KAKUT->GetTemplatePath();?>/css/font-awesome.min.css">
</head>
<body>
и тд...
/*******************************/
$KAKUT->ShowTitle() возвращает $KAKUT->titile
аналог функции GetTitle, только с буферизацией. Но буферизация не срабатывает.
public function AddBufferContent($callback)
{
ob_start();
$args = array();
$args_num = func_num_args();
if($args_num>1)
for($i=1; $i<$args_num; $i++)
$args[] = func_get_arg($i);
$this->buffer_content[] = ob_get_contents();
//$this->buffer_content[] = "";
$this->buffer_content_type[] = array("F"=>$callback, "P"=>$args);
$this->buffer_man = true;
$this->auto_buffer_cleaned = false;
$this->buffer_man = false;
$this->buffered = true;
if (is_object($GLOBALS["KAKUT"]))
{
$cnt = count($this->buffer_content_type);
for ($i = 0; $i < $cnt; $i++)
{
$this->buffer_content[$i*2+1] = call_user_func_array($this->buffer_content_type[$i]["F"], $this->buffer_content_type[$i]["P"]);
}
}
$content = implode("", $this->buffer_content) . $content;
ob_end_clean();
return $content;
}
public function ShowTitle($property_name="title")
{
return $this->AddBufferContent(array(&$this, "GetTitle"), $property_name);
}