0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 35
1

Шаблоны

19.01.2010, 16:56. Показов 4904. Ответов 41
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте форумчане.
Пишу движок сам и не хочу прописывать дизайн для каждой страницы отдельно.
Как мне сделать так чтобы дизайн в виде:
PHP
1
2
3
4
5
6
<html koDbI>
{header}
<html koDbI>
{body}
<html koDbI>
{footer}
а в сами {body} и т.д. были уже заполнены содержимым. Как мне сделать просто чтобы этот файл открывался и заливался а у него вставлялся мой код в нужные участки и {body} менялся в зависемости от того какая это страница там с новостями то чтобы материалы выводились( скрипт есть) а где статестическая страница чтобы просто заголовок и текст.

Типа как видели в движке DLE.

Все скрипты (вывод новостей прочая муть) есть! Мне только нужно сделать чтобы в определенном файле можно было прописывать дизайн. Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2010, 16:56
Ответы с готовыми решениями:

Логика и шаблоны
Здравствуйте, ув пользователи! Прежде чем задам свой вопрос, хочу сказать, если Я написал не в...

Парсим шаблоны
Подскажите пожалуйста скрипт, при помощи которого можно парсить шаблоны... Тоесть заменять часть...

Шаблоны на php
имеется файл index.php в файле нужно вывести /design/index.tpl и подключить внутрь контент ...

Не просматриваются шаблоны сайтов на php
Доброго времени суток! Настроил я apache+php+mysql по принципу, описанному...

41
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
19.01.2010, 21:04 2
Есть такая штука - Smarty. DLE , если я не ошибаюсь, использует технологию Smarty.
1
172 / 101 / 10
Регистрация: 22.02.2009
Сообщений: 440
19.01.2010, 23:32 3
На все твои вопросы по этой теме ответы тут. Официальный мануал с примерами на русском языке имеется.
1
Программист
107 / 111 / 9
Регистрация: 27.09.2009
Сообщений: 331
20.01.2010, 10:14 4
Цитата Сообщение от dimjan4 Посмотреть сообщение
DLE , если я не ошибаюсь, использует технологию Smarty.
нет,джумла использует по-моему.А в ДЛЕ свой шаблонизатор стоит.
2
356 / 315 / 48
Регистрация: 21.04.2009
Сообщений: 574
20.01.2010, 18:20 5
Спроси у гугла
2
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 35
20.01.2010, 19:31  [ТС] 6
Спасибо за ссылки, но хотелось бы свое =)
0
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
20.01.2010, 19:35 7
Цитата Сообщение от Ali_run Посмотреть сообщение
но хотелось бы свое
Юзай str_replace
PHP
1
2
$file = file_get_contents('./tmp.html');
$file=str_replace("{body}",$cto_vstavljaem,$file);
0
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 35
20.01.2010, 21:11  [ТС] 8
ссылка удалена

посмотрите. А если мне не просто значение переменной вывести надо а php код то как делать?
0
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
20.01.2010, 22:10 9
Попробуй так:
PHP
1
2
3
4
5
$file = file_get_contents('./tmp.html');
function Mine(){
.....
}
$file=str_replace("{body}",Mine(),$file);
0
Программист
107 / 111 / 9
Регистрация: 27.09.2009
Сообщений: 331
21.01.2010, 15:16 10
Цитата Сообщение от dimjan4 Посмотреть сообщение
Попробуй так:
Код PHP1
2
3
4
5 $file = file_get_contents('./tmp.html');
function Mine(){
.....
}
$file=str_replace("{body}",Mine(),$file);
в таком случае майн должна возвращать готовый хтмл код.

Добавлено через 36 секунд
а чем вас смарти не устраивает?
я вот с ним пишу
0
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 35
21.01.2010, 15:16  [ТС] 11
А если у меня 2 файла шаблонов. Ну допустим в одном основное а в другом как показывать новость.

Вот я создал функцию присвоил ей контент

PHP
1
$news_tpl = str_replace("{content}",show_news(),$news_tpl);
а функция:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function show_news()
{   
    $material_tpl=file_get_contents("/templates/wwc/material.tpl");
 
    $q="SELECT * FROM news ORDER BY id DESC LIMIT 0,4";
    $res=mysql_query($q);
    
    $id = "{$row['id']}";
    $name = "{$row['name']}";
    $text = "{$row['text_s']}";
    $views = "{$row['views']}";
    $author = "{$row['author']}";
    
    $material_tpl = ereg_replace("{id}", $id, $material_tpl);
    $material_tpl = ereg_replace("{name}", $name, $material_tpl);
    $material_tpl = ereg_replace("{text}", $text, $material_tpl);
    $material_tpl = ereg_replace("{views}", $views, $material_tpl);
    $material_tpl = ereg_replace("{author}", $author, $material_tpl);
 
    
    while($row=mysql_fetch_array($res))
    { 
      /* Вот здесь хочу сделать вывод их из базы по шаблону. */
    }
}
Вот сам этот материал.tpl
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<table style='margin-top: 10px' width=100%>
 <tr>
 <td background='/design/wwc/images/newsc.png'  width='467' height='31'><div style='margin-bottom: 4px'> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href='/news/{id}/'>{id} &nbsp;&nbsp;{name}</a></div></td>
 </tr>
</table>
{text}
<table width='100%'>
 <tr>
 
 <td class='news' align='right'>Просмотров: {views} | Автор: {author} | {$row['date']} | <font color='#3B84D0'><a href='/news/{id}/'>Читать далее...</a></font></td>
 </tr>
</table>
<table width='100%'>
 
<tr>
<td class='hr_line'></td>
</tr>
</table>
<hr width='100%' size='2'>
0
Программист
107 / 111 / 9
Регистрация: 27.09.2009
Сообщений: 331
21.01.2010, 15:18 12
юзай смарти)) там всё просто.И всё продумали за тебя давно)))
0
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 35
21.01.2010, 16:05  [ТС] 13
Говорюже свое хочу. Темболее смарти для больших сайтов. И я в нем не разобрался =) Хотя даж не пытался. Народ помогите с этим вопросом Шаблоны.

Добавлено через 16 минут
И вы мне подсказали сделать через функцию. Не робит!

Он выводит эту функцию до вывода шаблона хотя функция прописана почти в конце шаблона
0
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 35
23.01.2010, 15:07  [ТС] 14
ап, ответте пожалуйста. Движок стоит
0
390 / 229 / 11
Регистрация: 09.12.2009
Сообщений: 668
30.01.2010, 01:03 15
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function show_news()
{       
        $q = "SELECT * FROM news ORDER BY id DESC LIMIT 0,4";
        $res = @mysql_query($q)
            or die("Error: ". mysql_error()); 
        $material_tpl = '';
        while($row = @mysql_fetch_array($res))
        { 
            /* Вот здесь хочу сделать вывод их из базы по шаблону. */
            $material_tpl_tmp = file_get_contents("/templates/wwc/material.tpl");
        $material_tpl_tmp = str_replace('{id}', $row['id'], $material_tpl_tmp);
        $material_tpl_tmp = str_replace('{name}', $row['name'], $material_tpl_tmp);
        $material_tpl_tmp = str_replace('{text}', $row['text'], $material_tpl_tmp);
        $material_tpl_tmp = str_replace('{views}', $row['views'], $material_tpl_tmp);
        $material_tpl_tmp = str_replace('{author}', $row['author'], $material_tpl_tmp);
            $material_tpl .= $material_tpl_tmp;
        }
        return $material_tpl;
        // или если ты выводишь, то:
        echo $material_tpl;
}
Добавлено через 3 минуты
И еще.
в шаблоне
PHP
1
{$row['date']}
исправь. Шаблон не знает, что за переменная такая $row
0
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 35
30.01.2010, 22:33  [ТС] 16
Ну это функция. а выводить ее как потом? прировнять к переменной контент?

Просто все функции у меня выводятся до начала шаблона а не в том месте где я им указал
0
390 / 229 / 11
Регистрация: 09.12.2009
Сообщений: 668
30.01.2010, 22:38 17
По моему информации у тебя уже более чем достаточно!
Не умеешь писать свое - используй смарти. Умеешь - не задавай глупых вопросов!
0
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 35
07.02.2010, 10:57  [ТС] 18
Все таки проблема не решена. Что мне делать? Функции досих пор выводятся не там где нужно. Они выводятся даже до начала шаблона, а не внутри него.
0
390 / 229 / 11
Регистрация: 09.12.2009
Сообщений: 668
07.02.2010, 15:43 19
Функции выводятся там, где ты их выводишь.
Это же элементарно, Ватсон (с)
0
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 35
07.02.2010, 15:53  [ТС] 20
Ну смотрите. Сделал я ну там подключение базы все такое потот
PHP
1
2
3
4
function show_news()
{
 тут тело
}
дальше опять все что нужно потом
PHP
1
$main_tpl = ereg_replace("{content}", show_news(), $main_tpl);
и в шаблоне вывожу ее в центре таблицы а у меня она до всехо выводится даже есть Исходный код посмотреть через браузер до <head> и всего остального
0
07.02.2010, 15:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2010, 15:53
Помогаю со студенческими работами здесь

Как получить текст из исходников сайта (php, tpl-шаблоны)
Здравствуйте. Поиск ничего не дал, извиняюсь если было. Есть сайт на php, используются tpl шаблоны....

Хранить шаблоны документов в базе и выводить данные в эти шаблоны
Доброго времени суток. Интересует вопрос: мне необходимо формировать вордовские документы по...

Чем отличаются шаблоны HTML и шаблоны WordPress
В чём различие между шаблонами HTML и WordPress. Кроме того, что создаются они разными способами....

«Шаблоны шаблонов» vs «шаблоны с параметрами-шаблонами».
«Шаблоны шаблонов» vs «шаблоны с параметрами-шаблонами». Есть ли разница в этих понятиях? Если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru