PluginProbe
Filter Gallery / trunk
Filter Gallery vtrunk
1.1.5 1.1.4 1.1.3 1.1.2 trunk 0.0.1 0.0.2 0.0.3 0.0.4 0.0.5 0.0.6 0.0.7 0.0.8 0.0.9 0.1.0 0.1.1 0.1.2 0.1.3 0.1.4 0.1.5 0.1.6 0.1.7 0.1.8 0.1.9 0.2.0 All 28 releases
filter-gallery / admin / docs.php

docs.php in Filter Gallery trunk, at admin/docs.php

527 lines 26.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 $ufg_loader_title = __('Loading Gallery Documentation...', 'filter-gallery');
6 $ufg_loader_subtitle = __('Please wait while instructions database initializes', 'filter-gallery');
7 require_once 'loader.php';
8 ?>
9 <div class="wrap ufg-docs-page" style="margin: 32px 20px 0 10px;">
10 <!-- Tailwind Resets for this specific scope -->
11 <style>
12 .ufg-docs-page * {
13 box-sizing: border-box;
14 }
15
16 html {
17 scroll-behavior: smooth;
18 }
19
20 .ufg-docs-page section {
21 scroll-margin-top: 50px;
22 }
23
24 .ufg-docs-page .max-w-7xl {
25 max-width: 80rem;
26 margin-left: auto;
27 margin-right: auto;
28 }
29
30 .ufg-docs-page .flex {
31 display: flex;
32 }
33
34 .ufg-docs-page .flex-col {
35 flex-direction: column;
36 }
37
38 .ufg-docs-page .items-center {
39 align-items: center;
40 }
41
42 .ufg-docs-page .justify-between {
43 justify-content: space-between;
44 }
45
46 .ufg-docs-page .grid {
47 display: grid;
48 grid-template-columns: 1fr;
49 gap: 2rem;
50 }
51
52 @media (min-width: 1024px) {
53 .ufg-docs-page .lg\:grid-cols-3 {
54 grid-template-columns: repeat(3, minmax(0, 1fr));
55 }
56
57 .ufg-docs-page .lg\:col-span-1 {
58 grid-column: span 1 / span 1;
59 }
60
61 .ufg-docs-page .lg\:col-span-2 {
62 grid-column: span 2 / span 2;
63 }
64
65 .ufg-docs-page .lg\:flex-row {
66 flex-direction: row;
67 }
68
69 .ufg-sticky-sidebar {
70 position: sticky;
71 top: 50px;
72 }
73 }
74
75 .ufg-docs-page .bg-white {
76 background-color: #ffffff;
77 }
78
79 .ufg-docs-page .rounded-2xl {
80 border-radius: 1rem;
81 }
82
83 .ufg-docs-page .rounded-3xl {
84 border-radius: 1.5rem;
85 }
86
87 .ufg-docs-page .shadow-sm {
88 box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
89 }
90
91 .ufg-docs-page .p-6 {
92 padding: 1.5rem;
93 }
94
95 .ufg-docs-page .p-8 {
96 padding: 2rem;
97 }
98
99 .ufg-docs-page .border {
100 border: 1px solid #e2e8f0;
101 }
102
103 .ufg-docs-page .text-gray-900 {
104 color: #1a202c;
105 }
106
107 .ufg-docs-page .text-gray-600 {
108 color: #4a5568;
109 }
110
111 .ufg-docs-page .text-blue-600 {
112 color: #2563eb;
113 }
114
115 .ufg-docs-page .font-black {
116 font-weight: 900;
117 }
118
119 .ufg-docs-page .font-bold {
120 font-weight: 700;
121 }
122
123 .ufg-docs-page .tracking-tight {
124 letter-spacing: -0.025em;
125 }
126
127 .ufg-docs-page .no-underline {
128 text-decoration: none;
129 }
130
131 .ufg-docs-page .space-y-4>*+* {
132 margin-top: 1rem;
133 }
134
135 .ufg-docs-page .space-y-6>*+* {
136 margin-top: 1.5rem;
137 }
138
139 .ufg-docs-page .space-y-8>*+* {
140 margin-top: 2rem;
141 }
142
143 .ufg-docs-page .space-y-12>*+* {
144 margin-top: 3.5rem;
145 }
146
147 .ufg-docs-page .space-x-5>*+* {
148 margin-left: 1.25rem;
149 }
150
151 /* Section Styling */
152 .ufg-docs-page section {
153 overflow: hidden;
154 position: relative;
155 border-left: 4px solid #edf2f7;
156 transition: border-color 0.3s ease;
157 margin-bottom: 2rem;
158 }
159
160 .ufg-docs-page section:last-child {
161 margin-bottom: 0;
162 }
163
164 .ufg-docs-page section:hover {
165 border-left-color: #2563eb;
166 }
167
168 /* Header Icon Fix */
169 .ufg-header-icon {
170 width: 56px;
171 height: 56px;
172 background: #2563eb;
173 display: flex;
174 align-items: center;
175 justify-content: center;
176 border-radius: 16px;
177 color: white;
178 box-shadow: 0 4px 14px 0 rgba(37, 99, 235, 0.39);
179 }
180
181 .ufg-docs-page a,
182 .ufg-docs-page button {
183 transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
184 }
185
186 .ufg-docs-page a:hover {
187 transform: translateY(-2px);
188 opacity: 0.95;
189 }
190
191 .step-pill {
192 display: inline-flex;
193 width: 28px;
194 height: 28px;
195 background: #2563eb;
196 color: white;
197 border-radius: 50%;
198 align-items: center;
199 justify-content: center;
200 font-size: 12px;
201 font-weight: 900;
202 margin-right: 12px;
203 flex-shrink: 0;
204 }
205
206 .ufg-badge {
207 background: #edf2f7;
208 padding: 2px 6px;
209 border-radius: 4px;
210 font-weight: 800;
211 color: #2563eb;
212 font-size: 11px;
213 text-transform: uppercase;
214 }
215 </style>
216
217 <div class="max-w-7xl">
218 <!-- Header -->
219 <div class="flex flex-col lg:flex-row lg:items-center justify-between mb-10 flex-wrap gap-6"
220 style="border-bottom: 2px solid #edf2f7; padding-bottom: 32px;">
221 <div class="flex items-center space-x-5">
222 <div class="ufg-header-icon">
223 <span class="dashicons dashicons-format-gallery"
224 style="font-size: 32px; width: 32px; height: 32px;"></span>
225 </div>
226 <div>
227 <h1 class="font-black text-gray-900 tracking-tight"
228 style="font-size: 42px; margin: 0; line-height: 1;">Docs <span
229 style="font-size: 14px; background: #2563eb; color: white; padding: 4px 8px; border-radius: 6px; vertical-align: middle; margin-left: 10px;">v<?php echo esc_html(UFG_VERSION); ?></span>
230 </h1>
231 <p class="text-gray-600 font-medium" style="margin-top: 8px; font-size: 16px;">Everything you need
232 to build stunning filterable galleries.</p>
233 </div>
234 </div>
235
236 <div class="flex items-center gap-4 flex-wrap">
237 <a href="https://www.youtube.com/playlist?list=PLOeoids2h7nI63Ol923EMRsO8jWUzmDtz" target="_blank"
238 class="no-underline"
239 style="background: #ef4444; color: white; padding: 12px 24px; border-radius: 12px; font-weight: 900; font-size: 14px; text-transform: uppercase; letter-spacing: 1px; display: inline-flex; align-items: center; box-shadow: 0 4px 10px rgba(239, 68, 68, 0.3);">
240 <span class="dashicons dashicons-video-alt3"
241 style="margin-right: 10px; font-size: 20px; width: 20px; height: 20px;"></span>
242 Video Tutorial
243 </a>
244 <a href="<?php echo esc_url(admin_url('admin.php?page=filter-gallery-pro')); ?>" class="no-underline"
245 style="background: #1a202c; color: white; padding: 12px 24px; border-radius: 12px; font-weight: 900; font-size: 14px; text-transform: uppercase; letter-spacing: 1px; display: inline-block; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);">
246 Dashboard
247 </a>
248 </div>
249 </div>
250
251 <div class="grid lg:grid-cols-3">
252 <!-- Sidebar Navigation -->
253 <div class="lg:col-span-1">
254 <div class="ufg-sticky-sidebar space-y-6">
255 <div class="bg-white border rounded-2xl p-6 shadow-sm">
256 <h3 class="font-black text-gray-900"
257 style="text-transform: uppercase; font-size: 11px; letter-spacing: 2px; margin-bottom: 20px; color: #a0aec0;">
258 Documentation</h3>
259 <div class="flex flex-col space-y-4">
260 <a href="#getting-started"
261 class="text-gray-900 no-underline font-bold hover:text-blue-600 flex items-center transition-all">
262 <span
263 style="width: 6px; height: 6px; background: #2563eb; border-radius: 50%; margin-right: 12px;"></span>
264 1. Quick Start
265 </a>
266 <a href="#managing-filters"
267 class="text-gray-900 no-underline font-bold hover:text-blue-600 flex items-center transition-all">
268 <span
269 style="width: 6px; height: 6px; background: #cbd5e0; border-radius: 50%; margin-right: 12px;"></span>
270 2. Filter System
271 </a>
272 <a href="#adding-images"
273 class="text-gray-900 no-underline font-bold hover:text-blue-600 flex items-center transition-all">
274 <span
275 style="width: 6px; height: 6px; background: #cbd5e0; border-radius: 50%; margin-right: 12px;"></span>
276 3. Media Manager
277 </a>
278 <a href="#customizing"
279 class="text-gray-900 no-underline font-bold hover:text-blue-600 flex items-center transition-all">
280 <span
281 style="width: 6px; height: 6px; background: #cbd5e0; border-radius: 50%; margin-right: 12px;"></span>
282 4. Visual Styling
283 </a>
284 <a href="#shortcode-usage"
285 class="text-gray-900 no-underline font-bold hover:text-blue-600 flex items-center transition-all">
286 <span
287 style="width: 6px; height: 6px; background: #cbd5e0; border-radius: 50%; margin-right: 12px;"></span>
288 5. Shortcodes
289 </a>
290 <a href="#deep-linking"
291 class="text-gray-900 no-underline font-bold hover:text-blue-600 flex items-center transition-all">
292 <span
293 style="width: 6px; height: 6px; background: #cbd5e0; border-radius: 50%; margin-right: 12px;"></span>
294 6. Deep Linking
295 </a>
296 <a href="#troubleshooting"
297 class="text-gray-900 no-underline font-bold hover:text-blue-600 flex items-center transition-all">
298 <span
299 style="width: 6px; height: 6px; background: #cbd5e0; border-radius: 50%; margin-right: 12px;"></span>
300 7. Troubleshooting
301 </a>
302 </div>
303 </div>
304
305 <div
306 style="background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%); border-radius: 20px; padding: 28px; color: white; shadow-lg shadow-blue-200">
307 <h4 class="font-black" style="margin: 0 0 10px 0; font-size: 18px;">WP Frank Support</h4>
308 <p
309 style="font-size: 14px; color: rgba(255,255,255,0.8); line-height: 1.6; margin-bottom: 20px;">
310 Need a custom feature or expert help? Contact our premium support.</p>
311 <a href="https://wpfrank.com/contact" target="_blank"
312 class="no-underline font-black bg-white text-blue-600 px-6 py-3 rounded-xl inline-block"
313 style="font-size: 12px; text-transform: uppercase;">Contact Us →</a>
314 </div>
315 </div>
316 </div>
317
318 <!-- Content Area -->
319 <div class="lg:col-span-2 space-y-12">
320
321 <!-- 1. Quick Start -->
322 <section id="getting-started" class="bg-white border rounded-3xl p-8 shadow-sm">
323 <h2 class="font-black text-gray-900" style="font-size: 28px; margin: 0 0 24px 0;">1. Quick Start
324 Guide</h2>
325 <div class="text-gray-600" style="line-height: 1.8;">
326 <div class="space-y-6">
327 <div class="flex">
328 <span class="step-pill">1</span>
329 <div><strong class="text-gray-900">Add New:</strong> Click the "Add New Gallery" button
330 from the main list.</div>
331 </div>
332 <div class="flex">
333 <span class="step-pill">2</span>
334 <div><strong class="text-gray-900">Setup Filters:</strong> Create your filter tags in
335 the <span class="ufg-badge">Filters</span> tab.</div>
336 </div>
337 <div class="flex">
338 <span class="step-pill">3</span>
339 <div><strong class="text-gray-900">Pick Images:</strong> Select media from your
340 WordPress library in the <span class="ufg-badge">Images</span> tab.</div>
341 </div>
342 <div class="flex">
343 <span class="step-pill">4</span>
344 <div><strong class="text-gray-900">Assign:</strong> Click the tag icon on each image to
345 tell it which filters to follow.</div>
346 </div>
347 <div class="flex">
348 <span class="step-pill">5</span>
349 <div><strong class="text-gray-900">Save & View:</strong> Hit "Save" and paste the
350 shortcode into any page.</div>
351 </div>
352 </div>
353 </div>
354 </section>
355
356 <!-- 2. Filter System -->
357 <section id="managing-filters" class="bg-white border rounded-3xl p-8 shadow-sm">
358 <h2 class="font-black text-gray-900" style="font-size: 28px; margin: 0 0 20px 0;">2. Managing the
359 Filter System</h2>
360 <p class="text-gray-600 mb-6">Filters are the core of your gallery. You can organize them in two
361 levels:</p>
362
363 <div style="background: #f8fafc; border: 1px dashed #cbd5e0; padding: 20px; border-radius: 12px;"
364 class="space-y-4">
365 <div class="flex items-start">
366 <span class="dashicons dashicons-arrow-right-alt"
367 style="color: #2563eb; margin-top: 4px; margin-right: 12px;"></span>
368 <div>
369 <strong class="text-gray-900">Parent Filters:</strong> These appear as the main filter
370 buttons on your website.
371 </div>
372 </div>
373 <div class="flex items-start">
374 <span class="dashicons dashicons-arrow-right-alt"
375 style="color: #2563eb; margin-top: 4px; margin-right: 12px;"></span>
376 <div>
377 <strong class="text-gray-900">Child Filters (Sub-categories):</strong> You can assign a
378 parent to any filter to create a dropdown or organized hierarchy.
379 </div>
380 </div>
381 </div>
382 <p class="text-gray-600 mt-4 font-bold" style="color: #c53030; font-size: 13px;">
383 Note: Images assigned to a Child filter will automatically be counted towards the Parent filter
384 total.
385 </p>
386 <div style="margin-top: 24px;">
387 <strong class="text-gray-900" style="display: block; margin-bottom: 8px;">Default Selected Filter:</strong>
388 <p class="text-gray-600">You can choose which filter is selected by default when your gallery page loads. In the <span class="ufg-badge" style="background:#f1f5f9;color:#475569;border-color:#cbd5e0;">Settings</span> tab, locate <strong>Default Selected Filter</strong>. You can choose "All Filters", "None", or a specific category. Click the refresh icon next to the dropdown to sync any recent filter changes.</p>
389 </div>
390 </section>
391
392 <!-- 3. Media Manager -->
393 <section id="adding-images" class="bg-white border rounded-3xl p-8 shadow-sm">
394 <h2 class="font-black text-gray-900" style="font-size: 28px; margin: 0 0 20px 0;">3. Advanced Media
395 Controls</h2>
396 <p class="text-gray-600 mb-4">Each image in your gallery allows for full custom metadata:</p>
397 <ul class="space-y-4" style="list-style: none; padding: 0;">
398 <li class="flex items-center">
399 <span class="dashicons dashicons-edit" style="margin-right: 12px; color: #a0aec0;"></span>
400 <strong class="text-gray-900" style="width: 140px; display: inline-block;">Custom
401 Title:</strong> Use this to override the default attachment title.
402 </li>
403 <li class="flex items-center">
404 <span class="dashicons dashicons-editor-justify"
405 style="margin-right: 12px; color: #a0aec0;"></span>
406 <strong class="text-gray-900"
407 style="width: 140px; display: inline-block;">Description:</strong> High-resolution
408 description that appears on hover.
409 </li>
410 <li class="flex items-center">
411 <span class="dashicons dashicons-admin-links"
412 style="margin-right: 12px; color: #a0aec0;"></span>
413 <strong class="text-gray-900" style="width: 140px; display: inline-block;">Custom
414 Link:</strong> Turn any image into a direct link to another page.
415 </li>
416 </ul>
417 </section>
418
419 <!-- 4. Visual Styling -->
420 <section id="customizing" class="bg-white border rounded-3xl p-8 shadow-sm">
421 <h2 class="font-black text-gray-900" style="font-size: 28px; margin: 0 0 20px 0;">4. Visual Styling
422 & Settings</h2>
423 <p class="text-gray-600">Head to the <span class="ufg-badge">Settings</span> tab to master the
424 appearance:</p>
425
426 <div class="grid lg:grid-cols-2 gap-4 mt-6">
427 <div class="p-4 border rounded-xl bg-gray-50">
428 <h4 class="font-bold text-gray-900 mb-1">Layout Grid</h4>
429 <p class="text-xs text-gray-600">Set columns for Desktop, Tablet, and Mobile independently.
430 </p>
431 </div>
432 <div class="p-4 border rounded-xl bg-gray-50">
433 <h4 class="font-bold text-gray-900 mb-1">Color Tokens</h4>
434 <p class="text-xs text-gray-600">Customize button backgrounds, text colors, and hover
435 overlays.</p>
436 </div>
437 <div class="p-4 border rounded-xl bg-gray-50">
438 <h4 class="font-bold text-gray-900 mb-1">Load More</h4>
439 <p class="text-xs text-gray-600">Enable infinite pagination with custom button text and
440 colors.</p>
441 </div>
442 <div class="p-4 border rounded-xl bg-gray-50">
443 <h4 class="font-bold text-gray-900 mb-1">Animations</h4>
444 <p class="text-xs text-gray-600">Choose from CSS-driven hover effects and image entrance
445 fades.</p>
446 </div>
447 </div>
448 </section>
449
450 <!-- 5. Shortcodes -->
451 <section id="shortcode-usage" class="bg-white border rounded-3xl p-8 shadow-sm">
452 <h2 class="font-black text-gray-900" style="font-size: 28px; margin: 0 0 16px 0;">5. Published
453 Shortcodes</h2>
454 <div
455 style="background: #1a202c; color: #4ade80; padding: 24px; border-radius: 16px; font-family: 'JetBrains Mono', monospace; font-size: 18px; margin-bottom: 20px; position: relative; overflow: hidden; box-shadow: inset 0 2px 10px rgba(0,0,0,0.5);">
456 <span
457 style="position: absolute; top:0; right: 0; background: #2d3748; padding: 6px 14px; font-size: 11px; color: #94a3b8; border-bottom-left-radius: 10px; font-family: sans-serif; font-weight: 800;">PHP
458 TAG</span>
459 [ufg-gallery id="1"]
460 </div>
461 <p class="text-gray-600">Paste this ID anywhere in your WordPress editor (Gutenberg, Elementor,
462 Divi) to render the gallery. To change the gallery, just update the ID number.</p>
463 </section>
464
465 <!-- 6. Deep Linking & URL Filtering -->
466 <section id="deep-linking" class="bg-white border rounded-3xl p-8 shadow-sm">
467 <h2 class="font-black text-gray-900" style="font-size: 28px; margin: 0 0 20px 0;">6. Deep Linking & URL Filtering</h2>
468 <p class="text-gray-600 mb-4">You can link directly to a specific pre-filtered view of your gallery by appending the filter's slug/key to the URL. This allows you to send direct links to pre-filtered collections of images to your clients or users.</p>
469
470 <div class="space-y-6">
471 <div>
472 <strong class="text-gray-900" style="display: block; margin-bottom: 6px;">Method 1: Using URL Hash (Dynamic)</strong>
473 <p class="text-gray-600 m-0">Append <code style="background: #f1f5f9; padding: 2px 6px; border-radius: 4px; font-family: monospace;">#ufg-filter=your-filter-slug</code> to the page URL.</p>
474 <div style="background: #f8fafc; border: 1px solid #e2e8f0; padding: 12px; border-radius: 8px; font-family: monospace; font-size: 13px; margin-top: 8px; color: #0f172a;">
475 http://yourwebsite.com/gallery/#ufg-filter=brands
476 </div>
477 <p class="text-xs text-gray-500 mt-2">💡 Tip: Clicking on filter buttons dynamically updates the hash in the browser address bar, allowing you to copy the direct link at any time without reloading the page.</p>
478 </div>
479
480 <div>
481 <strong class="text-gray-900" style="display: block; margin-bottom: 6px;">Method 2: Using Query Parameters</strong>
482 <p class="text-gray-600 m-0">Append <code style="background: #f1f5f9; padding: 2px 6px; border-radius: 4px; font-family: monospace;">?ufg_filter=your-filter-slug</code> to the page URL.</p>
483 <div style="background: #f8fafc; border: 1px solid #e2e8f0; padding: 12px; border-radius: 8px; font-family: monospace; font-size: 13px; margin-top: 8px; color: #0f172a;">
484 http://yourwebsite.com/gallery/?ufg_filter=brands
485 </div>
486 </div>
487
488 <div style="background: #f0fdf4; border: 1px solid #bbf7d0; padding: 16px; border-radius: 12px;">
489 <strong class="text-green-800" style="display: block; margin-bottom: 4px;">🌿 Full Multi-Level Hierarchy Support</strong>
490 <p class="text-sm text-green-700 m-0">If you link to a nested subcategory (e.g. level 3 filter), the gallery will automatically expand all its parent categories, highlight the selection path, and active the filter on page load.</p>
491 </div>
492 </div>
493 </section>
494
495 <!-- 7. Troubleshooting -->
496 <section id="troubleshooting" class="bg-white border rounded-3xl p-8 shadow-sm"
497 style="background: #fff5f5; border-color: #fed7d7;">
498 <h2 class="font-black text-gray-900" style="font-size: 28px; margin: 0 0 24px 0; color: #c53030;">7.
499 Troubleshooting</h2>
500 <div class="space-y-6">
501 <div class="flex gap-4">
502 <span class="dashicons dashicons-info" style="color: #c53030; font-size: 20px;"></span>
503 <div>
504 <h4 class="font-bold text-gray-900 mb-1">Double Counting?</h4>
505 <p class="text-sm text-gray-600 m-0">In version 6.0.1+ we have fixed recursive counting.
506 Ensure your child images are properly assigned to parent groups for accurate counts.
507 </p>
508 </div>
509 </div>
510 <div class="flex gap-4">
511 <span class="dashicons dashicons-info" style="color: #c53030; font-size: 20px;"></span>
512 <div>
513 <h4 class="font-bold text-gray-900 mb-1">Style not updating?</h4>
514 <p class="text-sm text-gray-600 m-0">Click the "Save Gallery" button twice to ensure the
515 dynamic CSS cache refreshes, or clear your site's plugin cache.</p>
516 </div>
517 </div>
518 </div>
519 </section>
520 </div>
521 </div>
522 </div>
523 </div>
524 <?php
525 // Add some spacing after the wrapper
526 echo '<div style="height: 100px;"></div>';
527 ?>