Autor Zpráva
ludekbrno
Profil *
Zdravím ve spolek, potřeboval bych poradit s drobnou úpravou PHP ve fóru Kunena. Na jednom webu jsem upravoval fórum Kunena, aby bylo celkově užší a sedělo do templatu Joomly. Podařilo se mi to až na jednu položku, konkrétně číslování stránek u dlouhých diskuzních vláken, které se rozdělí na více stran (nad cca 8). Sice potom už počet tlačítek nepřibývá (mezi ně se doplní značka "..."), ale i tak je jich moc, že mi to číslování uteče mimo template a nelze se proklikat na ty poslední stránky vlákna, které jsou už schované "za rohem". Viz. ukázka: http://www.jedendomov.cz/forum/10-stidava-pee/337-zrdnost-jmenem-stidavka-muiktei-chtji-valku Vlákno je rozděleno na 18 stránek, ale 17. a 18. už jsou zakryté. Nenapadlo mě, jak bych tu tabulku s čísly stránek zafixoval, aby neutíkala mimo template, ale napadlo mě, že by stačilo snížit maximální počet zobrazovaných čísel stránek z 8 třeba na 5. Asi jsem našel i odpovídající kód v příslušeném PHP, ale tím končím a už s tím nehnu :) Přidávám část kódu, která podle mně to číslování stránek vytváří:

    function getPagination($catid, $threadid, $page, $totalpages, $maxpages) {
        $startpage = ($page - floor ( $maxpages / 2 ) < 1) ? 1 : $page - floor ( $maxpages / 2 );
        $endpage = $startpage + $maxpages;
        if ($endpage > $totalpages) {
            $startpage = ($totalpages - $maxpages) < 1 ? 1 : $totalpages - $maxpages;
            $endpage = $totalpages;
        }

        $output = '<ul class="kpagination">';
        $output .= '<li class="page">' . JText::_('COM_KUNENA_PAGE') . '</li>';

        if ($startpage > 1) {
            if ($endpage < $totalpages)
                $endpage --;
            $output .= '<li>' . CKunenaLink::GetThreadPageLink ( 'view', $catid, $threadid, 1, $this->config->messages_per_page, 1, '', $rel = 'follow' ) . '</li>';
            if ($startpage > 2) {
                $output .= '<li class="more">...</li>';
            }
        }

        for($i = $startpage; $i <= $endpage && $i <= $totalpages; $i ++) {
            if ($page == $i) {
                $output .= '<li class="active">' . $i . '</li>';
            } else {
                $output .= '<li>' . CKunenaLink::GetThreadPageLink ( 'view', $catid, $threadid, $i, $this->config->messages_per_page, $i, '', $rel = 'follow' ) . '</li>';
            }
        }

        if ($endpage < $totalpages) {
            if ($endpage < $totalpages - 1) {
                $output .= '<li class="more">...</li>';
            }

            $output .= '<li>' . CKunenaLink::GetThreadPageLink ( 'view', $catid, $threadid, $totalpages, $this->config->messages_per_page, $totalpages, '', $rel = 'follow' ) . '</li>';
        }

        $output .= '</ul>';
        return $output;
    }

Kdyby na to někdo mrknul a viděl, jestli je to ono a věděl by, jak to poupravit, byl bych velmi vděčný. Podotýkám, že je to nevýdělečný projekt, jinak bych samozřejmě řešil prostřednictvím zakázek. Díky.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: