Ako doplním do stránkovania samotné cisla stranok?
- Takeshi
- Člen | 596
Ahojte,
narazil som na problém … ako doplním čisla stránok do stránkovania?
Mám nasledovné …
<?php
$paginator = new Nette\Utils\Paginator;
$paginator->setItemCount(2); // celkový počet položek (např. článků)
$paginator->setItemsPerPage(1); // počet položek na stránce
$paginator->setPage(1); // číslo aktuální stránky, číslováno od 1
$result = $this->dtb->table("collection")->limit($paginator->getLength(), $paginator->getOffset());
$this->template->collection = $result;
?>
… chýba mi niečo ako :
<?php
prev <1 2 3 4 ... 15 16?> next
?>
Editoval Takeshi (19. 11. 2015 21:21)
- CZechBoY
- Člen | 3608
Potřebuješ ještě vizuální část komponenty. Třeba https://github.com/…al-paginator
- Takeshi
- Člen | 596
CZechBoY napsal(a):
Potřebuješ ještě vizuální část komponenty. Třeba https://github.com/…al-paginator
Tak do app som si vlozil stiahnuty subor IPub, v ktorom je visual paginator
(tak nejako sa mi zda, ze som to robil aj minule) a do presentera som si
vytvoril component
…
<?php
protected function createComponentVisualPaginator()
{
// Init visual paginator
$control = new VisualPaginator;
return $control;
}
?>
a do sablony som dal …
<?php
{control visualPaginator}
?>
mam to ale zle … Class ‚IPub\VisualPaginator\Components‘ not found … ak mam nieco este niekde napisat, neviem co a ani kde … tak prosim este pomoct, dik …
Editoval Takeshi (19. 11. 2015 21:51)
- Takeshi
- Člen | 596
Takeshi napsal(a):
CZechBoY napsal(a):
Potřebuješ ještě vizuální část komponenty. Třeba https://github.com/…al-paginator
Tak do app som si vlozil stiahnuty subor IPub, v ktorom je visual paginator (tak nejako sa mi zda, ze som to robil aj minule) a do presentera som si vytvoril component
…<?php protected function createComponentVisualPaginator() { // Init visual paginator $control = new VisualPaginator; return $control; } ?>
a do sablony som dal …
<?php {control visualPaginator} ?>
mam to ale zle … Class ‚IPub\VisualPaginator\Components‘ not found … ak mam nieco este niekde napisat, neviem co a ani kde … tak prosim este pomoct, dik …
A aby som nezabudol … pridal som este do …
composer.json
<?php
{
"require": {
"ipub/visual-paginator": "dev-master"
}
}
?>
config.neon
<?php
extension:
visualPaginator: IPub\VisualPaginator\DI\VisualPaginatorExtension
?>
chyba … Found sections ‚extension‘ in configuration, but corresponding extensions are missing.
Editoval Takeshi (19. 11. 2015 22:03)
- Takeshi
- Člen | 596
OK, tak ja už neviem, snažil som sa robiť všetko podľa návodu + to, čo ste mi poradili na fóre … ale stálemám niekde chybu …
Presenter :
<?php
namespace App\Presenters;
use Nette;
use App\Model;
use Nette\Database;
use IPub\VisualPaginator\DI\VisualPaginatorExtension as VisualPaginator;
class HomepagePresenter extends BasePresenter
{
/**
* @var Model
*/
private $dataModel;
public function renderDefault()
{
$someItemsList = $this->dataModel->findAll();;
// Get visual paginator components
$visualPaginator = $this['visualPaginator'];
// Get paginator form visual paginator
$paginator = $visualPaginator->getPaginator();
// Define items count per one page
$paginator->itemsPerPage = 10;
// Define total items in list
$paginator->itemCount = $someItemsList->count();
// Apply limits to list
$someItemsList->limit($paginator->itemsPerPage, $paginator->offset);
}
/**
* Create items paginator
*
* @return VisualPaginator\Control
*/
protected function createComponentVisualPaginator()
{
// Init visual paginator
$control = new VisualPaginator;
return $control;
}
}
?>
Sablona :
<?php
{control visualPaginator}
?>
composer.jspn :
<?php
{
"require": {
...
"ipub/visual-paginator": "dev-master"
},
...
}
?>
config.neon
<?php
extensions:
visualPaginator: IPub\VisualPaginator\DI\VisualPaginatorExtension
?>… + IPub>VisualPaginator mam vlozeny pod app
CHYBA > Call to a member function findAll() on a non-object
Velka vdaka za pomoc
Editoval Takeshi (19. 11. 2015 23:21)
- Takeshi
- Člen | 596
CZechBoY napsal(a):
Chybí ti anotace
@inject
u$dataModel
+ ji nastav jako public./** * @var Model * @inject */ public $dataModel;
Dakujem … a ako som predpokladal … ukazala sa dalsia chyba >>> Class or interface ‚App\Model‘ used in @var annotation at App\Presenters\HomepagePresenter::$dataModel not found. Check annotation and ‚use‘ statements.
- Takeshi
- Člen | 596
Dakujem, toto som uz skusal aj predtym ale stale mi hadzalo chybu … aj uz
aj viem preco … Ked som vitvaral componentu VisualPaginator … zabudol som
pridat …
… vedel som ze to bude len nejaka blbost, kvoli ktorej budem hladat chybu cely
den :-D
Pred …
<?php
protected function createComponentVisualPaginator()
{
// Init visual paginator
$control = new VisualPaginator;
return $control;
}
?>
Opravene …
<?php
protected function createComponentVisualPaginator()
{
// Init visual paginator
$control = new VisualPaginator\Control;
return $control;
}
?>
Kazdopadne vdaka
- Pavel Macháň
- Člen | 282
kejlicz napsal(a):
Osobně si myslím, že by mohlo mít Nette nějaký jednoduchý visual paginator už v sobě. je to věc, která je potřeba skoro vždy a dost by to ulehčilo začátky. Taky jsem s tím ze začátku zápasil.
Visual paginátor bych do Nette netahal. VP komponent je hromada, jen si vybrat a pokud ti nesedí ani jedna tak si napiš lepší a tu pak používej znovu a znovu (a nebo ji dej jako opensource na github)
- Ondris
- Člen | 37
Myslím si že paginator, který je v Nette je dostačující https://doc.nette.org/…s/pagination
Na jednoduchý stránkování to stačí u složitějších věcí si stejně
každý vybere svou komponentu.