Помогите разобраться с постраничным выводом

Тема в разделе "Как сделать...", создана пользователем akimov_aleks, 24 сен 2014.

  1. akimov_aleks

    akimov_aleks

    Регистр.:
    15 авг 2007
    Сообщения:
    523
    Симпатии:
    105
    сижу чтото голову ломаю не могу как понять это подправить...
    PHP код
    Код:
    <?
    if(!isset($_SESSION['loginned'])){
        $tpl->load_tpl('info.tpl');
        $tpl->tpl_set( '{error}', $dictionary['info'][3] );
        $tpl->tpl_set( '{info}', '' );
        $tpl->tpl_set( '{other}', '' );
    }
    else{
        $tpl->load_tpl('show_orders.tpl');
        $tpl->tpl_set( '{error}', '' );
        $tpl->tpl_set( '{info}', '' );
        //загружаем список статусов
        $status_arr = $main_config['statuses'];
        $status_list = create_dropdown($status_arr,'key');
        //загружаем список клиентов
        $result = $mysql->query( "SELECT * FROM " . PREF . "_clients");
        while ( $row = mysql_fetch_array ($result) ) {
            $client_arr[$row['id']] = $row['name'];
        }
        $client_list = create_dropdown($client_arr,'key');
        //загружаем список мастеров
        $result = $mysql->query( "SELECT * FROM " . PREF . "_users");
        while ( $row = mysql_fetch_array ($result) ) {
            $users_arr[$row['id']] = $row['name'];
        }
        $users_list = create_dropdown($users_arr,'key');
       
        $tpl->tpl_set( '{client_list}', $client_list );
        $tpl->tpl_set( '{status_list}', $status_list );
        $tpl->tpl_set( '{expert_list}', $users_list );
        $tpl->tpl_set( '{acceptor_list}', $users_list );
    
        //    выводим список заказов:
      // if ($_SESSION['usergroup'] == 7){
        $where = '';
      // }
      // else
      //  $where = 'WHERE status IN (1,2,3)';
        $result = $mysql->query( "SELECT * FROM " . PREF . "_orders $where ORDER BY status, id DESC");
        if( preg_match('~\[orders\](.*?)\[\/orders\]~si',$tpl->template,$matches) ){
            $row_tpl = $matches[1];
        }
        if($result){
            while ( $row = mysql_fetch_array ($result) ) {
                $this_row_tpl = $row_tpl;
                $row['display_aebutton'] = 'none';
                $row['display_ardbutton'] = 'none';
                $row['display_artbutton'] = 'none';
                switch($row['status']){
                    case 1: $row['display_aebutton'] = 'inline-block'; break;
                    case 2: $row['display_ardbutton'] = 'inline-block'; break;
                    case 3: $row['display_artbutton'] = 'inline-block'; break;
                }
                $row['status_color'] = $main_config['status_color'][$row['status']];
                $row['status_class'] = $main_config['status_class'][$row['status']];
                $row['status'] = $main_config['statuses'][$row['status']];
                $row['client'] = $client_arr[$row['client']];
                $row['expert'] = $users_arr[$row['expert']];
                $row['acceptor'] = $users_arr[$row['acceptor']];
               
                foreach($row as $key=>$value){
                    $this_row_tpl = str_replace('{'.$key.'}',$value,$this_row_tpl);
                }
                $full_tpl .= $this_row_tpl;
            }
            $tpl->template = preg_replace('~\[orders\].*?\[\/orders\]~si',$full_tpl,$tpl->template);
            $full_tpl = '';
            $tpl->template = str_replace('[table]','',$tpl->template);
            $tpl->template = str_replace('[/table]','',$tpl->template);
        }else{
            $tpl->tpl_set( '{error}', $dictionary['info'][11] );
            $tpl->template = preg_replace('~\[table\].*?\[\/table\]~si','',$tpl->template);
        }
    }//end ELSE
    $tpl->tpl_save();
    $tpl->tpl_complate( 'content' );
    $page_title = $main_config['home_title'] . ' - ' . $dictionary['page'][8];
    ?>
    
    
    TPL фаил
    Код:
    [table]
    <table class="table table-striped table-hover">
        <thead>
            <tr class="warning">
                <th>ID</th>
                <th>Статус</th>
                <th>Клиент</th>
                <th>Заявка</th>
                <th>Дата приема</th>
                <th>Дата выполнения</th>
                <th>Кто принял</th>
                <th>Исполнитель</th>
                <th>Комментарий</th>
                <th>Сумма</th>
                <th></th>
            </tr>
        </thead>
        <tbody>
            [orders]
            <tr id="tr_{id}">
                <td>{id}</td>
                <td id="td_status_{id}"><span class="{status_class}">{status}</span></td>
                <td id="td_client_{id}">
                    <div>{client}</td>
                <td id="td_order_{id}">
                    <div>{order_descr}</div>
                </td>
                <td>
                    <div>{add_date}</div>
                </td>
                <td id="td_returndate_{id}">
                    <div>{return_date}</div>
                </td>
                <td id="td_acceptor_{id}"><div>{acceptor}</div></td>
                <td id="td_expert_{id}"><div>{expert}</div></td>
                <td id="td_comment_{id}"><div>{comment}</div></td>
                <td id="td_amount_{id}">{amount}</td>
                <td>
                    <nav class="w60">
                        <a onClick="load_form('edit_order','{id}');" title="изменить параметры заявки">
                            <span class="glyphicon glyphicon-pencil"></span>
                        </a>
                        <a onClick="load_form('delete_order','{id}'); " title="удалить заявку">
                            <span class="glyphicon glyphicon-remove"></span>
                        </a>
                        <a id="ae_button_{id}" onClick="load_form('add_expert','{id}', 2);" title="взять в работу" style="display:{display_aebutton};">
                            <span class="glyphicon glyphicon-time"></span>
                        </a>
                        <a id="ard_button_{id}" onClick="load_form('add_expert','{id}', 3);" title="заявка готова" style="display:{display_ardbutton};">
                            <span class="glyphicon glyphicon-ok"></span>
                        </a>
                    </nav>
                </td>
            </tr>
            [/orders]
        </tbody>
        <tfoot>
            <tr class="warning">
                <th>ID</th>
                <th>Статус</th>
                <th>Клиент</th>
                <th>Заявка</th>
                <th>Дата приема</th>
                <th>Дата выполнения</th>
                <th>Кто принял</th>
                <th>Исполнитель</th>
                <th>Комментарий</th>
                <th>Сумма</th>
                <th></th>
            </tr>
        </tfoot>
    </table>
    
    <div id="MyHint"></div>
    [/table]
    
    functions.php
    Код:
    <?
    function pagination($num_pages,$current_page,$near_pages,$url,$type=0){
      $min_page = $current_page - $near_pages;            //определяем минимальную страницу
      $max_page = $current_page + $near_pages;            //определяем максимальную страницу
      if($min_page < $near_pages){$min_page = 1;}         //ограничиваем минимальную страницу
      if($max_page > $num_pages){$max_page = $num_pages;} //ограничиваем максимальную страницу
      switch($type){
      case 1: $urlpart = '&page='; break;
      default: $urlpart = '/page/'; break;
      }
      for($i=$min_page; $i<($max_page+1); $i++){          //формируем центральные ссылки на страницы
        $href = '/'.$url.$urlpart.$i;
        $pages .="| <a href='$href'>$i</a> |";
      }
      //"обвешиваем" справа и слева
      if($current_page > ($near_pages+2) ) {$pages = '|...|'.$pages;}
      if($current_page > ($near_pages+1) ) {$pages = '| <a href=\'/' .$url.$urlpart. '/1\'>1</a> |' . $pages;}
      if($current_page < ($num_pages - $near_pages -1)){$pages .= '|...|';}
      if($current_page <  $num_pages - $near_pages){$pages .= '| <a href=\'/' .$url.$urlpart.$num_pages. '\'>'.$num_pages.'</a> |';}
      $pages = str_replace('||','|',$pages);      //убираем лишние символы
      return $pages;
    }
    ........