Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Нужны новости

6.7K
30 мая 2004 года
Brook
16 / / 30.05.2004
Ситуация такая: Нужно сделать сайт, который будет содержать новостную ленту. Так вот, нудно чтобы эту ленту можно было править не из кода а каким-либо автоматизированным способом. Подскажите, как это можно сделать. Заранее спасибо!
287
30 мая 2004 года
Shiizoo
958 / / 14.03.2004
Немало зависит от того, как у тебя эти самые новости выбираются (я так полагаю, из БД).

А вообще делается это не сложно. Если ты уже организовал сессии, то введи "rank" (имхо ранг) пользователя, которые кидается в переменные сессии или тихо и спокойно лежит в бд. Вариант 1 - организовать редактирование новостей на лету.

-Пользователь переходит в раздел новостей

-Скрипт подгружается, совершает предварительные действия и т.п.
-Скрипт проверяет ранк пользователя:
a) если rank < 1 (ну, к примеру), "просто"
показать новости.
b) если rank > 1 (или как там), скрипт добавляет
кнопки "редактировать"/"удалить", либо отображает тексты новостей не в таблицах, параграфах, или как там, а в поле <textarea> </textarea> (где новость можно править сразу), и опять же кнопки редактировать/удалить.

Допустим ты отредактировал новость, нажал "подтвердить". Данные передаются нашему скрипту (тому же самому, или отдельному, кому как удобнее). Скрипт проверяет id сессии, если упользователя с этим id`ом ранк > 1, то идти далее, иначе послать пользователя обратно, откуда пришел.

Под далее подразумевались проверка данных на запрещенные символы, на присутствие/отсутствие html тэгов, разбиение строк (можно вместо этого использовать аттрибут wrap тэга textarea) и прочие манипуляции над данными.

Если все прошло нормально новость либо удаляется из БД, либо изменяется, либо еще как..

Извини, что столь "запутано" получилось, я сейчас сам себя не понимаю.. Ночь на дворе, хочется спать=) Я описал тебе кое-какие основы, которых тебе должно хватить, чтобы сделать то, что хотелось. Может что-то упустил, сейчас не найду=)

Ой.. Только сейчас заметил, "править не из кода а каким-либо автоматизированным способом". Хм, значит в БД ты новостей не хранишь=)))

В любом случае, пользуешь ты БД, или нет, все работает по этой схеме, с некоторыми изменениями. Если новости храняться в файлах - будет чуууууууть посложнее, что в принципе не страшно. Если новостей будет много, жа и даже если нет, я бы советовал пользовать БД, хотя бы для разминки. С ней легче справиться и т.п. и т.д.

В общем всё, спать хотю, потом эту тему додумаем=))) Если что непонятно, напиши, разжуем..
6.7K
31 мая 2004 года
Brook
16 / / 30.05.2004
Ну вообще-то дело то в том, что пока что ничего и нигде не храню, просто это нужно сделать, а БД использовать - не знаю на каком хостинге все это собираются размещать ... Так что лучше было бы конечно сделать это какими-нибудь файлами...[COLOR=skyblue]1[/COLOR]
2.0K
31 мая 2004 года
BlackMarket
95 / / 10.04.2004
Цитата:
Originally posted by Brook
Ну вообще-то дело то в том, что пока что ничего и нигде не храню, просто это нужно сделать, а БД использовать - не знаю на каком хостинге все это собираются размещать ... Так что лучше было бы конечно сделать это какими-нибудь файлами...[COLOR=skyblue]1[/COLOR]



Предлагаю свои услуги - опиши подробней как ты хочешь сделать эту новостную ленту свою - я сделаю..по быренькому. Только ПОДРОБНЕЙ ОПИШИ - ЧТО ТЫ ХОЧЕШЬ!!! ...и отсылай мне и на мэйл и по форуму тоже.

6.7K
01 июня 2004 года
Brook
16 / / 30.05.2004
Цитата:
Originally posted by BlackMarket


Предлагаю свои услуги - опиши подробней как ты хочешь сделать эту новостную ленту свою - я сделаю..по быренькому. Только ПОДРОБНЕЙ ОПИШИ - ЧТО ТЫ ХОЧЕШЬ!!! ...и отсылай мне и на мэйл и по форуму тоже.



Ну вообщем так... Нужна просто новостная лента, в которую можно было бы от лица админа вносить изменения и которая могла содержать бы теги. Новости по идее должны быть простые, ьез возможности просмотри конкретной новости в отдельном окне, просто чтобы при добавлении новой новости или ее изменении эти изменения вносились бы в текст HTML-ки, которая отображается в данном фрейме. Ну и при этом если новостей становится много - они автоматически разбивались бы на несколько страниц с соответствующими ссылками на следующую/предыдущую.

Я аонимаю что это проще сделать на MySQL, но пока что не знаю, потдерживает ли это тот хостинг, где все это предполагается размещать.

К сожалению на почту продублировать отсюда не получается... Ну а мой мыл: [email]brookian@rambler.ru[/email]

Заранее спасибо!

2.0K
01 июня 2004 года
BlackMarket
95 / / 10.04.2004
Ok..жди..скоро будет.., а насчет MySql и прочего не волнуйся..:).. я таким сам не занимаюсь..пока.. сижу на халявных хостингах, а там базы сыпяться все время..потому все делается через файло.
2.0K
02 июня 2004 года
BlackMarket
95 / / 10.04.2004
Извини что долго..деньги кончились за и-нет:(
Короче я тут кое-что налабал...оно работает - проверял..Мелочи всякие пусть гуру подскажут..
Записи(см. ниже) находятся в файле news.php в виде массива...Инклудиш куда угодно этот файл и циклом выводишь все записи..Записи можно удалять, создавать и...всего 2 файла:)... Буду не скоро..денег на нэт нет(см. myinfo почему)..потому если что обращайся к людям на форум.

Файл test.php
Код:
<table width=100%>
<form action="./test.php" method=post>
<tr><td colspan=4></td></tr>
<tr>
<td align=center width=50% colspan=4><font color=#ff0000>Здесь вроде бы сообщение:
</font><textarea name="newtxt" rows=5 cols=50></textarea></td>
</tr>
<tr><td align=center colspan=3><input type=submit name="go" value="Записать новость">
</td></tr>
<tr><td colspan=3>
</td></tr>
<tr><td colspan=3>Обновить страницу</td></tr>
</table>


..


<table width=100% border=1>
 <tr><td align=center>

<?
//comm
if (@$go) {
require_once("./news.php");
$count++;
$txt[$count]=$newtxt;
$f=fopen("./news.php","a+");
flock($f,LOCK_EX);    
ftruncate($f,0);//comm
$newtxt="";
for($i=$count;$i>=0;$i--)
if(@$txt[$i])
    $newtxt=$newtxt."
    \$txt[$i]=\""
.@$txt[$i]."\";";//comm
$newtxt="<?
\$count=$count;
$newtxt
?>
"
;
fwrite($f,$newtxt);    
fflush($f);
flock($f,LOCK_UN);  
fclose($f);          }
?>

</td></tr></table>
<table width=100% border=1>

<?
//comm
if (@$del) {
require_once("./news.php");
$f=fopen("./news.php","a+");
flock($f,LOCK_EX);  
ftruncate($f,0);//comm
$newtxt="";
for($i=$count;$i>=0;$i--)
if (!($i==$rec)) $newtxt=$newtxt."
    \$txt[$i]=\""
.@$txt[$i]."\";";//comm
$newtxt="<?
\$count=$count;
$newtxt
?>
"
;
fwrite($f,$newtxt);
echo "!!!";
fflush($f);  
flock($f,LOCK_UN);
fclose($f);        
}
?>
<?
//comm
require_once("./news.php");
for($i=$count;$i>=0;$i--)
if (@$txt[$i])
echo "<tr><td>".@$txt[$i]."</td></tr>
<tr><td>
<form action=\"./test.php\" method=\"post\">
<input type=\"hidden\" name=\"rec\" value=\"$i\">
<input type=\"submit\" name=\"del\" value=\"Удалить сообщение $i\">
</form></td></tr>
"
;
//comm
?>


</table>


Файл news.php
 
Код:
<?

$count=0;

?>


Заполненый файл news.php выглядит примерно так:
Код:
<?

$count=0;

    $txt[6]="запись..";

    $txt[5]="запись..";

    $txt[3]="запись..";

    $txt[2]="запись..";

    $txt[1]="запись..";

    $txt[0]="запись..";
?>


С авторизацией разберись сам...Посмотри если что на нижние топы...там разбирали...Конечно же через сессию..или Authorize или как там его..
Всем пока буду не скоро...дэнего нет на инет..
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог