From 3020be59fa3fd8d3ee540b8c73b828be165a7692 Mon Sep 17 00:00:00 2001 From: soufiane Date: Wed, 9 Oct 2024 11:18:18 +0200 Subject: [PATCH] wait #7123 --- app/Providers/AppServiceProvider.php | 1 + app/SubForms/News.php | 71 +++++++++ app/Templates/OurSolutions.php | 15 ++ resources/styles/components/form.styl | 3 + .../views/components/news-grid.blade.php | 10 +- .../components/news-item-array.blade.php | 22 +++ resources/views/pages/our_solutions.blade.php | 46 +++++- .../backpack/crud/form_content.blade.php | 145 ++++++++++++++++++ 8 files changed, 307 insertions(+), 6 deletions(-) create mode 100644 app/SubForms/News.php create mode 100644 resources/views/components/news-item-array.blade.php create mode 100644 resources/views/vendor/backpack/crud/form_content.blade.php diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index c05ccd3..22c3b3f 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -57,6 +57,7 @@ class AppServiceProvider extends ServiceProvider BladeX::component('components.cart-add')->tag('cart-add'); // ... BladeX::component('components.news-grid'); // ... BladeX::component('components.news-item'); // ... + BladeX::component('components.news-item-array'); // ... BladeX::component('components.address-form'); // ... BladeX::component('components.modal-confirm'); // ... BladeX::component('components.btn-delete'); // ... diff --git a/app/SubForms/News.php b/app/SubForms/News.php new file mode 100644 index 0000000..53c8760 --- /dev/null +++ b/app/SubForms/News.php @@ -0,0 +1,71 @@ +addField(['name' => 'title', + 'label' => 'Titre', + 'type' => 'Text']); + + $this->addField(['name' => 'text', + 'label' => 'Texte', + 'type' => 'Textarea', + 'attributes' => [ + 'rows' => 10, + ]]); + + $this->addField(['name' => 'image', + 'label' => 'Image', + 'type' => 'Images']); + + $this->addField(['name' => 'date', + 'label' => 'Date', + 'column' => true, + 'type' => 'Text']); + + $this->addField(['name' => 'page_product', + 'label' => 'Page produit', + 'type' => 'SelectFromArray', + 'options' => self::products(), + 'multiple' => false, + 'default' => '' + ]); + + $this->addField(['name' => 'page_page', + 'label' => 'Page generale', + 'type' => 'PageInternal', + 'multiple' => false, + ]); + + $this->addField(['name' => 'page_news', + 'label' => 'Page actualités', + 'type' => 'SelectFromArray', + 'options' => self::news(), + 'multiple' => false, + ]); + } + + public function news() { + return DB::table('cubist_news')->pluck('title->fr AS title','id'); + } + + public function products() { + return DB::table('catalog_products')->pluck('name->fr AS name','id'); + } +} diff --git a/app/Templates/OurSolutions.php b/app/Templates/OurSolutions.php index e5d9b38..226f528 100644 --- a/app/Templates/OurSolutions.php +++ b/app/Templates/OurSolutions.php @@ -4,6 +4,7 @@ namespace App\Templates; use App\Models\Application; use App\Models\News; +use Cubist\Backpack\app\Magic\Menu\Menu; use Cubist\Backpack\app\Magic\PageData; class OurSolutions extends Base @@ -73,6 +74,18 @@ class OurSolutions extends Base 'edit_label'=>"%title", 'tab' => 'Nos solutions']); + $this->addField(['name' => 'news_title', + 'label' => 'Titre', + 'type' => 'text', + 'tab' => 'Actualités']); + + $this->addField(['name' => 'news_items', + 'label' => 'Actualités', + 'type' => 'BunchOfFieldsMultiple', + 'bunch' => 'App\SubForms\News', + 'edit_label'=> "%title", + 'tab' => 'Actualités']); + $this->addField(['name' => 'faqs', 'label' => 'FAQs', 'type' => 'BunchOfFieldsMultiple', @@ -88,6 +101,8 @@ class OurSolutions extends Base { // Latest News posts $data['news'] = News::getPosts(4); + + $data['prefix'] = ''; } } diff --git a/resources/styles/components/form.styl b/resources/styles/components/form.styl index 33b4690..23e3094 100644 --- a/resources/styles/components/form.styl +++ b/resources/styles/components/form.styl @@ -71,3 +71,6 @@ // //&.half // flex: 0 1 48% + +#product-field-wrapper + display: none diff --git a/resources/views/components/news-grid.blade.php b/resources/views/components/news-grid.blade.php index 8c5021d..9d8c48c 100644 --- a/resources/views/components/news-grid.blade.php +++ b/resources/views/components/news-grid.blade.php @@ -1,4 +1,5 @@ @php + $array = $array ?? ''; $items = $items ?? []; $id = $id ?? ''; $extraClass = $extraClass ?? ''; @@ -6,7 +7,14 @@ @endphp + @dump($items) @foreach ($items as $newsItem) - + @if($array) + @dump('ok') + + @else + @dump('pas ok') + + @endif @endforeach diff --git a/resources/views/components/news-item-array.blade.php b/resources/views/components/news-item-array.blade.php new file mode 100644 index 0000000..48bf8e8 --- /dev/null +++ b/resources/views/components/news-item-array.blade.php @@ -0,0 +1,22 @@ +
+ + + {{ $page->getImageURLbyCollection($item['image']) }} + + +
+ +

+ + {{ $item['title'] }} + +

+

{{ $item['text'] }}

+ +

{{ __("En savoir plus") }}

+
+ +
diff --git a/resources/views/pages/our_solutions.blade.php b/resources/views/pages/our_solutions.blade.php index e46fefe..a9a73b0 100644 --- a/resources/views/pages/our_solutions.blade.php +++ b/resources/views/pages/our_solutions.blade.php @@ -122,7 +122,7 @@ {{ $item['title'] }}

{{ $item['text'] }}

- {{ __('Découvrir') }} + {{ __('Découvrir') }} @endisset @@ -132,15 +132,51 @@ {{-- --}} - @if(count($news) > 0) + @php($news = $page->get('news_items')) + @php($title = $page->get('news_title')) + @if(!empty($news)) {{-- News --}} - - + + + @foreach($news as $item) + + @if(!empty($item['page_product'])) + @php($prefix = 'product') + @elseif(!empty($item['page_page'])) + @php($prefix = 'page') + @elseif(!empty($item['page_news'])) + @php($prefix = 'news') + @endif + + @endforeach + + - @endif + @endif diff --git a/resources/views/vendor/backpack/crud/form_content.blade.php b/resources/views/vendor/backpack/crud/form_content.blade.php new file mode 100644 index 0000000..6951e6a --- /dev/null +++ b/resources/views/vendor/backpack/crud/form_content.blade.php @@ -0,0 +1,145 @@ +route) }}> + +@if ($crud->model->translationEnabled()) + request->input('locale')?$crud->request->input('locale'):App::getLocale() }}> +@endif + +{{-- See if we're using tabs --}} +@if ($crud->tabsEnabled() && count($crud->getTabs())) + @include('crud::inc.show_tabbed_fields') + +@else +
+ @include('crud::inc.show_fields', ['fields' => $fields]) +
+@endif + +{{-- Define blade stacks so css and js can be pushed from the fields to these sections. --}} + +@section('after_styles') + + + + + + @stack('crud_fields_styles') +@endsection + +@section('after_scripts') + + + + + + @stack('crud_fields_scripts') + + +@endsection + +@push('after_scripts') + +@endpush -- 2.39.5