PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
A320_Pilot
Отправлено: 26 Марта, 2016 - 00:02:44
Гость
Покинул форум
Сообщений всего: 70
Дата рег-ции: Сент. 2012
Откуда: Россия, Москва
Помог: 0 раз(а)
Сделал немного по другому, теперь просто выводятся теги {id}, {news1} и т.д. а не записи из бд:
Шаблонизатор:
PHP:
скопировать код в буфер обмена
<?PHP
class Template
{
private $content = NULL ;
private $res_content = NULL ;
function Template( $tpl_dir , $tpl_name )
{
if ( ! file_exists ( $tpl_dir . $tpl_name . '.html' ) ) return ; }
function assign_vars( $vars )
{
$this -> res_content = $this -> content ;
foreach ( $vars as $blockname => $value )
{
$this -> res_content = preg_replace ( '/{' . $blockname . '}/i' , $value , $this -> res_content ) ; }
}
function render( )
{
if ( $this -> res_content == '' ) $this -> res_content = $this -> content ;
return $this -> res_content ;
}
}
?>
Шаблон новостей тот же
И вывод news.php:
PHP:
скопировать код в буфер обмена
<?PHP
//Подключение файла настроек базы данных
require_once ( "../engine/mysql.php" ) ;
//Подключаем шаблонизатор
$tpl_dir = '../template/' ;
require_once ( "../engine/tpl.php" ) ;
$news_tpl = new Template( $tpl_dir , 'news' ) ;
$content = '' ;
//Настройка вывода лучших изделий
//require_once("/rb.php");
//Настраиваем переменные
//Настройка вывода новостей
foreach ( $data as $news )
{
$news_tpl -> assign_vars ( array ( 'id' => $news [ 'id' ] ,
'news1' => $news [ 'name' ] ,
'news2' => $news [ 'text' ] ,
'num_rows1' => $num_rows1
) ) ;
$content .= $news_tpl -> render ( ) ;
} } }
$news_tpl -> assign_vars ( array ( 'title' => 'Кованый дизайн' ,
'url' => 'http://localhost' ,
'url_tpl' => 'http://localhost/template/'
) ) ;
//Компилируем шаблон
echo $news_tpl -> render ( ) ;
?>
(Добавление)
Не работает только вывод новостей из БД, а скажем титл сайта отображается, тобеж не {title}, а "Кованый дизайн", что делать?(Отредактировано автором: 26 Марта, 2016 - 00:03:43)
A320_Pilot
Отправлено: 26 Марта, 2016 - 09:34:01
Гость
Покинул форум
Сообщений всего: 70
Дата рег-ции: Сент. 2012
Откуда: Россия, Москва
Помог: 0 раз(а)
3d_killer пишет: с этим шаблонизатором работать и не будет
Хорошо, а если без шаблонизатора но нужны теги {...}?
Что делать?
A320_Pilot
Отправлено: 27 Марта, 2016 - 00:38:06
Гость
Покинул форум
Сообщений всего: 70
Дата рег-ции: Сент. 2012
Откуда: Россия, Москва
Помог: 0 раз(а)
3d_killer пишет: не нужны
(Добавление)
вместо
вот это
Если честно хотелось бы теги {...}
Функцией str_replace возможно сделать?
Чтоб потом с БД норм выводилось всё!
A320_Pilot
Отправлено: 27 Марта, 2016 - 21:19:00
Гость
Покинул форум
Сообщений всего: 70
Дата рег-ции: Сент. 2012
Откуда: Россия, Москва
Помог: 0 раз(а)
Всё равно одно и тоже, последняя запись только
Вот код теперь шаблона news.html
CODE (
html ):
скопировать код в буфер обмена
<!doctype html>
<html lang = "en" class = "no-js" >
<head >
<meta charset = "UTF-8" >
<meta http-equiv = "x-ua-compatible" content = "ie=edge" >
<meta name = "viewport" content = "width=device-width, initial-scale=1" >
<title ><?= $title?> - Новости</ title >
<link href = "http://www.google-analytics.com/" rel = "dns-prefetch" > <!-- dns prefetch -->
<!-- meta -->
<!-- icons -->
<link href = "<?=$tpl_f?> favicon.ico" rel="shortcut icon">
<!-- css + javascript -->
<link rel = "stylesheet" href = "<?=$tpl_f?> style.css" media="all">
<!--[if lt IE 9]>
<script type="text/javascript" src="js/html5shiv.js"></script>
<script type="text/javascript" src="js/selectivizr.js"></script>
<script type="text/javascript" src="js/respond.js"></script>
<![endif]-->
<script type = "text/javascript" src = "///cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js" ></ script >
</ head >
<body >
<!-- wrapper -->
<div class = "wrapper" >
<header >
<div class = "logo" >
<img src = "<?=$tpl_f?> img/logo.png" alt="" title="">
</ div > <!-- /logo -->
<div class = "contact" >
<p class = "tel" >
8(499)-390-90-99</ br >
8(925)-390-90-99
</ p >
<p class = "mail" > kovanii_dizain@mail.ru</ p >
</ div >
<nav class = "nav" role= "navigation" >
<ul class = "headnav" >
<li ><a href = "<?=$url?> ">Главная</ a ></ li >
<li ><a class = "active" href = "<?=$url?> ?id=news">Новости</ a ></ li >
<li ><a href = "<?=$url?> ?id=cus">Обратная связь</ a ></ li >
<li ><a href = "<?=$url?> ?id=about">О компании</ a ></ li >
<li ><a href = "<?=$url?> ?id=contacts">Контактные данные</ a ></ li >
</ ul >
<input placeholder= "Search..." type = "text" >
</ nav> <!-- /nav -->
</ header> <!-- /header -->
<section class = "main_content" >
<div class = "leftside" >
<h3 > Категории изделий</ h3 >
<ul >
<li ><a class = "active" href = "{url}" > Главная</ a > </ li >
<li ><a href = "<?=$url?> ?id=1">Лестницы<span > (0)</ span ></ a ></ li >
<li ><a href = "<?=$url?> ?id=2">Ограждения<span > (0)</ span ></ a ></ li >
<li ><a href = "<?=$url?> ?id=3">Балконы<span > (0)</ span ></ a ></ li >
<li ><a href = "<?=$url?> ?id=4">Изделия для сада<span > (0)</ span ></ a ></ li >
<li ><a href = "<?=$url?> ?id=5">Крыльцо и навесы<span > (0)</ span ></ a ></ li >
<li ><a href = "<?=$url?> ?id=6">Заборы, ворота и калитки<span > (0)</ span ></ a ></ li >
<li ><a href = "<?=$url?> ?id=7">Оконные решётки<span > (0)</ span ></ a ></ li >
<li ><a href = "<?=$url?> ?id=8">Ритуальные изделия<span > (3)</ span ></ a ></ li >
<li ><a href = "<?=$url?> ?id=9">Флюгеры<span > (0)</ span ></ a ></ li >
<li ><a href = "<?=$url?> ?id=10">Эксклюзивные изделия<span > (0)</ span ></ a ></ li >
<li ><a href = "<?=$url?> ?id=11">Интерьер<span > (8)</ span ></ a ></ li >
</ ul >
</ div >
<div class = "center_content" >
<div class = "bread" >
<a href = "{url}" > Главная</ a > / Новости
</ div >
<h2 > #<?= $n_id?> - <?= $n_name?></ h2 >
<p ><?= $n_text?></ p >
</ div >
<div class = "rightside" ><h3 > Лучшие изделия</ h3 >
<ul ><li >
<?= $lr?>
</ li ></ ul ></ div > <div class = "rightside" ><h3 > Блок 2</ h3 >
<ul ><li >
>>В разработке!<<
</ li ></ ul ></ div > <div class = "rightside" ><h3 > Статистика</ h3 >
<ul ><li >
Количество новостей: <?= $nr1?> Всего работ: --- Лучших работ: <?= $nr2?>
</ li ></ ul ></ div > </ section> <!-- /section -->
<footer role= "contentinfo" >
<div class = "inner" >
<span > Design by A320_Pilot</ span >
<p class = "copyright" >
© Copyright ООО Кованый дизайн 2016. All Right Reserved.
</ p > <!-- /copyright -->
</ div > <!-- /.inner -->
</ footer> <!-- /footer -->
</ div > <!-- /wrapper -->
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js" ></ script >
<script > window.jQuery || document.write('<script src = "js/jquery.js" ><\/ script> ')</ script >
<script type = "text/javascript" src = "js/scripts.js" ></ script >
</ body >
</ html >
Вот код php:
PHP:
скопировать код в буфер обмена
<?PHP
//Подключение файлов настроек
require_once ( "../engine/mysql.php" ) ;
require_once ( "../engine/config.php" ) ;
//Настройка вывода лучших изделий
require_once ( "/rb.php" ) ;
//Настройка вывода новостей
$n_id = $data [ 'id' ] ;
$n_name = $data [ 'name' ] ;
$n_text = $data [ 'text' ] ;
} }
//Подключаем основной каркас новостей
require_once ( "../template/news.html" ) ;
?>
A320_Pilot
Отправлено: 27 Марта, 2016 - 21:34:08
Гость
Покинул форум
Сообщений всего: 70
Дата рег-ции: Сент. 2012
Откуда: Россия, Москва
Помог: 0 раз(а)
3d_killer пишет:
этот цикл должен быть в шаблоне и там же в цикле эта часть обрабатываться, изучите что такое цикл, вы творите сами не понимаете что
Блин помогите плиз, я чё то вообще не врубаюсь(
(Добавление)
Сделал так, отображается всё теперь, но есть одно НО, новости сьехали куда то вверх страницы
PHP:
скопировать код в буфер обмена
<?PHP
//Подключение файлов настроек
require_once ( "../engine/mysql.php" ) ;
require_once ( "../engine/config.php" ) ;
//Настройка вывода лучших изделий
require_once ( "/rb.php" ) ;
//Настройка вывода новостей
$n_id = $data [ 'id' ] ;
$n_name = $data [ 'name' ] ;
$n_text = $data [ 'text' ] ;
echo <<< HEREDOC
<h2>#$n_id - $n_name</h2>
<p>$n_text</p>
HEREDOC ;
//Подключаем основной каркас новостей
require_once ( "../template/news.html" ) ;
} }
?>
(Добавление)
A320_Pilot пишет: 3d_killer пишет:
этот цикл должен быть в шаблоне и там же в цикле эта часть обрабатываться, изучите что такое цикл, вы творите сами не понимаете что
Блин помогите плиз, я чё то вообще не врубаюсь(
(Добавление)
Сделал так, отображается всё теперь, но есть одно НО, новости сьехали куда то вверх страницы
PHP:
скопировать код в буфер обмена
<?PHP
//Подключение файлов настроек
require_once ( "../engine/mysql.php" ) ;
require_once ( "../engine/config.php" ) ;
//Настройка вывода лучших изделий
require_once ( "/rb.php" ) ;
//Настройка вывода новостей
$n_id = $data [ 'id' ] ;
$n_name = $data [ 'name' ] ;
$n_text = $data [ 'text' ] ;
echo <<< HEREDOC
<h2>#$n_id - $n_name</h2>
<p>$n_text</p>
HEREDOC ;
//Подключаем основной каркас новостей
require_once ( "../template/news.html" ) ;
} }
?>
Новости вверх уехали куда то!
(Добавление)
И теперь у меня с кажой записью повторяется весь шаблон, делал так:
CODE (
htmlphp ):
скопировать код в буфер обмена
<? php
//Подключение файлов настроек
require_once ( "../engine/mysql.php" ) ;
require_once ( "../engine/config.php" ) ;
//Настройка вывода лучших изделий
require_once ( "/rb.php" ) ;
//Настройка вывода новостей
$n_id = $data [ 'id' ] ;
$n_name = $data [ 'name' ] ;
$n_text = $data [ 'text' ] ;
echo <<< HEREDOC
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>$title - Новости</title>
<link href="http://www.google-analytics.com/" rel="dns-prefetch"><!-- dns prefetch -->
<!-- meta -->
<!-- icons -->
<link href="$tpl_f/favicon.ico" rel="shortcut icon">
<!-- css + javascript -->
<link rel="stylesheet" href="$tpl_f/style.css" media="all">
<!--[if lt IE 9]>
<script type="text/javascript" src="js/html5shiv.js"></script>
<script type="text/javascript" src="js/selectivizr.js"></script>
<script type="text/javascript" src="js/respond.js"></script>
<![endif]-->
<script type="text/javascript" src="///cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"></script>
</head>
<body>
<!-- wrapper -->
<div class="wrapper">
<header >
<div class="logo">
<img src="$tpl_f/img/logo.png" alt="" title="">
</div><!-- /logo -->
<div class="contact">
<p class="tel">
8(499)-390-90-99</br>
8(925)-390-90-99
</p>
<p class="mail">kovanii_dizain@mail.ru</p>
</div>
<nav class="nav" role="navigation">
<ul class="headnav">
<li><a href="$url">Главная</a></li>
<li><a class="active" href="$url/news">Новости</a></li>
<li><a href="$url?id=cus">Обратная связь</a></li>
<li><a href="$url?id=about">О компании</a></li>
<li><a href="$url?id=contacts">Контактные данные</a></li>
</ul>
<input placeholder="Search..." type="text">
</nav><!-- /nav -->
</header><!-- /header -->
<section class="main_content">
<div class="leftside">
<h3>Категории изделий</h3>
<ul>
<li><a class="active" href="{url}">Главная</a> </li>
<li><a href="$url?id=1">Лестницы<span>(0)</span></a></li>
<li><a href="$url?id=2">Ограждения<span>(0)</span></a></li>
<li><a href="$url?id=3">Балконы<span>(0)</span></a></li>
<li><a href="$url?id=4">Изделия для сада<span>(0)</span></a></li>
<li><a href="$url?id=5">Крыльцо и навесы<span>(0)</span></a></li>
<li><a href="$url?id=6">Заборы, ворота и калитки<span>(0)</span></a></li>
<li><a href="$url?id=7">Оконные решётки<span>(0)</span></a></li>
<li><a href="$url?id=8">Ритуальные изделия<span>(3)</span></a></li>
<li><a href="$url?id=9">Флюгеры<span>(0)</span></a></li>
<li><a href="$url?id=10">Эксклюзивные изделия<span>(0)</span></a></li>
<li><a href="$url?id=11">Интерьер<span>(8)</span></a></li>
</ul>
</div>
<div class="center_content">
<div class="bread">
<a href="$url">Главная</a> / Новости
</div>
<h2>#$n_id - n_name</h2>
<p>$n_text</p>
</div>
<div class="rightside"><h3>Лучшие изделия</h3>
<ul><li>
$lr
</li></ul></div> <div class="rightside"><h3>Блок 2</h3>
<ul><li>
>>В разработке!<<
</li></ul></div> <div class="rightside"><h3>Статистика</h3>
<ul><li>
Количество новостей: $nr1 Всего работ: --- Лучших работ: $nr2
</li></ul></div> </section><!-- /section -->
<footer role="contentinfo">
<div class="inner">
<span>Design by A320_Pilot</span>
<p class="copyright">
© Copyright ООО Кованый дизайн 2016. All Right Reserved.
</p><!-- /copyright -->
</div><!-- /.inner -->
</footer><!-- /footer -->
</div><!-- /wrapper -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/jquery.js"><\/script>')</script>
<script type="text/javascript" src="js/scripts.js"></script>
</body>
</html>
HEREDOC ;
} } else {
echo <<< HEREDOC
<h2>Новости</h2><p>Новостей в данный момент нету!</p></div>
HEREDOC ;
}
?>
A320_Pilot
Отправлено: 27 Марта, 2016 - 22:23:26
Гость
Покинул форум
Сообщений всего: 70
Дата рег-ции: Сент. 2012
Откуда: Россия, Москва
Помог: 0 раз(а)
А при чём тут это?
С циклом то я разобрался, в шаблоне теперь где то косяк, не понимаю почему данные съехали с шаблона, вроде вывел там где надо
(Добавление)
Вот как щас всё выглядит:
PHP:
скопировать код в буфер обмена
<?PHP
//Подключение файлов настроек
require_once ( "../engine/mysql.php" ) ;
require_once ( "../engine/config.php" ) ;
//Настройка вывода лучших изделий
require_once ( "/rb.php" ) ;
//Подключаем основной каркас новостей
require_once ( "../template/news.html" ) ;
//Настройка вывода новостей
$n_id = $data [ 'id' ] ;
$n_name = $data [ 'name' ] ;
$n_text = $data [ 'text' ] ;
echo <<< HEREDOC
<div class="center_content">
<div class="bread">
<a href="$url">Главная</a> / Новости
</div>
<h2>#$n_id - $n_name</h2>
<p>$n_text</p>
</div>
HEREDOC ;
}
} else {
echo <<< HEREDOC
<h2>Новости</h2><p>Новостей в данный момент нету!</p></div>
HEREDOC ;
}
?>
Поиск в теме | Версия для печати
Страниц (5): « 1 2 [3] 4 5 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB