|
|
|
| Подскажите, пожалуйста, как лучше сделать.
Есть сайт - статичные страницы на html.
Страницы 3 видов верстки.
Сейчас требуется в некоторые(не все!) страницы вставить некий динамический контент. + дописать простенькую админку - добавить/удалить новость, редактировать гостевую - и все.
Я попробовала вставлять кусками внутрь html, все смешивается, некрасиво выходит.
Плюс написала под нужды заказчика админку, естественно, сессия, в которой сохраняется информация про юзера, не передается, хедеры - тоже.
Тут нужно что-то типа простой системы шаблонов организовать, чтобы разделить логику и дизайн.
CMS они не хотят подключать, потому как хотят в админке иметь только то, что касается непосредственно работы сайта.
Подскажите, пожалуйста, как можно попроще организовать вывод данных в шаблон и сам вывод шаблонов. | |
|
|
|
|
|
|
|
для: Лена
(19.03.2010 в 15:15)
| | >Я попробовала вставлять кусками внутрь html, все смешивается, некрасиво выходит.
В смысле смешивается и некрасиво? Со стороны правильной разработки если посмотреть, то html должен быть отделен от php кода.
Насколько я знаю, вы аяксом владеете, почему бы на аяксе не сделать? | |
|
|
|
|
|
|
|
для: Рома
(19.03.2010 в 16:17)
| | Нет, аякс пока не трогаем... Там и без аякса работы хватит.
Сейчас код в индекс-файле идет такой:
<meta name="keywords" content="Contemporary literature, Ukraine, Yuri Oliynyk,
novel, ukrainian writer, ukrainian philosopher, сучасна українська література, українські письменники, Юрій Олійник,
література, філософія, Бушмени, Інферналії, Хроніка Абсурду, Знак Пса, українська проза, переклади " /> <meta name="robots"
content="ALL" /></head><body><div id="container"><div class="topBg"><div class="bottomBg"> <div class="rightCol"> <table
class="layout"> <tr class="" >
<td valign="top">
<div class="content"><div class="contentT"><div class="contentB"><div class="contentLR">
<?php
include('common_files/dbopen.php'); //коннект с базой
include('common_files/error.php'); //вывод ошибок заполнения форм на сайте
include('common_files/hyphen_words.php'); //расстановка переносов в тексте
//session_start();
if(isset($_GET['cat'])){
if($_GET['cat'] == 'admin'){
//авторизация админа
include("auth.php");
}else{
//новости
$sql = "SELECT t.*,c.cat_name,c.cat_annons FROM texts t
LEFT JOIN category c ON t.cat_id = c.cat_id
WHERE t.cat_id = '" . (int)$_GET['cat'] . "'
ORDER BY t.make_time DESC";
|
Вот у меня и получилась неправильная разработка. Пока не поздно, хочу поправить.
Как хтмл в начале кода перенести в шаблон?
Я работала с уже готовыми шаблонизаторами, как сделать самой простенький шаблонизатор? я так думаю, надо через file_get_contents... | |
|
|
|
|
|
|
|
для: Лена
(19.03.2010 в 17:07)
| | Сейчас требуется в некоторые(не все!) страницы вставить некий динамический контент. + дописать простенькую админку - добавить/удалить новость, редактировать гостевую - и все.
Тогда вам проще не html перенести в шаблон, а добавить несколько своих страниц, на основе их дизайна, которые и будут добавить/удалить/редактировать. | |
|
|
|
|
|
|
|
для: Рома
(19.03.2010 в 17:20)
| | Рома, а как быть с теми общедоступными страницами, в которые они хотят вставить динамический контент?
Кусок кода я показала. Куда деть тот хтмл в начале индекс-файла? Чтобы он не мешал выводу сессии? У них на главной странице - тоже динамический контент. | |
|
|
|
|
|
|
|
для: Лена
(19.03.2010 в 17:07)
| | Не понимаю, что мешает сделать так:
<?php
include('common_files/dbopen.php'); //коннект с базой
include('common_files/error.php'); //вывод ошибок заполнения форм на сайте
include('common_files/hyphen_words.php'); //расстановка переносов в тексте
session_start();
?>
<meta name="keywords" content="Contemporary literature, Ukraine, Yuri Oliynyk,
novel, ukrainian writer, ukrainian philosopher, сучасна українська література, українські письменники, Юрій Олійник,
література, філософія, Бушмени, Інферналії, Хроніка Абсурду, Знак Пса, українська проза, переклади " /> <meta name="robots"
content="ALL" /></head><body><div id="container"><div class="topBg"><div class="bottomBg"> <div class="rightCol"> <table
class="layout"> <tr class="" >
<td valign="top">
<div class="content"><div class="contentT"><div class="contentB"><div class="contentLR">
<?php
if(isset($_GET['cat'])){
if($_GET['cat'] == 'admin'){
//авторизация админа
include("auth.php");
}else{
|
Ну или, т.к. вариант с шаблонами отпадает (не делать же вам из всего этого сейчас шаблоны - слишком мнго работы получится), то собираете контент в переменные и потом выводите ниже. | |
|
|
|
|
|
|
|
для: neadekvat
(19.03.2010 в 19:07)
| | тогда вот так проще
<?php session_start(); ?>
<meta name="keywords" content="Contemporary literature, Ukraine, Yuri Oliynyk,
novel, ukrainian writer, ukrainian philosopher, сучасна українська література, українські письменники, Юрій Олійник,
література, філософія, Бушмени, Інферналії, Хроніка Абсурду, Знак Пса, українська проза, переклади " /> <meta name="robots"
content="ALL" /></head><body><div id="container"><div class="topBg"><div class="bottomBg"> <div class="rightCol"> <table
class="layout"> <tr class="" >
<td valign="top">
<div class="content"><div class="contentT"><div class="contentB"><div class="contentLR">
<?php
include('common_files/dbopen.php'); //коннект с базой
include('common_files/error.php'); //вывод ошибок заполнения форм на сайте
include('common_files/hyphen_words.php'); //расстановка переносов в тексте
//session_start();
if(isset($_GET['cat'])){
if($_GET['cat'] == 'admin'){
//авторизация админа
include("auth.php");
}else{
//новости
$sql = "SELECT t.*,c.cat_name,c.cat_annons FROM texts t
LEFT JOIN category c ON t.cat_id = c.cat_id
WHERE t.cat_id = '" . (int)$_GET['cat'] . "'
ORDER BY t.make_time DESC";
|
или вообще сделать автостарт сессии или буферизации | |
|
|
|
|
|
|
|
для: Рома
(19.03.2010 в 19:11)
| | Чем так проще?
Не знаю, конечно, кому как, но мне проще собирать эти "служебные" вещи в верху файла. Ниже - только то, что требуется непосредственно для вывода в поток. | |
|
|
|
|
|
|
|
для: neadekvat
(19.03.2010 в 19:12)
| | проще изменить некоторое количество файлов минимумом изменений или вообще конфигурацией .htaccess, и все заработает. | |
|
|
|
|
|
|
|
для: Рома
(19.03.2010 в 19:19)
| | По-моему, г-жа Елена только начала делать и сейчас все находится в стадии поиска лучшего решения, поэтому представленный здесь ею код скорее всего также тестовый вариант, не раскопированный на кучи страниц (я не поверю, чтобы она сначала раскопировала, а потом поняла, что у неё ошибка "cannot send headers...").
Так что я лишь предложил наиболее удобный, на мой взгляд, вариант, когда рабочие файлы и единичные функции типа старта сессии вызываются в начале файла, а затем уже идут локальные запросы/выводы и т.д. | |
|
|
|
|
|
|
|
для: Лена
(19.03.2010 в 15:15)
| | Плюс написала под нужды заказчика админку, естественно, сессия, в которой сохраняется информация про юзера, не передается, хедеры - тоже.
Это вообще непонятно, отсутствует идентификация или как? | |
|
|
|
|
|
|
|
для: Лена
(19.03.2010 в 15:15)
| | и в чем проблема? | |
|
|
|
|
|
|
|
для: Ури Геллер
(19.03.2010 в 17:01)
| | Проблема в первом посте описана русскими буквами.
Жаль, что авторы сайта не выпустили букварь. | |
|
|
|
|
|
|
|
для: Лена
(19.03.2010 в 15:15)
| | Я так и не понял, кому нужно разделить логику и дизайн: Вам или заказчику? | |
|
|
|
|
|
|
|
для: Loki
(19.03.2010 в 17:45)
| | Вообще-то мне, так как привыкла более-менее разделять логику и дизайн.
Я наверное, или в переменные, или в константы соберу и внизу скрипта сделаю вывод.
Просто думала, что есть какой-то другой вариант простенького шаблонизатора типа "здесь переменные принимаем - там выводим".
Меня просто session_start() с начала файла не спасет. На сайте - несколько форм, после прохождения каждой - редирект через header() будет, как я его сделаю? | |
|
|
|
|
|
|
|
для: Лена
(19.03.2010 в 19:40)
| | Первой строкой в самом вверху допиши
а заодно на php.net зайди и скачай себе "букварь" | |
|
|
|
|
|
|
|
для: Лена
(19.03.2010 в 19:40)
| | >Вообще-то мне, так как привыкла более-менее разделять логику и дизайн.
А какими шаблонизаторами пользовались и чем они не устроили? Надо учитывать что "простенький шаблонизатор" довольно быстро потребует либо делать полноценный, либо придумывать какие-то "костыли" для решения текущих задач. Если чувствуете в себе силы сделать полноценную реализацию - замечательно. Если нет - я бы предпочел что-то готовое. | |
|
|
|