|
|
|
| Подскажите пожалуйста, каким образом можно настроить отображение информации на главной странице блока новостей, если я хочу, чтобы на ней отображалось не определенное количество СИМВОЛОВ, а первый абзац текста, который, само собой, я отделяю от текста тэгом <br>?
<table width="900" cellpadding=0 cellspacing=0 border=0>
<tr><td align=center colspan=3><br><i><b>Статьи</b><br><br></td></tr>
<?php
// Выставляем уровень обработки ошибок (http://www.softtime.ru/info/articlephp.php?id_article=23)
Error_Reporting(E_ALL & ~E_NOTICE);
// Этот файл выводит первые $pnumber новостей
// Устанавлинваем соединение с базой данных
require_once("configt.php");
?>
<?php
// Запрашиваем все видимые новости, т.е. те, у которых в базе данных hide='show',
// если это поле будет равно 'hide', новость не будет отображаться на странице
$query = "SELECT * FROM texts
WHERE hide='show' AND putdate <= NOW()
ORDER BY putdate DESC
LIMIT $pnumber";
$new = mysql_query($query);
if(!$new) puterror("Ошибка при обращении к блоку новостей");
if(mysql_num_rows($new) > 0)
{
while($texts = mysql_fetch_array($new))
{
// Выводим изображение
if(trim($texts['url_pict']) != "" && trim($texts['url_pict']) != "-")
echo "<tr><td valign=top width=100><img height=100 align=right valign=top class=img src=".$texts['url_pict']."></td>";
// Формируем анонс
// Переменная $numchar содержит примерное
// количество символов в анонсе
$pos = strpos(substr($texts['body'],$numchar), " ");
// Если новость длинная, то выводим троеточие...
if(strlen($texts['body'])>$numchar) $srttmpend = "...";
else $strtmpend = "";
// Выводим заголовок новости
echo "<td width=30><td width=870 valign=top><b><i>".$texts['name']."</i></b>";
// Выводим анонс
echo "<p align=justify>".substr($texts['body'], 0, $numchar+$pos).$srttmpend;
echo "</p><p align=right><small>Дата публикации: ".$texts['putdate']."</small><br><a href=texts.php?id_texts=".$texts['id_texts']."><p align=right><b>подробно</b></a></p>";
}
}
// Выясняем общее количество новостей в базе данных, для того чтобы
// правильно отображать ссылки на последующие новости.
$tot = mysql_query("SELECT count(*) FROM texts WHERE hide='show' AND putdate <= NOW()");
if ($tot)
{
$total = mysql_result($tot,0);
// Если в базе новостей меньше чем $pnumber
// выводим их без вывода ссылки "Все новости".
if($pnumber < $total) echo "<p class='linkblock'><a href=alltexts.php class='linkblock'>Все статьи</a>";
}
else puterror("Ошибка при обращении к блоку новостей");
?>
<br><br><br>
</td>
</tr>
</table>
Конфиг, я думаю, показывать не надо:) | |
|
|
|
|
|
|
|
для: Ramzero
(23.08.2007 в 14:07)
| | Используйте strpos - находит первое вхождение некого символа в строку и например explode. Функцией explode разрываем строку на две части по первому найденому <br> (после абзаца). Первая часть абзац, вторая все остальное. | |
|
|
|
|
|
|
|
для: minas
(24.08.2007 в 04:44)
| | Простите, а Вы не могли бы показать на примере, как нужно использовать эту функцию? | |
|
|
|
|