Keresés

Új hozzászólás Aktív témák

  • fordfairlane

    veterán

    válasz fordfairlane #2298 üzenetére

    pages osztály:

    /* class: pages
    * oldalszámok osztály
    * függőség: <url>
    */
    class pages {
    var $total;
    var $params;

    function pages($tot = 20) {
    $this->total = $tot;
    }

    function get($first,$per,$max,$params="") {
    if($per < $max) {

    $this->params = $params;

    $maxp = ceil($max/$per);
    $actp = ceil($first/$per) + 1;

    $fpage = $actp - floor(($this->total)/2);
    if($fpage<1) $fpage = 1;

    $topage = $fpage + $this->total;
    if($topage>$maxp) $topage = $maxp;
    if(($topage - $fpage) < $this->total) $fpage = $topage - $this->total;
    if($fpage<1) $fpage = 1;


    $str = '<table class="pages"><tr><td>';

    // <<
    $link = '&lt;&lt;';

    if($fpage>1) {
    $str .= $this->clink(0,$link);
    }
    else {
    $str .= $link;
    }
    $str .= '</td>';
    // <<

    // <
    $str .= '<td>';
    $link = '&lt;';
    if($first>0) {
    $f = $first - $per;
    if($f < 0) $f = 0;
    $str .= $this->clink($f,$link);
    }
    else {
    $str .= $link;
    }
    $str .= '</td>';
    // >


    for($i=$fpage;$i<=$topage;$i++) {
    $str .= '<td>';
    if($i != $actp) {
    $f = (($i-1)*$per);
    $str .= $this->clink($f,$i);
    }
    else {
    $str .= "<strong>".$i."</strong>";
    }
    $str .= '</td>';
    }

    // >
    $link = '&gt;';

    $str .= '<td>';
    if(($first + $per)<$max) {
    $f = ($first + $per);
    $str .= $this->clink($f,$link);
    }
    else {
    $str .= $link;
    }
    $str .= '</td>';
    // >

    // >>
    $link = '&gt;&gt;';

    $str .= '<td>';
    if($topage < $maxp) {
    $f = (($maxp-1)*$per);
    $str .= $this->clink($f,$link);
    }
    else {
    $str .= $link;
    }
    $str .= '</td>';
    // >>

    $str .= '</tr></table>';

    return $str;
    }
    }
    function clink($first,$link) {
    $str = '<a href="'.$_SERVER['SCRIPT_NAME'];
    if(is_array($this->params)) {
    $url = new url($this->params);
    }
    else {
    $url = new url();
    }
    $url->set("f",$first);

    $str .= $url->get();
    $str .= '">'.$link.'</a>';
    return $str;
    }
    }

  • fordfairlane

    veterán

    válasz fordfairlane #2298 üzenetére

    url osztály:

    /* class: url
    * url kreáló osztály
    */
    class url {
    var $params;

    function url($url = "") {
    if(is_array($url)) {
    $this->params = $url;
    }
    else {
    $this->params = array();
    }
    }

    function set($p1,$p2 = "") {
    if(is_array($p1)) {
    foreach($p1 as $key => $value) {
    $this->params[$key] = $value;
    }
    }
    elseif(is_string($p1)) {
    $this->params[$p1] = $p2;
    }
    }

    function remove($p1) {
    if(is_string($p1)) {
    unset($this->params[$p1]);
    }
    }

    function get() {
    foreach($this->params as $key => $value) {

    if(is_array($value)) {
    foreach($value as $inkey => $invalue) {
    if($url_uj) $url_uj .= "&"; else $url_uj = "?";
    $url_uj .= urlencode($key."[".$inkey."]")."=".urlencode($invalue);
    }
    }
    else {
    if($url_uj) $url_uj .= "&"; else $url_uj = "?";
    $url_uj .= $key."=".urlencode($value);
    }
    }
    return $url_uj;
    }
    }

Új hozzászólás Aktív témák