app.blade.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <!DOCTYPE html>
  2. <html lang="ru">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>@yield('title', 'Блог') - {{ config('app.name') }}</title>
  7. {{-- Tailwind CSS CDN --}}
  8. <script src="https://cdn.tailwindcss.com"></script>
  9. @stack('styles')
  10. </head>
  11. <body class="bg-gray-50 min-h-screen">
  12. {{-- Навигация --}}
  13. <nav class="bg-white shadow-lg">
  14. <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
  15. <div class="flex justify-between h-16">
  16. <div class="flex">
  17. <div class="flex-shrink-0 flex items-center">
  18. <a href="{{ route('home') }}" class="text-2xl font-bold text-indigo-600">
  19. {{ config('app.name', 'Блог') }}
  20. </a>
  21. </div>
  22. <div class="hidden sm:ml-6 sm:flex sm:space-x-8">
  23. <a href="{{ route('home') }}"
  24. class="inline-flex items-center px-1 pt-1 border-b-2 {{ request()->routeIs('home') ? 'border-indigo-500 text-gray-900' : 'border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700' }}">
  25. Главная
  26. </a>
  27. <a href="{{ route('posts.index') }}"
  28. class="inline-flex items-center px-1 pt-1 border-b-2 {{ request()->routeIs('posts.*') ? 'border-indigo-500 text-gray-900' : 'border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700' }}">
  29. Все посты
  30. </a>
  31. </div>
  32. </div>
  33. <div class="flex items-center">
  34. <a href="{{ route('posts.create') }}"
  35. class="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700">
  36. Создать пост
  37. </a>
  38. <a href="{{ route('comments.moderate') }}"
  39. class="ml-4 inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50">
  40. Модерация
  41. </a>
  42. </div>
  43. </div>
  44. </div>
  45. </nav>
  46. {{-- Уведомления --}}
  47. @if(session('success'))
  48. <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 mt-4">
  49. <div class="bg-green-50 border-l-4 border-green-400 p-4 rounded">
  50. <div class="flex">
  51. <div class="flex-shrink-0">
  52. <svg class="h-5 w-5 text-green-400" viewBox="0 0 20 20" fill="currentColor">
  53. <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"/>
  54. </svg>
  55. </div>
  56. <div class="ml-3">
  57. <p class="text-sm text-green-700">{{ session('success') }}</p>
  58. </div>
  59. </div>
  60. </div>
  61. </div>
  62. @endif
  63. @if(session('error'))
  64. <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 mt-4">
  65. <div class="bg-red-50 border-l-4 border-red-400 p-4 rounded">
  66. <div class="flex">
  67. <div class="flex-shrink-0">
  68. <svg class="h-5 w-5 text-red-400" viewBox="0 0 20 20" fill="currentColor">
  69. <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"/>
  70. </svg>
  71. </div>
  72. <div class="ml-3">
  73. <p class="text-sm text-red-700">{{ session('error') }}</p>
  74. </div>
  75. </div>
  76. </div>
  77. </div>
  78. @endif
  79. {{-- Основной контент --}}
  80. <main class="py-8">
  81. @yield('content')
  82. </main>
  83. {{-- Футер --}}
  84. <footer class="bg-white border-t mt-12">
  85. <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6">
  86. <p class="text-center text-gray-500 text-sm">
  87. &copy; {{ date('Y') }} {{ config('app.name') }}. Все права защищены.
  88. </p>
  89. </div>
  90. </footer>
  91. @stack('scripts')
  92. </body>
  93. </html>