Some maintenance is scheduled for today which requires LiveJournal to be down briefly. Please see this post for details.

Дон Карлос (kastaneda) wrote,

function buildPagerXml(&$xmlWriter$page$itemsCount$itemsPerPage$pagesPerPager) {
    
$pageCount floor( ($itemsCount 1) / $itemsPerPage 1);
    
$startItem $itemsPerPage * ($page 1) + 1;
    
$endItem $itemsPerPage $page;
    if (
$endItem $itemsCount)
        
$endItem $itemsCount;

    
$xmlWriter->WriteStartElement("pager");
    
$xmlWriter->WriteElementString("items-per-page"$itemsPerPage);
    
$xmlWriter->WriteElementString("page-count"$pageCount);
    
$xmlWriter->WriteElementString("current-page"$page);

    
$xmlWriter->WriteElementString("start-item"$startItem);
    
$xmlWriter->WriteElementString("end-item"$endItem);

    
$xmlWriter->WriteStartElement("first-page");
    if (
$page == 1)
        
$xmlWriter->WriteAttributeString("current""");
    
$xmlWriter->WriteString("1");
    
$xmlWriter->WriteEndElement();

    
$xmlWriter->WriteStartElement("previous-page");
    if (
$page == 1)
        
$xmlWriter->WriteAttributeString("current""");
    
$xmlWriter->WriteString($page - ($page == 1));
    
$xmlWriter->WriteEndElement();

    
$xmlWriter->WriteStartElement("next-page");
    if (
$page == $pageCount)
        
$xmlWriter->WriteAttributeString("current""");
    
$xmlWriter->WriteString($page + ($page == $pageCount 1));
    
$xmlWriter->WriteEndElement();

    
$xmlWriter->WriteStartElement("last-page");
    if (
$page == $pageCount)
        
$xmlWriter->WriteAttributeString("current""");
    
$xmlWriter->WriteString($pageCount);
    
$xmlWriter->WriteEndElement();

    if (
$pagesPerPager $pageCount) {
        
$startPage $page - (int) ($pagesPerPager 2);
        if (
$startPage 1)
            
$startPage 1;
        if (
$page + (int) ($pagesPerPager 2) > $pageCount)
            
$startPage $startPage - ($page + (int) (($pagesPerPager) / 2) - $pageCount) + ($pagesPerPager == 1);
        if (
$startPage 1)
            
$xmlWriter->WriteElementString("previous-pager-page",
                
$startPage 1);
        if (
$startPage $pagesPerPager $pageCount)
            
$xmlWriter->WriteElementString("next-pager-page",
                
$startPage $pagesPerPager);
        for (
$i $startPage$i $startPage $pagesPerPager$i++) {
            
$xmlWriter->WriteStartElement("page-link");
            if (
$i == $page)
                
$xmlWriter->WriteAttributeString("active""");
            
$xmlWriter->WriteString($i);
            
$xmlWriter->WriteEndElement();
        }
    }
    else
        for (
$i 1$i <= $pageCount$i++) {
            
$xmlWriter->WriteStartElement("page-link");
            if (
$i == $page)
                
$xmlWriter->WriteAttributeString("active""");
            
$xmlWriter->WriteString($i);
            
$xmlWriter->WriteEndElement();
        }
    
$xmlWriter->WriteEndElement();
}


Почуствуйте разницу.

Update. Для тех, кто в танке, поясняю. Этот кусок дерьма - пример кода, с которым мне приходится сейчас работать. По ссылке - код, с которым мне приходилось работать тогда (на другой фирме). И тот, и другой фрагменты кода написаны с примерно одинаковой целью; и то, и то я ПИЗДЕЦ КАК НЕ ОДОБРЯЮ.
Tags: webdev, wtf
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded  

  • 11 comments