66 */
77$ isFeatured = $ isFeatured ?? false ;
88$ query = $ this ->getRequest ()->getQueryParams ();
9+ $ tagGroups = $ package ->cake_php_tag_groups ;
10+ krsort ($ tagGroups );
11+ $ existingSlugs = (array )($ query ['cakephp_slugs ' ] ?? []);
12+ $ packageId = preg_replace ('/[^a-z0-9]/i ' , '- ' , strtolower ($ package ->package ));
13+ $ dialogId = 'compat- ' . $ packageId ;
914?>
1015<article class="card h-full rounded-3xl border border-base-300 bg-base-100 shadow-sm transition hover:-translate-y-1 hover:shadow-lg overflow-hidden">
1116 <a class="card-header block bg-base-200 px-5 py-4 transition hover:bg-base-100 border-b border-base-300"
3641 <p class="mb-2 text-xs font-semibold uppercase tracking-[0.2em] opacity-60">
3742 <?= __ ('CakePHP Compatibility ' ) ?>
3843 </p>
39- <?php
40- $ tagGroups = $ package ->cake_php_tag_groups ;
41- krsort ($ tagGroups );
42- $ existingSlugs = (array )($ query ['cakephp_slugs ' ] ?? []);
43- $ packageId = preg_replace ('/[^a-z0-9]/i ' , '- ' , strtolower ($ package ->package ));
44- $ dialogId = 'compat- ' . $ packageId ;
45- ?>
4644 <div class="flex flex-wrap gap-2">
4745 <?php foreach ($ tagGroups as $ majorVersion => $ tags ): ?>
4846 <?php
@@ -56,43 +54,6 @@ class="btn btn-xs <?= $isActive ? 'btn-primary' : 'btn-soft btn-primary' ?>">
5654 </button>
5755 <?php endforeach ; ?>
5856 </div>
59-
60- <dialog id="<?= h ($ dialogId ) ?> " class="modal">
61- <div class="modal-box max-w-md">
62- <h3 class="mb-1 text-base font-semibold"><?= h ($ package ->package ) ?> </h3>
63- <p class="mb-4 text-xs opacity-50"><?= __ ('Filter by CakePHP version ' ) ?> </p>
64- <div class="space-y-4">
65- <?php foreach ($ tagGroups as $ majorVersion => $ tags ): ?>
66- <div>
67- <p class="mb-2 text-xs font-semibold uppercase tracking-wider opacity-50"><?= __ ('CakePHP {0}.x ' , h ($ majorVersion )) ?> </p>
68- <div class="flex flex-wrap gap-2">
69- <?php foreach ($ tags as $ tag ): ?>
70- <?php
71- $ slug = $ tag ->slug ;
72- $ tagIsActive = in_array ($ slug , $ existingSlugs , true );
73- $ tagQuery = $ query ;
74- $ tagQuery ['cakephp_slugs ' ] = $ tagIsActive
75- ? array_values (array_diff ($ existingSlugs , [$ slug ]))
76- : array_values (array_unique (array_merge ($ existingSlugs , [$ slug ])));
77- unset($ tagQuery ['page ' ]);
78- ?>
79- <a href="<?= h ($ this ->Url ->build (['? ' => $ tagQuery ])) ?> "
80- class="btn btn-xs <?= $ tagIsActive ? 'btn-error ' : 'btn-soft btn-error ' ?> ">
81- <?= h (str_replace ('CakePHP: ' , '' , $ tag ->label )) ?>
82- </a>
83- <?php endforeach ; ?>
84- </div>
85- </div>
86- <?php endforeach ; ?>
87- </div>
88- <div class="modal-action">
89- <form method="dialog">
90- <button class="btn btn-sm btn-ghost"><?= __ ('Close ' ) ?> </button>
91- </form>
92- </div>
93- </div>
94- <form method="dialog" class="modal-backdrop"><button><?= __ ('Close ' ) ?> </button></form>
95- </dialog>
9657 </div>
9758 <?php endif ; ?>
9859 </div>
@@ -127,3 +88,41 @@ class="btn btn-xs <?= $tagIsActive ? 'btn-error' : 'btn-soft btn-error' ?>">
12788 </div>
12889 </div>
12990</article>
91+ <?php if ($ package ->cake_php_tags ): ?>
92+ <dialog id="<?= h ($ dialogId ) ?> " class="modal">
93+ <div class="modal-box max-w-md">
94+ <h3 class="mb-1 text-base font-semibold"><?= h ($ package ->package ) ?> </h3>
95+ <p class="mb-4 text-xs opacity-50"><?= __ ('Filter by CakePHP version ' ) ?> </p>
96+ <div class="space-y-4">
97+ <?php foreach ($ tagGroups as $ majorVersion => $ tags ): ?>
98+ <div>
99+ <p class="mb-2 text-xs font-semibold uppercase tracking-wider opacity-50"><?= __ ('CakePHP {0}.x ' , h ($ majorVersion )) ?> </p>
100+ <div class="flex flex-wrap gap-2">
101+ <?php foreach ($ tags as $ tag ): ?>
102+ <?php
103+ $ slug = $ tag ->slug ;
104+ $ tagIsActive = in_array ($ slug , $ existingSlugs , true );
105+ $ tagQuery = $ query ;
106+ $ tagQuery ['cakephp_slugs ' ] = $ tagIsActive
107+ ? array_values (array_diff ($ existingSlugs , [$ slug ]))
108+ : array_values (array_unique (array_merge ($ existingSlugs , [$ slug ])));
109+ unset($ tagQuery ['page ' ]);
110+ ?>
111+ <a href="<?= h ($ this ->Url ->build (['? ' => $ tagQuery ])) ?> "
112+ class="btn btn-xs <?= $ tagIsActive ? 'btn-error ' : 'btn-soft btn-error ' ?> ">
113+ <?= h (str_replace ('CakePHP: ' , '' , $ tag ->label )) ?>
114+ </a>
115+ <?php endforeach ; ?>
116+ </div>
117+ </div>
118+ <?php endforeach ; ?>
119+ </div>
120+ <div class="modal-action">
121+ <form method="dialog">
122+ <button class="btn btn-sm btn-ghost"><?= __ ('Close ' ) ?> </button>
123+ </form>
124+ </div>
125+ </div>
126+ <form method="dialog" class="modal-backdrop"><button><?= __ ('Close ' ) ?> </button></form>
127+ </dialog>
128+ <?php endif ; ?>
0 commit comments