[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Коментарии к модулю новостей (IRBIS-com)
walters
Добрый вечер, у меня вот возникла идея добавить модулю новостей коменткрии, но вот не приложу голову как ето можно реализовать, шаблон новостей идет единый прикрутить нельзя, в шаблоне страницы тоже нельзя..

Помогите пожалуйста реализовать



Спустя 9 минут, 59 секунд (16.11.2010 - 21:12) twin написал(а):
Ну начнем с того, что шаблон можно и изменить. Что значит
Цитата
шаблон новостей идет единый прикрутить нельзя, в шаблоне страницы тоже нельзя..
Всё можно, было бы желание. Можно взять за основу гостевую книгу на SQL и объединить с новостями.

Спустя 1 минута, 40 секунд (16.11.2010 - 21:14) walters написал(а):
было бы неплохо сразу внедрить в news_controller.php чтобы автоматически выводило под новостью

Спустя 10 минут, 25 секунд (16.11.2010 - 21:24) walters написал(а):
twin
а что если разделить и сделать для краткой и полной разные шаблоны, и в контройлере сразу сделать выборку и вывести по новостью?

Спустя 5 минут, 54 секунды (16.11.2010 - 21:30) twin написал(а):
Не вопрос. Действуй)

Спустя 1 час, 4 секунды (16.11.2010 - 22:30) walters написал(а):
сделал, но хочу убедится что правильно


/**
* News line generation
* Генерация ленты новостей
*/



if(!empty($_SERVER['HTTP_REFERER'])
&&
trim($_SERVER['HTTP_REFERER'], '/') !== trim(IRB_HOST, '/')
&&
strpos($_SERVER['HTTP_REFERER'], 'about') === false)
{
$GET['news'] = 'all';
}


$tpl = getTpl('/shortnews');
$tpl2 = getTpl('/fullnews');
$news = '';

$tpl3 = getTpl('/comm');
$comm = '';





if(is_numeric($GET['news']))
{
/**
* News generation by id
* Генерация новости по id
*/

$res2 = mysqlQuery("SELECT `name`, `comm`,
DATE_FORMAT(`date`,'%d') AS `day`,
DATE_FORMAT(`date`,'%m') AS `month`,
DATE_FORMAT(`date`,'%Y') AS `year`
FROM `"
. IRB_DBPREFIX ."comments`
WHERE `id_news` = "
. (int)$GET['news']);



if (mysql_num_rows($res2) > 0)
{
$row2 = mysql_fetch_assoc($res2);

$row2['date'] = $row2['day'] . ' ' . $lang_month_string[$row2['month']] . ' ' . $row2['year'];
$row2['name'] = htmlspecialchars($row2['name']);
$row2['comm'] = htmlspecialchars($row2['comm']);


$comm = parseTpl($tpl3, $row2);
}





$res = mysqlQuery("SELECT `id`, `subtitle`, `text`,
DATE_FORMAT(`date`,'%d') AS `day`,
DATE_FORMAT(`date`,'%m') AS `month`,
DATE_FORMAT(`date`,'%Y') AS `year`
FROM `"
. IRB_DBPREFIX ."news`
WHERE `public` = 1
AND `id` = "
. (int)$GET['news']);



if (mysql_num_rows($res) > 0)
{
$row = mysql_fetch_assoc($res);

$row['date'] = $row['day'] . ' ' . $lang_month_string[$row['month']] . ' ' . $row['year'];
$row['subtitle'] = htmlspecialchars($row['subtitle']);
$row['text'] = createBBtags($row['text']);
$row['url'] = href('news=all');
$row['link'] = IRB_LANG_ALL_NEWS;

$news = parseTpl($tpl2, $row);
}
else
{
header("HTTP/1.1 404 Not Found");
exit(file_get_contents(IRB_ROOT . '/404.html'));
}

}

else
{
$res = mysqlQuery("SELECT `id`, `date`,`subtitle`,`public`,
DATE_FORMAT(`date`,'%d') AS `day`,
DATE_FORMAT(`date`,'%m') AS `month`,
DATE_FORMAT(`date`,'%Y') AS `year`,
SUBSTRING_INDEX(`text`,' ',"
. IRB_NUM_WORD_NEWS_MAIN . ") AS `text`
FROM `"
. IRB_DBPREFIX ."news`
WHERE `public` = 1
ORDER BY `id` DESC
LIMIT "
. IRB_NUM_NEWS_MAIN);

if(mysql_num_rows($res) > 0)
{
while ($row = mysql_fetch_assoc($res))
{
$row['date'] = $row['day'] . ' ' . $lang_month_string[$row['month']] . ' ' . $row['year'];
$row['subtitle'] = htmlspecialchars($row['subtitle']);
$row['text'] = createBBtags($row['text'], false) . "...";
$row['url'] = href('news=' . $row['id']);
$row['link'] = IRB_LANG_FULL_NEWS;
$news .= parseTpl($tpl, $row);
}
}

else
{
$news = IRB_LANG_NO_NEWS;
}

}




и вывод новостей уже выводим так


<div style="float:left; width:70%;"><?php echo $news; ?><br/><br/>
<?php echo $comm; ?>
</div>



ну и уже естественно шаблон для коментариев

<div  style="padding:5px; margin-top:3px; width:95%; border:1px solid">    
<
p><?php echo $tpl_date ?><br />
<
b><?php echo $tpl_name; ?></b></p>
<
p><?php echo $tpl_comm; ?></p>
</
div><br>

Спустя 15 минут, 51 секунда (16.11.2010 - 22:46) twin написал(а):
Замечательно...
Правда я сначала бы достал новость, а на основании ID , вынутого из базы, доставал бы комментарии. Это надежнее - раз, не даст вывести комменты к закрытой новости - два.

И еще, если у тебя уже используется функция BB-тегов, чего ты её на комментарии не повешаешь...

Спустя 23 минуты (16.11.2010 - 23:09) walters написал(а):
исправил( но блин не пойму почему выводится только 1 коммент а не все

Спустя 12 минут, 59 секунд (16.11.2010 - 23:22) twin написал(а):
Ну а цикл то где?

Спустя 57 минут, 25 секунд (17.11.2010 - 00:19) walters написал(а):
добавил я
 while ($row = mysql_fetch_assoc($res))


но почему то тоже только 1 коммент

Спустя 21 минута, 42 секунды (17.11.2010 - 00:41) twin написал(а):
Код в студию

Спустя 17 минут (17.11.2010 - 00:58) walters написал(а):
/**
* News line generation
* Генерация ленты новостей
*/



if(!empty($_SERVER['HTTP_REFERER'])
&&
trim($_SERVER['HTTP_REFERER'], '/') !== trim(IRB_HOST, '/')
&&
strpos($_SERVER['HTTP_REFERER'], 'about') === false)
{
$GET['news'] = 'all';
}


$tpl = getTpl('/shortnews');
$tpl2 = getTpl('/fullnews');
$news = '';

$tpl3 = getTpl('/comm');
$comm = '';





if(is_numeric($GET['news']))
{
/**
* News generation by id
* Генерация новости по id
*/







$res = mysqlQuery("SELECT `id`, `subtitle`, `text`,
DATE_FORMAT(`date`,'%d') AS `day`,
DATE_FORMAT(`date`,'%m') AS `month`,
DATE_FORMAT(`date`,'%Y') AS `year`
FROM `"
. IRB_DBPREFIX ."news`
WHERE `public` = 1
AND `id` = "
. (int)$GET['news']);



if (mysql_num_rows($res) > 0)
{
$row = mysql_fetch_assoc($res);

$row['date'] = $row['day'] . ' ' . $lang_month_string[$row['month']] . ' ' . $row['year'];
$row['subtitle'] = htmlspecialchars($row['subtitle']);
$row['text'] = createBBtags($row['text']);
$row['url'] = href('news=all');
$row['link'] = IRB_LANG_ALL_NEWS;

$news = parseTpl($tpl2, $row);


$res2 = mysqlQuery("SELECT `name`, `comm`,
DATE_FORMAT(`date`,'%d') AS `day`,
DATE_FORMAT(`date`,'%m') AS `month`,
DATE_FORMAT(`date`,'%Y') AS `year`
FROM `"
. IRB_DBPREFIX ."comments`
WHERE `id_news` = "
. (int)$GET['news']);






if (mysql_num_rows($res2) > 0)
{
while ($row2 = mysql_fetch_assoc($res2))
{
$row2['date'] = $row2['day'] . ' ' . $lang_month_string[$row2['month']] . ' ' . $row2['year'];
$row2['name'] = htmlspecialchars($row2['name']);
$row2['comm'] = htmlspecialchars($row2['comm']);


$comm = parseTpl($tpl3, $row2);
}
}



}


else
{
header("HTTP/1.1 404 Not Found");
exit(file_get_contents(IRB_ROOT . '/404.html'));
}

}

else
{
$res = mysqlQuery("SELECT `id`, `date`,`subtitle`,`public`,
DATE_FORMAT(`date`,'%d') AS `day`,
DATE_FORMAT(`date`,'%m') AS `month`,
DATE_FORMAT(`date`,'%Y') AS `year`,
SUBSTRING_INDEX(`text`,' ',"
. IRB_NUM_WORD_NEWS_MAIN . ") AS `text`
FROM `"
. IRB_DBPREFIX ."news`
WHERE `public` = 1
ORDER BY `id` DESC
LIMIT "
. IRB_NUM_NEWS_MAIN);

if(mysql_num_rows($res) > 0)
{
while ($row = mysql_fetch_assoc($res))
{
$row['date'] = $row['day'] . ' ' . $lang_month_string[$row['month']] . ' ' . $row['year'];
$row['subtitle'] = htmlspecialchars($row['subtitle']);
$row['text'] = createBBtags($row['text'], false) . "...";
$row['url'] = href('news=' . $row['id']);
$row['link'] = IRB_LANG_FULL_NEWS;
$news .= parseTpl($tpl, $row);
}
}

else
{
$news = IRB_LANG_NO_NEWS;
}

}




Спустя 7 часов, 10 минут, 51 секунда (17.11.2010 - 08:09) twin написал(а):
$comm = parseTpl($tpl3, $row2);
Посмотри внимательно. Все ли на месте.

Спустя 23 минуты, 32 секунды (17.11.2010 - 08:33) walters написал(а):
вроде всё на месте вот построение шаблона


$tpl = getTpl('/shortnews');
$tpl2 = getTpl('/fullnews');
$news = '';

$tpl3 = getTpl('/comm');
$comm = '';




а вот запрос


$res2 = mysqlQuery("SELECT `name`, `comm`,
DATE_FORMAT(`date`,'%d') AS `day`,
DATE_FORMAT(`date`,'%m') AS `month`,
DATE_FORMAT(`date`,'%Y') AS `year`
FROM `"
. IRB_DBPREFIX ."comments`
WHERE `id_news` = "
. (int)$GET['news']);






if (mysql_num_rows($res2) > 0)
{
while ($row2 = mysql_fetch_assoc($res2))
{
$row2['date'] = $row2['day'] . ' ' . $lang_month_string[$row2['month']] . ' ' . $row2['year'];
$row2['name'] = htmlspecialchars($row2['name']);
$row2['comm'] = htmlspecialchars($row2['comm']);


$comm = parseTpl($tpl3, $row2);
}
}


Спустя 1 час, 6 минут, 24 секунды (17.11.2010 - 09:39) twin написал(а):
Цитата
вроде всё на месте

Не все. Важна каждая точка.

Спустя 5 часов, 43 минуты, 39 секунд (17.11.2010 - 15:23) walters написал(а):
блин не нахожу, помоги пожалуйста

Спустя 31 минута, 28 секунд (17.11.2010 - 15:54) twin написал(а):
$comm .= parseTpl($tpl3, $row2);

Спустя 6 часов, 11 минут, 25 секунд (17.11.2010 - 22:05) walters написал(а):
спасибо большое
Вообще об этом не думал))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.