|
Форум -> News (модуль и блок) -> Запрет на вывод категорий.. | Запрет на вывод категорий.. |
---|
JameSNSK | Дата: 07.01.2008, в 20:15 | Сообщение №1 | ПользовательПользователь №: 123 Сообщений: 48
| Подскажите как сделать в модуле news запрет на вывод определенных категорий ...
Подробнее..
Есть блок Last_News выводит последнии новости из категорий..
Хотелось бы поставить запрет на категории в модуле news которые выводятся в блоке Lasw_news...
Так же помогите пожалуйста с этим блоком.
Он проводит отбор новостей и потом отобранные выводит на главной..
Хотелось бы что бы отбор не происходил и просто в блоке отображались новости из категорий...
так же можно было поставить запрет на вывод определенных категорий..
Код | 1
| <?php
if (!defined('BLOCK_FILE')) {
Header("Location: ../index.php");
exit;
}
global $prefix, $db;
$max_num = 10; // Из скольких последних новостей происходит отбор
$see_more_num = 3; // Количество новостей на категорию.
$sql = 'SELECT
c.id, c.title, c.description, c.img, s.sid, s.aid, s.title, s.time, s.hometext, LENGTH(s.bodytext) AS bodylen, s.comments
FROM
'. $prefix. '_categories AS c
INNER JOIN
'. $prefix. '_stories AS s
ON
(s.catid = c.id)
WHERE
c.modul = \'News\' AND s.status = \'1\'
ORDER BY
c.id, s.time
DESC
LIMIT 0, '.$max_num;
$res = $db->sql_query($sql);
$news = array ();
while (list ($cid, $ctitle, $cdesc, $cimg, $sid, $aid, $stitle, $stime, $shometext, $sbodylen, $scomments) = $db->sql_fetchrow ($res))
{
if (!isset($news[$cid]))
{
$news[$cid] = array (
'title' => $ctitle,
'desc' => $cdesc,
'img' => $cimg,
);
}
$news[$cid]['news'][$sid] = array (
'aid' => $aid,
'title' => $stitle,
'time' => $stime,
'hometext' => strip_tags(bb_decode($shometext, 'News')),
'bodylen' => $sbodylen,
'scomments' => $scomments,
);
}
$num_cats = sizeof($news);
$span = ($num_cats % 2) ? false : true;
$blocks = $count = 1;
$content = '<div width="100%">';
foreach ($news AS $cid => $cat)
{
$stories = 0;
$story_text = '';
if ($num_cats > 2 AND $count == $num_cats AND !$span)
{
$width = '100%';
$float = 'left';
$pm_border = 'padding-top: 5px; border-top: 1px #CCCCCC solid;';
}
else
{
$width = '49%';
$float = ($count%2) ? 'right' : 'left';
$pm_border = '';
}
foreach ($cat['news'] AS $sid => $story)
{
if ($stories)
{
$story_text .= "<div><li><a href=\"index.php?name=News&view={$sid}\" title=\"{$story['title']}\">{$story['title']}</a></li></div>\n";
}
else
{
$story_text = '<div><b>'.$story['title'].'</b></div>'."\n".$story['hometext'];
if ($story['bodylen'] > 0) $story_text .= "<div><a href=\"index.php?name=News&view={$sid}\" title=\"Читать дальше...\">Читать дальше...</a></div>\n";
if (sizeof ($cat['news']) > 1) $story_text .= '<hr><b>Читайте также:</b>'."\n";
}
$stories++;
if ($stories >= $see_more_num) break;
}
$catimg = '';
if ($cat['img']) $catimg = "<a href=\"index.php?name=News&cat={$cid}\" title=\"{$cat['title']}\"><img src=\"images/categories/{$cat['img']}\" border=\"0\" alt=\"{$cat['title']}\" title=\"{$cat['title']}\" align=\"right\" hspace=\"5\" vspace=\"1\"></a>";
$blocks = ($blocks == 1) ? 2 : 1;
$count ++;
$clear = ($count%2 AND $count - $num_cats < 0) ? '<div style="clear:both; border-top: 1px #CCCCCC solid; width:100%; padding-top:5px; padding-bottom:5px;"></div>' : '';
$content .= <<<HTML
<div style="float:{$float}; width:{$width}; padding-bottom:5px; {$pm_border}" class="bgcolor1">
{$catimg}
<div align=left>
<h3>
<a href="/index.php?name=News&cat={$cid}" title="{$cat['title']}">{$cat['title']}</a>
</h3>
</div>
<div class="bgcolor1">
{$story_text}
</div>
</div>
{$clear}
HTML;
}
$content .= '</div>';
?> |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно JameSNSK 07.01.2008 г. в 20:18:11 |
| | | Sunvas | Дата: 07.01.2008, в 22:38 | Сообщение №2 | ПрофиПользователь №: 181 Сообщений: 552
| Если нежелаемых категорий мало, то if(){} поможет. Если их много, то тут надо делать еще одно поле в БД и графу в админке. |
| | JameSNSK | Дата: 07.01.2008, в 23:09 | Сообщение №3 | ПользовательПользователь №: 123 Сообщений: 48
| Так как я пота дуб дубом в рнр подробнее можно расписать гд прописывать и как..
Категорий мало но думаю дальше будет полезно сделать и для больших категорий... |
| | Serg_pnz | Дата: 08.01.2008, в 11:43 | Сообщение №4 | АдминистраторПользователь №: 1 Сообщений: 2242
| JameSNSK, если честно, то уж слишком здорово напутано, давай пойдем от обратного - какой по функционалу блок тебе нужен? Только прошу тебя - пиши по пунктам )) | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
| | JameSNSK | Дата: 08.01.2008, в 12:43 | Сообщение №5 | ПользовательПользователь №: 123 Сообщений: 48
| блок выводит последние новости из категорий (подкатегорий) модуля news
Распологается по середине и делится на две части по вертикали
Выводит главную новость дня..(тут вот не знаю кто то писал что можно сделать через админку что бы определенной новости давать статус НОВОСТЬ ДНЯ)
Можно сделать запрет на вывод определенных категорий
в файле прикрепил картинку..
1,2,3,4,5 - категории
6- располагается главная новость..
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно JameSNSK 08.01.2008 г. в 13:02:16
Прикрепленные файлы: |
| | Serg_pnz | Дата: 08.01.2008, в 16:32 | Сообщение №6 | АдминистраторПользователь №: 1 Сообщений: 2242
| Вот нашел какие-то запчасти...
сам сабж тут http://www.slaed.net/forum/index.php?showtopic=6163
Цитата | 10 последних с категория к которой принадлижит статья |
Код | 1
| <?php
if (!defined('BLOCK_FILE')) {
Header("Location: ../index.php");
exit;
}
$top= "10"; #количество новостей в блоке
$symbolov = 4; #количество символов в заголовке
global $prefix, $db;
$lugar=1;
$content .= "<table cellspacing=\"0\" width=\"100%\" cellpadding=\"1\" border=\"0\" align=\"left\">";
$result = $db->sql_query("SELECT s.sid, s.title, s.catid, c.title FROM ".$prefix."_stories AS s LEFT JOIN ".$prefix."_stories_cat AS c on (s.catid=c.catid) WHERE s.time <= now() AND s.status='1' ORDER BY s.time DESC LIMIT 0,$top");
while (list($sid, $s_title, $catid, $c_title ) = $db->sql_fetchrow($result)) {
$title=cutstr( $s_title, $symbolov );
if ($c_title!="") {$out_c_title="<i>категория: <a href=\"index.php?name=News&op=cat&catid=$catid\">$c_title</i>";} else {$out_c_title="";}
$content .= "<tr><td align=\"right\" >$lugar:</td><td align=\"left\" width=\"100%\"> <a href=\"index.php?name=News&op=article&sid=$sid\" title=\"$s_title\">$title</a></td></tr>"."<tr><td colspan=2>$out_c_title<hr></td></tr>";
$lugar++;
}
$content .= "</table>";
?> |
| Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
| | JameSNSK | Дата: 08.01.2008, в 21:18 | Сообщение №7 | ПользовательПользователь №: 123 Сообщений: 48
| хм не хочет работать работает только этот
но проблеммы новость выводит но нажимая на ссылку переходит на главную новостей вместо того что бы перейти на саму новость..
так же придется делать блоки в которых будет выводится каждая категория....
PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <?php if (!defined('BLOCK_FILE')) { Header("Location: ../index.php"); exit; } $top= "5"; #количество новостей в блоке $symbolov = 100; #количество символов в заголовке /* Top 10 read stories */ global $prefix, $db, $dbi; $result = $db->sql_query("SELECT sid, title FROM ".$prefix."_stories WHERE time <= now() AND status='1' ORDER BY rand() LIMIT 0,$top"); $lugar=1; $content .= "<table cellspacing=\"0\" width=\"100%\" cellpadding=\"1\" border=\"0\" align=\"left\">"; while ($row = $db->sql_fetchrow($result)) { $sid = intval($row['sid']); $title = stripslashes(check_html($row['title'], "nohtml")); $title=cutstr( $title, $symbolov ); $lugar = $lugar; $content .= "<tr><td align=\"right\" >$lugar:</td><td align=\"left\" width=\"100%\"> <a href=\"index.php?name=News&op=article&sid=$sid\">$title</a></td></tr>"; $lugar++; } $content .= "</table>"; ?> |
|
| | Serg_pnz | Дата: 08.01.2008, в 21:45 | Сообщение №8 | АдминистраторПользователь №: 1 Сообщений: 2242
| JameSNSK, да это я на скорую руку накопал, попозже надеюсь займусь вплотную | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
| | JameSNSK | Дата: 11.01.2008, в 02:18 | Сообщение №9 | ПользовательПользователь №: 123 Сообщений: 48
| Вообщем отрыл блок который был выложен в какой то теме Сержем..
Вообщем создал пока еще дополнительно два раздела для вывода категорий с остальными пока мучаюсь но думаю докумекаю сам..
Но вот тут я пока ламер вообщем нужна помощь в следующем...
1)Название разделов что бы являлись еще и ссылками на данный раздел
2)В блоках сделать вывод текста последней добавленной новости после текста что то вроде ЧИТАТЬ ДАЛЬШЕ и переход на всю новость
3) После читать дальше сделать Читать также где будет последнее №-е кол-во новостей в виде ссылок на всю новость...
4) Если новость написана в один день то она должна отображаться вроде как мигающей картинкой..(ну картинку сам подберу главное сделать ссылку если статья вчерашняя картинка одна если сегодня то картинка другая)
Идея впринципе заимствована из блока который выложен в первом посте...
PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| <?php if (!defined('BLOCK_FILE')) { Header("Location: ../index.php"); exit; }
global $prefix, $db; $strip = 30; $limit = 10; $content .= "<table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\" class=\"bgcolor4\">";
$content .= "<tr><th>Раздел1</th><th>Раздел2</th></tr><tr class=\"bgcolor1\">";
// Раздел1 $content .= "<td valign=\"top\">"; $result = $db->sql_query("SELECT sid, title, time FROM ".$prefix."_stories WHERE time <= NOW() AND status ='1' AND catid='8' ORDER BY time DESC LIMIT $limit"); while(list($sid, $title, $time) = $db->sql_fetchrow($result)) { $linkstrip = cutstr($title, $strip); $content .= "<table cellspacing=\"0\" cellpadding=\"1\" border=\"0\"><tr><td><img src=\"images/blocks/News.gif\" title=\"$title\"></td><td><a href=\"index.php?name=News&op=article&id=$sid\" title=\"$title\">$linkstrip</a></td></tr></table>"; }
// Раздел2 $content .= "<td valign=\"top\">"; $result = $db->sql_query("SELECT sid, title, time FROM ".$prefix."_stories WHERE time <= NOW() AND status ='1' AND catid='9' ORDER BY time DESC LIMIT $limit"); while(list($sid, $title, $time) = $db->sql_fetchrow($result)) { $linkstrip = cutstr($title, $strip); $content .= "<table cellspacing=\"0\" cellpadding=\"1\" border=\"0\"><tr><td><img src=\"images/blocks/News.gif\" title=\"$title\"></td><td><a href=\"index.php?name=News&op=article&id=$sid\" title=\"$title\">$linkstrip</a></td></tr></table>"; }
// Раздел3 $content .= "<tr><th width=\"50%\">Раздел3</th><th width=\"50%\">Раздел4</th></tr><tr class=\"bgcolor1\">"; // Шапка блоков $content .= "<td valign=\"top\">"; $result = $db->sql_query("SELECT sid, title, time FROM ".$prefix."_stories WHERE time <= NOW() AND status ='1' AND catid='10' ORDER BY time DESC LIMIT $limit"); while(list($sid, $title, $time) = $db->sql_fetchrow($result)) { $linkstrip = cutstr($title, $strip); $content .= "<table cellspacing=\"0\" cellpadding=\"1\" border=\"0\"><tr><td><img src=\"images/blocks/News.gif\" title=\"$title\"></td><td><a href=\"index.php?name=News&op=article&id=$sid\" title=\"$title\">$linkstrip</a></td></tr></table>"; }
// Раздел4 $content .= "<td valign=\"top\">"; $result = $db->sql_query("SELECT sid, title, time FROM ".$prefix."_stories WHERE time <= NOW() AND status ='1' AND catid='11' ORDER BY time DESC LIMIT $limit"); while(list($sid, $title, $time) = $db->sql_fetchrow($result)) { $linkstrip = cutstr($title, $strip); $content .= "<table cellspacing=\"0\" cellpadding=\"1\" border=\"0\"><tr><td><img src=\"images/blocks/News.gif\" title=\"$title\"></td><td><a href=\"index.php?name=News&op=article&id=$sid\" title=\"$title\">$linkstrip</a></td></tr></table>"; } $content .= "</td></tr></table>"; ?> |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно JameSNSK 11.01.2008 г. в 02:30:54 |
| | | Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!
|
|
SetLinks error: Incorrect password!
|
|
|
|