Forum. MyNuke.ru

Forum. MyNuke.ru (http://forum.mynuke.ru/index.php)
-   Настройка и Изменение (http://forum.mynuke.ru/forumdisplay.php?f=11)
-   -   Установка Page Numbers (http://forum.mynuke.ru/showthread.php?t=3339)

Sparrabeth 12.07.2008 19:50

Установка Page Numbers
 
Вот у меня в "свойствах" в админпанели сайта "количество статей на главной" поставлено 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 примерно так
PHP код:
 global $pagenum$db$storyhome$topicname$topicimage$topictext$datetime$user$cookie$nukeurl$prefix$multilingual$currentlang$articlecomm$sitename$user_news

Найти строку
PHP код:
 $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"); 

и заменить на
PHP код:
 $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"); 

и вставить перед ней следующий кусок кода
PHP код:
 $pagenum intval($pagenum);    
if (
$pagenum == "") { $pagenum ; }
$offset = ($pagenum-1) * $storynum ;
$offset intval($offset); 

Далее найти строку
PHP код:
 themeindex($aid$informant$datetime$title$counter$topic$hometext$notes$morelink$topicname$topicimage$topictext);


и после вставить
PHP код:
 $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 ;
            
$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 ;
            
$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 аналогичным способом:
В строку
PHP код:
 global $storyhome$httpref$httprefmax$topicname$topicimage$topictext$datetime$user$cookie$nukeurl$prefix$multilingual$currentlang$db$articlecomm$module_name

опять добаляем $pagenum

Строку
PHP код:
 $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"); 

заменяем на
PHP код:
 $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"); 

И добавляем перед ней код
PHP код:
 $pagenum intval($pagenum);
if (
$pagenum == "") { $pagenum ; }
$offset = ($pagenum-1) * $storynum ;
$offset intval($offset); 

Далее после кода
PHP код:
 $numrows $db->sql_numrows($db->sql_query("select * from ".$prefix."_referer"));
    if(
$numrows==$httprefmax) {
            
$db->sql_query("delete from ".$prefix."_referer");
    }
    } 

добавляем код
PHP код:
 $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 ;
            
$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 ;
            
$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.* , еще раз спасибо автору за подробное описание


Часовой пояс GMT +4, время: 08:53.

Copyright © 2005 by Soniks