PDA

View Full Version : Установка Page Numbers


Sparrabeth
12.07.2008, 19:50
Вот у меня в "свойствах" в админпанели сайта "количество статей на главной" поставлено 5. А если добавить 6-ю, то самая первая (она же самая нижняя) исчезает. Я так понимаю, что чтобы их можно было посмотреть нужно установить page number. И тогда по идее должны появиться странички 1, 2, 3...55. Я скачала Page_Numbers_for_PHP-Nuke. Там всего 2 файла: index.php и categories.php. А чтобы правильно установить нужно просто загрузить эти файлы взамен соответствующих в /www/modules/News или как?

W_Wolf
12.07.2008, 21:03
по идеи - да

Sparrabeth
12.07.2008, 22:16
Эх, не выходит че-то...

Инструкция:

1) Скопируйте все файлы из папки html в директорию с нюкой
2) Откройте modules/News/language/lang-russian.php
и добавте следующие строки:

define("_STORIES","Статья,Статьи,Статей");
define("_PAGES","Страница,Страницы,Старниц");
define("_PERPAGE","на каждой по");
define("_PERPAGE2","статье,статьи,статей");

1) Сделала. Загрузила в www/modules/News
2) Добавила.

А изменений никаких... Все осталось по-прежнему...

W_Wolf
12.07.2008, 22:43
Правильно, изменений и не будет :)
Уже говорил, повторюсь, файлы из папок html нужно загружать именно в корень сайта (с заменой), т.е. в папку www, а не в папку модуля

Sparrabeth
13.07.2008, 16:36
А вот когда добавляю файлы в корень, с заменой файла index.php, то при заходе на сайт белая страница и надпись:

You can't access this file directly...

W_Wolf
13.07.2008, 17:53
Нет, файлы в корень добавлять ненадо. Я имел ввиду что в корень надо добавить папку modules которая лежит в папке html.
ps: если после этого работать не будет, то проверьте, совпадает ли версия нюки и патча.

Sparrabeth
13.07.2008, 20:07
Не-а, не вышло((( Может я тормоз какой... :sad:

Вообщем вот что я делала (пошагово):

1) Значит у меня есть скачанный архив и в нем следующие файлы: папка Page_Numbers_76, в ней папка html и файл readme, в папке html папка modules, в папке modules папка News, в папке News файлы categories.php и index.php.
Значит я через тотал командер добавила папку modules и все ее содержимое в www моего сайта.
2) Я зашла в modules/News/language/lang-russian.php и добавила строки:
define("_STORIES","Статья,Статьи,Статей");
define("_PAGES","Страница,Страницы,Старниц");
define("_PERPAGE","на каждой по");
define("_PERPAGE2","статье,статьи,статей");

Всё. Больше ничего не делала. И никаких изменений :cry:

Моя нюка: PHP-NUKE-7.6_rus_patched_3.0_phpbb_2.0.19
Мой патч: ХАК Page Numbers для верси PHP-NUKE 7.6 + pached 2.9

W_Wolf
13.07.2008, 21:15
Ну во-первых что бы были изменения нужно что бы новостей было больше 10, а во-вторых различаются версии патчей. Так что возможно этот хак работать и небудет. По-идеи нужно вручную редактировать файлы index.php и categories.php (и возможно БД) под свою нюку, но к сожалению я не знаю как, так как с нюкой незнаком :mad:

Что то я уже загоняться начал, совсем думать перестал головой :oooo:

Вот что надо изменить что бы хак работал:
Ни чего заливать ненадо, т.е. оставлять все файлы как есть, стандартные нюковские и их и редактировать.
Далее по пунктам:
Открыть файл modules/News/index.php и в строке 29 добавить $pagenum примерно так
global $pagenum, $db, $storyhome, $topicname, $topicimage, $topictext, $datetime, $user, $cookie, $nukeurl, $prefix, $multilingual, $currentlang, $articlecomm, $sitename, $user_news;
Найти строку
$result = $db->sql_query("SELECT sid, catid, aid, title, time, hometext, bodytext, comments, counter, topic, informant, notes, acomm, score, ratings FROM ".$prefix."_stories $qdb $querylang ORDER BY sid DESC limit $storynum");
и заменить на
$result = $db->sql_query("SELECT sid, catid, aid, title, time, hometext, bodytext, comments, counter, topic, informant, notes, acomm, score, ratings FROM ".$prefix."_stories $qdb $querylang ORDER BY sid DESC limit $offset, $storynum");
и вставить перед ней следующий кусок кода

$pagenum = intval($pagenum);
if ($pagenum == "") { $pagenum = 1 ; }
$offset = ($pagenum-1) * $storynum ;
$offset = intval($offset);

Далее найти строку

themeindex($aid, $informant, $datetime, $title, $counter, $topic, $hometext, $notes, $morelink, $topicname, $topicimage, $topictext);
}
и после вставить

$sql_pn = "select * from ".$prefix."_stories $qdb $querylang";
$result_pn = $db->sql_query($sql_pn);
$numstories = $db->sql_numrows($result_pn);
$numpages = ceil($numstories / $storynum);
if ($numpages > 1) {
OpenTable();
function numeral($n, $s){
$n=abs($n);
$a=split(",", $s);
$l1=$n-((int)($n/10))*10;
$l2=$n-((int)($n/100))*100;
if(11<=$l2 and $l2<=14){
$e=$a[2];
} else {
if($l1==1) $e=$a[0];
if(2<=$l1 and $l1<=4) $e=$a[1];
if((5<=$l1 and $l1<=9) or $l1==0) $e=$a[2];
}
if($e=="") $e=$a[0];
return($e);
}
$pages_d = numeral($numpages,""._PAGES."");
$perpage2_d = numeral($storynum,""._PERPAGE2."");
$stories_d = numeral($numstories,""._STORIES."");
echo "<center>$numstories $stories_d ($numpages $pages_d "._PERPAGE." $storynum $perpage2_d )<br>" ;
if ($pagenum > 1) {
$prevpage = $pagenum - 1 ;
$leftarrow = "images/left.gif" ;
if(isset($new_topic)) {
echo "<a href=\"modules.php?name=News&new_topic=$new_topic&pagenum=$prevpage\">";
echo "<img src=\"$leftarrow\" align=\"absmiddle\" border=\"0\" hspace=\"10\"></a>";
} else {
echo "<a href=\"modules.php?name=News&pagenum=$prevpage\">";
echo "<img src=\"$leftarrow\" align=\"absmiddle\" border=\"0\" hspace=\"10\"></a>";
}
}
echo "[ " ;
for ($i=1; $i < $numpages+1; $i++) {
if ($i == $pagenum) {
echo "<b>$i</b>";
} else {
if(isset($new_topic)) {
echo "<a href=\"modules.php?name=News&new_topic=$new_topic&pagenum=$i\">$i</a>";
} else {
echo "<a href=\"modules.php?name=News&pagenum=$i\">$i</a>";
}
}
if ($i < $numpages) { echo " | "; } else { echo " ]"; }
}
if ($pagenum < $numpages) {
$nextpage = $pagenum + 1 ;
$rightarrow = "images/right.gif" ;
if(isset($new_topic)) {
echo "<a href=\"modules.php?name=News&amp;new_topic=$new_topic&amp;pagenum=$nextpage\">";
echo "<img src=\"$rightarrow\" align=\"absmiddle\" border=\"0\" hspace=\"10\"></a>";
} else {
echo "<a href=\"modules.php?name=News&amp;pagenum=$nextpage\">";
echo "<img src=\"$rightarrow\" align=\"absmiddle\" border=\"0\" hspace=\"10\"></a>";
}
}
echo "</center>" ;
CloseTable();
}


После изменяем файл categories.php аналогичным способом:
В строку global $storyhome, $httpref, $httprefmax, $topicname, $topicimage, $topictext, $datetime, $user, $cookie, $nukeurl, $prefix, $multilingual, $currentlang, $db, $articlecomm, $module_name;
опять добаляем $pagenum

Строку $result = $db->sql_query("SELECT sid, aid, title, time, hometext, bodytext, comments, counter, topic, informant, notes, acomm, score, ratings FROM ".$prefix."_stories where catid='$catid' $querylang ORDER BY sid DESC limit $storynum");
заменяем на
$result = $db->sql_query("SELECT sid, aid, title, time, hometext, bodytext, comments, counter, topic, informant, notes, acomm, score, ratings FROM ".$prefix."_stories where catid='$catid' $querylang ORDER BY sid DESC limit $offset, $storynum");
И добавляем перед ней код
$pagenum = intval($pagenum);
if ($pagenum == "") { $pagenum = 1 ; }
$offset = ($pagenum-1) * $storynum ;
$offset = intval($offset);

Далее после кода

$numrows = $db->sql_numrows($db->sql_query("select * from ".$prefix."_referer"));
if($numrows==$httprefmax) {
$db->sql_query("delete from ".$prefix."_referer");
}
}

добавляем код

$numstories = $db->sql_numrows($db->sql_query("select * from ".$prefix."_stories where catid='$catid' $querylang "));
$numpages = ceil($numstories / $storynum);
if ($numpages > 1) {
OpenTable();
function numeral($n, $s){
$n=abs($n);
$a=split(",", $s);
$l1=$n-((int)($n/10))*10;
$l2=$n-((int)($n/100))*100;
if(11<=$l2 and $l2<=14){
$e=$a[2];
} else {
if($l1==1) $e=$a[0];
if(2<=$l1 and $l1<=4) $e=$a[1];
if((5<=$l1 and $l1<=9) or $l1==0) $e=$a[2];
}
if($e=="") $e=$a[0];
return($e);
}
$pages_d = numeral($numpages,""._PAGES."");
$perpage2_d = numeral($storynum,""._PERPAGE2."");
$stories_d = numeral($numstories,""._STORIES."");
echo "<center>$numstories $stories_d ($numpages $pages_d "._PERPAGE." $storynum $perpage2_d )<br>" ;
if ($pagenum > 1) {
$prevpage = $pagenum - 1 ;
$leftarrow = "images/left.gif" ;
echo "<a href=\"modules.php?name=News&amp;file=categories&amp;op=newindex&amp;catid=$catid&amp;pagenum=$prevpage\">";
echo "<img src=\"$leftarrow\" align=\"absmiddle\" border=\"0\" hspace=\"10\"></a>";
}
echo "[ " ;
for ($i=1; $i < $numpages+1; $i++) {
if ($i == $pagenum) {
echo "<b>$i</b>";
} else {
echo "<a href=\"modules.php?name=News&amp;file=categories&amp;op=newindex&amp;catid=$catid&amp;pagenum=$i\">$i</a>";
}
if ($i < $numpages) { echo " | "; } else { echo " ]"; }
}
if ($pagenum < $numpages) {
$nextpage = $pagenum + 1 ;
$rightarrow = "images/right.gif" ;
echo "<a href=\"modules.php?name=News&amp;file=categories&amp;op=newindex&amp;catid=$catid&amp;pagenum=$nextpage\">";
echo "<img src=\"$rightarrow\" align=\"absmiddle\" border=\"0\" hspace=\"10\"></a>";
}
echo "</center>" ;
CloseTable();
}



Незабываем конечно изменить лэнг файлы :smile:

Sparrabeth
13.07.2008, 22:53
я все поменяла как сказано, но пока ничего не появилось))) наверное надо ждать пока минимум 10 статей появятся, да?)))))

W_Wolf
13.07.2008, 23:02
да, надо 10 статей :)
если не терпиться - можно добавить статьи любые бредовые, просто для проверки :)))

Sparrabeth
19.07.2008, 02:15
Ну вообщем набралось у меня 10 статей, я выбрала отражение по 5 статей на странице (и на главной 5) и функция заработала, но коряво.

Сама функция работает, но прямо под ней рамочка с надписью:

Fatal error: Cannot redeclare numeral() (previously declared in /home/m53299/public_html/modules/News/index.php:150) in /home/m53299/public_html/modules/News/index.php on line 216

Плюс ко всему исчезают все правые блоки.

Но если в админке обратно поменять 5 статей на 10 (именно на главной странице), то блоки возвращаются и рамочка с ошибкой исчезает.

Воть...

W_Wolf
19.07.2008, 10:47
Проверьте ещё раз, что нигде не допустили ошибок при установке Page Numbers, должно всё работать нормально

Sparrabeth
19.07.2008, 23:47
Починила :) Заменила через Тотал Командер файлы index.php и categories.php в modules/News на те, что были в патче, и все заработало! Спасибо! :)

W_Wolf
20.07.2008, 10:39
странно что работает :))) по идеи не должно, так как файлы разные :)

Sparrabeth
21.07.2008, 18:44
эх, ну все-таки у меня нюка 7.6 и эта версия патча тоже 7.6. наверное поэтому и работает :)

xapepama
10.01.2010, 21:52
если чуть поколдовать то вся процедура легко становиться и на версию 8.* , еще раз спасибо автору за подробное описание