1. PHP / Говнокод #1628

    +159.9

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    public function link_page()
        {
    
            $sql = "SELECT COUNT(*) FROM `".$this->table."`".$this->where;
            $value = mysql_query($sql);
            $value = mysql_fetch_row($value);
            $alllines = $value[0];
            $str = ceil($alllines / $this->lines); 
            if($this->page != 0) {
                $return .= "<a href='".$this->prefix_p."=".($this->page)."'><</a>";
            } else {
                $return .= "<span><</span>";
            }
            $return .= "&nbsp;";
            if($this->page + 1 != 1) {
                $return .= "<a href='".$this->prefix_p."=1'>1</a>";
            } else {
                $return .= "<span>1</span>";
            }
    
            $return .= "&nbsp";
            if($this->page + 1 == $str && $this->page + 1 != 1 && $str < 2) {
                $return .= "<a href='".$this->prefix_p."=".($this->page - 2)."'>".($this->page -
                    2)."</a>";
                $return .= "<a href='".$this->prefix_p."=".($this->page - 1)."'>".($this->page -
                    1)."</a>";
            }
    
            if($this->page > 1) {
                if($str > 1 && $this->page >= 4) {
                    if($str >= 5 && ($this->page == $str - 1 or $this->page == $str - 2)) {
                        if($this->page == $str - 2 && $str != 5) {
                        } else {
                            $return .= "<a href='".$this->prefix_p."=".($this->page - 2)."'>".($this->page -
                                2)."</a>";
                        }
    
                        if($this->page == 4 && $str == 6) {
                        } else {
                            $return .= "<a href='".$this->prefix_p."=".($this->page - 1)."'>".($this->page -
                                1)."</a>";
                        }
                    }
                }
                if(($str > 4 && $str < 8 && $this->page == $str - 2) or ($str == 4 && $this->
                    page == $str - 1)) {
                    $return .= "<a href='".$this->prefix_p."=".($this->page - 1)."'>".($this->page -
                        1)."</a>";
                }
                $return .= "<a href='".$this->prefix_p."=".($this->page)."'>".($this->page).
                    "</a>";
            }
    
            if($this->page + 1 != 1 && $this->page < 2 && $str != 2) {
                $return .= "<span>".($this->page + 1)."</span>";
            }
            if($this->page > 1 && $this->page + 2 <= $str) {
                $return .= "<span>".($this->page + 1)."</span>";
            }
    
            if($this->page + 2 < $str) {
                if($this->page + 1 == 1) {
                    $return .= "<a href='".$this->prefix_p."=".($this->page + 2)."'>".($this->page +
                        2)."</a>";
                    if($str > 3) {
                        $return .= "<a href='".$this->prefix_p."=".($this->page + 3)."'>".($this->page +
                            3)."</a>";
                    }
                    if($this->page + 3 >= $str) {
                    } else {
                        if($str != 4) {
                            $return .= "<a href='".$this->prefix_p."=".($this->page + 4)."'>".($this->page +
                                4)."</a>";
                        }
                    }
    
                } else {
                    if($this->page + 1 == 2) {
                        $return .= "<a href='".$this->prefix_p."=".($this->page + 2)."'>".($this->page +
                            2)."</a>";
                        if($str != 4) {
                            $return .= "<a href='".$this->prefix_p."=".($this->page + 3)."'>".($this->page +
                                3)."</a>";
                        }
                    } else {
                        $return .= "<a href='".$this->prefix_p."=".($this->page + 2)."'>".($this->page +
                            2)."</a>";
                    }
                }
    
            }

    Один метод из класса выводит навигацию типа (мы на 6 странице максимум 10 страниц) [<][1] [5][6][7] [10][>]
    Писал под травой, как оно работает не знаю, переписывать лень, работает да и ладно =)

    Запостил: sTarT, 19 Августа 2009

    Комментарии (10) RSS

    • Наркоманы ещё и програмят?
      Ответить
      • Ну вообще-то я не наркоман, да и траву я бы не назвал наркотиком, с тем же успехом можно назвать наркоманами всех курильщиков...
        Ответить
        • откровенное заявление ) присоединяюсь )
          Ответить
        • если на умняк пробивает то наверное можно программить, если на хихи или на измену то даже не представляю
          Ответить
        • Люди с зависимостью от сигарет, курения, являются табачными наркоманами - так и есть, молодец, что догадался. Только тут не место для подобных рассуждений. А код хороший у тебя :)
          Ответить
        • Какие Ваши доказательства?

          И да, курение не нужно.
          Ответить
      • Вполне успешно
        Ответить
    • Автор, ваш код -- говно, вы ничего не понимаете в pagination'е.
      Освойте хотя бы массивы, обработку списков и foreach().
      Ответить
    • Делал нечто подобное такой функцией:
      function pages($page,$max,$min=1,$n=2) {
      list($f,$l)=array(max($page-$n+min($max-$page-$n,0),$min),min($page+$n+max($min-$page+$n,0),$max));
      $res=array(
      'range'=>range($l,$f),
      'current'=>$page,
      'first'=>$f!=$min?$min:null,
      'last'=>$l!=$max?$max:null,
      'prev'=>(($page>$min) and !($page>$max))?$page-1:null,
      'next'=>(($page<$max) and !($page<$min))?$page+1:null);
      return $res;
      }

      Тож хз, как работает. :)
      Не курил! ))
      Ответить

    Добавить комментарий