%PDF- %PDF-
| Direktori : /www/varak.net/paste.varak.net-5.6/vendor/laravel/framework/src/Illuminate/Pagination/ |
| Current File : /www/varak.net/paste.varak.net-5.6/vendor/laravel/framework/src/Illuminate/Pagination/Factory.php |
<?php namespace Illuminate\Pagination;
use Illuminate\Http\Request;
use Illuminate\View\Factory as ViewFactory;
use Symfony\Component\Translation\TranslatorInterface;
class Factory {
/**
* The request instance.
*
* @var \Symfony\Component\HttpFoundation\Request
*/
protected $request;
/**
* The view factory instance.
*
* @var \Illuminate\View\Factory
*/
protected $view;
/**
* The translator implementation.
*
* @var \Symfony\Component\Translation\TranslatorInterface
*/
protected $trans;
/**
* The name of the pagination view.
*
* @var string
*/
protected $viewName;
/**
* The number of the current page.
*
* @var int
*/
protected $currentPage;
/**
* The locale to be used by the translator.
*
* @var string
*/
protected $locale;
/**
* The base URL in use by the paginator.
*
* @var string
*/
protected $baseUrl;
/**
* The input parameter used for the current page.
*
* @var string
*/
protected $pageName;
/**
* Create a new pagination factory.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* @param \Illuminate\View\Factory $view
* @param \Symfony\Component\Translation\TranslatorInterface $trans
* @param string $pageName
* @return void
*/
public function __construct(Request $request, ViewFactory $view, TranslatorInterface $trans, $pageName = 'page')
{
$this->view = $view;
$this->trans = $trans;
$this->request = $request;
$this->pageName = $pageName;
$this->setupPaginationEnvironment();
}
/**
* Setup the pagination environment.
*
* @return void
*/
protected function setupPaginationEnvironment()
{
$this->view->addNamespace('pagination', __DIR__.'/views');
}
/**
* Get a new paginator instance.
*
* @param array $items
* @param int $total
* @param int|null $perPage
* @return \Illuminate\Pagination\Paginator
*/
public function make(array $items, $total, $perPage = null)
{
$paginator = new Paginator($this, $items, $total, $perPage);
return $paginator->setupPaginationContext();
}
/**
* Get the pagination view.
*
* @param \Illuminate\Pagination\Paginator $paginator
* @param string $view
* @return \Illuminate\View\View
*/
public function getPaginationView(Paginator $paginator, $view = null)
{
$data = array('environment' => $this, 'paginator' => $paginator);
return $this->view->make($this->getViewName($view), $data);
}
/**
* Get the number of the current page.
*
* @return int
*/
public function getCurrentPage()
{
$page = (int) $this->currentPage ?: $this->request->input($this->pageName, 1);
if ($page < 1 || filter_var($page, FILTER_VALIDATE_INT) === false)
{
return 1;
}
return $page;
}
/**
* Set the number of the current page.
*
* @param int $number
* @return void
*/
public function setCurrentPage($number)
{
$this->currentPage = $number;
}
/**
* Get the root URL for the request.
*
* @return string
*/
public function getCurrentUrl()
{
return $this->baseUrl ?: $this->request->url();
}
/**
* Set the base URL in use by the paginator.
*
* @param string $baseUrl
* @return void
*/
public function setBaseUrl($baseUrl)
{
$this->baseUrl = $baseUrl;
}
/**
* Set the input page parameter name used by the paginator.
*
* @param string $pageName
* @return void
*/
public function setPageName($pageName)
{
$this->pageName = $pageName;
}
/**
* Get the input page parameter name used by the paginator.
*
* @return string
*/
public function getPageName()
{
return $this->pageName;
}
/**
* Get the name of the pagination view.
*
* @param string $view
* @return string
*/
public function getViewName($view = null)
{
if ( ! is_null($view)) return $view;
return $this->viewName ?: 'pagination::slider';
}
/**
* Set the name of the pagination view.
*
* @param string $viewName
* @return void
*/
public function setViewName($viewName)
{
$this->viewName = $viewName;
}
/**
* Get the locale of the paginator.
*
* @return string
*/
public function getLocale()
{
return $this->locale;
}
/**
* Set the locale of the paginator.
*
* @param string $locale
* @return void
*/
public function setLocale($locale)
{
$this->locale = $locale;
}
/**
* Get the active request instance.
*
* @return \Symfony\Component\HttpFoundation\Request
*/
public function getRequest()
{
return $this->request;
}
/**
* Set the active request instance.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* @return void
*/
public function setRequest(Request $request)
{
$this->request = $request;
}
/**
* Get the current view factory.
*
* @return \Illuminate\View\Factory
*/
public function getViewFactory()
{
return $this->view;
}
/**
* Set the current view factory.
*
* @param \Illuminate\View\Factory $view
* @return void
*/
public function setViewFactory(ViewFactory $view)
{
$this->view = $view;
}
/**
* Get the translator instance.
*
* @return \Symfony\Component\Translation\TranslatorInterface
*/
public function getTranslator()
{
return $this->trans;
}
}