| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- <?php
- $pageTitle = 'Dynamic Pages - Admin Panel';
- $headerTitle = 'Dynamic Pages';
- ob_start();
- ?>
- <?php if (isset($success)): ?>
- <div class="bg-green-50 border border-green-200 rounded-lg p-4 mb-6">
- <div class="flex">
- <svg class="w-5 h-5 text-green-400 mr-3 mt-0.5" fill="currentColor" viewBox="0 0 20 20">
- <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"/>
- </svg>
- <p class="text-sm text-green-700"><?= htmlspecialchars($success) ?></p>
- </div>
- </div>
- <?php endif; ?>
- <?php if (isset($error)): ?>
- <div class="bg-red-50 border border-red-200 rounded-lg p-4 mb-6">
- <div class="flex">
- <svg class="w-5 h-5 text-red-400 mr-3 mt-0.5" fill="currentColor" viewBox="0 0 20 20">
- <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clip-rule="evenodd"/>
- </svg>
- <p class="text-sm text-red-700"><?= htmlspecialchars($error) ?></p>
- </div>
- </div>
- <?php endif; ?>
- <div class="bg-white shadow rounded-lg">
- <div class="px-6 py-4 border-b border-gray-200 flex justify-between items-center">
- <h3 class="text-lg font-medium text-gray-900">Pages</h3>
- <a href="/admin/pages/?action=create" class="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 transition-colors">
- <svg class="w-5 h-5 mr-2" fill="currentColor" viewBox="0 0 20 20">
- <path fill-rule="evenodd" d="M10 3a1 1 0 011 1v5h5a1 1 0 110 2h-5v5a1 1 0 11-2 0v-5H4a1 1 0 110-2h5V4a1 1 0 011-1z" clip-rule="evenodd"/>
- </svg>
- New Page
- </a>
- </div>
- <?php if (!empty($pages)): ?>
- <div class="overflow-x-auto">
- <table class="min-w-full divide-y divide-gray-200">
- <thead class="bg-gray-50">
- <tr>
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Name</th>
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Slug</th>
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Layout</th>
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Homepage</th>
- <th scope="col" class="relative px-6 py-3"><span class="sr-only">Actions</span></th>
- </tr>
- </thead>
- <tbody class="bg-white divide-y divide-gray-200">
- <?php foreach ($pages as $page): ?>
- <tr class="hover:bg-gray-50">
- <td class="px-6 py-4 whitespace-nowrap">
- <div class="text-sm font-medium text-gray-900"><?= htmlspecialchars($page['name']) ?></div>
- <?php if (!empty($page['title'])): ?>
- <div class="text-sm text-gray-500"><?= htmlspecialchars($page['title']) ?></div>
- <?php endif; ?>
- </td>
- <td class="px-6 py-4 whitespace-nowrap">
- <span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-gray-100 text-gray-800">
- <?= htmlspecialchars($page['slug']) ?>
- </span>
- </td>
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">
- <?= htmlspecialchars($layouts[$page['layout']] ?? $page['layout']) ?>
- </td>
- <td class="px-6 py-4 whitespace-nowrap">
- <?php if ($page['is_homepage']): ?>
- <span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-800">
- <svg class="w-3 h-3 mr-1" fill="currentColor" viewBox="0 0 20 20">
- <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"/>
- </svg>
- Homepage
- </span>
- <?php else: ?>
- <span class="text-gray-400">-</span>
- <?php endif; ?>
- </td>
- <td class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
- <div class="flex justify-end space-x-2">
- <a href="/admin/pages/?action=edit&id=<?= $page['id'] ?>"
- class="inline-flex items-center px-3 py-1.5 border border-gray-300 shadow-sm text-xs font-medium rounded text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 transition-colors">
- <svg class="w-4 h-4 mr-1" fill="currentColor" viewBox="0 0 20 20">
- <path d="M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z"/>
- </svg>
- Edit
- </a>
- <form method="POST" action="/admin/pages/" class="inline-block" onsubmit="return confirm('Are you sure you want to delete this page?')">
- <input type="hidden" name="action" value="delete">
- <input type="hidden" name="id" value="<?= $page['id'] ?>">
- <button type="submit"
- class="inline-flex items-center px-3 py-1.5 border border-red-300 shadow-sm text-xs font-medium rounded text-red-700 bg-red-50 hover:bg-red-100 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 transition-colors">
- <svg class="w-4 h-4 mr-1" fill="currentColor" viewBox="0 0 20 20">
- <path fill-rule="evenodd" d="M9 2a1 1 0 000 2h2a1 1 0 100-2H9z" clip-rule="evenodd"/>
- <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8 7a1 1 0 012 0v4a1 1 0 11-2 0V7zm0 8a1 1 0 012 0v.01a1 1 0 11-2 0V15z" clip-rule="evenodd"/>
- </svg>
- Delete
- </button>
- </form>
- </div>
- </td>
- </tr>
- <?php endforeach; ?>
- </tbody>
- </table>
- </div>
- <?php else: ?>
- <div class="text-center py-12">
- <svg class="mx-auto h-12 w-12 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/>
- </svg>
- <h3 class="mt-2 text-sm font-medium text-gray-900">No pages</h3>
- <p class="mt-1 text-sm text-gray-500">Get started by creating a new page.</p>
- <div class="mt-6">
- <a href="/admin/pages/?action=create" class="inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 transition-colors">
- <svg class="w-5 h-5 mr-2" fill="currentColor" viewBox="0 0 20 20">
- <path fill-rule="evenodd" d="M10 3a1 1 0 011 1v5h5a1 1 0 110 2h-5v5a1 1 0 11-2 0v-5H4a1 1 0 110-2h5V4a1 1 0 011-1z" clip-rule="evenodd"/>
- </svg>
- New Page
- </a>
- </div>
- </div>
- <?php endif; ?>
- </div>
- <?php
- $content = ob_get_clean();
- include __DIR__ . '/../partials/layout.php';
- ?>
|