Final Class Yiisoft\Yii\DataView\Pagination\KeysetPagination
| Inheritance | Yiisoft\Yii\DataView\Pagination\KeysetPagination » Yiisoft\Widget\Widget |
|---|---|
| Implements | Yiisoft\Yii\DataView\Pagination\PaginationWidgetInterface |
| Uses Traits | Yiisoft\Yii\DataView\Pagination\PaginationContextTrait |
Widget for rendering {@see KeysetPaginator}.
Public Methods
Protected Methods
| Method | Description | Defined By |
|---|---|---|
| getContext() | Gets the current pagination context. | Yiisoft\Yii\DataView\Pagination\PaginationContextTrait |
Method Details
Adds one or more CSS classes to the existing link classes.
Multiple classes can be added by passing them as separate arguments. null values are filtered out
automatically.
| public self addLinkClass ( \BackedEnum|string|null $class ) | ||
| $class | \BackedEnum|string|null |
One or more CSS class names to add. Pass |
| return | self |
A new instance with the specified CSS classes added to existing ones. |
|---|---|---|
public function addLinkClass(BackedEnum|string|null ...$class): self
{
$new = clone $this;
Html::addCssClass($new->linkAttributes, $class);
return $new;
}
Sets the container element attributes.
| public self containerAttributes ( array $attributes ) | ||
| $attributes | array |
HTML attributes for the container element. |
| return | self |
New instance with the specified container attributes. |
|---|---|---|
public function containerAttributes(array $attributes): self
{
$new = clone $this;
$new->containerAttributes = $attributes;
return $new;
}
Sets the container tag name.
| public self containerTag ( string|null $tag ) | ||
| $tag | string|null |
The tag name for the container element.
Common values: 'nav', 'div'. Use |
| return | self |
New instance with the specified container tag. |
|---|---|---|
| throws | InvalidArgumentException |
If tag name is empty. |
public function containerTag(?string $tag): self
{
if ($tag === '') {
throw new InvalidArgumentException('Tag name cannot be empty.');
}
$new = clone $this;
$new->containerTag = $tag;
return $new;
}
Defined in: Yiisoft\Yii\DataView\Pagination\PaginationContextTrait::context()
Creates a new instance with the specified pagination context.
| public Yiisoft\Yii\DataView\Pagination\KeysetPagination context ( Yiisoft\Yii\DataView\Pagination\PaginationContext $context ) | ||
| $context | Yiisoft\Yii\DataView\Pagination\PaginationContext |
The pagination context to use. |
| return | Yiisoft\Yii\DataView\Pagination\KeysetPagination |
New instance with the specified context. |
|---|---|---|
final public function context(PaginationContext $context): static
{
$new = clone $this;
$new->context = $context;
return $new;
}
Creates a new instance with the specified paginator and context.
| public static self create ( \Yiisoft\Data\Paginator\KeysetPaginator $paginator, string $nextUrlPattern, string $previousUrlPattern ) | ||
| $paginator | \Yiisoft\Data\Paginator\KeysetPaginator |
The paginator to use. |
| $nextUrlPattern | string |
URL pattern for next page links. Must contain {@see \Yiisoft\Yii\DataView\Pagination\PaginationContext::URL_PLACEHOLDER}. |
| $previousUrlPattern | string |
URL pattern for previous page links. Must contain {@see \Yiisoft\Yii\DataView\Pagination\PaginationContext::URL_PLACEHOLDER}. |
| return | self |
New instance with the specified paginator and context. |
|---|---|---|
public static function create(KeysetPaginator $paginator, string $nextUrlPattern, string $previousUrlPattern): self
{
return self::widget()
->paginator($paginator)
->context(
new PaginationContext($nextUrlPattern, $previousUrlPattern, ''),
);
}
Sets the CSS class for disabled item elements.
| public self disabledItemClass ( string|null $class ) | ||
| $class | string|null |
The CSS class for disabled items. |
| return | self |
New instance with the specified disabled item class. |
|---|---|---|
public function disabledItemClass(?string $class): self
{
$new = clone $this;
$new->disabledItemClass = $class;
return $new;
}
Sets the CSS class for disabled link elements.
| public self disabledLinkClass ( string|null $class ) | ||
| $class | string|null |
The CSS class for disabled links. |
| return | self |
New instance with the specified disabled link class. |
|---|---|---|
public function disabledLinkClass(?string $class): self
{
$new = clone $this;
$new->disabledLinkClass = $class;
return $new;
}
Defined in: Yiisoft\Yii\DataView\Pagination\PaginationContextTrait::getContext()
Gets the current pagination context.
| protected Yiisoft\Yii\DataView\Pagination\PaginationContext getContext ( ) | ||
| return | Yiisoft\Yii\DataView\Pagination\PaginationContext |
The current pagination context. |
|---|---|---|
| throws | LogicException |
If the context has not been set. |
final protected function getContext(): PaginationContext
{
if ($this->context === null) {
throw new LogicException('Context is not set.');
}
return $this->context;
}
Sets the item element attributes.
| public self itemAttributes ( array $attributes ) | ||
| $attributes | array |
HTML attributes for the item elements. |
| return | self |
New instance with the specified item attributes. |
|---|---|---|
public function itemAttributes(array $attributes): self
{
$new = clone $this;
$new->itemAttributes = $attributes;
return $new;
}
Sets the item tag name.
| public self itemTag ( string|null $tag ) | ||
| $tag | string|null |
The tag name for the item elements.
Common values: 'li', 'div'. Use |
| return | self |
New instance with the specified item tag. |
|---|---|---|
| throws | InvalidArgumentException |
if tag name is empty. |
public function itemTag(?string $tag): self
{
if ($tag === '') {
throw new InvalidArgumentException('Tag name cannot be empty.');
}
$new = clone $this;
$new->itemTag = $tag;
return $new;
}
Sets the label for the next page link.
| public self labelNext ( string|\Stringable $label ) | ||
| $label | string|\Stringable |
The label for the next page link. |
| return | self |
New instance with the specified next label. |
|---|---|---|
public function labelNext(string|Stringable $label): self
{
$new = clone $this;
$new->labelNext = $label;
return $new;
}
Sets the label for the previous page link.
| public self labelPrevious ( string|\Stringable $label ) | ||
| $label | string|\Stringable |
The label for the previous page link. |
| return | self |
New instance with the specified previous label. |
|---|---|---|
public function labelPrevious(string|Stringable $label): self
{
$new = clone $this;
$new->labelPrevious = $label;
return $new;
}
Sets the link attributes.
| public self linkAttributes ( array $attributes ) | ||
| $attributes | array |
HTML attributes for the link elements. |
| return | self |
New instance with the specified link attributes. |
|---|---|---|
public function linkAttributes(array $attributes): self
{
$new = clone $this;
$new->linkAttributes = $attributes;
return $new;
}
Set new link classes.
Multiple classes can be set by passing them as separate arguments. null values are filtered out
automatically.
| public self linkClass ( \BackedEnum|string|null $class ) | ||
| $class | \BackedEnum|string|null |
One or more CSS class names to use. Pass |
public function linkClass(BackedEnum|string|null ...$class): self
{
$new = clone $this;
$new->linkAttributes['class'] = [];
Html::addCssClass($new->linkAttributes, $class);
return $new;
}
Sets the list element attributes.
| public self listAttributes ( array $attributes ) | ||
| $attributes | array |
HTML attributes for the list element. |
| return | self |
New instance with the specified list attributes. |
|---|---|---|
public function listAttributes(array $attributes): self
{
$new = clone $this;
$new->listAttributes = $attributes;
return $new;
}
Sets the list tag name.
| public self listTag ( string|null $tag ) | ||
| $tag | string|null |
The tag name for the list element.
Common values: 'ul', 'div'. Use |
| return | self |
New instance with the specified list tag. |
|---|---|---|
| throws | InvalidArgumentException |
if tag name is empty. |
public function listTag(?string $tag): self
{
if ($tag === '') {
throw new InvalidArgumentException('Tag name cannot be empty.');
}
$new = clone $this;
$new->listTag = $tag;
return $new;
}
Creates a new instance with the specified paginator.
| public Yiisoft\Yii\DataView\Pagination\KeysetPagination paginator ( \Yiisoft\Data\Paginator\PaginatorInterface $paginator ) | ||
| $paginator | \Yiisoft\Data\Paginator\PaginatorInterface |
The paginator to use. |
| return | Yiisoft\Yii\DataView\Pagination\KeysetPagination |
New instance with the specified paginator. |
|---|---|---|
| throws | Yiisoft\Yii\DataView\Pagination\PaginatorNotSupportedException |
If paginator is not a {@see \Yiisoft\Data\Paginator\KeysetPaginator}. |
public function paginator(PaginatorInterface $paginator): static
{
/** @psalm-suppress DocblockTypeContradiction, NoValue */
if (!$paginator instanceof KeysetPaginator) {
throw new PaginatorNotSupportedException($paginator);
}
$new = clone $this;
$new->paginator = $paginator;
return $new;
}
Renders the pagination controls.
| public string render ( ) | ||
| return | string |
The rendered HTML pagination controls. |
|---|---|---|
| throws | Yiisoft\Yii\DataView\Pagination\PaginatorNotSetException |
If paginator is not set. |
public function render(): string
{
if (!$this->showOnSinglePage && !$this->getPaginator()->isPaginationRequired()) {
return '';
}
$result = '';
if ($this->containerTag !== null) {
$result .= Html::openTag($this->containerTag, $this->containerAttributes) . "\n";
}
if ($this->listTag !== null) {
$result .= Html::openTag($this->listTag, $this->listAttributes) . "\n";
}
$context = $this->getContext();
$paginator = $this->getPaginator();
$previousToken = $paginator->getPreviousToken();
$nextToken = $paginator->getNextToken();
$result .= $this->renderItem(
$this->labelPrevious,
$previousToken === null ? null : $context->createUrl($previousToken),
$previousToken === null,
)
. "\n"
. $this->renderItem(
$this->labelNext,
$nextToken === null ? null : $context->createUrl($nextToken),
$nextToken === null,
);
if ($this->listTag !== null) {
$result .= "\n" . Html::closeTag($this->listTag);
}
if ($this->containerTag !== null) {
$result .= "\n" . Html::closeTag($this->containerTag);
}
return $result;
}
| public self showOnSinglePage ( boolean $show = true ) | ||
| $show | boolean | |
public function showOnSinglePage(bool $show = true): self
{
$new = clone $this;
$new->showOnSinglePage = $show;
return $new;
}
Signup or Login in order to comment.