200 lines
13 KiB
Twig
200 lines
13 KiB
Twig
|
{{ header }}{{ column_left }}
|
||
|
<div id="content">
|
||
|
<div class="page-header">
|
||
|
<div class="container-fluid">
|
||
|
<div class="float-end"><button type="submit" form="form-article" data-bs-toggle="tooltip" title="{{ button_save }}" class="btn btn-primary"><i class="fa-solid fa-floppy-disk"></i></button>
|
||
|
<a href="{{ back }}" data-bs-toggle="tooltip" title="{{ button_back }}" class="btn btn-light"><i class="fa-solid fa-reply"></i></a>
|
||
|
</div>
|
||
|
<h1>{{ heading_title }}</h1>
|
||
|
<ol class="breadcrumb">
|
||
|
{% for breadcrumb in breadcrumbs %}
|
||
|
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||
|
{% endfor %}
|
||
|
</ol>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="container-fluid">
|
||
|
<div class="card">
|
||
|
<div class="card-header"><i class="fa-solid fa-pencil"></i> {{ text_form }}</div>
|
||
|
<div class="card-body">
|
||
|
<form id="form-article" action="{{ save }}" method="post" data-oc-toggle="ajax">
|
||
|
<ul class="nav nav-tabs">
|
||
|
<li class="nav-item"><a href="#tab-general" data-bs-toggle="tab" class="nav-link active">{{ tab_general }}</a></li>
|
||
|
<li class="nav-item"><a href="#tab-data" data-bs-toggle="tab" class="nav-link">{{ tab_data }}</a></li>
|
||
|
<li class="nav-item"><a href="#tab-seo" data-bs-toggle="tab" class="nav-link">{{ tab_seo }}</a></li>
|
||
|
<li class="nav-item"><a href="#tab-design" data-bs-toggle="tab" class="nav-link">{{ tab_design }}</a></li>
|
||
|
</ul>
|
||
|
<div class="tab-content">
|
||
|
<div id="tab-general" class="tab-pane active">
|
||
|
<ul class="nav nav-tabs">
|
||
|
{% for language in languages %}
|
||
|
<li class="nav-item"><a href="#language-{{ language.language_id }}" data-bs-toggle="tab" class="nav-link{% if loop.first %} active{% endif %}"><img src="{{ language.image }}" title="{{ language.name }}"/> {{ language.name }}</a></li>
|
||
|
{% endfor %}
|
||
|
</ul>
|
||
|
<div class="tab-content">
|
||
|
{% for language in languages %}
|
||
|
<div id="language-{{ language.language_id }}" class="tab-pane{% if loop.first %} active{% endif %}">
|
||
|
<div class="row mb-3">
|
||
|
<label class="col-sm-2 col-form-label">{{ entry_image }}</label>
|
||
|
<div class="col-sm-10">
|
||
|
<img src="{{ article_description[language.language_id] ? article_description[language.language_id].thumb : placeholder }}" alt="" title="" id="thumb-image-{{ language.language_id }}" data-oc-placeholder="{{ placeholder }}" class="card-img-top"/>
|
||
|
<input type="hidden" name="article_description[{{ language.language_id }}][image]" value="{{ article_description[language.language_id] ? article_description[language.language_id].image }}" id="input-image-{{ language.language_id }}"/>
|
||
|
<div class="card-body">
|
||
|
<button type="button" data-oc-toggle="image" data-oc-target="#input-image-{{ language.language_id }}" data-oc-thumb="#thumb-image-{{ language.language_id }}" class="btn btn-primary btn-sm btn-block"><i class="fa-solid fa-pencil"></i> {{ button_edit }}</button>
|
||
|
<button type="button" data-oc-toggle="clear" data-oc-target="#input-image-{{ language.language_id }}" data-oc-thumb="#thumb-image-{{ language.language_id }}" class="btn btn-warning btn-sm btn-block"><i class="fa-regular fa-trash-can"></i> {{ button_clear }}</button>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="row mb-3 required">
|
||
|
<label for="input-name-{{ language.language_id }}" class="col-sm-2 col-form-label">{{ entry_name }}</label>
|
||
|
<div class="col-sm-10">
|
||
|
<input type="text" name="article_description[{{ language.language_id }}][name]" value="{{ article_description[language.language_id] ? article_description[language.language_id].name }}" placeholder="{{ entry_name }}" id="input-name-{{ language.language_id }}" class="form-control"/>
|
||
|
<div id="error-name-{{ language.language_id }}" class="invalid-feedback"></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="row mb-3">
|
||
|
<label for="input-description-{{ language.language_id }}" class="col-sm-2 col-form-label">{{ entry_description }}</label>
|
||
|
<div class="col-sm-10">
|
||
|
<textarea name="article_description[{{ language.language_id }}][description]" placeholder="{{ entry_description }}" id="input-description-{{ language.language_id }}" data-oc-toggle="ckeditor" data-lang="{{ ckeditor }}" class="form-control">{{ article_description[language.language_id] ? article_description[language.language_id].description }}</textarea>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="row mb-3 required">
|
||
|
<label for="input-tag-{{ language.language_id }}" class="col-sm-2 col-form-label">{{ entry_tag }}</label>
|
||
|
<div class="col-sm-10">
|
||
|
<input type="text" name="article_description[{{ language.language_id }}][tag]" value="{{ article_description[language.language_id] ? article_description[language.language_id].tag }}" placeholder="{{ entry_tag }}" id="input-tag-{{ language.language_id }}" class="form-control"/>
|
||
|
<div id="error-tag-{{ language.language_id }}" class="invalid-feedback"></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="row mb-3 required">
|
||
|
<label for="input-meta-title-{{ language.language_id }}" class="col-sm-2 col-form-label">{{ entry_meta_title }}</label>
|
||
|
<div class="col-sm-10">
|
||
|
<input type="text" name="article_description[{{ language.language_id }}][meta_title]" value="{{ article_description[language.language_id] ? article_description[language.language_id].meta_title }}" placeholder="{{ entry_meta_title }}" id="input-meta-title-{{ language.language_id }}" class="form-control"/>
|
||
|
<div id="error-meta-title-{{ language.language_id }}" class="invalid-feedback"></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="row mb-3">
|
||
|
<label for="input-meta-description-{{ language.language_id }}" class="col-sm-2 col-form-label">{{ entry_meta_description }}</label>
|
||
|
<div class="col-sm-10">
|
||
|
<textarea name="article_description[{{ language.language_id }}][meta_description]" rows="5" placeholder="{{ entry_meta_description }}" id="input-meta-description-{{ language.language_id }}" class="form-control">{{ article_description[language.language_id] ? article_description[language.language_id].meta_description }}</textarea>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="row mb-3">
|
||
|
<label for="input-meta-keyword-{{ language.language_id }}" class="col-sm-2 col-form-label">{{ entry_meta_keyword }}</label>
|
||
|
<div class="col-sm-10">
|
||
|
<textarea name="article_description[{{ language.language_id }}][meta_keyword]" rows="5" placeholder="{{ entry_meta_keyword }}" id="input-meta-keyword-{{ language.language_id }}" class="form-control">{{ article_description[language.language_id] ? article_description[language.language_id].meta_keyword }}</textarea>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
{% endfor %}
|
||
|
</div>
|
||
|
</div>
|
||
|
<div id="tab-data" class="tab-pane">
|
||
|
<div class="row mb-3 required">
|
||
|
<label for="input-author" class="col-sm-2 col-form-label">{{ entry_author }}</label>
|
||
|
<div class="col-sm-10">
|
||
|
<input type="text" name="author" value="{{ author }}" placeholder="{{ entry_author }}" id="input-author" class="form-control"/>
|
||
|
<div id="error-author" class="invalid-feedback"></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="row mb-3">
|
||
|
<label for="input-topic" class="col-sm-2 col-form-label">{{ entry_topic }}</label>
|
||
|
<div class="col-sm-10">
|
||
|
<select name="topic_id" id="input-topic" class="form-select">
|
||
|
<option value="0">{{ text_none }}</option>
|
||
|
{% for topic in topics %}
|
||
|
<option value="{{ topic.topic_id }}"{% if topic.topic_id == topic_id %} selected{% endif %}>{{ topic.name }}</option>
|
||
|
{% endfor %}
|
||
|
</select>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="row mb-3">
|
||
|
<label class="col-sm-2 col-form-label">{{ entry_store }}</label>
|
||
|
<div class="col-sm-10">
|
||
|
<div class="form-control" style="height: 150px; overflow: auto;">
|
||
|
{% for store in stores %}
|
||
|
<div class="form-check">
|
||
|
<input type="checkbox" name="article_store[]" value="{{ store.store_id }}" id="input-store-{{ store.store_id }}" class="form-check-input"{% if store.store_id in article_store %} checked{% endif %}/>
|
||
|
<label for="input-store-{{ store.store_id }}" class="form-check-label">{{ store.name }}</label>
|
||
|
</div>
|
||
|
{% endfor %}
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="row mb-3">
|
||
|
<label class="col-sm-2 col-form-label">{{ entry_status }}</label>
|
||
|
<div class="col-sm-10">
|
||
|
<div class="form-check form-switch form-switch-lg">
|
||
|
<input type="hidden" name="status" value="0"/>
|
||
|
<input type="checkbox" name="status" value="1" id="input-status" class="form-check-input"{% if status %} checked{% endif %}/>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div id="tab-seo" class="tab-pane">
|
||
|
<div class="alert alert-info"><i class="fa-solid fa-info-circle"></i> {{ text_keyword }}</div>
|
||
|
<div class="table-responsive">
|
||
|
<table class="table table-bordered table-hover">
|
||
|
<thead>
|
||
|
<tr>
|
||
|
<td class="text-start">{{ entry_store }}</td>
|
||
|
<td class="text-start">{{ entry_keyword }}</td>
|
||
|
</tr>
|
||
|
</thead>
|
||
|
<tbody>
|
||
|
{% for store in stores %}
|
||
|
<tr>
|
||
|
<td class="text-start">{{ store.name }}</td>
|
||
|
<td class="text-start">
|
||
|
{% for language in languages %}
|
||
|
<div class="input-group">
|
||
|
<div class="input-group-text"><img src="{{ language.image }}" title="{{ language.name }}"/></div>
|
||
|
<input type="text" name="article_seo_url[{{ store.store_id }}][{{ language.language_id }}]" value="{% if article_seo_url[store.store_id][language.language_id] %}{{ article_seo_url[store.store_id][language.language_id] }}{% endif %}" placeholder="{{ entry_keyword }}" id="input-keyword-{{ store.store_id }}-{{ language.language_id }}" class="form-control"/>
|
||
|
</div>
|
||
|
<div id="error-keyword-{{ store.store_id }}-{{ language.language_id }}" class="invalid-feedback"></div>
|
||
|
{% endfor %}
|
||
|
</td>
|
||
|
</tr>
|
||
|
{% endfor %}
|
||
|
</tbody>
|
||
|
</table>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div id="tab-design" class="tab-pane">
|
||
|
<div class="table-responsive">
|
||
|
<table class="table table-bordered table-hover">
|
||
|
<thead>
|
||
|
<tr>
|
||
|
<td class="text-start">{{ entry_store }}</td>
|
||
|
<td class="text-start">{{ entry_layout }}</td>
|
||
|
</tr>
|
||
|
</thead>
|
||
|
<tbody>
|
||
|
{% for store in stores %}
|
||
|
<tr>
|
||
|
<td class="text-start">{{ store.name }}</td>
|
||
|
<td class="text-start"><select name="article_layout[{{ store.store_id }}]" class="form-select">
|
||
|
<option value=""></option>
|
||
|
{% for layout in layouts %}
|
||
|
<option value="{{ layout.layout_id }}"{% if article_layout[store.store_id] and article_layout[store.store_id] == layout.layout_id %} selected{% endif %}>{{ layout.name }}</option>
|
||
|
{% endfor %}
|
||
|
</select></td>
|
||
|
</tr>
|
||
|
{% endfor %}
|
||
|
</tbody>
|
||
|
</table>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<input type="hidden" name="article_id" value="{{ article_id }}" id="input-article-id"/>
|
||
|
</form>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<script type="text/javascript"><!--
|
||
|
$('textarea[data-oc-toggle=\'ckeditor\']').ckeditor({
|
||
|
language: '{{ ckeditor }}'
|
||
|
});
|
||
|
//--></script>
|
||
|
{{ footer }}
|