Перейти к содержанию

Дополнительные поля в категории


Перейти к решению Решений Blast,

Рекомендуемые сообщения

Здравствуйте уважаемые разработчики, снова нужна помощь с модификатором добавления дополнительных полей на страницы категорий. Я сделал модификатор в меру своих знаний. Визуально все работает, поля есть, они даже сохраняются в базу, при quick save. и отображаются во фронте. но при перезагрузке страницы в админке пустые поля - соответственно при сохранении пропадают и во фронте.  Подскажите пожалуйста куда копать, заранее спасибо!

 

<?xml version="1.0" encoding="utf-8"?>
<modification>
    <name>edit-CUSTOM-FIELDS</name>
    <code>edit-CUSTOM-FIELDS</code>
    <version>1.0.0</version>
    <author>rasty</author>
    <link>rasty</link>

<!--category-->
<!-- ALTER TABLE `*_category_description` ADD `head_description` text NOT NULL AFTER `meta_h1`;-->
<!-- ALTER TABLE `*_category_description` ADD `footer_description` text NOT NULL AFTER `head_description`;-->
<!-- ALTER TABLE `*_category_description` ADD `top_description` text NOT NULL AFTER `head_description`;-->  
<file path="admin/model/catalog/category.php">
        <operation error="skip">
            <search><![CDATA[
description = '" . $this->db->escape($value['description']) . "',
                ]]></search>
            <add position="replace"><![CDATA[
description = '" . $this->db->escape($value['description']) . "',head_description = '" . $this->db->escape($value['head_description']) . "',footer_description = '" . $this->db->escape($value['footer_description']) . "',top_description = '" . $this->db->escape($value['top_description']) . "',
            ]]></add>
        </operation>
          <operation error="skip">
            <search><![CDATA[
'description'      => $result['description'],
                ]]></search>
            <add position="after"><![CDATA[
'head_description'      => $result['head_description'],
'footer_description'      => $result['footer_description'],
'top_description'      => $result['top_description'],
            ]]></add>
        </operation>
</file>
<file path="admin/language/ru-ru/catalog/category.php">   
          <operation error="skip">
            <search><![CDATA[
$_['error_keyword']          = 'SEO URL уже используется!';
                ]]></search>
            <add position="after"><![CDATA[
$_['entry_head_description']         = 'Описание в хедере';
$_['entry_footer_description']         = 'Описание под листингом';
$_['entry_top_description']         = 'Описание над листингом';
            ]]></add>
        </operation>  
</file> 
   <file path="admin/view/template/catalog/category_form.twig">   
          <operation error="skip">
            <search ><![CDATA[
<div class="tab-pane" id="language{{ language.language_id }}">
                ]]></search>
            <add position="after"><![CDATA[
<div class="form-group">
<label class="col-sm-2 control-label" for="input-head_description{{ language.language_id }}">{{ entry_head_description }}</label>
<div class="col-sm-10">
<textarea name="category_description[{{ language.language_id }}][head_description]" placeholder="{{ entry_head_description }}" id="input-head_description{{ language.language_id }}" class="form-control">{{ category_description[language.language_id] ? category_description[language.language_id].head_description }}</textarea>
</div></div>

<div class="form-group">
<label class="col-sm-2 control-label" for="input-top_description{{ language.language_id }}">{{ entry_top_description }}</label>
<div class="col-sm-10">
<textarea name="category_description[{{ language.language_id }}][top_description]" placeholder="{{ entry_top_description }}" id="input-top_description{{ language.language_id }}" class="form-control">{{ category_description[language.language_id] ? category_description[language.language_id].top_description }}</textarea>
</div></div>

<div class="form-group">
<label class="col-sm-2 control-label" for="input-footer_description{{ language.language_id }}">{{ entry_footer_description }}</label>
<div class="col-sm-10">
<textarea name="category_description[{{ language.language_id }}][footer_description]" placeholder="{{ entry_footer_description }}" id="input-footer_description{{ language.language_id }}" class="form-control">{{ category_description[language.language_id] ? category_description[language.language_id].footer_description }}</textarea>
</div></div>
            ]]></add>
        </operation>  
</file>
<file path="catalog/controller/product/category.php">   
          <operation error="skip">
            <search><![CDATA[
$data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8');
                ]]></search>
            <add position="after"><![CDATA[
$data['head_description'] = html_entity_decode($category_info['head_description'], ENT_QUOTES, 'UTF-8');
$data['footer_description'] = html_entity_decode($category_info['footer_description'], ENT_QUOTES, 'UTF-8');
$data['top_description'] = html_entity_decode($category_info['top_description'], ENT_QUOTES, 'UTF-8');
            ]]></add>
        </operation>  
</file>
  <file path="catalog/view/theme/prostore/template/product/category.twig">   
<operation error="skip">
            <search><![CDATA[
                <div class="editor">{{ description }}</div>
                ]]></search>
            <add position="replace"><![CDATA[
{{ footer_description }}
            ]]></add>
</operation>
<operation error="skip">
            <search><![CDATA[
<main class="main">
                ]]></search>
            <add position="before"><![CDATA[
{{ head_description }}
            ]]></add>
</operation>  
<operation error="skip">
            <search><![CDATA[
<div class="catalog__content">
                ]]></search>
            <add position="after"><![CDATA[
{{ top_description }}
            ]]></add>
</operation> 
<operation error="skip">
            <search><![CDATA[
{{ content_bottom }}
                ]]></search>
            <add position="before"><![CDATA[
{{ description }}
            ]]></add>
        </operation>
</file>
</modification>

Ссылка на комментарий
Поделиться на другие сайты

  • Решение
В 01.11.2025 в 20:47, loaders26 сказал:

          <operation error="skip">
            <search><![CDATA[
'description'      => $result['description'],
                ]]></search>
            <add position="after"><![CDATA[
'head_description'      => $result['head_description'],
'footer_description'      => $result['footer_description'],
'top_description'      => $result['top_description'],
            ]]></add>
        </operation>

такой строки нет в модели. запятая в конце лишняя. можно убрать и position="after" заменить на position="before"

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...