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

    +159

    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
    // Функция создания списка страниц типа << < 1 2 3 > >>
    function PageBar($adsNum, $nowPage, $currUrl){
    
    	$maxpageinHalf = intval (MAX_PAGEIN / 2);
    	$maxpagein = MAX_PAGEIN;
    	$maxresults = MAX_RESULTS;
    	$pn=($adsNum%MAX_RESULTS!=0);
    	$pageNum = intval($adsNum / $maxresults) + $pn;
    	$pageNum==0?$pageNum=1:"";
    	
    	if ($nowPage < $maxpageinHalf ){ // определение первой половины списка страниц.
    	 $minPage = 0;
    	 $maxPage = $maxpagein;
    	 ($maxPage>$pageNum)?$maxPage=$pageNum:"";
    	 $previous10Page = 0;
    	 $next10Page = $nowPage + $maxpagein;
    	}
    		elseif ($nowPage > $pageNum - $maxpageinHalf) {
    		 $maxPage = $pageNum;
    		 $minPage = $pageNum - $maxpagein;
    		 ($minPage<=0)?$minPage=0:"";
    		 $previous10Page = $nowPage - $maxpageinHalf;
    		 $next10Page = $pageNum;
    		}
    	else {
    	 $minPage = $nowPage - $maxpageinHalf;
    	 $maxPage = $nowPage + $maxpageinHalf;
    	 $previous10Page = $nowPage - $maxpagein;
    	 $next10Page = $nowPage + $maxpagein;
    	}
    	
    	$next10Page >= $pageNum? $next10Page = $pageNum-1:"";	
    
    	$listing = "<a href='p0,a,".$currUrl."' title=\"В начало\" class=\"ads-link1\">|<<</a>&nbsp;&nbsp;";
    	$listing .= "<a href='p$previous10Page,a,".$currUrl."' title=\"Предыдущие $maxpagein страниц\" class=\"ads-link1\"><</a>&nbsp;&nbsp;";
    
    	for ( $i = $minPage; $i < $maxPage; $i++) {
    		if ( $i == $nowPage )
    			$listing .= "<span style=\"font-size:16px; color:red;\">".($i+1)."</span>&nbsp;";
    		else
    			$listing .= "<a href=\"p".$i.",a,".$currUrl."\" title=\"Страница ".($i+1)."/$pageNum\" class=\"ads-link1\">".($i+1)."</a>&nbsp;";
    			
    		
    	}
    
    	$listing .= "&nbsp;&nbsp;<a href='p".($next10Page).",a,".$currUrl."' title=\"Следующие $maxpagein страниц\" class=\"ads-link1\">></a>&nbsp;&nbsp;";
    	$listing .= "<a href='p".($pageNum-1).",a,".$currUrl."' title=\"В конец\" class=\"ads-link1\">>>|</a>";
    
    return $listing;
    }

    Два дня ебался, но чувствую, что здесь что-то не то :D

    Запостил: Alkonost, 17 Сентября 2011

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

    • БЛЯДСКИЕСТЕНЫКОДА
      НИХУЯНЕПОНЯТНО
      НЕБУДУЯЧИТАТЬЭТУХУЙНЮ
      УМЕНЯЖЕГЛАЗАВЫТЕКУТ
      СВЯТЫЕПИЗДЕЦЫ
      Ответить
    • > но чувствую, что здесь что-то не то

      а как бы вы сделали такую функцию?
      Ответить
    • когда пишешь пэйджинг, практически всегда получается мясо.
      вот реализация этого функционала в Grails на groovy, если интересно:
      http://grails.org/doc/latest/ref/Tags/paginate.html#paginate
      Чтобы посмотреть исходники, нужно прокрутить страницу до конца и нажать Show Source.
      Ответить
    • >($maxPage>$pageNum)?$maxPage=$pageNum:" ";
      Вон оно чего, Михалыч(с)
      Ответить
    • 2 дня на примитивный пейджинг?
      Ответить
    • >Два дня ебался, но чувствую, что здесь что-то не то
      http://i077.radikal.ru/1109/a3/6849b9cd8ecf.jpg
      Ответить
    • показать все, что скрытоvanished
      Ответить

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