Я тебе помог советом - смотри мой первый пост. А ты им не воспользовался - значит помощь тебе совсем не нужна и ты нас дуришь. Как некрасиво.
Кстате, вопрос очень интересен, но тут масса вариантов. Я обычно делаю так: Вначале создаю файл шаблона. Code: <html> <head> <style> body { background: #3F3F3F; } table { text-size: 11px; color: #FFFFFF; } </style> <title>{TITLE}</title> </head> <body> <table align="center" width="70%"><tr><td valign="top" width="30%"> {NAVIGATION} </td><td valign="top"> {CONTENT} </td></tr></table> </body> </html> Затем пишу простейшую функцию к примеру в файл func_tpl.php Code: <?php function Templated($array) { // { $file = 'template/main.php'; // Файл шаблона // } $content = file_get_contents($file); foreach($array as $tag => $value) { $content = str_replace('{'.$tag.'}', $value, $content); } return $content; } ?> Далее в каждом файле надо будет проинклудить func_tpl.php Code: include('func_tpl.php'); Вот пример работы с этой функцией Code: <?php echo Templated(array( // { 'TITLE' => 'Это заменится на {TITLE}', 'NAVIGATION' => 'Это заменится на {NAVIGATION}', 'CONTENT' => 'Это заменится на {CONTENT}' // } )); ?>
Собственно сам изучаю от лени всё на практике, даже жалею, нужно книжку почитать будет. А так вот тебе похожие: /thread66464.html
NOmeR1, спасибо большое! Ты для меня мини-Америку открыл)) я создал файл func_tpl.php в одной папке с main.php, немного изменил код: Code: <?php function Templated($array) { $file = 'main.php'; // Файл шаблона $content = file_get_contents($file); foreach($array as $tag => $value) { $content = str_replace('{'.$tag.'}', $value, $content); } return $content; } echo Templated(array( 'TITLE' => 'Анекдоты', 'NAVIGATION' => 'Это заменится на {NAVIGATION}', 'CONTENT' => 'Текстовое поле' )); ?> Как я понял, это - смарти В шаблоне задал теги.... А как теперь сделать, чтобы 'CONTENT' => 'Текстовое поле' вместо "Текстовое поле" можно было разместить инклуду на файл (menu.php). И как ещё теперь сделать, чтобы остальные страницы сайта использовали main.php не создавая для них тогоже кода десять раз? ```````````````````````````` Блин, только сейчас заметил, всё нормально за исключением того, что если каплю прокрутить страницу - там точно такаяже страница за исключением того, что прямо отображается "{CONTENT}" вместо "Текстовое поле", чё за хрень??? то, что получилось: http://depositfiles.com/files/4969383
ой, теперь то я понял почему у меня страница повторялась, просто в сам фалй main.php не нужно было вставлять include('func_tpl.php');...))))
Если не сложно, объясните мне подетально вот этот код, а то ни черта не понимаю: PHP: <?php function Templated($array) { // { $file = 'template/main.php'; // Файл шаблона // } $content = file_get_contents($file); foreach($array as $tag => $value) { $content = str_replace('{'.$tag.'}', $value, $content); } return $content; } ?>
Как я понял, этот файл задаёт азы смарти, т.е. $content = str_replace('{'.$tag.'}', $value, $content); // то, что между символами "{" и "}" - объекты смарти. Остальное разные пропорции....
Code: <?php function Templated($array) { // { $file = 'template/main.php'; [SIZE=1][COLOR=Green]// Файл шаблона[/COLOR][/SIZE] // } $content = file_get_contents($file); [SIZE=1][COLOR=Green]// Получаем исодник шаблона[/COLOR][/SIZE] foreach($array as $tag => $value) { [SIZE=1][COLOR=Green]// Перебираем массив с шаблонными тегами[/COLOR][/SIZE] $content = str_replace('{'.$tag.'}', $value, $content); [SIZE=1][COLOR=Green]// Заменяем в исходнике шаблона {НАЗВАНИЕ_ТЕГА} на значение элемента массива с ключём НАЗВАНИЕ_ТЕГА[/COLOR][/SIZE] } return $content; [SIZE=1][COLOR=Green]// Возвращаем получившийся исходник[/COLOR][/SIZE] } ?> Как видно, ничего проще нет
теперь.... как сделать, чтобы в {content} подгружались анекдоты не создавая при этом новых страниц. И все страницы, по которым будут ходить пользователи тоже не нужно было создавать, а просто, чтобы в них подгружалась информация. или хотябы для начала скажите по примеру - Раздел меню "О сайте", пользователь переходит по ссылке, а там на самом деле не страница, а шаблон с подгруженным {content} (подгрузка из указанного файла)....
Проще за тебя написать сайт, чем тебе всё разжовывать, ведь ты всё ровно ничего не поймёшь. Задавать вопросы, не зная язык програмирования - это только тратить своё и чужое время. И ещё, если ты не заметил, я это уже объяснил.
С шаблонами разобрался... кому надо - спрашивайте... ``````````````````````````````````````` Пока вот что получается... http://depositfiles.com/files/4979477
Сейчас пишу модуль добавления контента Вот форма: Code: <form method="POST" action="system/news/add.php"> <table border="0" width="100%"> <tr><td> Ваше имя:</td><td width="85%"><input type="text" name="user_name" style="width: 200px"> </td><td></td></tr> <tr><td> Ваш E-mail:</td><td><input type="text" name="email" style="width: 200px"> </td><td></td></tr> <tr><td> Автор:</td><td width="85%"><input type="text" name="author" style="width: 200px"> </td><td></td></tr> <tr><td> Раздел:</td><td><select name="section" size="1" style="width: 200px"> <option selected value="kat1">KAT1 <option value="kat2">KAT2 <option value="kat3">KAT3 <option value="kat4">KAT4 </select> </td><td></td></tr> <tr><td colspan="2"> <textarea style="width:100%;height:250px" name="text_news"> </textarea> </td></tr> <tr><td colspan="2"> <input type="submit" value="Отправить"> <input type="reset" value="Очистить"> </td></tr> </table> </form> Вот PHP код: PHP: <?php $user_name = $_POST['user_name']; $email = $_POST['email']; $author = $_POST['author']; $section = $_POST['section']; $text_news = $_POST['text_news']; @$fp = fopen ("news_new.txt", "w"); if (!$fp) { echo "<p>Типа облом...</p>"; exit; } $contents = "/1<$user_name>/2<$email>/3<$author>/4<$section>/5<$text_news>\n"; $res = fwrite($fp, $contents); fclose($fp); ?> 1. Как сделать так, чтобы вносимая информация не заменяла старую, а какбы вписывалась перед той? 2. Как сделать так, чтобы перед каждой новостью появлялась надпись со свойственной ей цыфрой, типа "&_1, &_2, &_3..."? 3. Как сделать фильтры, чтобы категория (section) и поле для ввода новости (text_news) были обязательными и при отсутствии осуществлялся переход на определённую страницу? 4. Как сделать, чтобы поле для ввода новостей не принимало новости, которые короче 50и символов и при недопустимом значении происходило перенаправление на туже страниуц, что выше? 5. Как сделать фильтры на "http://" и "www"? При использовании таковых комбинаций происходит переход на туже страницу, что и выше. п.с. Тут ничего умнее, как $contents = "/1<$user_name>/2<$email>/3<$author>/4<$section>/5<$text_news>\n"; из набора символов придумать не смог, чтобы пользователи не ввели их в поля, но я думаю, что на это можно будет поставить ограничения.
Кстати, тоже интересует похожий вопрос, как сделать так, чтоб информацию вписать перед добавленной информацией, а не после. И еще как поставить фильтры на формы. К примеру писать в данной строке можно только цифры, а где-то только буквы и ограничение по кол-ву символов на строке.
Вы дали недостаточно информации. Я тут попарился, написал небольшой новостной движок основанный на шаблонах. http://dump.ru/files/p/p19804734/ Если честно, я вообще не понимаю, зачем вам сайт? Выебнуться перед друзьями? Если и есть нормальная причина, то зачем писать новый движок? Тем более у вас нет навыков програмирования на PHP. Да и вообще, для таких вещей хватило бы и хтмл'а. Ещё раз говорю, это пустая трата своего и чужого времени.
Спасибо конечно за скрипт, классная штука, только ошибок много, буквально на каждой странице... Notice: Undefined index: login in T:\home\localhost\site\admin.php on line 11 Notice: Undefined index: login in T:\home\localhost\site\admin.php on line 12 Notice: Undefined index: password in T:\home\localhost\site\admin.php on line 13 Notice: Undefined index: do in T:\home\localhost\site\admin.php on line 16 Notice: Undefined index: do in T:\home\localhost\site\admin.php on line 51 и т.д. И вообще, плсему сражу выебнуться? Надо же ведь с чего-то начинать??? Вот я и учусь, а как видишь начиная на создании новостного движка, интереснее ведь самому создать, чем ипользовате чей-то! И всёже, я жду ответов на свои вопросы от тех, кто может помочь!
Я не пишу движок. Я познаю язык и просто пытаюсь влезть куда нибудь, чтобы узнать больше. Кстати вопрос по поводу фильтра актуален. NOmeR1, если допишешь движок так, чтоб каждая новость открывалась на отдельной странице и на этой отдельной странице можно было добавить еще какую-то инфу к этой новости которой не будет на главной странице, тогда будет прекрасно. Ru}{eeZ, зетестил, движок прекрасно работает.
Мои вопросы ещё актуальны Кстати, NOmeR1, огромное спасибо за движок, отличная вещь, особенно для изучения