|
|
|
|
|
|
|
11.02.2010, 04:01
огромное спасибо за множество интереснейшей информации.
остался только один вопрос по энциклопедии - сложно ли ограничить количество терминов на странице (например 30), а то 1000 статей на странице не особенно элегантно выглядит?
|
|
|
|
|
|
|
19.02.2010, 18:26
raucher т.е. как я понял вам нужна разбивка на страницы при просмотре страницы одной буквы в энциклопедии, так?
|
|
|
|
|
|
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть". |
|
|
|
|
|
|
|
|
|
22.02.2010, 02:36
именно так. я лимитировал $result3 через $min, $perpage, но последующие страницы при просмотре страницы одной буквы в энциклопедии не показываются, к сожалению. я нашел множество модулей на основе энциклопедии, но все без нужного решения для nuke 6.9
|
|
|
|
|
|
|
22.02.2010, 16:19
Выложите модуль, который у вас, посмотрим, что можно сделать
|
|
|
|
|
|
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть". |
|
|
|
|
|
|
|
|
|
22.02.2010, 18:43
я перепробоал несколько вариантов, наример:
PHP код:
function terms($eid, $ltr, $min) {
global $module_name, $prefix, $sitename, $db, $perpage, $admin;
$perpage = 3;
$eid = intval($eid);
if (empty($eid))
{
$eid = '';
}
$row = $db->sql_fetchrow($db->sql_query("SELECT active FROM ".$prefix."_encyclopedia WHERE eid='$eid'"));
$active = intval($row['active']);
$row2 = $db->sql_fetchrow($db->sql_query("SELECT title FROM ".$prefix."_encyclopedia WHERE eid='$eid'"));
$title = stripslashes(check_html($row2['title'], "nohtml"));
include("header.php");
title("$title");
OpenTable();
$tid = intval($tid);
if (($active == 1) OR (is_admin($admin))) {
if (($active != 1) AND (is_admin($admin))) {
echo "<center>"._YOURADMINENCY."</center><br><br>";
}
echo "<center>Please select one term from the following list:</center><br><br>"
."<table border=\"0\" align=\"center\">";
$result3 = $db->sql_query("SELECT tid, title FROM ".$prefix."_encyclopedia_text WHERE UPPER(title) LIKE '$ltr%' AND eid='$eid' limit $min, $perpage");
$min = 0;
$perpage = 3;
$fullcountresult = $db->sql_query("SELECT tid, title FROM ".$prefix."_encyclopedia_text WHERE UPPER(title) LIKE '$ltr%' AND eid='$eid'");
$numrows = $db->sql_numrows($fullcountresult);
if ($numrows == 0) {
echo "<center><i>"._NOCONTENTFORLETTER." $ltr.</i></center>";
}
while ($row3 = $db->sql_fetchrow($result3)) {
$tid = intval($row3['tid']);
$title = stripslashes(check_html($row3['title'], "nohtml"));
echo "<tr><td><a href=\"modules.php?name=$module_name&op=content&tid=$tid\ ">$title</a></td></tr>";
}
echo "</table><br><br>";
alpha($eid);
} else {
echo "<center>"._ENCYNOTACTIVE."<br><br>"
.""._GOBACK."</center>";
}
if ($numrows > 0)
/* Calculates how many pages exist. Which page one should be on, etc... */
$linkpagesint = ($numrows / $perpage);
$linkpageremainder = ($numrows % $perpage);
if ($linkpageremainder != 0) {
$linkpages = ceil($linkpagesint);
if ($numrows < $perpage) {
$linkpageremainder = 0;
}
} else {
$linkpages = $linkpagesint;
}
/* Page Numbering */
if ($linkpages!=1 && $linkpages!=0) {
echo "<br><br>";
echo ""._PAGE.": ";
$prev=$min-$perpage;
if ($prev>=0) {
echo " <b>[ <a href=\"modules.php?name=$module_name&op=terms&eid=$eid&lt r=$ltr&min=$prev&\">";
echo " << "._PREVIOUS."</a> ]</b> ";
}
$counter = 1;
$currentpage = ($max / $perpage);
while ($counter<=$linkpages ) {
$cpage = $counter;
$mintemp = ($perpage * $counter) - $perpage;
if ($counter == $currentpage) {
echo "<b>$counter</b> ";
} else {
echo "<a href=\"modules.php?name=$module_name&op=terms&eid=$eid&lt r=$ltr&min=$mintemp&\">$counter</a> ";
}
$counter++;
}
$next=$min+$perpage;
if ($x>=$perpage) {
echo " <b>[ <a href=\"modules.php?name=$module_name&op=terms&eid=$eid&lt r=$ltr&min=$max&\">";
echo " "._NEXT." >></a> ]</b> ";
}
}
echo "</td></tr></table>"; CloseTable();
include("footer.php");
}
во вложении находится 2-й вариант с полным кодом. если вам легче работать с оригиналом, я его сразу же сброшу
спасибо
raucher
|
|
|
|
|
|
|
|
|
|
23.02.2010, 21:05
попробуйте такой вариант,только не факт что не будет ошибок, т.к. не проверялось это.
|
|
|
|
|
|
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть". |
|
|
|
|
|
|
|
|
|
24.02.2010, 01:58
ребята, вы лучше всех!
на некоторых форумах этот вопрос остался неотвеченным многие годы. я по быстому проверил: все работает, ошибки на экране отсутствуют.
огромное спасибо Soniks за помощь и терпение в общении с некомпететными новичками, как я
raucher
|
|
|
|
|
|
|
24.02.2010, 16:20
рад был помочь
|
|
|
|
|
|
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть". |
|
|
|
|
|
|
|
|
Опции темы |
Поиск в этой теме |
|
|
Опции просмотра |
Линейный вид
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:34.
|
|
|
|
|
|
|
|
|
|
|
|
|