ldc-loue/resources/views/back/news/form.blade.php
2022-07-04 10:17:34 +00:00

165 lines
9.4 KiB
PHP

<div class="row">
<div class="col">
<fieldset class="border p-3 mb-3">
<legend>{{ __('Informations générales') }}</legend>
<div class="row mb-3">
<div class="col-12 col-md-6 form-group">
<label for="newsModelTitle" class="col-form-label"><b>{{ __('Titre') }}</b></label>
<div class="word-counter" data-json='@json(['id' => 'newsModelTitle'])'></div>
<input name="title" type="text" value="{{ old('title', $newsModel->title ?? '') }}" class="form-control"
id="newsModelTitle" aria-describedby="newsModelTitleHelp" placeholder="{{ __('Un titre beau et explicite') }}" required>
@include('back.modules.input-error', [
'inputName' => 'title', 'helperId' => 'newsModelTitleHelp' , 'helper' => __('Doit décrire précisément l\'article')
])
@include('back.modules.input-error', [
'inputName' => 'slug'
])
</div>
<div class="col-12 col-md-6 form-group">
<label for="newsModelPublished" class="col-form-label"><b>{{ __('Publication') }}</b></label>
@if(isset($newsModel) and $newsModel->published->equals(App\Enums\PublishedStatus::published()))
<span class="col-form-label ms-3 fst-italic">{{ __('Publié le :date', ['date' => $newsModel->published_at->formatLocalized('%d/%m/%Y à %I:%M')]) }}</span>
@endif
<select id="newsModelPublished" class="form-select" name="published" aria-describedby="newsModelPublishedHelp" required>
<option value="" @if(is_null(old('published', $newsModel->published ?? null))) selected @endif disabled>{{ __('Séléctionnez un statut de publication') }}</option>
@foreach(App\Enums\PublishedStatus::toArray() as $status)
<option value="{{ $status->value }}" @if(old('published', optional($newsModel->published ?? null)->value) == $status->value) selected @endif>{!! $status->icon !!}&nbsp;{{ $status->label }}</option>
@endforeach
</select>
@include('back.modules.input-error', [
'inputName' => 'published', 'helperId' => 'newsModelPublishedHelp' , 'helper' => __('Un article publié sera visible de tous, un brouillon ne pourra qu\'être prévisualisé')
])
</div>
</div>
</fieldset>
</div>
</div>
<div class="row">
<div class="col">
<fieldset class="border p-3 mb-3">
<legend>{{ __('Seo') }}</legend>
<div class="row mb-3">
<div class="col-12 col-md-6 form-group">
<label for="newsModelSeoTitle" class="col-form-label"><b>{{ __('Titre seo') }}</b></label>
<div class="word-counter" data-json='@json(['id' => 'newsModelSeoTitle'])'></div>
<input name="seo_title" type="text" value="{{ old('seo_title', $newsModel->seo_title ?? '') }}" class="form-control"
id="newsModelSeoTitle" aria-describedby="newsModelSeoTitleHelp" placeholder="{{ __('Un titre en 70 caractères maximum') }}" required>
@include('back.modules.input-error', [
'inputName' => 'seo_title', 'helperId' => 'newsModelSeoTitleHelp' , 'helper' => __('Doit décrire précisément l\'article, recommandation pour un positionnement optimal dans les moteurs de recherche : entre 53 et 60 caractères, balise <title> ')
])
</div>
<div class="col-12 col-md-6 form-group">
<label for="newsModelSeoDescription" class="col-form-label"><b>{{ __('Description seo') }}</b></label>
@php
$data = [
'id' => 'newsModelSeoDescription',
'class' => 'form-control',
'name' => 'seo_description',
'placeholder' => __('Une description de l\'article pour les moteurs de recherche'),
'ariaDescribedby' => 'newsModelSeoDescriptionHelp',
'value' => old('tags', $newsModel->tags ?? []),
'tags' => $tags,
'required' => true,
'value' => old('seo_description', $newsModel->seo_description ?? '')
];
@endphp
<div id="input-text-auto" data-json='@json($data)'></div>
@include('back.modules.input-error', [
'inputName' => 'seo_description', 'helperId' => 'newsModelSeoDescriptionHelp' , 'helper' => __(' Doit décrire précisément l\'article, requiert entre 50 et 160 caractères, balise <meta> description')
])
</div>
</div>
</fieldset>
</div>
</div>
<div class="row">
<div class="col">
<fieldset class="border p-3 mb-3">
<legend>{{ __('Tags') }}</legend>
<div class="row mb-3">
<div class="col-12 form-group">
@php
$data = [
'name' => 'tags',
'value' => old('tags', $newsModel->tags ?? []),
'tags' => $tags,
];
@endphp
<div id="taggable-dropdown" data-json='@json($data)'></div>
@include('back.modules.input-error', [
'inputName' => 'tags', 'helperId' => 'newsModelTagsHelp' , 'helper' => __('Les étiquettes associées à l\'article')
])
</div>
</div>
</fieldset>
</div>
</div>
<div class="row">
<div class="col">
<fieldset class="border p-3 mb-3">
<legend>{{ __('Vignette') }}</legend>
<div class="row mb-3">
<div class="col-12 col-md-6 form-group">
<label for="newsPictureAlt" class="col-form-label"><b>{{ __('Texte alternatif de l\'image') }}</b></label>
<div class="word-counter" data-json='@json(['id' => 'newsPictureAlt'])'></div>
<input name="picture_alt" type="text" value="{{ old('picture_alt', $newsModel->picture_alt ?? '') }}" class="form-control"
id="newsPictureAlt" aria-describedby="newsPictureAltHelp" placeholder="{{ __('Une image de petits chatons') }}" required>
@include('back.modules.input-error', [
'inputName' => 'picture_alt', 'helperId' => 'newsPictureAltHelp' , 'helper' => __('Doit décrire votre image pour les moteurs de recherches et les non voyants (5 à 6 mots)')
])
</div>
<div class="col-12 col-md-6 form-group">
<label for="newsPictureTitle" class="col-form-label"><b>{{ __('Titre de l\'image') }}</b></label>
<div class="word-counter" data-json='@json(['id' => 'newsPictureTitle'])'></div>
<input name="picture_title" type="text" value="{{ old('picture_title', $newsModel->picture_title ?? '') }}" class="form-control"
id="newsPictureTitle" aria-describedby="newsPictureTitleHelp" placeholder="{{ __('Une description de l\'article pour les moteurs de recherche') }}" required>
@include('back.modules.input-error', [
'inputName' => 'picture_title', 'helperId' => 'newsPictureTitleHelp' , 'helper' => __('Utile pour les utilisateurs, s\'affiche en passant la souris sur l\'image.')
])
</div>
</div>
<div class="row">
<div class="col-12">
@php
$data = [
'id' => 'newsModelPicture',
'name' => 'picture',
'helper' => __('L\'image qui va servir de vignette à l\'article, doit être de 300px (hauteur) par 300px (largeur)'),
'width' => 300,
'height' => 300,
'value' => $newsModel->picture ?? '',
];
@endphp
@include('back.modules.input-error', [ 'inputName' => 'picture'])
<div id="image-input" data-json='@json($data)'></div>
</div>
</div>
</fieldset>
</div>
</div>
<div class="row">
<div class="col">
<fieldset class="border p-3 mb-3">
<legend>{{ __('Contenu de l\'article') }}</legend>
<div class="row mb-3">
<div class="col-12 form-group">
@include('back.modules.input-error', [
'inputName' => 'content', 'helperId' => 'newsModelContentHelp' , 'helper' => __('Relisez bien votre article avant de le publier.')
])
@php
$data = [
'name' => 'content',
'csrf' => csrf_token(),
'text' => old('content', $newsModel->content ?? ''),
];
@endphp
<div id="ck-editor-bo" data-json='@json($data)'></div>
</div>
</div>
</fieldset>
</div>
</div>