Commit 1c55e51e33edfc41bda628303bf1cb5d43351a1e
1 parent
e3d190acce
Exists in
master
фиксы по 39 задаче
Showing 4 changed files with 32 additions and 23 deletions Inline Diff
app/Http/Controllers/EducationController.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Http\Controllers; | 3 | namespace App\Http\Controllers; |
4 | 4 | ||
5 | use App\Models\Education; | 5 | use App\Models\Education; |
6 | use App\Models\ProgramEducation; | 6 | use App\Models\ProgramEducation; |
7 | use Illuminate\Http\Request; | 7 | use Illuminate\Http\Request; |
8 | 8 | ||
9 | class EducationController extends Controller | 9 | class EducationController extends Controller |
10 | { | 10 | { |
11 | // Образование | 11 | // Образование |
12 | public function index(Request $request) { | 12 | public function index(Request $request) { |
13 | $educations = Education::query(); | 13 | $educations = Education::query(); |
14 | if (($request->has('search')) && (!empty($request->get('search')))) { | 14 | if (($request->has('search')) && (!empty($request->get('search')))) { |
15 | $search = trim($request->get('search')); | 15 | $search = trim($request->get('search')); |
16 | $educations = $educations->where('name', 'LIKE', "%$search%"); | 16 | $educations = $educations->where('name', 'LIKE', "%$search%"); |
17 | } | 17 | } |
18 | 18 | ||
19 | if ($request->get('sort')) { | 19 | if ($request->get('sort')) { |
20 | $sort = $request->get('sort'); | 20 | $sort = $request->get('sort'); |
21 | switch ($sort) { | 21 | switch ($sort) { |
22 | case 'name_up': $educations = $educations->orderBy('name')->orderBy('id'); break; | 22 | case 'name_up': $educations = $educations->orderBy('name')->orderBy('id'); break; |
23 | case 'name_down': $educations = $educations->orderByDesc('name')->orderby('id'); break; | 23 | case 'name_down': $educations = $educations->orderByDesc('name')->orderby('id'); break; |
24 | case 'created_at_up': $educations = $educations->OrderBy('created_at')->orderBy('id'); break; | 24 | case 'created_at_up': $educations = $educations->OrderBy('created_at')->orderBy('id'); break; |
25 | case 'created_at_down': $educations = $educations->orderByDesc('created_at')->orderBy('id'); break; | 25 | case 'created_at_down': $educations = $educations->orderByDesc('created_at')->orderBy('id'); break; |
26 | case 'default': $educations = $educations->orderBy('id')->orderby('updated_at'); break; | 26 | case 'default': $educations = $educations->orderBy('id')->orderby('updated_at'); break; |
27 | default: $educations = $educations->orderBy('id')->orderby('updated_at'); break; | 27 | default: $educations = $educations->orderBy('id')->orderby('updated_at'); break; |
28 | } | 28 | } |
29 | } else { | ||
30 | $educations->orderBy('name'); | ||
29 | } | 31 | } |
30 | 32 | ||
31 | $count_edu = $educations->count(); | 33 | $count_edu = $educations->count(); |
32 | $educations = $educations->paginate(6); | 34 | $educations = $educations->paginate(6); |
33 | if ($request->ajax()) { | 35 | if ($request->ajax()) { |
34 | return view('ajax.education', compact('educations')); | 36 | return view('ajax.education', compact('educations')); |
35 | } else { | 37 | } else { |
36 | return view('education.index', compact('educations', 'count_edu')); | 38 | return view('education.index', compact('educations', 'count_edu')); |
37 | } | 39 | } |
38 | } | 40 | } |
39 | 41 | ||
40 | public function show(Education $education){ | 42 | public function show(Education $education){ |
41 | $education_programs = ProgramEducation::query() | 43 | $education_programs = ProgramEducation::query() |
42 | ->where('education_id', '=', $education->id) | 44 | ->where('education_id', '=', $education->id) |
43 | ->get() | 45 | ->get() |
44 | ; | 46 | ; |
45 | // Группировка коллекции по полю 'level' | 47 | // Группировка коллекции по полю 'level' |
46 | $levels_education_programs = $education_programs->groupBy('level')->map(function ($items, $key) { | 48 | $levels_education_programs = $education_programs->groupBy('level')->map(function ($items, $key) { |
47 | return $items->map(function ($item) { | 49 | return $items->map(function ($item) { |
48 | return $item->toArray(); | 50 | return $item->toArray(); |
49 | })->toArray(); | 51 | })->toArray(); |
50 | })->toArray(); | 52 | })->toArray(); |
51 | //dd($levels_education_programs); | 53 | //dd($levels_education_programs); |
52 | return view('education.show', compact('education', 'levels_education_programs')); | 54 | return view('education.show', compact('education', 'levels_education_programs')); |
53 | } | 55 | } |
54 | } | 56 | } |
55 | 57 |
resources/views/ajax/education.blade.php
1 | <div class="main__ads" id="block" name="block"> | 1 | <div class="main__ads" id="block" name="block"> |
2 | @if ($educations->count()) | 2 | @if ($educations->count()) |
3 | @foreach($educations as $edu) | 3 | @foreach($educations as $edu) |
4 | <div class="main__ads-item"> | 4 | <div class="main__ads-item"> |
5 | <div class="main__ads-item-pic"> | 5 | <div class="main__ads-item-pic"> |
6 | <img src="@if (!empty($edu->image)) {{ asset(Storage::url($edu->image)) }} @else {{ asset('images/education.jpg') }} @endif" alt="{{ $edu->name }}"> | 6 | <img src="@if (!empty($edu->image)) {{ asset(Storage::url($edu->image)) }} @else {{ asset('images/education.jpg') }} @endif" alt="{{ $edu->name }}"> |
7 | <span> | ||
8 | <svg> | ||
9 | <use xlink:href="{{ asset('images/sprite.svg#v') }}"></use> | ||
10 | </svg> | ||
11 | </span> | ||
12 | </div> | 7 | </div> |
13 | <div class="main__ads-item-body"> | 8 | <div class="main__ads-item-body"> |
14 | <b>{{ $edu->name }}</b> | 9 | <b>{{ $edu->name }}</b> |
15 | <span>{{ $edu->program_education->count() }} учебных направлений</span> | 10 | <span>{{ $edu->program_education->count() }} учебных направлений</span> |
16 | <a href="" class="button button_light">Читать далее</a> | 11 | <a href="" class="button button_light">Читать далее</a> |
17 | </div> | 12 | </div> |
18 | </div> | 13 | </div> |
19 | @endforeach | 14 | @endforeach |
20 | 15 | ||
21 | {{ $educations->appends($_GET)->links('paginate') }} | 16 | {{ $educations->appends($_GET)->links('paginate') }} |
22 | @else | 17 | @else |
23 | <H2>Нет данных</H2> | 18 | <H2>Нет данных</H2> |
24 | @endif | 19 | @endif |
25 | </div> | 20 | </div> |
26 | 21 |
resources/views/education/index.blade.php
1 | @extends('layout.frontend', ['title' => 'Образование и образовательные программы - РекаМоре']) | 1 | @extends('layout.frontend', ['title' => 'Образование и образовательные программы - РекаМоре']) |
2 | 2 | ||
3 | @section('scripts') | 3 | @section('scripts') |
4 | <script> | 4 | <script> |
5 | console.log('Test system'); | ||
6 | $(document).on('change', '#sort_ajax', function() { | 5 | $(document).on('change', '#sort_ajax', function() { |
7 | var this_ = $(this); | 6 | var this_ = $(this); |
8 | var val_ = this_.val(); | 7 | var val_ = this_.val(); |
9 | console.log('sort items '+val_); | 8 | console.log('sort items '+val_); |
10 | 9 | ||
11 | $.ajax({ | 10 | $.ajax({ |
12 | type: "GET", | 11 | type: "GET", |
13 | url: "{{ route('education') }}", | 12 | url: "{{ route('education') }}", |
14 | data: "sort="+val_+"&block=1", | 13 | data: "sort="+val_+"&block=1", |
15 | success: function (data) { | 14 | success: function (data) { |
16 | console.log('Выбор сортировки'); | 15 | console.log('Выбор сортировки'); |
17 | console.log(data); | 16 | console.log(data); |
18 | $('#block').html(data); | 17 | $('#block').html(data); |
19 | history.pushState({}, '', "{{ route('education') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif"); | 18 | history.pushState({}, '', "{{ route('education') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif"); |
20 | }, | 19 | }, |
21 | headers: { | 20 | headers: { |
22 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | 21 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') |
23 | }, | 22 | }, |
24 | error: function (data) { | 23 | error: function (data) { |
25 | data = JSON.stringify(data); | 24 | data = JSON.stringify(data); |
26 | console.log('Error: ' + data); | 25 | console.log('Error: ' + data); |
27 | } | 26 | } |
28 | }); | 27 | }); |
29 | }); | 28 | }); |
30 | 29 | ||
31 | $(document).ready(function(){ | 30 | $(document).ready(function(){ |
32 | var sel = $('#select2-sort_ajax-container'); | 31 | var sel = $('#select2-sort_ajax-container'); |
33 | var key = getUrlParameter('sort'); | 32 | var key = getUrlParameter('sort'); |
34 | console.log(sel); | ||
35 | console.log(key); | ||
36 | 33 | ||
37 | if (key !=='') { | 34 | if (key !=='') { |
38 | console.log(key); | ||
39 | switch (key) { | 35 | switch (key) { |
40 | case "default": sel.html('Сортировка (по умолчанию)'); break; | 36 | case "default": sel.html('Сортировка (по умолчанию)'); break; |
41 | case "name_up": sel.html('По имени (возрастание)'); break; | 37 | case "name_up": sel.html('По имени (возрастание)'); break; |
42 | case "name_down": sel.html('По дате (убывание)'); break; | 38 | case "name_down": sel.html('По дате (убывание)'); break; |
43 | case "created_at_up": sel.html('По дате (возрастание)'); break; | 39 | case "created_at_up": sel.html('По дате (возрастание)'); break; |
44 | case "created_at_down": sel.html('По дате (убывание)'); break; | 40 | case "created_at_down": sel.html('По дате (убывание)'); break; |
45 | } | 41 | } |
46 | 42 | ||
47 | } | 43 | } |
48 | }); | 44 | }); |
49 | </script> | 45 | </script> |
50 | @endsection | 46 | @endsection |
51 | 47 | ||
52 | @section('content') | 48 | @section('content') |
53 | <section class="thing"> | 49 | <section class="thing"> |
54 | <div class="container"> | 50 | <div class="container"> |
55 | <form class="thing__body" active="{{ route('education') }}"> | 51 | <form class="thing__body" active="{{ route('education') }}"> |
56 | <ul class="breadcrumbs thing__breadcrumbs"> | 52 | <ul class="breadcrumbs thing__breadcrumbs"> |
57 | <li><a href="{{ route('index') }}">Главная</a></li> | 53 | <li><a href="{{ route('index') }}">Главная</a></li> |
58 | <li><b>Образование</b></li> | 54 | <li><b>Образование</b></li> |
59 | </ul> | 55 | </ul> |
60 | <h1 class="thing__title">Образование</h1> | 56 | <h1 class="thing__title">Образование</h1> |
61 | <p class="thing__text">Прежде всего, современная методология разработки представляет собой интересный эксперимент проверки направлений прогрессивного развития.</p> | 57 | <p class="thing__text">Прежде всего, современная методология разработки представляет собой интересный эксперимент проверки направлений прогрессивного развития.</p> |
62 | <div class="search thing__search"> | 58 | <div class="search thing__search"> |
63 | <input type="search" class="input" id="search" name="search" placeholder="Введите наименование работодателя" value="@if (!empty($_GET['search'])) {{ $_GET['search'] }} @endif"> | 59 | <input type="search" class="input" id="search" name="search" placeholder="Введите наименование работодателя" value="@if (!empty($_GET['search'])) {{ $_GET['search'] }} @endif"> |
64 | <button type="submit" class="button">Найти</button> | 60 | <button type="submit" class="button">Найти</button> |
65 | <span> | 61 | <span> |
66 | <svg> | 62 | <svg> |
67 | <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use> | 63 | <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use> |
68 | </svg> | 64 | </svg> |
69 | </span> | 65 | </span> |
70 | </div> | 66 | </div> |
71 | </form> | 67 | </form> |
72 | </div> | 68 | </div> |
73 | </section> | 69 | </section> |
74 | <main class="main"> | 70 | <main class="main"> |
75 | <div class="container"> | 71 | <div class="container"> |
76 | <div class="filters"> | 72 | <div class="filters"> |
77 | <div class="filters__label">Показано {{ $educations->firstItem() }} – {{ $educations->lastItem() }} из {{ $count_edu }} результатов поиска</div> | 73 | <div class="filters__label">Показано {{ $educations->firstItem() }} – {{ $educations->lastItem() }} из {{ $count_edu }} результатов поиска</div> |
78 | <div class="filters__body"> | 74 | <div class="filters__body"> |
79 | <div class="select filters__select"> | 75 | <div class="select filters__select"> |
80 | <select class="js-select2" id="sort_ajax" name="sort_ajax"> | 76 | <select class="js-select2" id="sort_ajax" name="sort_ajax"> |
81 | <option value="default">Сортировка (по умолчанию)</option> | 77 | <option value="default">Сортировка (по умолчанию)</option> |
82 | <option value="name_up">По имени (возрастание)</option> | 78 | <option value="name_up">По имени (возрастание)</option> |
83 | <option value="name_down">По имени (убывание)</option> | 79 | <option value="name_down">По имени (убывание)</option> |
84 | <option value="created_at_up">По дате (возрастание)</option> | 80 | <option value="created_at_up">По дате (возрастание)</option> |
85 | <option value="created_at_down">По дате (убывание)</option> | 81 | <option value="created_at_down">По дате (убывание)</option> |
86 | </select> | 82 | </select> |
87 | </div> | 83 | </div> |
88 | </div> | 84 | </div> |
89 | </div> | 85 | </div> |
90 | 86 | ||
91 | <div class="main__ads" id="block" name="block"> | 87 | <div class="main__ads" id="block" name="block"> |
92 | @if ($educations->count()) | 88 | @if ($educations->count()) |
93 | @foreach($educations as $edu) | 89 | @foreach($educations as $edu) |
94 | <div class="main__ads-item"> | 90 | <div class="main__ads-item"> |
95 | <div class="main__ads-item-pic"> | 91 | <div class="main__ads-item-pic"> |
96 | <img src="@if (!empty($edu->image)) {{ asset(Storage::url($edu->image)) }} @else {{ asset('images/education.jpg') }} @endif" alt="{{ $edu->name }}"> | 92 | <img src="@if (!empty($edu->image)) {{ asset(Storage::url($edu->image)) }} @else {{ asset('images/education.jpg') }} @endif" alt="{{ $edu->name }}"> |
97 | <span> | ||
98 | <svg> | ||
99 | <use xlink:href="{{ asset('images/sprite.svg#v') }}"></use> | ||
100 | </svg> | ||
101 | </span> | ||
102 | </div> | 93 | </div> |
103 | <div class="main__ads-item-body"> | 94 | <div class="main__ads-item-body"> |
104 | <b>{{ $edu->name }}</b> | 95 | <b>{{ $edu->name }}</b> |
105 | <span>{{ $edu->program_education->count() }} учебных направлений</span> | 96 | <span>{{ $edu->program_education->count() }} учебных направлений</span> |
106 | <a href="{{ route('show_education', ['education' => $edu->id]) }}" class="button button_light">Читать далее</a> | 97 | <a href="{{ route('show_education', ['education' => $edu->id]) }}" class="button button_light">Читать далее</a> |
107 | </div> | 98 | </div> |
108 | </div> | 99 | </div> |
109 | @endforeach | 100 | @endforeach |
110 | 101 | ||
111 | {{ $educations->appends($_GET)->links('paginate') }} | 102 | {{ $educations->appends($_GET)->links('paginate') }} |
112 | @else | 103 | @else |
113 | <H2>Нет данных</H2> | 104 | <H2>Нет данных</H2> |
114 | @endif | 105 | @endif |
115 | </div> | 106 | </div> |
116 | 107 | ||
117 | <!--<div class="pagination"> | 108 | <!--<div class="pagination"> |
118 | <a href="#" class="pagination__nav pagination__nav_prev"> | 109 | <a href="#" class="pagination__nav pagination__nav_prev"> |
119 | <svg> | 110 | <svg> |
120 | <use xlink:href="images/sprite.svg#arrow-bold"></use> | 111 | <use xlink:href="images/sprite.svg#arrow-bold"></use> |
121 | </svg> | 112 | </svg> |
122 | </a> | 113 | </a> |
123 | <span class="pagination__item active">1</span> | 114 | <span class="pagination__item active">1</span> |
124 | <a href="#" class="pagination__item">2</a> | 115 | <a href="#" class="pagination__item">2</a> |
125 | <a href="#" class="pagination__item">3</a> | 116 | <a href="#" class="pagination__item">3</a> |
126 | <a href="#" class="pagination__item">4</a> | 117 | <a href="#" class="pagination__item">4</a> |
127 | <a href="#" class="pagination__item">5</a> | 118 | <a href="#" class="pagination__item">5</a> |
128 | <span class="pagination__dots"> | 119 | <span class="pagination__dots"> |
129 | <svg> | 120 | <svg> |
130 | <use xlink:href="images/sprite.svg#dots"></use> | 121 | <use xlink:href="images/sprite.svg#dots"></use> |
131 | </svg> | 122 | </svg> |
132 | </span> | 123 | </span> |
133 | <a href="#" class="pagination__item">25</a> | 124 | <a href="#" class="pagination__item">25</a> |
134 | <a href="#" class="pagination__nav pagination__nav_next"> | 125 | <a href="#" class="pagination__nav pagination__nav_next"> |
135 | <svg> | 126 | <svg> |
136 | <use xlink:href="images/sprite.svg#arrow-bold"></use> | 127 | <use xlink:href="images/sprite.svg#arrow-bold"></use> |
137 | </svg> | 128 | </svg> |
138 | </a> | 129 | </a> |
139 | </div>--> | 130 | </div>--> |
140 | </div> | 131 | </div> |
141 | </main> | 132 | </main> |
142 | </div> | 133 | </div> |
143 | @endsection | 134 | @endsection |
144 | 135 |
resources/views/education/show.blade.php
1 | @extends('layout.frontend', ['title' => 'Образование и образовательные программы - РекаМоре']) | 1 | @extends('layout.frontend', ['title' => 'Образование и образовательные программы - РекаМоре']) |
2 | 2 | ||
3 | @section('scripts') | 3 | @section('scripts') |
4 | <script> | 4 | <script> |
5 | $(function(){ | 5 | $(function(){ |
6 | $( ".accordion").accordion(); | 6 | $('ul.accordion > li.accordion-item').click(function(e){ |
7 | if (e.target.closest('.accordion-sub')) { | ||
8 | return; | ||
9 | } | ||
10 | |||
11 | var this_li = $(this); | ||
12 | var thumb = this_li.find('> .accordion-thumb'); | ||
13 | |||
14 | if (thumb.hasClass('ui-state-active')){ | ||
15 | thumb.removeClass('ui-state-active'); | ||
16 | this_li.find('> .accordion-panel').hide(500); | ||
17 | } else { | ||
18 | thumb.addClass('ui-state-active'); | ||
19 | this_li.find('> .accordion-panel').show(500); | ||
20 | } | ||
21 | }); | ||
7 | 22 | ||
8 | $('ul.accordion-sub li.accordion-item').click(function(){ | 23 | $('ul.accordion-sub li.accordion-item').click(function(){ |
9 | var this_li = $(this); | 24 | var this_li = $(this); |
10 | var thumb = this_li.find('.accordion-thumb'); | 25 | var thumb = this_li.find('.accordion-thumb'); |
11 | var parent_ul = this_li.closest('ul'); | 26 | var parent_ul = this_li.closest('ul'); |
12 | var panel = this_li.closest('.accordion-panel'); | 27 | var panel = this_li.closest('.accordion-panel'); |
13 | var added_height = parseInt(panel.data('added-height')); | 28 | var added_height = parseInt(panel.data('added-height')); |
14 | 29 | ||
15 | if (isNaN(added_height)){ | 30 | if (isNaN(added_height)){ |
16 | added_height = 0; | 31 | added_height = 0; |
17 | } | 32 | } |
18 | 33 | ||
19 | parent_ul.find('.accordion-panel').hide(500); | ||
20 | |||
21 | if (thumb.hasClass('ui-state-active')){ | 34 | if (thumb.hasClass('ui-state-active')){ |
35 | this_li.find('.accordion-panel').hide(500); | ||
22 | thumb.removeClass('ui-state-active'); | 36 | thumb.removeClass('ui-state-active'); |
23 | 37 | ||
24 | var panel_height = panel.height() - parseInt(added_height); | 38 | var reduce_height = this_li.find('.accordion-panel').height() + 20; |
39 | var panel_height = panel.height() - parseInt(reduce_height); | ||
25 | panel.animate({height: panel_height + "px"}, { | 40 | panel.animate({height: panel_height + "px"}, { |
26 | easing: 'swing', | 41 | easing: 'swing', |
27 | duration: 500, | 42 | duration: 500, |
28 | complete: function () { | 43 | complete: function () { |
29 | panel.css('height', 'auto'); | 44 | panel.css('height', 'auto'); |
30 | } | 45 | } |
31 | }); | 46 | }); |
32 | panel.data('added-height', 0); | 47 | |
48 | added_height = parseInt(added_height) - parseInt(reduce_height); | ||
49 | if (added_height < 0){ | ||
50 | added_height = 0; | ||
51 | } | ||
52 | panel.data('added-height', added_height); | ||
33 | } else { | 53 | } else { |
34 | parent_ul.find('.accordion-thumb').removeClass('ui-state-active'); | ||
35 | thumb.addClass('ui-state-active'); | 54 | thumb.addClass('ui-state-active'); |
36 | 55 | ||
37 | var add_height = this_li.find('.accordion-panel').height() + 20; | 56 | var add_height = this_li.find('.accordion-panel').height() + 20; |
38 | var panel_height = panel.height() + parseInt(add_height) - parseInt(added_height); | 57 | var panel_height = panel.height() + parseInt(add_height); |
39 | panel.animate({height: panel_height + "px"}, { | 58 | panel.animate({height: panel_height + "px"}, { |
40 | easing: 'swing', | 59 | easing: 'swing', |
41 | duration: 500, | 60 | duration: 500, |
42 | complete: function () { | 61 | complete: function () { |
43 | panel.css('height', 'auto'); | 62 | panel.css('height', 'auto'); |
44 | } | 63 | } |
45 | }); | 64 | }); |
46 | this_li.find('.accordion-panel').show(500); | 65 | this_li.find('.accordion-panel').show(500); |
47 | panel.data('added-height', add_height); | 66 | |
67 | added_height = parseInt(added_height) + parseInt(add_height); | ||
68 | panel.data('added-height', added_height); | ||
48 | } | 69 | } |
49 | }); | 70 | }); |
50 | }); | 71 | }); |
51 | </script> | 72 | </script> |
52 | @endsection | 73 | @endsection |
53 | 74 | ||
54 | @section('content') | 75 | @section('content') |
55 | <section class="thing"> | 76 | <section class="thing"> |
56 | <div class="container"> | 77 | <div class="container"> |
57 | <div class="flex-middle-sm row"> | 78 | <div class="flex-middle-sm row"> |
58 | <div class="col-xs-12 col-sm-12"> | 79 | <div class="col-xs-12 col-sm-12"> |
59 | <div class="candidate-top-wrapper"> | 80 | <div class="candidate-top-wrapper"> |
60 | <div class="candidate-thumbnail"> | 81 | <div class="candidate-thumbnail"> |
61 | @if($education->image) | 82 | @if($education->image) |
62 | <img width="150" height="150" src="{{ asset(Storage::url($education->image)) }}" alt=""> | 83 | <img width="150" height="150" src="{{ asset(Storage::url($education->image)) }}" alt=""> |
63 | @endif | 84 | @endif |
64 | </div> | 85 | </div> |
65 | <div class="candidate-information"> | 86 | <div class="candidate-information"> |
66 | <h1 class="candidate-title">{{$education->name}}</h1> | 87 | <h1 class="candidate-title">{{$education->name}}</h1> |
67 | </div> | 88 | </div> |
68 | </div> | 89 | </div> |
69 | </div> | 90 | </div> |
70 | </div> | 91 | </div> |
71 | </div> | 92 | </div> |
72 | </section> | 93 | </section> |
73 | 94 | ||
74 | <main class="main"> | 95 | <main class="main"> |
75 | <div class="container"> | 96 | <div class="container"> |
76 | <div class="content-single-candidate"> | 97 | <div class="content-single-candidate"> |
77 | <div class="list-content-candidate"> | 98 | <div class="list-content-candidate"> |
78 | <div class="education-detail-description"> | 99 | <div class="education-detail-description"> |
79 | <h3 class="title">Об учебном заведении</h3> | 100 | <h3 class="title">Об учебном заведении</h3> |
80 | <div class="inner"> | 101 | <div class="inner"> |
81 | {!!$education->text!!} | 102 | {!!$education->text!!} |
82 | </div> | 103 | </div> |
83 | </div> | 104 | </div> |
84 | </div> | 105 | </div> |
85 | </div> | 106 | </div> |
86 | 107 | ||
87 | @if($levels_education_programs) | 108 | @if($levels_education_programs) |
88 | <div class="education-detail-programs"> | 109 | <div class="education-detail-programs"> |
89 | <h3 class="title">Программы обучения</h3> | 110 | <h3 class="title">Программы обучения</h3> |
90 | 111 | ||
91 | <ul class="accordion"> | 112 | <ul class="accordion"> |
92 | @foreach($levels_education_programs as $level_name => $education_programs) | 113 | @foreach($levels_education_programs as $level_name => $education_programs) |
93 | <li class="accordion-item"> | 114 | <li class="accordion-item"> |
94 | <h3 class="accordion-thumb">{{$level_name}}</h3> | 115 | <h3 class="accordion-thumb">{{$level_name}}</h3> |
95 | <div class="accordion-panel pb-20"> | 116 | <div class="accordion-panel hide pb-20"> |
96 | <div> | 117 | <div> |
97 | <ul class="accordion-sub"> | 118 | <ul class="accordion-sub"> |
98 | @foreach($education_programs as $education_program) | 119 | @foreach($education_programs as $education_program) |
99 | <li class="accordion-item"> | 120 | <li class="accordion-item"> |
100 | <h3 class="accordion-thumb">{{$education_program['name']}}</h3> | 121 | <h3 class="accordion-thumb">{{$education_program['name']}}</h3> |
101 | <div class="accordion-panel">{!!$education_program['text']!!}</div> | 122 | <div class="accordion-panel">{!!$education_program['text']!!}</div> |
102 | </li> | 123 | </li> |
103 | @endforeach | 124 | @endforeach |
104 | </ul> | 125 | </ul> |
105 | </div> | 126 | </div> |
106 | </div> | 127 | </div> |
107 | </li> | 128 | </li> |
108 | @endforeach | 129 | @endforeach |
109 | </ul> | 130 | </ul> |
110 | </div> | 131 | </div> |
111 | @endif | 132 | @endif |
112 | 133 | ||
113 | @if($education->address || $education->telephone || $education->email) | 134 | @if($education->address || $education->telephone || $education->email) |
114 | <div class="education-detail-contacts"> | 135 | <div class="education-detail-contacts"> |
115 | <h3 class="title">Контактная информация</h3> | 136 | <h3 class="title">Контактная информация</h3> |
116 | <div class="inner"> | 137 | <div class="inner"> |
117 | <div class="contacts address"> | 138 | <div class="contacts address"> |
118 | <div class="icon"><svg width="14" height="19" viewBox="0 0 14 19" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M6.84935 19C6.68849 18.8698 6.49925 18.7582 6.36678 18.6048C4.75349 16.759 3.26794 14.8156 2.03314 12.7002C1.31402 11.4728 0.68479 10.2036 0.296844 8.82738C-0.289805 6.76775 -0.0154048 4.82435 1.19574 3.04832C2.35012 1.36529 3.9776 0.351743 6.0356 0.0727861C8.0463 -0.201521 9.86302 0.300601 11.4337 1.56056C12.8199 2.67173 13.6431 4.11301 13.9223 5.85649C14.1399 7.21408 13.8797 8.50193 13.4018 9.76188C12.7632 11.4542 11.8501 13.0024 10.8376 14.4948C9.86302 15.9315 8.78907 17.2984 7.63943 18.6048C7.50223 18.7582 7.31772 18.8698 7.15686 19C7.05278 19 6.95343 19 6.84935 19ZM6.98181 10.343C8.88843 10.3756 10.4875 8.83203 10.5206 6.92117C10.5538 5.01497 8.99251 3.44351 7.03386 3.41097C5.11305 3.37842 3.51396 4.92198 3.48557 6.84214C3.45245 8.74834 5.0137 10.3058 6.98181 10.343Z" fill="#0E5C69"></path></svg></div> | 139 | <div class="icon"><svg width="14" height="19" viewBox="0 0 14 19" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M6.84935 19C6.68849 18.8698 6.49925 18.7582 6.36678 18.6048C4.75349 16.759 3.26794 14.8156 2.03314 12.7002C1.31402 11.4728 0.68479 10.2036 0.296844 8.82738C-0.289805 6.76775 -0.0154048 4.82435 1.19574 3.04832C2.35012 1.36529 3.9776 0.351743 6.0356 0.0727861C8.0463 -0.201521 9.86302 0.300601 11.4337 1.56056C12.8199 2.67173 13.6431 4.11301 13.9223 5.85649C14.1399 7.21408 13.8797 8.50193 13.4018 9.76188C12.7632 11.4542 11.8501 13.0024 10.8376 14.4948C9.86302 15.9315 8.78907 17.2984 7.63943 18.6048C7.50223 18.7582 7.31772 18.8698 7.15686 19C7.05278 19 6.95343 19 6.84935 19ZM6.98181 10.343C8.88843 10.3756 10.4875 8.83203 10.5206 6.92117C10.5538 5.01497 8.99251 3.44351 7.03386 3.41097C5.11305 3.37842 3.51396 4.92198 3.48557 6.84214C3.45245 8.74834 5.0137 10.3058 6.98181 10.343Z" fill="#0E5C69"></path></svg></div> |
119 | <div>{{$education->address}}</div> | 140 | <div>{{$education->address}}</div> |
120 | </div> | 141 | </div> |
121 | <div class="contacts phone"> | 142 | <div class="contacts phone"> |
122 | <div class="icon"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2.80729 6.05208C3.97396 8.3125 5.6875 10.026 7.94792 11.1927L9.66146 9.47917C9.90451 9.23611 10.1719 9.17535 10.4635 9.29688C11.3385 9.58854 12.2622 9.73438 13.2344 9.73438C13.4531 9.73438 13.6354 9.80729 13.7812 9.95312C13.9271 10.099 14 10.2812 14 10.5V13.2344C14 13.4531 13.9271 13.6354 13.7812 13.7812C13.6354 13.9271 13.4531 14 13.2344 14C9.58854 14 6.46528 12.7118 3.86458 10.1354C1.28819 7.53472 0 4.41146 0 0.765625C0 0.546875 0.0729167 0.364583 0.21875 0.21875C0.364583 0.0729167 0.546875 0 0.765625 0H3.5C3.71875 0 3.90104 0.0729167 4.04688 0.21875C4.19271 0.364583 4.26562 0.546875 4.26562 0.765625C4.26562 1.73785 4.41146 2.66146 4.70312 3.53646C4.80035 3.85243 4.73958 4.11979 4.52083 4.33854L2.80729 6.05208Z" fill="#0E5C69"></path></svg></div> | 143 | <div class="icon"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2.80729 6.05208C3.97396 8.3125 5.6875 10.026 7.94792 11.1927L9.66146 9.47917C9.90451 9.23611 10.1719 9.17535 10.4635 9.29688C11.3385 9.58854 12.2622 9.73438 13.2344 9.73438C13.4531 9.73438 13.6354 9.80729 13.7812 9.95312C13.9271 10.099 14 10.2812 14 10.5V13.2344C14 13.4531 13.9271 13.6354 13.7812 13.7812C13.6354 13.9271 13.4531 14 13.2344 14C9.58854 14 6.46528 12.7118 3.86458 10.1354C1.28819 7.53472 0 4.41146 0 0.765625C0 0.546875 0.0729167 0.364583 0.21875 0.21875C0.364583 0.0729167 0.546875 0 0.765625 0H3.5C3.71875 0 3.90104 0.0729167 4.04688 0.21875C4.19271 0.364583 4.26562 0.546875 4.26562 0.765625C4.26562 1.73785 4.41146 2.66146 4.70312 3.53646C4.80035 3.85243 4.73958 4.11979 4.52083 4.33854L2.80729 6.05208Z" fill="#0E5C69"></path></svg></div> |
123 | <div>{{$education->telephone}}</div> | 144 | <div>{{$education->telephone}}</div> |
124 | </div> | 145 | </div> |
125 | <div class="contacts email"> | 146 | <div class="contacts email"> |
126 | <div class="icon"><svg width="15" height="12" viewBox="0 0 15 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.7451 0H0L7.37253 3.68627L14.7451 0Z" fill="#0E5C69"></path><path d="M4.95911e-05 11.0588L14.7451 11.0588L7.37258 5.52944L4.95911e-05 11.0588Z" fill="#0E5C69"></path><path d="M14.7451 11.0588L14.7451 0L7.37258 5.5294L14.7451 11.0588Z" fill="#0E5C69"></path><path d="M1.31875e-07 3.71933e-05L0 11.0588L7.37253 5.52944L1.31875e-07 3.71933e-05Z" fill="#0E5C69"></path></svg></div> | 147 | <div class="icon"><svg width="15" height="12" viewBox="0 0 15 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.7451 0H0L7.37253 3.68627L14.7451 0Z" fill="#0E5C69"></path><path d="M4.95911e-05 11.0588L14.7451 11.0588L7.37258 5.52944L4.95911e-05 11.0588Z" fill="#0E5C69"></path><path d="M14.7451 11.0588L14.7451 0L7.37258 5.5294L14.7451 11.0588Z" fill="#0E5C69"></path><path d="M1.31875e-07 3.71933e-05L0 11.0588L7.37253 5.52944L1.31875e-07 3.71933e-05Z" fill="#0E5C69"></path></svg></div> |
127 | <div>{{$education->email}}</div> | 148 | <div>{{$education->email}}</div> |
128 | </div> | 149 | </div> |
129 | </div> | 150 | </div> |
130 | </div> | 151 | </div> |
131 | @endif | 152 | @endif |
132 | 153 | ||
133 | </div> | 154 | </div> |