ВКак реализовать пагинацию кастомно сделанного модуля
<?phpfunction hello_orders() {
$user = User::load(\Drupal::currentUser()->id());
$query = \Drupal::database()->select('orderid', 'nfd');
$query->fields('nfd', ['orderid']);
$ids = $query->execute()->fetchAll();
//$len=count($ids);
$b="<hr><br><div class='order'>";
foreach($ids as $id){
$query = \Drupal::database()->select('orders', 'nfd');
$query->fields('nfd', ['good_type', 'article','good_name','price', 'date']);
$query->condition('nfd.orderid', $id->orderid);
$result = $query->execute()->fetchAll();
foreach($result as $results){
$a.= "<span> артикул: ".$results->article."|| Название: ".$results->good_name."</span>||".
"<span>Тип Товара: ||".$results->good_type."|| Дата заказа: ".$results->date."</span><br>".
"<span> Цена: ".$results->price."р.</span>";
$tot+=$results->price;
}
$c="Итого:$tot<br>
<a href=dforders?orderid=".$id->orderid.">Заказ Завершен</a></div> </div>";
$ret.=$b.$a.$c;
$ww.=$ret;
$ret='';
}
return $ww;}?>
Комментарии
см. https://api.drupal.org/api/drupal/core%21includes%21pager.inc/8.7.x
Посмотрите пример вывода нод с постраничной навигацией
$header = ['title' => [
'data' => t('title'),
'field' => 'title',
'specifier' => 'title',
],
];
$nids = \Drupal::entityQuery('node')
->tableSort($header)
->condition('type', 'page')
->condition('status', 1)
->pager($items_per_page)
->execute();
$rows = [];
foreach($nids as $nid) {
$node = \Drupal\node\Entity\NODE::load($nid);
$row = [
'data' => [
$node->title->value,
$node->field_lot_supplier->value,
$node->field_lot_brands->value,
]
];
$rows[] = $row;
}
$render = [
'table' => [
'#theme' => 'table',
'#attributes' => [
'data-striping' => 0
],
'#header' => $header,
'#rows' => $rows,
],
'pager' => ['#type' => 'pager'],
];
return $render;
это пример для контент тайпа, а мне нужна полностью кастомная пагинация из таблиц бд
как сделать пагинацию для $ret функцией pager?
<?php $query = \Drupal::database()->select('orderid', 'nfd');
$query->fields('nfd', ['orderid']);
$ids = $query->execute()->fetchAll();
//$len=count($ids);
$b="<hr><br><div class='order'>";
foreach(
$ids as $id){$query = \Drupal::database()->select('orders', 'nfd');
$query->fields('nfd', ['good_type', 'article','good_name','price', 'date']);
$query->condition('nfd.orderid', $id->orderid);
$result = $query->execute()->fetchAll();
foreach($result as $results){
$a.= "<span> артикул: ".$results->article."|| Название: ".$results->good_name."</span>||".
"<span>Тип Товара: ".$results->good_type."|| Дата заказа: ".$results->date."</span><br>".
"<span> Цена: ".$results->price."р.</span>";
$tot+=$results->price;
}
$c="Итого:$tot<br>
<a href=dforders?orderid=".$id->orderid.">Заказ Завершен</a></div> </div>";
$ret[]=$b.$a.$c;?>