Jump to content

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


loaders26
 Share

Go to solution Solved by Blast,

Recommended Posts

Здравствуйте уважаемые разработчики, снова нужна помощь с модификатором добавления дополнительных полей на страницы категорий. Я сделал модификатор в меру своих знаний. Визуально все работает, поля есть, они даже сохраняются в базу, при 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>

Link to comment
Share on other sites

  • Solution
В 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"

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...