Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: От html к php
 
 автор: Лена   (19.03.2010 в 15:15)   письмо автору
 
 

Подскажите, пожалуйста, как лучше сделать.
Есть сайт - статичные страницы на html.
Страницы 3 видов верстки.
Сейчас требуется в некоторые(не все!) страницы вставить некий динамический контент. + дописать простенькую админку - добавить/удалить новость, редактировать гостевую - и все.
Я попробовала вставлять кусками внутрь html, все смешивается, некрасиво выходит.
Плюс написала под нужды заказчика админку, естественно, сессия, в которой сохраняется информация про юзера, не передается, хедеры - тоже.
Тут нужно что-то типа простой системы шаблонов организовать, чтобы разделить логику и дизайн.
CMS они не хотят подключать, потому как хотят в админке иметь только то, что касается непосредственно работы сайта.
Подскажите, пожалуйста, как можно попроще организовать вывод данных в шаблон и сам вывод шаблонов.

  Ответить  
 
 автор: Рома   (19.03.2010 в 16:17)   письмо автору
 
   для: Лена   (19.03.2010 в 15:15)
 

>Я попробовала вставлять кусками внутрь html, все смешивается, некрасиво выходит.
В смысле смешивается и некрасиво? Со стороны правильной разработки если посмотреть, то html должен быть отделен от php кода.
Насколько я знаю, вы аяксом владеете, почему бы на аяксе не сделать?

  Ответить  
 
 автор: Лена   (19.03.2010 в 17:07)   письмо автору
 
   для: Рома   (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:20)   письмо автору
 
   для: Лена   (19.03.2010 в 17:07)
 

Сейчас требуется в некоторые(не все!) страницы вставить некий динамический контент. + дописать простенькую админку - добавить/удалить новость, редактировать гостевую - и все.

Тогда вам проще не html перенести в шаблон, а добавить несколько своих страниц, на основе их дизайна, которые и будут добавить/удалить/редактировать.

  Ответить  
 
 автор: Лена   (19.03.2010 в 17:31)   письмо автору
 
   для: Рома   (19.03.2010 в 17:20)
 

Рома, а как быть с теми общедоступными страницами, в которые они хотят вставить динамический контент?

Кусок кода я показала. Куда деть тот хтмл в начале индекс-файла? Чтобы он не мешал выводу сессии? У них на главной странице - тоже динамический контент.

  Ответить  
 
 автор: neadekvat   (19.03.2010 в 19:07)   письмо автору
 
   для: Лена   (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{

Ну или, т.к. вариант с шаблонами отпадает (не делать же вам из всего этого сейчас шаблоны - слишком мнго работы получится), то собираете контент в переменные и потом выводите ниже.

  Ответить  
 
 автор: Рома   (19.03.2010 в 19:11)   письмо автору
 
   для: 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"

или вообще сделать автостарт сессии или буферизации

  Ответить  
 
 автор: neadekvat   (19.03.2010 в 19:12)   письмо автору
 
   для: Рома   (19.03.2010 в 19:11)
 

Чем так проще?
Не знаю, конечно, кому как, но мне проще собирать эти "служебные" вещи в верху файла. Ниже - только то, что требуется непосредственно для вывода в поток.

  Ответить  
 
 автор: Рома   (19.03.2010 в 19:19)   письмо автору
 
   для: neadekvat   (19.03.2010 в 19:12)
 

проще изменить некоторое количество файлов минимумом изменений или вообще конфигурацией .htaccess, и все заработает.

  Ответить  
 
 автор: neadekvat   (19.03.2010 в 19:23)   письмо автору
 
   для: Рома   (19.03.2010 в 19:19)
 

По-моему, г-жа Елена только начала делать и сейчас все находится в стадии поиска лучшего решения, поэтому представленный здесь ею код скорее всего также тестовый вариант, не раскопированный на кучи страниц (я не поверю, чтобы она сначала раскопировала, а потом поняла, что у неё ошибка "cannot send headers...").
Так что я лишь предложил наиболее удобный, на мой взгляд, вариант, когда рабочие файлы и единичные функции типа старта сессии вызываются в начале файла, а затем уже идут локальные запросы/выводы и т.д.

  Ответить  
 
 автор: Рома   (19.03.2010 в 16:19)   письмо автору
 
   для: Лена   (19.03.2010 в 15:15)
 

Плюс написала под нужды заказчика админку, естественно, сессия, в которой сохраняется информация про юзера, не передается, хедеры - тоже.

Это вообще непонятно, отсутствует идентификация или как?

  Ответить  
 
 автор: Ури Геллер   (19.03.2010 в 17:01)   письмо автору
 
   для: Лена   (19.03.2010 в 15:15)
 

и в чем проблема?

  Ответить  
 
 автор: Лена   (19.03.2010 в 17:08)   письмо автору
 
   для: Ури Геллер   (19.03.2010 в 17:01)
 

Проблема в первом посте описана русскими буквами.
Жаль, что авторы сайта не выпустили букварь.

  Ответить  
 
 автор: Loki   (19.03.2010 в 17:45)   письмо автору
 
   для: Лена   (19.03.2010 в 15:15)
 

Я так и не понял, кому нужно разделить логику и дизайн: Вам или заказчику?

  Ответить  
 
 автор: Лена   (19.03.2010 в 19:40)   письмо автору
 
   для: Loki   (19.03.2010 в 17:45)
 

Вообще-то мне, так как привыкла более-менее разделять логику и дизайн.
Я наверное, или в переменные, или в константы соберу и внизу скрипта сделаю вывод.
Просто думала, что есть какой-то другой вариант простенького шаблонизатора типа "здесь переменные принимаем - там выводим".
Меня просто session_start() с начала файла не спасет. На сайте - несколько форм, после прохождения каждой - редирект через header() будет, как я его сделаю?

  Ответить  
 
 автор: Красная_шляпа   (19.03.2010 в 20:45)   письмо автору
 
   для: Лена   (19.03.2010 в 19:40)
 

Первой строкой в самом вверху допиши

// <?
ob_start
();

а заодно на php.net зайди и скачай себе "букварь"

  Ответить  
 
 автор: Loki   (19.03.2010 в 21:25)   письмо автору
 
   для: Лена   (19.03.2010 в 19:40)
 

>Вообще-то мне, так как привыкла более-менее разделять логику и дизайн.
А какими шаблонизаторами пользовались и чем они не устроили? Надо учитывать что "простенький шаблонизатор" довольно быстро потребует либо делать полноценный, либо придумывать какие-то "костыли" для решения текущих задач. Если чувствуете в себе силы сделать полноценную реализацию - замечательно. Если нет - я бы предпочел что-то готовое.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования