Exemple #1
0
 public function getPagi($sql)
 {
     $perpage = $_SESSION['user']['perpage'];
     $page = $_GET['p'];
     if ($page == '') {
         $page = 1;
     }
     $data = array();
     $sql = DB::prefix($sql);
     $sqlcount = substr($sql, strpos($sql, ' FROM '), strlen($sql));
     $tab = substr($sqlcount, strpos($sqlcount, ' ', 1), strpos($sqlcount, ' ', 6) - 1);
     if (strpos($sql, 'SELECT DISTINCT') !== false) {
         $sqlcount = 'SELECT COUNT(DISTINCT ' . $tab . '.id) ' . $sqlcount;
     } else {
         $sqlcount = 'SELECT count(*) ' . $sqlcount;
     }
     if (class_exists(PaginationWidget)) {
         PaginationWidget::$count = DB::getOne($sqlcount);
     }
     $sql = $sql . ' LIMIT ' . ($page - 1) * $perpage . ',' . $perpage . '';
     $q = DB::$pdo->query($sql) or die(DB::error($sql, debug_backtrace()));
     foreach ($q as $row) {
         $data[] = $row;
     }
     return $data;
 }
 function run()
 {
     foreach ($_SESSION['perpage'] as $key => $item) {
         if (in_array($key, Funcs::$uri)) {
             $path = $key;
         }
     }
     $items = PaginationWidget::getPage($_SESSION['perpage'][$path], PaginationWidget::$count);
     View::widget('pagination', array('pagination' => $items));
 }
 /**
  *
  *
  * @dataProvider configProvider
  *
  * @return void
  * @since 0.1.0
  */
 public function testWidget($current, $total, $size)
 {
     ob_start();
     $controller = $this->getController($total);
     $w = new \PaginationWidget($controller);
     $w->currentPage = $current;
     $w->totalPages = $total;
     $w->size = $size;
     $w->route = 'dummy/index';
     $w->init();
     $w->run();
     $out = ob_get_clean();
     $offset = ceil($size / 2);
     $leftGap = $current - $offset > 2;
     $rightGap = $current + $offset < $total - 1;
     $leftDisabled = $current === 1;
     $rightDisabled = $current === $total;
     $crawler = $this->getCrawler($out);
     $elements = $crawler->filter('li');
     $totalElements = $elements->count();
     if ($total === 1) {
         $this->assertEmpty($out);
         return;
     }
     if ($leftGap) {
         $delimiter = trim($crawler->filter('li:nth-child(2)')->text());
         $this->assertEquals('pagination.delimiter', $delimiter);
     }
     if ($rightGap) {
         $number = $totalElements - 1;
         $delimiter = trim($crawler->filter('li:nth-child(' . $number . ')')->text());
         $this->assertEquals('pagination.delimiter', $delimiter);
     }
     if ($leftDisabled) {
         $this->assertEquals('disabled', $elements->first()->attr('class'));
     }
     if ($rightDisabled) {
         $this->assertEquals('disabled', $elements->last()->attr('class'));
     }
 }
    function getUndefinedDealers()
    {
        $data = array();
        //	INNER JOIN {{dealers_status}} ON {{dealers}}.status = {{dealers_status}}.id
        $sql = '
			SELECT {{dealers}}.* , {{dealers_status}}.shortname as statusname, {{dealers}}.id as dealer_id, (
				SELECT COUNT(*)
				FROM {{dealers_orders}}
				LEFT JOIN {{dealers_orders_status}} ON {{dealers_orders}}.status = {{dealers_orders_status}}.id
				WHERE {{dealers_orders}}.`dealer` = dealer_id AND {{dealers_orders_status}}.path = \'new\'
			) as new_orders
			FROM {{dealers}}
			LEFT JOIN {{dealers_status}} ON {{dealers}}.status = {{dealers_status}}.id
			WHERE {{dealers}}.active=1
			ORDER BY new_orders DESC
		';
        //getPagi не cпособен переварить запрос с подзапросами
        //вместо
        //$list=DB::getPagi($sql);
        //приходится делать так
        $dealers_count = DB::getOne('SELECT COUNT(*) FROM {{dealers}}');
        if (Funcs::$OneSSA) {
            $perpage = $_SESSION['user']['perpage'];
        } else {
            if ($_SESSION['perpage'][end(Funcs::$uri)]) {
                $perpage = $_SESSION['perpage'][end(Funcs::$uri)];
            } else {
                $perpage = 10;
            }
        }
        $page = intval($_GET['p']) > 0 ? $_GET['p'] : '1';
        if (class_exists(PaginationWidget)) {
            PaginationWidget::$count = $dealers_count;
        }
        $sql .= ' LIMIT ' . ($page - 1) * $perpage . ',' . $perpage;
        $list = DB::getAll($sql);
        foreach ($list as $item) {
            $item['stores_cnt'] = DealersStores::getCount($item['id']);
            $item['consignee_cnt'] = DealersConsignee::getCount($item['id']);
            $item['balance'] = self::getBalance($item['id']);
            $item['files'] = DealersFiles::getCountFiles($item['id']);
            $item['orders'] = DealersOrders::getOrdersCountByStatus($item['id'], 'new') . '/' . DealersOrders::getOrdersCountByStatus($item['id']);
            $data[] = $item;
        }
        return $data;
    }
Exemple #5
0
 public function getPagi($sql, $exec = 0)
 {
     $perpage = 0;
     if (Funcs::$OneSSA) {
         $perpage = $_SESSION['user']['perpage'];
     } else {
         if ($_SESSION['perpage'][end(Funcs::$uri)]) {
             $perpage = $_SESSION['perpage'][end(Funcs::$uri)];
         }
         if ($perpage == 0) {
             $perpage = $_SESSION['perpage'][reset(Funcs::$uri)];
         }
         if ($perpage == 0) {
             $perpage = 10;
         }
     }
     $page = $_GET['p'];
     if ($page == '') {
         $page = 1;
     }
     $data = array();
     $sql = DB::prefix($sql, $exec);
     $sqlcount = substr($sql, strpos($sql, ' FROM '), strlen($sql));
     $tab = substr($sqlcount, strpos($sqlcount, ' ', 1), strpos($sqlcount, ' ', 6) - 1);
     if (strpos($sql, 'SELECT DISTINCT') !== false) {
         $sqlcount = 'SELECT COUNT(DISTINCT ' . $tab . '.id) ' . $sqlcount;
     } else {
         $sqlcount = 'SELECT COUNT(*) ' . $sqlcount;
     }
     if (strpos($sqlcount, 'ORDER BY') !== false) {
         $sqlcount = substr($sqlcount, 0, strpos($sqlcount, 'ORDER BY'));
     }
     if (class_exists(PaginationWidget)) {
         PaginationWidget::$count = DB::getOne($sqlcount, 1);
     }
     $sql = $sql . ' LIMIT ' . ($page - 1) * $perpage . ',' . $perpage . '';
     $q = mysql_query($sql) or die('<b>Ошибка в SQL-запросе:</b> ' . $sql);
     while ($row = mysql_fetch_assoc($q)) {
         $data[] = $row;
     }
     return $data;
 }
Exemple #6
0
								<td class="sections_table_cell"><?php 
    echo $item['paid'] == 1 ? 'Оплачен' : 'Ожидает';
    ?>
</td>
								<td class="sections_table_cell"><a href="/<?php 
    echo Funcs::$cdir;
    ?>
/selling/authors/<?php 
    echo $item['author'];
    ?>
/"><?php 
    echo $item['iusername'];
    ?>
</a></td>
							</tr>
						<?php 
}
?>
					</table>
				</div>
			</div>
		</div>
		<div class="ltRow">
			<div class="sections_footer clearfix">
				<?php 
echo PaginationWidget::run($pagination);
?>
			</div>
		</div>
	</div>
</div>
Exemple #7
0
					<?php 
        }
        ?>
				<?php 
    }
    ?>
				</tr>
			<?php 
}
?>
			</table>
			<div class="hr" style="margin-bottom: 18px;"></div>
		   	<div class="nav-bar">
				<a href="#up" class="up-but"></a>
				<?php 
PaginationWidget::run();
?>
		   </div>
		</div>
	</div>
	<?php 
if ((empty($url[3]) || strpos($url[3], "?") !== false) && !empty($fields["fulltext"])) {
    echo '<div style="clear: right;">' . $fields["fulltext"] . '</div>';
}
?>
	<div style="clear: right;"><?php 
echo Funcs::$seo['textpost']['value'];
?>
</div>
	<div class="clear"></div>
</div>
 function run()
 {
     $items = PaginationWidget::getPage($_SESSION['user']['perpage'], PaginationWidget::$count);
     View::widget('pagination', array('pagination' => $items));
 }