mobisaite
Участник
- Сообщения
- 308
- Реакции
- 63
Предложение создать новости с комментариями думаю будет полезно для ферм, мини ТЗ:
1) При нажатии на Заглавие новости должны попадать на страницу данной новости
2) на данной странице можно добавлять комментарии
3) Постраничная навигация комментов
Ну и мое небольшое начало в htacess прописываем
делаем запросы в базу 1 сами новости стандартный запрос
2 для коментариев
следующий шаг создание страницы для отдельного вывода каждой новости
1) При нажатии на Заглавие новости должны попадать на страницу данной новости
2) на данной странице можно добавлять комментарии
3) Постраничная навигация комментов
Ну и мое небольшое начало в htacess прописываем
PHP:
# Новости
RewriteRule ^news(/?)+$ index.php?menu=news [L]
RewriteRule ^news/([-a-zA-Z0-9_]+)(/?)+$ index.php?menu=news&name=$1 [L]
PHP:
CREATE TABLE IF NOT EXISTS `db_news` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`news` text NOT NULL,
`date_add` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;
PHP:
CREATE TABLE IF NOT EXISTS `db_news_com` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`news_id` int(11) NOT NULL,
`login` varchar(55) NOT NULL,
`date` int(11) NOT NULL,
`type` int(1) NOT NULL,
`text` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Последнее редактирование:
mobisaite
Участник
- Сообщения
- 308
- Реакции
- 63
Нет новости все на одной странице пока)) а при нажатии на Заглавие новости мы попадаем уже на ее страницу а там так же описание + можно оставить коментkvozimir написал(а):ты хочешь чтоб каждая новая новость была на отдельноей странице???
типа так Всем привет мы открылить ниже типа оставить коменты
на второй станице типа Внимание запущен конкурс рефералов ниже оставить коменты
Ну такого не имеем,а вот новости с возможностью оставить положительный либо отрицательный голос есть...))mobisaite написал(а):Нет новости все на одной странице пока)) а при нажатии на Заглавие новости мы попадаем уже на ее страницу а там так же описание + можно оставить комент
mobisaite
Участник
- Сообщения
- 308
- Реакции
- 63
модераторы замените первый пост
Выкладываю новости с комментариями сделала сама тестила только на денвере
Выкладываю новости с комментариями сделала сама тестила только на денвере
[HIDE=50]
заменить скрипт в файле _news.php
прописать в .htacess
сделать запрос в базу
[/HIDE]
заменить скрипт в файле _news.php
Код:
<?
$usname = $_SESSION["user"];
$usid = $_SESSION["user_id"];
$date = time();
$en = 10; // Стоимость отзыва
$db->Query("SELECT * FROM db_news");
$news = $db->FetchArray();
$newsid = $news['id'];
$db->Query("SELECT * FROM db_users_b WHERE id = '$usid' LIMIT 1");
$user_data = $db->FetchArray();
if(isset($_GET['name'])) {
$name = htmlspecialchars($_GET['name'], ENT_QUOTES, 'windows-1251');
$q = $db->Query("SELECT * FROM db_news WHERE id = '$name'");
$us_inf = $db->FetchArray($q);
$us = $us_inf['id'];
if(isset($_POST['comment'])) {
$type = intval($_POST['type']);
$com = htmlspecialchars($_POST['comment'], ENT_QUOTES, 'windows-1251');
if (preg_match("/https:\/\/|http:\/\/|[0-9a-z_]+\.[a-z\/]{2,4}/i", $name)) # запрещаем символы < и >
{ echo "<center><b><font color = 'red'>коментарий содержит запрещенные символы</font></b></center><BR />";
} else {
$db->Query("SELECT * FROM db_news_com WHERE news_id = '$us' AND login = '$usname'");
if(!empty($com)) {
if($type == 1 or $type == 2 or $type == 3) {
if($en <= $user_data["money_b"]){
if($db->NumRows() <= 100) {
$db->Query("INSERT INTO db_news_com (news_id, login, date, type, text) VALUES ('$us', '$usname', '$date', '$type', '$com')");
$db->Query("UPDATE db_users_b SET money_b = money_b - '$en' WHERE id = '$usid'");
$ms = '<center><font color="green">Отзыв успешно оставлен!</font></center>';
header('Refresh: 1;URL=/news/'.$name);
}else echo "<center><font color = 'red'><b>Оставлять разрешено не более 100 коментариев к одной новости!</b></font></center><BR />";
}else echo "<center><font color = 'red'><b>Недостаточно энергии</b></font></center><BR />";
}else echo "<center><font color = 'red'><b>Введите тип коментария</b></font></center><BR />";
}else echo "<center><font color = 'red'><b>Введите текст комментария</b></font></center><BR />";
}}
if( $name == $newsid) {
echo "<center><b><font color = 'red'>Новости не существует</font></b></center><BR />";
} else {
?>
<div class="s-bk-lf">
<div class="acc-title">Новость #<?=$us_inf['id']; ?> - <?=$us_inf["title"]; ?></div></div>
<div class="silver-bk"><div class="clr"></div>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="left"><h3><font color = '#0F7196'></font></h3></td>
<td align="right"><strong><font color = '#0F7196'><?=date("d.m.Y",$us_inf["date_add"]); ?></font></strong></td>
</tr>
<tr>
<td colspan="2"><font color = '#0F7196'><?=$us_inf["news"]; ?></font></td>
</tr>
</table>
<BR />
<script language="JavaScript">
function show(obj) {
if (document.getElementById(obj).style.display == 'none')
document.getElementById(obj).style.display = 'block';
else document.getElementById(obj).style.display = 'none';
}
</script>
<br>
<center>
<?=$ms; ?>
<span onclick="show('1')"><a onclick="return false"><button type="button">Оставить комментарий</button></a></span>
<td>
</td><br><br>
<span class="sub" id="1" style="display: none;">
<form method="post" action="">
<label>Тип комментария</label>
<select name="type" size="1">
<option value="1" selected>Нейтральный</option>
<option value="2">Положительный</option>
<option value="3">Отрицательный</option>
</select>
<br>
<textarea name="comment" rows="5" cols="40"></textarea>
<br />
<input class="buttonmail" type="submit" name="com_send" value="Добавить" />
</form>
<br><br>
Стоимость добавления комментария - 10 энергии.
</span>
</center>
<br>
<div class="s-bk-lf">
<div class="acc-title">Коментарии </div>
</div>
<hr>
<?
$db->Query("SELECT * FROM db_news_com WHERE news_id = '$us' ORDER BY id DESC");
if($db->NumRows() == 0) {
?>
<center>Нет коментариев</center>
<?
}
}
while($rt = $db->FetchArray()) {
if($rt['type'] == 1) {$type = '<font color="#5E6068">Нейтральный коментарий</font>'; }elseif($rt['type'] == 2) {$type = '<font color="#008000">Положительный коментарий</font>';} elseif($rt['type'] == 3) {$type = '<font color="#db0000">Отрицательный коментарий</font>';}
?>
<table width="100%" border="0" align="center" cellspacing="0" class="tbl_stat">
<tr>
<td width="70"></td>
<td valign="top" class="nobdr">
<?=date('d-m-Y H:i', $rt['date']); ?> <b><?=$type; ?></b>
<b><a href='/account/wall/<?=$rt['login']; ?>' target='_blank'><?=$rt['login']; ?></a></b>
<img src="/img/star_yellow17.png" alt="Рейтинг" width="17" height="17" border="0" align="absmiddle" title="Рейтинг"> <font color="#2FA0DC"><?=$us_inf['rating']; ?></font>
<br><br>
<?=$rt['text']; ?>
</td>
</tr> </table>
<tr>
<td colspan="2"><hr></td>
</tr>
<? } ?>
<br><br>
</div>
<div class="clr"></div>
</div>
<? } else {?>
<?PHP
$_OPTIMIZATION["title"] = "Новости";
$_OPTIMIZATION["description"] = "Новости проекта";
$_OPTIMIZATION["keywords"] = "Новости нашего проекта";
?>
<div class="s-bk-lf">
<div class="acc-title">Новости</div></div>
<div class="silver-bk">
<?PHP
$db->Query("SELECT * FROM db_news ORDER BY id DESC");
if($db->NumRows() > 0){
while($news = $db->FetchArray()){
?>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="left"><h3><font color = '#0F7196'><?=$news["title"]; ?></font></h3></td>
<td align="right"><strong><font color = '#0F7196'><?=date("d.m.Y",$news["date_add"]); ?></font></strong></td>
</tr>
<tr>
<td colspan="2"><font color = '#0F7196'><?=$news["news"]; ?></font></td>
</tr>
<tr>
<td colspan="2"><b><a href='/news/<?=$news["id"]; ?>' target='_blank'>Коментировать</a></b></td>
</tr>
</table>
Код:
# Новости
RewriteRule ^news(/?)+$ index.php?menu=news [L]
RewriteRule ^news/([-a-zA-Z0-9_]+)(/?)+$ index.php?menu=news&name=$1 [L]
Код:
CREATE TABLE IF NOT EXISTS `db_news_com` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`news_id` int(11) NOT NULL,
`login` varchar(55) NOT NULL,
`date` int(11) NOT NULL,
`type` int(1) NOT NULL,
`text` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
Последнее редактирование:
Попробовал,поставил... или чего то не то в коде,хотя странно,ведь он рабочий... но у меня не отображается ни чего,чистая страница и видимо ошибка при подключении к БД...mobisaite написал(а):модераторы замените первый пост
Выкладываю новости с комментариями сделала сама тестила только на денвере
***Hidden text***
mobisaite
Участник
- Сообщения
- 308
- Реакции
- 63
Забыла там энергия нужна для отправки замените en на money_b и поменяйте стили где заголовок страницы на своиalexsoft59 написал(а):Попробовал,поставил... или чего то не то в коде,хотя странно,ведь он рабочий... но у меня не отображается ни чего,чистая страница и видимо ошибка при подключении к БД...
Последнее редактирование:
Блин,не помогло и это даже...))mobisaite написал(а):Забыла там энергия нужна для отправки замените en на money_b
mobisaite
Участник
- Сообщения
- 308
- Реакции
- 63
Заменила код исправила все что забылаalexsoft59 написал(а):Блин,не помогло и это даже...))
Последнее редактирование:
ну да,теперь под сполером только ***Hidden text*** и видно...))mobisaite написал(а):Заменила код исправила все что забыла
не,серьезно просто пишет ***Hidden text*** при нажатии на сполер,до смены кода был порядок...))mobisaite написал(а):я все прекрасно вижу не знаю что у тебя
mobisaite
Участник
- Сообщения
- 308
- Реакции
- 63
Нажми на сполер в моем сообщении а не в своемalexsoft59 написал(а):не,серьезно просто пишет ***Hidden text*** при нажатии на сполер,до смены кода был порядок...))
Ну да,так и было видимо...)) Только один фиг не работает,ладно,будем разбираться сами...mobisaite написал(а):Нажми на сполер в моем сообщении а не в своем
Блин,да что такое то,не могу ни как понять просто,почему не работает то??????? Может кто то устанавливал себе?mobisaite написал(а):Заменила код исправила все что забыла
dima20010628
Участник
- Сообщения
- 83
- Реакции
- 10
Я могу...))dima20010628 написал(а):а кто может поделиться кодом новостей с оценками(нравится,не нравится ) ?
dima20010628
Участник
- Сообщения
- 83
- Реакции
- 10
Поделись пожалуйстаalexsoft59 написал(а):Я могу...))
PHP:
<?PHP
$_OPTIMIZATION["title"] = "Новости";
$_OPTIMIZATION["description"] = "Новости проекта";
$_OPTIMIZATION["keywords"] = "Новости нашего проекта";
?>
<div class="s-bk-lf">
<div class="acc-title">Новости</div>
</div>
<div class="silver-bk"><div class="clr"></div>
<font color = "#000"><?PHP
$usid = $_SESSION["user_id"];
//Vote news
if(isset($_GET['id_ans'])) { //Dis Like
if($_GET['rating'] == "dislike") {
$dislike = 1;
$oklike = 0;
$like = "-";
//$db->Query("UPDATE db_otziv SET like = like + 1 WHERE id = '$id_ans'");
} elseif ($_GET['rating'] == "oklike") {
$dislike = 0;
$oklike = 1;
$like = "+";
//$db->Query("UPDATE db_otziv SET like = like + 1 WHERE id = '$id_ans'");
} else {
echo "<font color=\"red\"><center>Неизвестная ошибка! Обратитесь к администрации!</center></font>";
}
$id_ans = intval($_GET['id_ans']);
$db->Query("SELECT * FROM db_vote_news WHERE user_id = '$usid' AND id_news = '$id_ans'");
if ($db->NumRows() >= 1) {
echo "<font color=\"red\"><center>Вы уже оценивали данный отзыв!</center></font>";
} else {
$db->Query("INSERT INTO db_vote_news (user_id, dislike, oklike, id_news) VALUES ($usid, $dislike, $oklike, $id_ans) ");
$db->Query("UPDATE db_news SET `like` = `like` $like 1 WHERE id = '$id_ans'");
echo "<font color=\"green\"><center>Ваша оценка принята!</center></font>";
}
}
$db->Query("SELECT * FROM db_news ORDER BY id DESC");
if($db->NumRows() > 0){
while($news = $db->FetchArray()){
?>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="left"><h3><font color = "#802B0F"><?=$news["title"]; ?></font></h3></td>
<td align="right"><strong><div class="line-st1"><font color = "#802B0F"><?=date("d.m.Y",$news["date_add"]); ?></font></div></strong></td>
</tr>
<tr>
<td colspan="2"><?=$news["news"]; ?></td>
</tr>
<tr>
<?php
if ($news['like'] > 0) {
$like = '<font color="green">'.$news['like'].'</font>';
} elseif($news['like'] < 0) {
$like = '<font color="red">'.$news['like'].'</font>';
} elseif ($news['like'] == 0) {
$like = $news['like'];
}
if (!$usid) {
echo "<td><a href=\"#\" onClick=\"alert('Вам требуется авторизоваться, чтобы оценить запись')\"><img src=\"http://s17.rimg.info/95958c121924bc27780adcb3d382cb2e.gif\"></a> ".$like;
echo " <a href=\"#\" onClick=\"alert('Вам требуется авторизоваться, чтобы оценить запись')\"><img src=\"http://s20.rimg.info/fc15db41ec50ab9dd0dd06be83d545c4.gif\"></a></td>";
} else {
echo '<td><a href="/?menu=news&id_ans='.$news['id'].'&rating=dislike"><img src="http://s17.rimg.info/95958c121924bc27780adcb3d382cb2e.gif"></a> '.$like;
echo ' <a href="/?menu=news&id_ans='.$news['id'].'&rating=oklike"><img src="http://s20.rimg.info/fc15db41ec50ab9dd0dd06be83d545c4.gif"></a></td>';
}
?>
</tr>
</table>
<BR />
<center><img src="/img/tretwer.png" alt=""></center>
<?PHP
}
}else echo "<center>Новостей нет :(</center>";
?>
</div><font>
<div class="clr"></div>
Последнее редактирование:
mobisaite
Участник
- Сообщения
- 308
- Реакции
- 63
какую ячейку???luba написал(а):не скинеш ячейку плиз!