Skip to content

Commit def5baa

Browse files
update
1 parent 91dbf48 commit def5baa

File tree

5 files changed

+67
-20
lines changed

5 files changed

+67
-20
lines changed

src/Schema/Pagination/Yidas/views/bootstrap.php

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
<?php
2+
// Prepare variables in one scope (no JS added here)
3+
$page = $this->pagination->page;
4+
$totalPages = $this->pagination->pageCount;
5+
$isFirst = $page <= 1;
6+
$isLast = $page >= $totalPages;
7+
$prevPage = max(1, $page - 1);
8+
$nextPage = min($totalPages, $page + 1);
9+
$firstUrl = $this->pagination->createUrl(1);
10+
$prevUrl = $this->pagination->createUrl($prevPage);
11+
$nextUrl = $this->pagination->createUrl($nextPage);
12+
$lastUrl = $this->pagination->createUrl($totalPages);
13+
?>
114
<nav aria-label="Page navigation example">
215
<ul class="pagination <?php if($this->alignCenter):?>justify-content-center<?php endif?> <?=$this->ulCssClass?>">
316

@@ -6,7 +19,7 @@
619
<?php if($isFirst):?>
720
<span <?=$linkAttributes?> class="page-link"><?=$this->firstPageLabel?></span>
821
<?php else: ?>
9-
<a <?=$linkAttributes?> class="page-link" href="<?=$this->pagination->createUrl(1);?>"><?=$this->firstPageLabel?></a>
22+
<a <?=$linkAttributes?> class="page-link" href="<?=$firstUrl?>"><?=$this->firstPageLabel?></a>
1023
<?php endif ?>
1124
</li>
1225
<?php endif ?>
@@ -15,7 +28,7 @@
1528
<?php if($isFirst):?>
1629
<span <?=$linkAttributes?> class="page-link"><?=$this->prevPageLabel?></span>
1730
<?php else: ?>
18-
<a <?=$linkAttributes?> class="page-link" href="<?=$this->pagination->createUrl($page-1);?>"><?=$this->prevPageLabel?></a>
31+
<a <?=$linkAttributes?> class="page-link" href="<?=$prevUrl?>"><?=$this->prevPageLabel?></a>
1932
<?php endif ?>
2033
</li>
2134

@@ -29,7 +42,7 @@
2942
<?php if($isLast):?>
3043
<span <?=$linkAttributes?> class="page-link"><?=$this->nextPageLabel?></span>
3144
<?php else: ?>
32-
<a <?=$linkAttributes?> class="page-link" href="<?=$this->pagination->createUrl($page+1);?>"><?=$this->nextPageLabel?></a>
45+
<a <?=$linkAttributes?> class="page-link" href="<?=$nextUrl?>"><?=$this->nextPageLabel?></a>
3346
<?php endif ?>
3447
</li>
3548

@@ -38,7 +51,7 @@
3851
<?php if($isLast):?>
3952
<span <?=$linkAttributes?> class="page-link"><?=$this->lastPageLabel?></span>
4053
<?php else: ?>
41-
<a <?=$linkAttributes?> class="page-link" href="<?=$this->pagination->createUrl($this->pagination->pageCount);?>"><?=$this->lastPageLabel?></a>
54+
<a <?=$linkAttributes?> class="page-link" href="<?=$lastUrl?>"><?=$this->lastPageLabel?></a>
4255
<?php endif ?>
4356
</li>
4457
<?php endif ?>

src/Schema/Pagination/Yidas/views/cursor.php

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,24 @@
11
<div data-pagination-scope>
2+
<?php
3+
// Prepare variables in one scope
4+
$page = $this->pagination->page;
5+
$totalPages = $this->pagination->pageCount;
6+
$isFirst = $page <= 1;
7+
$isLast = $page >= $totalPages;
8+
$prevPage = max(1, $page - 1);
9+
$nextPage = min($totalPages, $page + 1);
10+
$firstUrl = $this->pagination->createUrl(1);
11+
$prevUrl = $this->pagination->createUrl($prevPage);
12+
$nextUrl = $this->pagination->createUrl($nextPage);
13+
$lastUrl = $this->pagination->createUrl($totalPages);
14+
?>
215
<div class="pagination ">
316

417
<div class="pagination-cursor">
518
<?php if($isFirst):?>
619
<span <?=$linkAttributes?>><?=$this->prevPageLabel?></span>
720
<?php else: ?>
8-
<a <?=$linkAttributes?> data-target="[data-pagination-content]" href="<?=$this->pagination->createUrl($page-1);?>"><?=$this->prevPageLabel?></a>
21+
<a <?=$linkAttributes?> data-target="[data-pagination-content]" href="<?=$prevUrl?>"><?=$this->prevPageLabel?></a>
922
<?php endif ?>
1023

1124
<?php foreach ($this->_buttonStack as $key => $btnPage): ?>
@@ -15,7 +28,7 @@
1528
<?php if($isLast):?>
1629
<span <?=$linkAttributes?>><?=$this->nextPageLabel?></span>
1730
<?php else: ?>
18-
<a <?=$linkAttributes?> data-target="[data-pagination-content]" href="<?=$this->pagination->createUrl($page+1);?>"><?=$this->nextPageLabel?></a>
31+
<a <?=$linkAttributes?> data-target="[data-pagination-content]" href="<?=$nextUrl?>"><?=$this->nextPageLabel?></a>
1932
<?php endif ?>
2033
</div>
2134

@@ -24,8 +37,8 @@
2437
<script>
2538
// Lightweight progressive AJAX for pagination (cursor view)
2639
(function(){
27-
if(window.__TAME_PAGINATION_INITED__) return;
28-
window.__TAME_PAGINATION_INITED__ = true;
40+
if(window.__TAME_PAGINATION_CURSOR_INITED__) return; // Guard for cursor view only
41+
window.__TAME_PAGINATION_CURSOR_INITED__ = true;
2942

3043
function closestAnchor(el){
3144
while(el && el !== document){ if(el.tagName === 'A') return el; el = el.parentNode; }
@@ -36,8 +49,11 @@ function closestAnchor(el){
3649
var a = closestAnchor(e.target);
3750
if(!a) return;
3851
if(a.getAttribute('data-pagination') !== 'ajax') return;
52+
3953
var href = a.getAttribute('href');
4054
if(!href) return;
55+
56+
// Prevent default only for our ajax link
4157
e.preventDefault();
4258

4359
var targetSelector = a.getAttribute('data-target') || '[data-pagination-content]';

src/Schema/Pagination/Yidas/views/loading.php

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
<div class="load-more-container" data-pagination-scope style="text-align: center; margin: 20px 0;">
22
<?php
3+
// Prepare variables in one scope
34
$page = $this->pagination->page;
45
$totalPages = $this->pagination->pageCount;
6+
$isFirst = $page <= 1;
57
$isLast = $page >= $totalPages;
6-
$nextPage = $page + 1;
8+
$prevPage = max(1, $page - 1);
9+
$nextPage = min($totalPages, $page + 1);
10+
$firstUrl = $this->pagination->createUrl(1);
11+
$prevUrl = $this->pagination->createUrl($prevPage);
712
$nextUrl = $this->pagination->createUrl($nextPage);
13+
$lastUrl = $this->pagination->createUrl($totalPages);
814
?>
915
<?php if (!$isLast): ?>
1016
<a <?=$linkAttributes?> href="<?php echo $nextUrl; ?>" class="load-more-btn" data-page="<?php echo $nextPage; ?>" data-mode="append" data-target="[data-pagination-append]" style="padding: 10px 20px; background-color: #007bff; color: white; border: none; border-radius: 5px; cursor: pointer; text-decoration: none; display: inline-block;">
@@ -17,8 +23,8 @@
1723
<script>
1824
// Lightweight progressive AJAX for pagination (load-more friendly)
1925
(function(){
20-
if(window.__TAME_PAGINATION_INITED__) return; // Guard against multiple inits
21-
window.__TAME_PAGINATION_INITED__ = true;
26+
if(window.__TAME_PAGINATION_LOADING_INITED__) return; // Guard against multiple inits for loading view
27+
window.__TAME_PAGINATION_LOADING_INITED__ = true;
2228

2329
function closestAnchor(el){
2430
while(el && el !== document){
@@ -29,16 +35,15 @@ function closestAnchor(el){
2935
}
3036

3137
document.addEventListener('click', function(e){
32-
33-
e.preventDefault();
34-
3538
var a = closestAnchor(e.target);
3639
if(!a) return;
3740
if(a.getAttribute('data-pagination') !== 'ajax') return;
38-
3941
var href = a.getAttribute('href');
4042
if(!href) return;
4143

44+
// Only prevent default if this is our AJAX pagination link
45+
e.preventDefault();
46+
4247
var mode = a.getAttribute('data-mode') || 'replace';
4348
var targetSelector = a.getAttribute('data-target') || '[data-pagination-content]';
4449
var scope = a.closest('[data-pagination-scope]');

src/Schema/Pagination/Yidas/views/simple.php

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,30 @@
1+
<?php
2+
// Prepare variables in one scope (no JS added here)
3+
$page = $this->pagination->page;
4+
$totalPages = $this->pagination->pageCount;
5+
$isFirst = $page <= 1;
6+
$isLast = $page >= $totalPages;
7+
$prevPage = max(1, $page - 1);
8+
$nextPage = min($totalPages, $page + 1);
9+
$firstUrl = $this->pagination->createUrl(1);
10+
$prevUrl = $this->pagination->createUrl($prevPage);
11+
$nextUrl = $this->pagination->createUrl($nextPage);
12+
$lastUrl = $this->pagination->createUrl($totalPages);
13+
?>
114
<div class="pagination">
215

316
<?php if($this->firstPageLabel):?>
417
<?php if($isFirst):?>
518
<span <?=$linkAttributes?>><?=$this->firstPageLabel?></span>
619
<?php else: ?>
7-
<a <?=$linkAttributes?> href="<?=$this->pagination->createUrl(1);?>"><?=$this->firstPageLabel?></a>
20+
<a <?=$linkAttributes?> href="<?=$firstUrl?>"><?=$this->firstPageLabel?></a>
821
<?php endif ?>
922
<?php endif ?>
1023

1124
<?php if($isFirst):?>
1225
<span <?=$linkAttributes?>><?=$this->prevPageLabel?></span>
1326
<?php else: ?>
14-
<a <?=$linkAttributes?> href="<?=$this->pagination->createUrl($page-1);?>"><?=$this->prevPageLabel?></a>
27+
<a <?=$linkAttributes?> href="<?=$prevUrl?>"><?=$this->prevPageLabel?></a>
1528
<?php endif ?>
1629

1730
<?php foreach ($this->_buttonStack as $key => $btnPage): ?>
@@ -21,14 +34,14 @@
2134
<?php if($isLast):?>
2235
<span <?=$linkAttributes?>><?=$this->nextPageLabel?></span>
2336
<?php else: ?>
24-
<a <?=$linkAttributes?> href="<?=$this->pagination->createUrl($page+1);?>"><?=$this->nextPageLabel?></a>
37+
<a <?=$linkAttributes?> href="<?=$nextUrl?>"><?=$this->nextPageLabel?></a>
2538
<?php endif ?>
2639

2740
<?php if($this->lastPageLabel):?>
2841
<?php if($isLast):?>
2942
<span <?=$linkAttributes?>><?=$this->lastPageLabel?></span>
3043
<?php else: ?>
31-
<a <?=$linkAttributes?> href="<?=$this->pagination->createUrl($this->pagination->pageCount);?>"><?=$this->lastPageLabel?></a>
44+
<a <?=$linkAttributes?> href="<?=$lastUrl?>"><?=$this->lastPageLabel?></a>
3245
<?php endif ?>
3346
<?php endif ?>
3447

tests/testLoop.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
config_pagination([
1111
'allow' => true,
12-
'view' => 'loading' //bootstrap|loading|simple/cursor[default]
12+
'view' => 'bootstrap' //bootstrap|loading|simple/cursor[default]
1313
]);
1414

1515
// dd(

0 commit comments

Comments
 (0)