🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.php
5 messages
5 total messages Started by LFC Sat, 04 Jun 2016 21:20
przewijanie stron - przydługie
#231377
Author: LFC
Date: Sat, 04 Jun 2016 21:20
126 lines
4570 bytes
Mam pewien problem ze stroną. Gdy ilośc publikacji się zwiększa strona 
wyświetla u dołu klawisze cofania i postępu do przesuwania podglądu, a 
właściwie wyświetlania kolejnego zestawu publikacji w tym samym oknie.
Mniemam, że tak właśnie powinno to działać, ale nie działa. Któregokolwiek 
klawisza się nie dotknie strona zostaje na aktualnym widoku.
Nie jestem masta w php, radzę sobie z prostymi rzeczami, natomiast tutaj nie 
mam pewności, czego sie tknąć, wiec prosze o jakąś podpowiedź
Całość wg mnie jest zawarta we fragmencie pliku index.php i funkcje.php.
Oto te fragmenty -
Fragment index.php:

include "funkcje.php";
		
		if(NEWS_LIMIT>0) {
			$res1 = mysql_query("SELECT COUNT(*) FROM news 
WHERE grupa='news'") or print("SQL error count");
			$arr1 = mysql_fetch_row($res1);
			$page_limit = NEWS_LIMIT;
			list($pager_buttons, $limit) = 
pager($page_limit, $arr1[0], "index.php?zakladka=aktualnosci");
		}
		$res = mysql_query("SELECT * FROM news WHERE 
grupa='news' ORDER BY id DESC ".$limit."") or print("Error read");
		while ($news = mysql_fetch_assoc($res)) {
			echo '
			<div class="news_panel">
			<p class="news_title"><span>'.
$news['data'].'</span>'.$news['tytul'].'</p>
			<div class="news">
				'.$news['wpis'].'
			</div>';
				zalaczniki($news['zalacznik']);
			echo '
			</div>
			';
		}
		if (NEWS_LIMIT>0 and ($arr1[0] > $page_limit))	echo 
$pager_buttons;

Fragment funkcje.php:

function pager($rpp, $count, $page_back='') {
    $pages = ceil($count / $rpp);

	$pagedefault = 0;

	if($page_back!='?action=news')
		$and = "/";
	else 
		$and = "&page=";

	if(isset($_GET["page"]))
		$pager =0 + $_GET["page"];
    
	if ($pager < 0)
        $pager = $pagedefault;

    $pager_left = "";

    $mp = $pages - 1;
	$as = '<<';
    if ($pager >= 1) {
        $pager_left .= "<a class=\"page_minus\" href=\"".$page_back.$and.
($pager - 1)."\">";
        $pager_left .= $as;
        $pager_left .= "</a>";
	}
    else
        $pager_left .= "<span>$as</span>";
		
	$pager_right = "";
	$as = '>>';
    if ($pager < $mp && $mp >= 0) {
        $pager_right .= "<a class=\"page_plus\" href=\"".$page_back.$and.
($pager + 1)."\">";
        $pager_right .= $as;
        $pager_right .= "</a>";
    }
    else
        $pager_right .= "<span>$as</span>";

    if ($count) {
        $pagerarr = array();
        $dotted = 0;
        $dotspace = 3;
        $dotend = $pages - $dotspace;
        $curdotend = $pager - $dotspace;
        $curdotstart = $pager + $dotspace;
        for ($i = 0; $i < $pages; $i++) {
            if (($i >= $dotspace && $i <= $curdotend) || ($i >= $curdotstart 
&& $i < $dotend)) {
                if (!$dotted)
                    $pagerarr[] = "...";
                $dotted = 1;
                continue;
            }
            $dotted = 0;
            $start = $i * $rpp + 1;
            $end = $start + $rpp - 1;
            if ($end > $count)
                $end = $count;
			$text = $i+1;
            if ($i != $pager)
                $pagerarr[] = "<a href=\"".$page_back.$and.
$i."\">$text</a>";
            else
                $pagerarr[] = "<span>$text</span>";
        }
        $pagerstr = join(" ", $pagerarr);
        $pagerbottom = "<p class=\"pager\">$pager_left $pagerstr 
$pager_right</p>\n";
    }
    else {
        $pagerbottom  = "<p class=\"pager\">$pager_left $pager_right</p>\n";
    }

    $start = $pager * $rpp;

    return array($pagerbottom, "LIMIT $start,$rpp");
}

Lata temu, gdy strona była wykonana nie było na niej publikacji, zeby 
sprawdzić działanie tej funkcji, a teraz jest za późno na reklamacje.
Trzeba samemu kombinować. Oczywiście poza tym strona działa, jak trzeba. 
-- 
LFC
Re: przewijanie stron - przydługie
#231378
Author: Borys Pogoreło
Date: Sat, 04 Jun 2016 20:35
15 lines
1261 bytes
Dnia Sat, 04 Jun 2016 23:20:01 +0200, LFC napisał(a):

> Lata temu, gdy strona była wykonana nie było na niej publikacji, zeby 
> sprawdzić działanie tej funkcji, a teraz jest za późno na reklamacje.
> Trzeba samemu kombinować. Oczywiście poza tym strona działa, jak trzeba.

Ten kod to jakiś koszmar.

Czy NEWS_LIMIT jest większe od zera?

Jak wygląda link do kolejnego zbioru wyników?

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: przewijanie stron - przydługie
#231379
Author: LFC
Date: Sun, 05 Jun 2016 22:50
25 lines
1508 bytes
Borys Pogoreło wrote:

> Dnia Sat, 04 Jun 2016 23:20:01 +0200, LFC napisał(a):
> 
>> Lata temu, gdy strona była wykonana nie było na niej publikacji, zeby
>> sprawdzić działanie tej funkcji, a teraz jest za późno na reklamacje.
>> Trzeba samemu kombinować. Oczywiście poza tym strona działa, jak trzeba.
> 
> Ten kod to jakiś koszmar.
> 
> Czy NEWS_LIMIT jest większe od zera?
> 

Tak echo pokazuje, że 5

> Jak wygląda link do kolejnego zbioru wyników?
> 

w pasku podpowiada http://www.domena.pl/index.php?zakładka=aktualnosci/1
, czy 2 w zalezności, na którym klawiszu stanie kursor, ale to nie działa 
niestety.


-- 
LFC
Re: przewijanie stron - przydługie
#231380
Author: ww
Date: Tue, 07 Jun 2016 10:36
30 lines
2312 bytes
W dniu 2016-06-06 o 00:50, LFC pisze:
> Borys Pogoreło wrote:
>
>> Dnia Sat, 04 Jun 2016 23:20:01 +0200, LFC napisał(a):
>>
>>> Lata temu, gdy strona była wykonana nie było na niej publikacji, zeby
>>> sprawdzić działanie tej funkcji, a teraz jest za późno na reklamacje.
>>> Trzeba samemu kombinować. Oczywiście poza tym strona działa, jak trzeba.
>>
>> Ten kod to jakiś koszmar.
>>
>> Czy NEWS_LIMIT jest większe od zera?
>>
>
> Tak echo pokazuje, że 5
>
>> Jak wygląda link do kolejnego zbioru wyników?
>>
>
> w pasku podpowiada http://www.domena.pl/index.php?zakładka=aktualnosci/1
> , czy 2 w zalezności, na którym klawiszu stanie kursor, ale to nie działa
> niestety.

Wygląda jakby ktoś to popsuł przy tłumaczeniu. W tym mechanizmie 
stronicowania jest wpisany wyjątek dla strony kończącej się na 
"action=news" a tu masz zmienione na "zakładka=aktualnosci". Zamiast 
tego /[numer] powinno wtedy być ?page=[numer] i to jest parametr, 
którego skrypt potem oczekuje.

Nawiasem mówiąc straszny kod.
Re: przewijanie stron - przydługie
#231381
Author: LFC
Date: Wed, 08 Jun 2016 06:47
17 lines
1521 bytes
ww wrote:

> 
> Wygląda jakby ktoś to popsuł przy tłumaczeniu. W tym mechanizmie
> stronicowania jest wpisany wyjątek dla strony kończącej się na
> "action=news" a tu masz zmienione na "zakładka=aktualnosci". Zamiast
> tego /[numer] powinno wtedy być ?page=[numer] i to jest parametr,
> którego skrypt potem oczekuje.
> 
> Nawiasem mówiąc straszny kod.

Dzieki! Działa. Zgadzam się, ten kod jest katastrofalny.
Nie jestem masta w php, ale na ogół, gdy jest kod jest dobrze napisany 
jestem w stanie zrobić jakieś drobne poprawki, lub drobne rzeczy dopisać. Tu 
osłabłem. 

LFC
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads