165 lines
9.4 KiB
PHP
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 !!} {{ $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>
|