Topic: Puslapių vartymas: echo $PagingX['navigation'];

Sveiki visi. Turiu klausimą: koks PHP programinis kodas puslapių vertimui, pvz. šios svetainės apačioje --> www.nemokami-skelbimai.net
Dabar aš įdėjęs tokį kodą echo $PagingX['navigation']; bet jis rodo visus esamus puslapius - www.skelbimukai.lt
Tad gal kas žinote, gal galite patart koks turėtų būti tas kodas? Ačiū už atsakymus.

Apsilankyk www.Norim.lt™, gar rasi ko naudingo sau ar savo draugams

Re: Puslapių vartymas: echo $PagingX['navigation'];

Norim wrote:

Sveiki visi. Turiu klausimą: koks PHP programinis kodas puslapių vertimui, pvz. šios svetainės apačioje --> www.nemokami-skelbimai.net
Dabar aš įdėjęs tokį kodą echo $PagingX['navigation']; bet jis rodo visus esamus puslapius - www.skelbimukai.lt
Tad gal kas žinote, gal galite patart koks turėtų būti tas kodas? Ačiū už atsakymus.

Na, tema kaip ir galėtų būti uždaryta, nes kodas "rastas". Tačiau tik vienas:

$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
for ($i = 1; $i < 5; $i++) {
        $add = $page > 3 ? $page - 3 : 0;
        echo "<a href='?page=".($i+$add)."'>".($i+$add)."</a>".($i < 4 ? " | " : "");
}

Gal kas žinote dar kokį?

Apsilankyk www.Norim.lt™, gar rasi ko naudingo sau ar savo draugams

3 (edited by aivaras37 2013-10-08 15:45:46)

Re: Puslapių vartymas: echo $PagingX['navigation'];

žinoma!

<?php

class Paginator extends Database
{
    public $iTotal;
    public $iPages;
    public $iCurrentPage;

    public function paginate($sQuery, $iLimit = 20, $iPage = 1)
    {
        if (isset($_GET['page'])) {
            $iPage = (int) $_GET['page'];
        }
        if ($iPage == 0) {
            $iPage = 1;
        }

        $this->iCurrentPage = $iPage;

        if ($this->iTotal == null) {
            $this->iTotal = $this->num_rows($sQuery);
        }
        $iStart = $this->iCurrentPage * $iLimit - $iLimit;

        if ($this->iPages == null) {
            if ($this->iTotal > 0) {
                $iPages = floor($this->iTotal / $iLimit);
                if ($iPages * $iLimit != $this->iTotal) {
                    $iPages++;
                }
            } else {
                $iPages = 1;
            }
            $this->iPages = (int) $iPages;
        }

        $rQuery = $this->query($sQuery . ' LIMIT ' . $iStart . ',' . $iLimit);
        $aResults = array();
        while ($oResult = $this->fetch($rQuery)) {
            $aResults[] = $oResult;
        }
        return $aResults;
    }

    public function numbers($sSeparator = '|')
    {
        $sPages = '';

        if ($this->iPages > 1) {
            $sTemplate = '
            <div class="paginator_pages">
                :PAGES
            </div>
            ';

            $sPages = 'Pages: ';
            for ($i = 1; $i <= $this->iPages; $i++) {
                if ($this->iCurrentPage == $i) {
                    $sPages .= '<span class="current">' . $i . '</span> ' . $sSeparator . ' ';
                } else {
                    $sUrl = $_SERVER['SCRIPT_NAME'] . '?' . $_SERVER['QUERY_STRING'];
                    $sUrl = preg_replace('/page=[0-9a-zA-Z]+/i', 'page=' . $i, $sUrl, -1, $iReplaces);
                    if ($iReplaces == 0) {
                        if (empty($_SERVER['QUERY_STRING'])) {
                            $sQueryString = '?';
                        } else {
                            $sQueryString = '&';
                        }
                        $sQueryString .= 'page=' . $i;
                        $sUrl .= $sQueryString;
                    }
                    $sPages .= '<span><a href="' . $sUrl . '">' . $i . '</a></span> ' . $sSeparator . ' ';
                }
            }
            $sPages = substr($sPages, 0, -2);
            $sPages = str_replace(':PAGES', $sPages, $sTemplate);
        }
        return $sPages;
    }

    public function total()
    {
        return $this->iTotal;
    }

}

mėgaukis :)