Очень нужна помощь в организации шаблонизатора в движке сайта визитки

  • Автор темы alinakarpova
  • 1510
  • Обновлено
  • 27, Mar 2014
  • #1
Ребят, помогите пожалуст!! Есть основа для движка:
 <?php

function title ($str) {

static $title;

if (!empty($str)) $title=(SITE_TITLE===''?'':SITE_TITLE.' - ').$str;

return $title;

}

$pages = array();

require_once ("admin/data/title.config");

//обработать внешний параметр - имя искомого файла

$p='';

if (isset($_GET['page'])) $p=trim(strip_tags($_GET['page']));

$pk=array_keys($pages);

$pv=array_values($pages);

//найти запрошенный с сайта файл в списке

$file=$pk[0];

$title=$pv[0];

$found=true;

$ind=array_search($p,$pk);

if ($ind) { $file=$pk[$ind]; $title=$pv[$ind]; }

else if (!(empty($p) or $p==$file)) $found=false;

//вывести титул страницы и шапку

title ($title);

include('template/header.php');

if ($_GET['page']) {

$page = $_GET['page'] . '.txt';

} else {

$page = 'home.txt';

}

if (file_exists("content/$page")) {

include("content/$page");

} else {

echo("<meta http-equiv=\"refresh\" content=\"0; url=?page=404\">\n");

}

include('template/footer.php');

?>
Основа состоит из двух частей:
 <?php

function title ($str) {

static $title;

if (!empty($str)) $title=(SITE_TITLE===''?'':SITE_TITLE.' - ').$str;

return $title;

}

$pages = array();

require_once ("admin/data/title.config");

//обработать внешний параметр - имя искомого файла

$p='';

if (isset($_GET['page'])) $p=trim(strip_tags($_GET['page']));

$pk=array_keys($pages);

$pv=array_values($pages);

//найти запрошенный с сайта файл в списке

$file=$pk[0];

$title=$pv[0];

$found=true;

$ind=array_search($p,$pk);

if ($ind) { $file=$pk[$ind]; $title=$pv[$ind]; }

else if (!(empty($p) or $p==$file)) $found=false;

//вывести титул страницы и шапку

title ($title);

include('template/header.php');
Отвечает за название сайта и title (расположенные в файле config.php) вызываемых второй частью страниц.. И, собственно говоря вторая часть
 if ($_GET['page']) {

$page = $_GET['page'] . '.txt';

} else {

$page = 'home.txt';

}

if (file_exists("content/$page")) {

include("content/$page");

} else {

echo("<meta http-equiv=\"refresh\" content=\"0; url=?page=404\">\n");

}

include('template/footer.php');
Отвечает за вывод контента из текстовых файлов.. А теперь сам вопрос.



помогите пожалуст вот из того что есть, организовать (не касаясь второй части) в движке работу шаблонизатора (дабы отделить визуальную часть сайта от php кода), т.е. при вёрстке сайта, всю работу над html разметкой, css и джаваскриптами, производить в отдельном файле-шаблоне расположенном в директори: /template/template.php (имеющим подобный вид)

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

<title><?php echo $sitename;?> - <?php echo $sitetitle;?></title>

<meta name="description" content="<?php echo $description;?>" />

<meta name="keywords" content="<?php echo $keywords;?>" />

<meta name="Robots" content="All" />

<link href="/templates/ourcms_green/style/style.css" rel="stylesheet" type="text/css" />

</head>

<body>

<div id="wrapper">

<div id="content">

<div id="logo"><?php echo $sitename;?></div>

<div id="menu">

<ul>

<li><a href="/index.html">Главная</a></li>

<li><a href="/information.html">Информация</a></li>

<li><a href="/news.html">Новости</a></li>

</ul>

</div>

<div id="main"><br />

<?php echo $content; ?><br />

</div>

<div id="footer">

<a href="/index.html">Главная</a> |

<a href="/information.html">Информация</a> |

<a href="/news.html">Новости</a> |

<br />

<div id="copyright">

© 2013 <?php echo $sitename;?><br />

Powered by:<a href="http://site.info" target="_blank">Мой сайт</a>

</div>

</div>

</div>

<div id="bottom"></div>

</div>

</body>

</html>


а также организовать вывод названия сайта, title и meta тегов из файла допустим data.dat, расположенного в директории с текстовыми файлами (страницами), таким образом, дабы в будущем можно было бы огранизовать их вывод в админпанели для редактирования.

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

Извините если что-то не понятно расписала, но я в php "новичёк" иными словами "полный ноль".

За ранее "СПАСИБО!" откликнувшимся, и очень жду помощи! angel

alinakarpova


Рег
27 Mar, 2014

Тем
2

Постов
3

Баллов
23
  • 28, Mar 2014
  • #2
В рабочем состоянии шаблон примерно так и будет выглядеть.

Вместо единого файла для хранения индексной информации можете для каждого файла контента использовать к примеру одноименный файл, но с другим расширением.

Реализация 404 ошибки сделана совсем слабенько.

Выдавайте соответствующий HTTP-заголовок и контент соответствующей страницы. Если скинете свое мыло (можно в личку), подпишу вас на рассылку нашего софта данной категории.
mike, post: 0:
Выдавайте соответствующий HTTP-заголовок и контент соответствующей страницы.
Это нужно делать в префиксной части, т.е. до начала выдачи страницы.
 

mike4


Рег
12 Nov, 2013

Тем
2

Постов
147

Баллов
167
Тем
49554
Комментарии
57426
Опыт
552966

Интересно