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 или как?
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) Добавила.
А изменений никаких... Все осталось по-прежнему...
Правильно, изменений и не будет :)
Уже говорил, повторюсь, файлы из папок html нужно загружать именно в корень сайта (с заменой), т.е. в папку www, а не в папку модуля
Sparrabeth
13.07.2008, 16:36
А вот когда добавляю файлы в корень, с заменой файла index.php, то при заходе на сайт белая страница и надпись:
You can't access this file directly...
Нет, файлы в корень добавлять ненадо. Я имел ввиду что в корень надо добавить папку 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
Ну во-первых что бы были изменения нужно что бы новостей было больше 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&new_topic=$new_topic&pagenum=$nextpage\">";
echo "<img src=\"$rightarrow\" align=\"absmiddle\" border=\"0\" hspace=\"10\"></a>";
} else {
echo "<a href=\"modules.php?name=News&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&file=categories&op=newindex&catid=$catid&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&file=categories&op=newindex&catid=$catid&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&file=categories&op=newindex&catid=$catid&pagenum=$nextpage\">";
echo "<img src=\"$rightarrow\" align=\"absmiddle\" border=\"0\" hspace=\"10\"></a>";
}
echo "</center>" ;
CloseTable();
}
Незабываем конечно изменить лэнг файлы :smile:
Sparrabeth
13.07.2008, 22:53
я все поменяла как сказано, но пока ничего не появилось))) наверное надо ждать пока минимум 10 статей появятся, да?)))))
да, надо 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 (именно на главной странице), то блоки возвращаются и рамочка с ошибкой исчезает.
Воть...
Проверьте ещё раз, что нигде не допустили ошибок при установке Page Numbers, должно всё работать нормально
Sparrabeth
19.07.2008, 23:47
Починила :) Заменила через Тотал Командер файлы index.php и categories.php в modules/News на те, что были в патче, и все заработало! Спасибо! :)
странно что работает :))) по идеи не должно, так как файлы разные :)
Sparrabeth
21.07.2008, 18:44
эх, ну все-таки у меня нюка 7.6 и эта версия патча тоже 7.6. наверное поэтому и работает :)
xapepama
10.01.2010, 21:52
если чуть поколдовать то вся процедура легко становиться и на версию 8.* , еще раз спасибо автору за подробное описание