Просмотр полной версии : Разработка юмор-портала
Решил создать юморной сайт цытатник с анекдотами. Всё продумав я понял, что на пути ещё много проблем. В этой теме я решил их задавать по одной.
Один вариант вёрсти вы можете посмотреть по адресу http://ptv.spb.su/ , второе в прикреплённых файлах.
Можете внести свои предложения, а за одно можете помотреть подобные сайты анекдотники/цетатники:
http://bash.org.ru/
http://www.thehumor.ru/
http://anekdots.ru/
Первый вопрос:
Как сделать, чтобы один шаблон использовался для всех страниц как это делает DLE, т.е. каждая страница брала его и подгружал в свою информацию. Или мне придётся сделать, как я это делал всегда, ... т.е. создать папку system и накидать в неё файлов наподобие "header.php", "footer.php", "module.php", название файлов говорит само за себя, а точнее в них верх страницы, низ, всякие титлы и т.д. ... и создавать всё новые страницы и вписывать в них <? echo $... ?>
Вот и вопрос...
.:EnoT:.
24.04.2008, 23:54
Ну например делаешь два файла header.php и footer.php и в них делаешь диз. Потом в каждый файл инклудишь эти два файла и соответственно то что у тебя будет между твоими файлми то и будет основным контентом. Способ стар как мир, но в целом для небольших проектов, как например ты хочешь цитатник замутить вполне пойдёт.
Простой пример:
#header.php
<html><head><title>Превед</title></head>
<body>
<div align="center">
#Остальные файлы
Приветствую вас на моём бомжатском сайте ))
#footer.php
</div></body></html>
Но если хочешь делать с шаблонизаторами, то почитай хотя бы вот эту статейку http://www.codenet.ru/webmast/php/Templater.php не прям супер, но хотя бы поймёшь принцип шаблонизаторов.
хм, я так понимаю хочешь на своей собственной cms сделать?...тогда да - используй как говорилось выше шаблонизатор, если нет то имхо лучше взять уже написанную cms.
Прежде чем писать программы для веб, автору темы надо научиться просто писать программы.
Прежде чем писать программы для веб, автору темы надо научиться просто писать программы.
Чегото я не понял смысла этого сообщения, и что означает "просто писать программы"?
Ну например делаешь два файла header.php и footer.php и в них делаешь диз. Потом в каждый файл инклудишь эти два файла и соответственно то что у тебя будет между твоими файлми то и будет основным контентом. Способ стар как мир, но в целом для небольших проектов, как например ты хочешь цитатник замутить вполне пойдёт.
Простой пример:
#header.php
<html><head><title>Превед</title></head>
<body>
<div align="center">
#Остальные файлы
Приветствую вас на моём бомжатском сайте ))
#footer.php
</div></body></html>
Ну этот способ как я понял аналогичен моему :) , только я не совсем понял как его осуществить....
А насчёт ссылки - там с мускулами (я их сейчас изучаю, но не хотелось бы пока применять), но впринципе если врубиться, то можно и переработать.
только я не совсем понял как его осуществить....
Все просто. В корне своего йуморного сайта создаешь каталог system. Кидаешь в этот каталог файл header.php следующего содержания
<html><head><title>Превед</title></head>
<body>
<div align="center">
Туда же кидаешь файл footer.php
</div></body></html>
В корень сайта кладешь index.php
<?php
include 'system/header.php';
...
?>
...
Приветствую вас на моём бомжатском сайте ))
...
<?php
...
include 'system/footer.php';
?>
В остальных скриптах делаешь точно также - в начале скрипта инклудишь хедер, в конце - футер
Ладно, понял, сделаю старым способом, а потом перейду на смарти... И так - далее...
В таких системах, как Dle, Php-nuke и т.д. реализована такая хрень, что создаётся куча страниц и внизу ссылки на переходы по ним, т.е. [1] [2] [3] [4]... так вот, как я понимаю, все статьи заносятся в мускулы, забиваются под эти цифры и при переходах они подгружаются. И ещё не понятно, страницы ведь не создаются ([1] [2] [3] [4]...) в файлах, а просто как-то подгружаются в определённый шаблон... как ето есть???
Теперь покороче - мне нужно сделать то-же самое, только без мускулов и чтобы тоже не создавались страницы, а что-то где-то подгружалось и т.д.
Конечно сложный вопрос, сложно объяснить и сложно было задать, на всякий случай прошу по-подробнее:)
Все просто. В корне своего йуморного сайта создаешь каталог system. Кидаешь в этот каталог файл header.php следующего содержания
<html><head><title>Превед</title></head>
<body>
<div align="center">
Туда же кидаешь файл footer.php
...
Фореве, чел :p , это и есть мой старый способ! :D
А в новом тогда замени include на require =)
А в новом тогда замени include на require =)
:D , не, я лучше пока старым способом (в том числе так-же как ты сказал :D ) а потом перейду на смарти
АП!!!
Ладно, понял, сделаю старым способом, а потом перейду на смарти... И так - далее...
В таких системах, как Dle, Php-nuke и т.д. реализована такая хрень, что создаётся куча страниц и внизу ссылки на переходы по ним, т.е. [1] [2] [3] [4]... так вот, как я понимаю, все статьи заносятся в мускулы, забиваются под эти цифры и при переходах они подгружаются. И ещё не понятно, страницы ведь не создаются ([1] [2] [3] [4]...) в файлах, а просто как-то подгружаются в определённый шаблон... как ето есть???
Теперь покороче - мне нужно сделать то-же самое, только без мускулов и чтобы тоже не создавались страницы, а что-то где-то подгружалось и т.д.
Конечно сложный вопрос, сложно объяснить и сложно было задать, на всякий случай прошу по-подробнее:)
ещё:
анекдоты и цитаты будут храниться в .dat файлах (или .txt) в папке tut (к примеру), чтобы скрипты могли различать один анекдот от другого их наверное нужно разделять какими-то определёнными символами, например "&_" + номер анекдота (если с номерами, то думаю, если не решить вопрос выше, то можно создать несколько страниц и в них указать типа "показывать анекдоты с &_1 по &_10, на следующей странице &_11-&_20...), и ещё всё это добро мне кажется нужно будет поместить в <pre>, это к тому, что не только я буду добавлять анекдоты, но и пользователи, через формы, и они-то я думаю не будут писать на html :D )) т.е. будет:
<pre>
&_1
- И что у вас есть в кремле?
- Ну... царь-колокол! Только он не звонит!
- Ага а ещё?
- Царь-пушка! Только она не стреляет!
- Гы! А ещё что есть?
- А ещё есть Дума...
&_2
У адвоката спрашивают:
- Сколько вы берёте?
- 1000 долларов за 3 вопроса.
- Так дорого?
- Да. И каков будет ваш третий вопрос?
&_3
Женщины бывают двух типов:
- Прелесть какая глупенькая...
- Ужас какая дура!!!
</pre>
просто как-то подгружаются в определённый шаблон
просто подгружают таблицу на нужные данные
тебе надоест добавлять, возьми цитатник иссиса на сорцы какрсас под учишь php + myqsl
тс
а че бд не юзаешь?
с файлами гемор имхо. учи Sql
Так. Автор не умеет программировать, но сразу взялся за веб.
Последствия:
1) Куча ошибок.
2) Нерасширяемость архитектуры. Хотя в данном примере даже до гаденькой архитектуры далеко.
Советую прочитать хорошие книжки по программированию либо много заниматься практикой. И тем более не спрашивать таких вопросов, а думать над их реализацией.
Советую прочитать хорошие книжки по программированию либо много заниматься практикой. И тем более не спрашивать таких вопросов, а думать над их реализацией.
Странно, а я думал, что здесь делятся опытом и помогают другим...
п.с. кому не сложно - ответьте пожалуйста на мои вопросы
п.с.2. мускулы немного поизучал, но не хочу пока к ним примыкать, пока лучше с файлами поработаю
А мой совет - это тебе надо сначало потусить на www.ucoz.ru
Регани там себе сайт и по тренируйся по делай там шаблонов себе на сайт глядишь уже многое познаешь!!!!!:)))
ещё:
анекдоты и цитаты будут храниться в .dat файлах (или .txt) в папке tut (к примеру), чтобы скрипты могли различать один анекдот от другого их наверное нужно разделять какими-то определёнными символами, например "&_" + номер анекдота (если с номерами, то думаю, если не решить вопрос выше, то можно создать несколько страниц и в них указать типа "показывать анекдоты с &_1 по &_10, на следующей странице &_11-&_20...), и ещё всё это добро мне кажется нужно будет поместить в <pre>, это к тому, что не только я буду добавлять анекдоты, но и пользователи, через формы, и они-то я думаю не будут писать на html ))
без капчи тебя спапом за 4 дня завалят
Странно, а я думал, что здесь делятся опытом и помогают другим... Я тебе помог советом - смотри мой первый пост. А ты им не воспользовался - значит помощь тебе совсем не нужна и ты нас дуришь.
Как некрасиво.
Кстате, вопрос очень интересен, но тут масса вариантов. Я обычно делаю так:
Вначале создаю файл шаблона.
<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
<?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
include('func_tpl.php');
Вот пример работы с этой функцией
<?php
echo Templated(array(
// {
'TITLE' => 'Это заменится на {TITLE}',
'NAVIGATION' => 'Это заменится на {NAVIGATION}',
'CONTENT' => 'Это заменится на {CONTENT}'
// }
));
?>
InfernoNet
25.04.2008, 21:29
ещё:
анекдоты и цитаты будут храниться в .dat файлах (или .txt) в папке tut
Собственно сам изучаю от лени всё на практике, даже жалею, нужно книжку почитать будет.
А так вот тебе похожие: https://forum.antichat.ru/thread66464.html
NOmeR1, спасибо большое! Ты для меня мини-Америку открыл))
я создал файл func_tpl.php в одной папке с main.php, немного изменил код:
<?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}" вместо "Текстовое поле", чё за хрень??? :confused:
то, что получилось: http://depositfiles.com/files/4969383
InfernoNet
26.04.2008, 01:39
И как ещё теперь сделать, чтобы остальные страницы сайта использовали main.php не создавая для них тогоже кода десять раз?
На каждой странице в коде просто приписывай: include('func_tpl.php');
ой, теперь то я понял почему у меня страница повторялась, просто в сам фалй main.php не нужно было вставлять include('func_tpl.php');...))))
InfernoNet
26.04.2008, 02:13
Если не сложно, объясните мне подетально вот этот код, а то ни черта не понимаю:
<?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); // то, что между символами "{" и "}" - объекты смарти. Остальное разные пропорции....
<?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} подгружались анекдоты не создавая при этом новых страниц. И все страницы, по которым будут ходить пользователи тоже не нужно было создавать, а просто, чтобы в них подгружалась информация.
или хотябы для начала скажите по примеру -
Раздел меню "О сайте", пользователь переходит по ссылке, а там на самом деле не страница, а шаблон с подгруженным {content} (подгрузка из указанного файла)....
Проще за тебя написать сайт, чем тебе всё разжовывать, ведь ты всё ровно ничего не поймёшь. Задавать вопросы, не зная язык програмирования - это только тратить своё и чужое время. И ещё, если ты не заметил, я это уже объяснил.
С шаблонами разобрался... кому надо - спрашивайте...
```````````````````````````````````````
Пока вот что получается... http://depositfiles.com/files/4979477
Сейчас пишу модуль добавления контента
Вот форма:
<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
$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"; из набора символов придумать не смог, чтобы пользователи не ввели их в поля, но я думаю, что на это можно будет поставить ограничения.
InfernoNet
29.04.2008, 19:42
Кстати, тоже интересует похожий вопрос, как сделать так, чтоб информацию вписать перед добавленной информацией, а не после. И еще как поставить фильтры на формы. К примеру писать в данной строке можно только цифры, а где-то только буквы и ограничение по кол-ву символов на строке.
Вы дали недостаточно информации.
Я тут попарился, написал небольшой новостной движок основанный на шаблонах.
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
и т.д.
И вообще, плсему сражу выебнуться? Надо же ведь с чего-то начинать??? Вот я и учусь, а как видишь начиная на создании новостного движка, интереснее ведь самому создать, чем ипользовате чей-то!
И всёже, я жду ответов на свои вопросы от тех, кто может помочь!
InfernoNet
30.04.2008, 17:33
Если честно, я вообще не понимаю, зачем вам сайт? Выебнуться перед друзьями? Если и есть нормальная причина, то зачем писать новый движок? Тем более у вас нет навыков програмирования на PHP. Да и вообще, для таких вещей хватило бы и хтмл'а. Ещё раз говорю, это пустая трата своего и чужого времени.
Я не пишу движок. Я познаю язык и просто пытаюсь влезть куда нибудь, чтобы узнать больше.
Кстати вопрос по поводу фильтра актуален.
NOmeR1, если допишешь движок так, чтоб каждая новость открывалась на отдельной странице и на этой отдельной странице можно было добавить еще какую-то инфу к этой новости которой не будет на главной странице, тогда будет прекрасно.
Ru}{eeZ, зетестил, движок прекрасно работает.
Мои вопросы ещё актуальны
Кстати, NOmeR1, огромное спасибо за движок, отличная вещь, особенно для изучения
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot