67 lines
1.5 KiB
PHP
67 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace Illuminate\Pagination;
|
|
|
|
trait UrlWindowPresenterTrait
|
|
{
|
|
/**
|
|
* Render the actual link slider.
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function getLinks()
|
|
{
|
|
$html = '';
|
|
|
|
if (is_array($this->window['first'])) {
|
|
$html .= $this->getUrlLinks($this->window['first']);
|
|
}
|
|
|
|
if (is_array($this->window['slider'])) {
|
|
$html .= $this->getDots();
|
|
$html .= $this->getUrlLinks($this->window['slider']);
|
|
}
|
|
|
|
if (is_array($this->window['last'])) {
|
|
$html .= $this->getDots();
|
|
$html .= $this->getUrlLinks($this->window['last']);
|
|
}
|
|
|
|
return $html;
|
|
}
|
|
|
|
/**
|
|
* Get the links for the URLs in the given array.
|
|
*
|
|
* @param array $urls
|
|
* @return string
|
|
*/
|
|
protected function getUrlLinks(array $urls)
|
|
{
|
|
$html = '';
|
|
|
|
foreach ($urls as $page => $url) {
|
|
$html .= $this->getPageLinkWrapper($url, $page);
|
|
}
|
|
|
|
return $html;
|
|
}
|
|
|
|
/**
|
|
* Get HTML wrapper for a page link.
|
|
*
|
|
* @param string $url
|
|
* @param int $page
|
|
* @param string|null $rel
|
|
* @return string
|
|
*/
|
|
protected function getPageLinkWrapper($url, $page, $rel = null)
|
|
{
|
|
if ($page == $this->paginator->currentPage()) {
|
|
return $this->getActivePageWrapper($page);
|
|
}
|
|
|
|
return $this->getAvailablePageWrapper($url, $page, $rel);
|
|
}
|
|
}
|