Доработки админки CMS OpenCart 4 (1 часть)

В CMS OpenCart 4 очень удобное заполнение товаров в админке (панели администрирования), но вкладка Данные отличается очень большой длинной страницы, для полного заполнения приходится очень много работать колесом прокрутки мыши, мне это очень не нравится и поэтому я её редактирую.

Улучшение админки CMS OpenCart 4

Открываем файл ../public_html/***/view/template/catalog/product_form.twig (вместо *** ваш адрес админки) и вместо этих строк:

<div class="row mb-3 required">
  <label for="input-model" class="col-sm-2 col-form-label">{{ entry_model }}</label>
  <div class="col-sm-10">
    <div class="input-group">
      <input type="text" name="model" value="{{ model }}" placeholder="{{ entry_model }}" id="input-model" class="form-control"/>
      {% if master_id %}
        <div class="input-group-text">
          <div class="form-check form-switch">
            <input type="checkbox" name="override[model]" value="1" id="input-variant-model" data-oc-toggle="switch" data-oc-target="#input-model" class="form-check-input"{% if override.model %} checked{% endif %}/> <label for="input-variant-model" class="form-check-label"></label>
          </div>
        </div>
      {% endif %}
    </div>
    <div id="error-model" class="invalid-feedback"></div>
  </div>
</div>
<div class="row mb-3">
  <label for="input-sku" class="col-sm-2 col-form-label">{{ entry_sku }}</label>
  <div class="col-sm-10">
    <div class="input-group">
      <input type="text" name="sku" value="{{ sku }}" placeholder="{{ entry_sku }}" id="input-sku" class="form-control"/>
      {% if master_id %}
        <div class="input-group-text">
          <div class="form-check form-switch">
            <input type="checkbox" name="override[sku]" value="1" id="input-variant-sku" data-oc-toggle="switch" data-oc-target="#input-sku" class="form-check-input"{% if override.sku %} checked{% endif %}/> <label for="input-variant-sku" class="form-check-label"></label>
          </div>
        </div>
      {% endif %}
    </div>
    <div class="form-text">{{ help_sku }}</div>
  </div>
</div>

вставим эти:

<div class="row mb-3 required">
 <div class="col-sm-6">
 <div class="row">
  <label for="input-model" class="col-sm-2 col-form-label">{{ entry_model }}</label>
  <div class="col-sm-10">
    <div class="input-group">
      <input type="text" name="model" value="{{ model }}" placeholder="{{ entry_model }}" id="input-model" class="form-control"/>
      {% if master_id %}
        <div class="input-group-text">
          <div class="form-check form-switch">
            <input type="checkbox" name="override[model]" value="1" id="input-variant-model" data-oc-toggle="switch" data-oc-target="#input-model" class="form-check-input"{% if override.model %} checked{% endif %}/> <label for="input-variant-model" class="form-check-label"></label>
          </div>
        </div>
      {% endif %}
    </div>
    <div id="error-model" class="invalid-feedback"></div>
  </div>
  </div>
  </div>
  <div class="col-sm-6">
  <div class="row">
  <label for="input-sku" class="col-sm-2 col-form-label">{{ entry_sku }}</label>
  <div class="col-sm-10">
    <div class="input-group">
      <input type="text" name="sku" value="{{ sku }}" placeholder="{{ entry_sku }}" id="input-sku" class="form-control"/>
      {% if master_id %}
        <div class="input-group-text">
          <div class="form-check form-switch">
            <input type="checkbox" name="override[sku]" value="1" id="input-variant-sku" data-oc-toggle="switch" data-oc-target="#input-sku" class="form-check-input"{% if override.sku %} checked{% endif %}/> <label for="input-variant-sku" class="form-check-label"></label>
          </div>
        </div>
      {% endif %}
    </div>
    <div class="form-text">{{ help_sku }}</div>
  </div>
  </div>
  </div>
</div>

А вместо этих строк:

<div class="row mb-3">
                  <label for="input-upc" class="col-sm-2 col-form-label">{{ entry_upc }}</label>
                  <div class="col-sm-10">
                    <div class="input-group">
                      <input type="text" name="upc" value="{{ upc }}" placeholder="{{ entry_upc }}" id="input-upc" class="form-control"/>
                      {% if master_id %}
                        <div class="input-group-text">
                          <div class="form-check form-switch">
                            <input type="checkbox" name="override[upc]" value="1" id="input-variant-upc" data-oc-toggle="switch" data-oc-target="#input-upc" class="form-check-input"{% if override.upc %} checked{% endif %}/> <label for="input-variant-upc" class="form-check-label"></label>
                          </div>
                        </div>
                      {% endif %}
                    </div>
                    <div class="form-text">{{ help_upc }}</div>
                  </div>
                </div>
                <div class="row mb-3">
                  <label for="input-ean" class="col-sm-2 col-form-label">{{ entry_ean }}</label>
                  <div class="col-sm-10">
                    <div class="input-group">
                      <input type="text" name="ean" value="{{ ean }}" placeholder="{{ entry_ean }}" id="input-ean" class="form-control"/>
                      {% if master_id %}
                        <div class="input-group-text">
                          <div class="form-check form-switch">
                            <input type="checkbox" name="override[ean]" value="1" id="input-variant-ean" data-oc-toggle="switch" data-oc-target="#input-ean" class="form-check-input"{% if override.ean %} checked{% endif %}/> <label for="input-variant-ean" class="form-check-label"></label>
                          </div>
                        </div>
                      {% endif %}
                    </div>
                    <div class="form-text">{{ help_ean }}</div>
                  </div>
                </div>
                <div class="row mb-3">
                  <label for="input-jan" class="col-sm-2 col-form-label">{{ entry_jan }}</label>
                  <div class="col-sm-10">
                    <div class="input-group">
                      <input type="text" name="jan" value="{{ jan }}" placeholder="{{ entry_jan }}" id="input-jan" class="form-control"/>
                      {% if master_id %}
                        <div class="input-group-text">
                          <div class="form-check form-switch">
                            <input type="checkbox" name="override[jan]" value="1" id="input-variant-jan" data-oc-toggle="switch" data-oc-target="#input-jan" class="form-check-input"{% if override.jan %} checked{% endif %}/> <label for="input-variant-jan" class="form-check-label"></label>
                          </div>
                        </div>
                      {% endif %}
                    </div>
                    <div class="form-text">{{ help_jan }}</div>
                  </div>
                </div>
                <div class="row mb-3">
                  <label for="input-isbn" class="col-sm-2 col-form-label">{{ entry_isbn }}</label>
                  <div class="col-sm-10">
                    <div class="input-group">
                      <input type="text" name="isbn" value="{{ isbn }}" placeholder="{{ entry_isbn }}" id="input-isbn" class="form-control"/>
                      {% if master_id %}
                        <div class="input-group-text">
                          <div class="form-check form-switch">
                            <input type="checkbox" name="override[isbn]" value="1" id="input-variant-isbn" data-oc-toggle="switch" data-oc-target="#input-isbn" class="form-check-input"{% if override.isbn %} checked{% endif %}/> <label for="input-variant-isbn" class="form-check-label"></label>
                          </div>
                        </div>
                      {% endif %}
                    </div>
                    <div class="form-text">{{ help_isbn }}</div>
                  </div>
                </div>
                <div class="row mb-3">
                  <label for="input-mpn" class="col-sm-2 col-form-label">{{ entry_mpn }}</label>
                  <div class="col-sm-10">
                    <div class="input-group">
                      <input type="text" name="mpn" value="{{ mpn }}" placeholder="{{ entry_mpn }}" id="input-mpn" class="form-control"/>
                      {% if master_id %}
                        <div class="input-group-text">
                          <div class="form-check form-switch">
                            <input type="checkbox" name="override[mpn]" value="1" id="input-variant-mpn" data-oc-toggle="switch" data-oc-target="#input-mpn" class="form-check-input"{% if override.mpn %} checked{% endif %}/> <label for="input-variant-mpn" class="form-check-label"></label>
                          </div>
                        </div>
                      {% endif %}
                    </div>
                    <div class="form-text">{{ help_mpn }}</div>
                  </div>
                </div>

вставляем эти:

 <div class="accordion ">
 <div class="accordion-item">
     <h2 class="accordion-header">
       <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#panelsStayOpen" aria-expanded="true" aria-controls="panelsStayOpen">
         {{ entry_othercodes }}
       </button>
     </h2>
 <div id="panelsStayOpen" class="accordion-collapse collapse">
 <div class="accordion-body">
 <div class="row mb-3">
  <div class="col">
  <div class="row">
   <label for="input-upc" class="col-sm-3 col-form-label">{{ entry_upc }}</label>
   <div class="col-sm-9">
     <div class="input-group">
       <input type="text" name="upc" value="{{ upc }}" placeholder="{{ entry_upc }}" id="input-upc" class="form-control"/>
       {% if master_id %}
         <div class="input-group-text">
           <div class="form-check form-switch">
             <input type="checkbox" name="override[upc]" value="1" id="input-variant-upc" data-oc-toggle="switch" data-oc-target="#input-upc" class="form-check-input"{% if override.upc %} checked{% endif %}/> <label for="input-variant-upc" class="form-check-label"></label>
           </div>
         </div>
       {% endif %}
     </div>
     <div class="form-text">{{ help_upc }}</div>
   </div>
   </div>
   </div>
   <div class="col">
   <div class="row"> 
   <label for="input-ean" class="col-sm-3 col-form-label">{{ entry_ean }}</label>
   <div class="col-sm-9">
     <div class="input-group">
       <input type="text" name="ean" value="{{ ean }}" placeholder="{{ entry_ean }}" id="input-ean" class="form-control"/>
       {% if master_id %}
         <div class="input-group-text">
           <div class="form-check form-switch">
             <input type="checkbox" name="override[ean]" value="1" id="input-variant-ean" data-oc-toggle="switch" data-oc-target="#input-ean" class="form-check-input"{% if override.ean %} checked{% endif %}/> <label for="input-variant-ean" class="form-check-label"></label>
           </div>
         </div>
       {% endif %}
     </div>
     <div class="form-text">{{ help_ean }}</div>
   </div>
   </div>
   </div>
   <div class="col">
   <div class="row">
   <label for="input-jan" class="col-sm-3 col-form-label">{{ entry_jan }}</label>
   <div class="col-sm-9">
     <div class="input-group">
       <input type="text" name="jan" value="{{ jan }}" placeholder="{{ entry_jan }}" id="input-jan" class="form-control"/>
       {% if master_id %}
         <div class="input-group-text">
           <div class="form-check form-switch">
             <input type="checkbox" name="override[jan]" value="1" id="input-variant-jan" data-oc-toggle="switch" data-oc-target="#input-jan" class="form-check-input"{% if override.jan %} checked{% endif %}/> <label for="input-variant-jan" class="form-check-label"></label>
           </div>
         </div>
       {% endif %}
     </div>
     <div class="form-text">{{ help_jan }}</div>
   </div>
   </div>
   </div>
   <div class="col">
   <div class="row">
   <label for="input-isbn" class="col-sm-3 col-form-label">{{ entry_isbn }}</label>
   <div class="col-sm-9">
     <div class="input-group">
       <input type="text" name="isbn" value="{{ isbn }}" placeholder="{{ entry_isbn }}" id="input-isbn" class="form-control"/>
       {% if master_id %}
         <div class="input-group-text">
           <div class="form-check form-switch">
             <input type="checkbox" name="override[isbn]" value="1" id="input-variant-isbn" data-oc-toggle="switch" data-oc-target="#input-isbn" class="form-check-input"{% if override.isbn %} checked{% endif %}/> <label for="input-variant-isbn" class="form-check-label"></label>
           </div>
         </div>
       {% endif %}
     </div>
     <div class="form-text">{{ help_isbn }}</div>
   </div>
   </div>
   </div>
   <div class="col">
   <div class="row">
   <label for="input-mpn" class="col-sm-3 col-form-label">{{ entry_mpn }}</label>
   <div class="col-sm-9">
     <div class="input-group">
       <input type="text" name="mpn" value="{{ mpn }}" placeholder="{{ entry_mpn }}" id="input-mpn" class="form-control"/>
       {% if master_id %}
         <div class="input-group-text">
           <div class="form-check form-switch">
             <input type="checkbox" name="override[mpn]" value="1" id="input-variant-mpn" data-oc-toggle="switch" data-oc-target="#input-mpn" class="form-check-input"{% if override.mpn %} checked{% endif %}/> <label for="input-variant-mpn" class="form-check-label"></label>
           </div>
         </div>
       {% endif %}
     </div>
     <div class="form-text">{{ help_mpn }}</div>
   </div>
   </div>
   </div>
</div>
</div>
</div>
</div>
</div>
<hr>

Теперь откроем файл: ../public_html/***/language/ru-ru/catalog/product.php и после этой строки:

$_['entry_sku']              = 'Артикул';

вставим эту:

$_['entry_othercodes']       = 'Другие коды';

Теперь откроем файл: ../public_html/***/language/en-gb/catalog/product.php и после этой строки:

$_['entry_sku']               = 'SKU';

вставим эту:

$_['entry_othercodes']        = 'Other Codes';

Смотрим результат нашей работы:

Теперь нажмём на выпадающий список Другие коды и смотрим что получилось:

Вообще можно было их оставить как было (каждый пункт с новой строки), но я люблю компактность, при желании эти пункты можно было  вовсе удалить, но вдруг они кому то нужны для работы, поэтому мы их оставили, но сделали менее заметными.

При желании можно скомпоновать и другие блоки (цену, количество, спецификации), если вам это нужно — оставляйте комментарии к этой статье и в одной из следующих статей мы с вами рассмотрим и этот вопрос.

На этом всё, встретимся в следующей статье.

Оставить комментарий

Этот сайт защищен reCAPTCHA и применяются Политика конфиденциальности и Условия обслуживания.

Срок проверки reCAPTCHA истек. Перезагрузите страницу.

Навигация