Одна статья в категории. Делаем красивый вывод.
Предлагаю небольшой хак на Pages, выводящий статью сразу, если она в категории одна.
Без переадресации.
Код | 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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| //верх модуля нам не интересен
function cat() {
...
$result = $db->sql_query("SELECT pid, title, hometext, date, counter FROM ".$prefix."_service WHERE cid ='$cid' AND date <= now() AND active = '1' ORDER BY pid DESC LIMIT $offset, $numpage");
//правка 1
if ($db->sql_numrows($result) > 1) {
OpenTable();
$i = 0;
while (list($p_pid, $p_title, $p_hometext, $date, $p_counter) = $db->sql_fetchrow($result)) {
formatTimestamp($date);
$hr = ($i) ? "<hr>" : "";
echo "$hr<b><a href=\"index.php?name=$module_name&op=page&pid=$p_pid\" title=\"$p_title\">$p_title</a></b><br />".bb_decode($p_hometext)."<br /><br />"._SENDDATE.": $datetime<br />"._COUNTPAGE.": $p_counter "._COUNT."";
$i++;
}
CloseTable();
}
//добавка 2
elseif ($db->sql_numrows($result) == 1) {
list($pppit) = $db->sql_fetchrow($db->sql_query("SELECT pid FROM ".$prefix."_service WHERE cid='$cid'"));
page($pppit, "", 1);
}
list($numstories) = $db->sql_fetchrow($db->sql_query("SELECT Count(pid) FROM ".$prefix."_service WHERE cid ='$cid' AND date <= now() AND active = '1'"));
$numservice = ceil($numstories / $numpage);
num_page($module_name, $numstories, $numservice, $numpage, "op=cat&id=".$cid."&");
get_page($module_name);
foot();
}
//правка 3
function page($pid, $pagenum=0, $hefu=0) {
...
//добавка 4
if (!$hefu) {
head();
title("Услуги");
OpenTable();
echo "<center><font class=\"option\">$c_title</font><br />$c_description</center>";
CloseTable();
//добавка 5
}
...
//добавка 6
if (!$hefu) {
get_page($module_name);
foot();
//добавка 7
}
} else {
Header("Location: index.php?name=".$module_name."");
}
} |
Описание:
0. Внимание! Код взят из клона Pages, не забудьте сменить запросы!
1. Изменим условие вывода правка 1 с 0 на 1. Теперь статьи как прежде выводятся, только если их 2 и больше.
2. Добавим условие добавка 2 на действия, если статья одна - запрос на pid статьи, которую и будем выводить. А так же вызовем function page относительно найденного pid.
3. Добавим новую правка 3 входящую переменную в function page, которая по умолчанию равна 0.
4. Если function page вызывается из function cat то хедер и футер нам не нужны. Повесим условие на их вывод добавка 4, 5, 6, 7
Дата публикации: 29.03.2009 Прочитано: 13865 раз |