Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Адаптация модуля "Таблица размеров" с ОС2.3


Xio

Recommended Posts

По сабжу пробую адаптировать модуль с ос2.3 на ос 3.2. Застрял в одном месте, но не могу найти решания. Не работает модуль только на продукте, в админке все подключило, в  Uncaught Twig_Error_Syntax: Unknown "unserialize" function in "sitename/template/product/product.twig" at line 683.

 

Оригинальный код


 

        <file path="catalog/view/theme/*/template/product/product.tpl">
        <operation>
            <search><![CDATA[
            <?php echo $footer; ?>
            ]]></search>
            <add position="befor"><![CDATA[
                <!-- Modal -->
                <div id="sizeChartModal" class="modal fade" role="dialog">
                  <div class="modal-dialog" style="overflow-y: initial !important">

                    <!-- Modal content-->
                    <div class="modal-content">
                      <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal">×</button>
                        <h4 class="modal-title"><?php echo $get_size_chart_detail['chart_title']; ?></h4>
                      </div>
                      <div class="modal-body" style="height: auto;overflow-y: auto;">
                        <?php echo $get_size_chart_detail['chart_description_top']; ?>
                                                <!-- Table Header -->
                                                <table class="sizechart">
                                                    <tr class="chart-header-bg">
                                                <?php
                                                    $kk=0;
                                                    foreach(unserialize($get_size_chart_detail['chart_headings']) as $chart_headings)
                                                        if(isset($chart_headings) && $chart_headings!='') {
                                                            echo '<th class="chart-header">'.$chart_headings.'</th>';
                                                            $kk++;
                                                        }
                                                     ?>
                                                 </tr>
                                                 <tr class="chart-data">
                                                <!-- Table Chart Data -->
                                                <?php
                                                $i = 1;
                                                foreach(unserialize($get_size_chart_detail['chart_data']) as $chart_data){
                                                    if(isset($chart_data) && $chart_data!='') {
                                                        echo '<td>'.$chart_data.'</td>';
                                                        if($i % $kk == 0){
                                                            echo '</tr><tr class="chart-data">';
                                                        }
                                                        $i++;
                                                    }
                                                } ?>
                                    </tr>
                               </table>
                              <br />
                       <?php echo $get_size_chart_detail['chart_description_bottom']; ?>
                      </div>
                    </div>

                  </div>
                </div>
            ]]></add>
        </operation>
    </file>

Код который был переделан через phptotwig.com


 

  <file path="catalog/view/theme/*/template/product/product.twig">
        <operation>
            <search><![CDATA[
            {{ footer }}
            ]]></search>
            <add position="before"><![CDATA[
          <!-- Modal -->
          <div id="sizeChartModal" class="modal fade" role="dialog">
            <div class="modal-dialog" style="overflow-y: initial !important">
              <!-- Modal content-->
              <div class="modal-content">
                <div class="modal-header">
                  <button type="button" class="close" data-dismiss="modal">×</button>
                  <h4 class="modal-title">{{ get_size_chart_detail['chart_title'] }}</h4>
                </div>
                <div class="modal-body" style="height: auto;overflow-y: auto;">
                       {{ get_size_chart_detail['chart_description_top'] }}
                        <!-- Table Header -->
                        <table class="sizechart">
                            <tr class="chart-header-bg">
                                {% set kk=0 %}
                                {% for chart_headings in unserialize(get_size_chart_detail['chart_headings']) %}
                                {% if (chart_headings is defined and chart_headings != '') %}
                                {{ '<th class="chart-header">'~chart_headings~'</th>' }}
                                {% set kk = kk + 1 %}
                                {% endfor %}
                                {% endif %}

                             </tr>
                             <tr class="chart-data">
                            <!-- Table Chart Data -->
                                    {% set i = 1 %}
                                    {% for chart_data in unserialize(get_size_chart_detail['chart_data']) %}
                                        {% if (chart_data is defined and chart_data != '') %}
                                            {{ '<td>'~chart_data~'</td>' }}
                                            {% if (i % kk == 0) %}
                                                {{ '</tr><tr class="chart-data">' }}
                                            {% endif %}
                                            {% set i = i + 1 %}
                                        {% endif %}
                                    {% endfor %}
                        </tr>
                        </table>
                    <br />
                    {{ get_size_chart_detail['chart_description_bottom'] }}
                </div>
              </div>
            </div>
          </div>
            ]]></add>
        </operation>
    </file>

Так как я особо не знаю PHP, а с twig знаком только с jekyll кто-то может подсказать или помочь?

Link to post
Share on other sites

7 минут назад, Xio сказал:

{% for chart_headings in unserialize(get_size_chart_detail['chart_headings']) %}

сделайте десериализацию в контроллере

 

7 минут назад, Xio сказал:

в  Uncaught Twig_Error_Syntax: Unknown "unserialize" function

Твиг не знает такой функции

Link to post
Share on other sites

1 час назад, thentru сказал:

сделайте десериализацию в контроллере

 

Твиг не знает такой функции

В контроллере  у меня

        $data['chart_data'] = $this->model_extension_sizechart->edit($_GET['chart_id']);
        $data['chart_headings'] = unserialize($data['chart_data']['chart_headings']);
        $data['chart_size'] = unserialize($data['chart_data']['chart_data']);

Я правильно, понял, что мне здесь нужно сделать десериализацию?

Link to post
Share on other sites

12 минут назад, Xio сказал:

Я правильно, понял, что мне здесь нужно сделать десериализацию?

можно и так

Link to post
Share on other sites

5 минут назад, thentru сказал:

можно и так

так просто изначально и было, потому я грешу на твиг. Не могу найти, что за переменная

get_size_chart_detail
Edited by Xio
Link to post
Share on other sites

Нашел в чем проблема убрал в самом коде twig

unserialize. сейчас вылазит только Uncaught Twig_Error_Syntax: Unexpected "endfor" tag (expecting closing tag for the "if" tag defined near line 140)

 

что соотвественно на неправильность нашей структуры самого кода твига. Причем нижняя часть char-data for и if  работает без проблем

Исправил ошибок больше нет, но почему-то данные с th и tr не передаются

 

                            {% set kk=0 %}
                            {% for chart_headings in (get_size_chart_detail['chart_headings']) %}
                                {% if (chart_headings is defined and chart_headings != '') %}
                                    {{ '<th class="chart-header">'~chart_headings~'</th>' }}
                                {% endif %}
                                    {% set kk = kk + 1 %}
                            {% endfor %}   

 

Как узнать почему данные таблицы не передаются? или и-за того что я убрал unserialze  в самом twig?

 

Так как в модуле две области ввода, можно и без этого обойтись, но мне уже даже любопытно, целый день потратил на такой маштабный модуль, первый раз в жизни. И уже буквально дело за малым.

Edited by Xio
Link to post
Share on other sites

9 minutes ago, Xio said:

 {{ '<th class="chart-header">'~chart_headings~'</th>' }}

это что за ужас?

Link to post
Share on other sites

14 минут назад, lexxkrt сказал:

это что за ужас?

То, что адаптировал phptotwig.com

 

Оригинал попробую его поковырять

echo '<th class="chart-header">'.$chart_headings.'</th>';
Link to post
Share on other sites

38 minutes ago, Xio said:

То, что адаптировал phptotwig.com

 

Оригинал попробую его поковырять


echo '<th class="chart-header">'.$chart_headings.'</th>';

<th class="chart-header">{{ chart_headings }}</th>

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Similar Content

    • By ocdev_pro
      Скачать/Купить дополнение OCDEV.pro - Таблица размеров для Opencart 2.x - 3.x
      !Внимание - Версия 1.2.0 не будет совместима с предыдущими версиями
      OCDEV.pro - Таблица размеров - модуль позволяет создать неограниченное количество таблиц с размерами для ваших товаров с привязкой к категории и производителю. Пригодится абсолютно всем магазинам у которых есть товары с размерной сеткой, особенно актуально когда у производителей различные размеры.

      P.S Также модуль можно использовать с целью привязки определенных акций, информационных блоков итд. Другие способы использования модуля ограничены вашей фантазией
       
      Доступные функции:
      Создание таблиц с размерами Встроенные визуальный редактор для удобного добавления информации Полная Мультиязычность Не ограниченное количество таблиц Привязка к 1 или нескольким категориям (обязательная опция) Привязка к производителю (не обязательно) Вывод таблицы во всплывающем окне Произвольное название кнопки Например: "Таблица размеров" Настраиваемая позиция вывода кнопки с привязкой к ID или Классу элемента в шаблоне Возможность использовать единую таблицу для всех товаров Использует собственные таблицы в БД для хранения данных  
      Обязательное к заполнению поле "Текст ссылки" - заполните его до сохранения таблиц! При создании таблицы Вы выбираете категории (и производителя) для тех товаров в которых будет выведена таблица, автоматически.
      Если у Вам не нужна привязка к производителям, ставите в настройках "Игнорировать производителя" Не старайтесь привязать одновременно таблицу к одному и тому же производителю и категории (дубль). Выводиться будет таблица которая добавлена последней. При нажатии на удаление таблицы, она удаляется из Базы данных! Если "Заголовок блока" таблицы размеров не задан, выведется текст из поля "Текст ссылки" - Например: таблица размеров Модуль использует OCMOD для подключения и вывода на странице товара  
      По вопросам адаптации под шаблон или изменения способа вывода (Например в описании или во вкладке) пишите в ЛС, отвечаю быстро.
       
      Инструкция по установке:
      Модуль идет в виде модуля + ocmod модификации
      Установите zip архив, как обычный ocmod (Распакововать и заливать в корень не надо!) Обновите кеш модификаций Выдайте права на просмотр/изменение Система - Пользователи - Группы пользователей Зайдите в Дополнения - Модули - Установите модуль Задайте настройки в модуле "OCDEV.pro -  Таблица размеров"  
      ВИДЕО-ИНСТРУКЦИЯ:
       
      Настоятельно рекомендую, покупать модуль под каждый домен, таким образом Вы поддерживаете развитие и разработку модуля. А также всегда можете рассчитывать на техническую поддержку.
       
      Если при установке появилась ошибка:
      - проверьте установлены ли права на модуль
      - Нажмите на кнопку удаления модуля и установите модуль снова
      Если кнопка в товаре не появилась:
      - необходимо проверить правильно ли указали настройки расположения модуля
       
      Если Вы не уверенны в своих знаниях платформы и не можете самостоятельно установить модули, рекомендую покупать модуль + установка на форуме.
       
      Настоятельно рекомендую, покупать модуль под каждый домен, таким образом Вы поддерживаете развитие и разработку модуля. А также Вы всегда можете рассчитывать на техническую поддержку.
       
      Также рекомендую:
      - Смс уведомления для Opencart
      - Просмотренные товары
      - Все товары магазина (Каталог товаров)
      - Акционные товары, модуль с таймером
      - Товары из категорий
      - Редактор изображений Image Cropper
      Добавил ocdev_pro Добавлено 27.11.2019 Категория Модули Системные требования Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3.0.2.4
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х Обращение к серверу разработчика Нет  
    • By ocdev_pro
      !Внимание - Версия 1.2.0 не будет совместима с предыдущими версиями
      OCDEV.pro - Таблица размеров - модуль позволяет создать неограниченное количество таблиц с размерами для ваших товаров с привязкой к категории и производителю. Пригодится абсолютно всем магазинам у которых есть товары с размерной сеткой, особенно актуально когда у производителей различные размеры.

      P.S Также модуль можно использовать с целью привязки определенных акций, информационных блоков итд. Другие способы использования модуля ограничены вашей фантазией
       
      Доступные функции:
      Создание таблиц с размерами Встроенные визуальный редактор для удобного добавления информации Полная Мультиязычность Не ограниченное количество таблиц Привязка к 1 или нескольким категориям (обязательная опция) Привязка к производителю (не обязательно) Вывод таблицы во всплывающем окне Произвольное название кнопки Например: "Таблица размеров" Настраиваемая позиция вывода кнопки с привязкой к ID или Классу элемента в шаблоне Возможность использовать единую таблицу для всех товаров Использует собственные таблицы в БД для хранения данных  
      Обязательное к заполнению поле "Текст ссылки" - заполните его до сохранения таблиц! При создании таблицы Вы выбираете категории (и производителя) для тех товаров в которых будет выведена таблица, автоматически.
      Если у Вам не нужна привязка к производителям, ставите в настройках "Игнорировать производителя" Не старайтесь привязать одновременно таблицу к одному и тому же производителю и категории (дубль). Выводиться будет таблица которая добавлена последней. При нажатии на удаление таблицы, она удаляется из Базы данных! Если "Заголовок блока" таблицы размеров не задан, выведется текст из поля "Текст ссылки" - Например: таблица размеров Модуль использует OCMOD для подключения и вывода на странице товара  
      По вопросам адаптации под шаблон или изменения способа вывода (Например в описании или во вкладке) пишите в ЛС, отвечаю быстро.
       
      Инструкция по установке:
      Модуль идет в виде модуля + ocmod модификации
      Установите zip архив, как обычный ocmod (Распакововать и заливать в корень не надо!) Обновите кеш модификаций Выдайте права на просмотр/изменение Система - Пользователи - Группы пользователей Зайдите в Дополнения - Модули - Установите модуль Задайте настройки в модуле "OCDEV.pro -  Таблица размеров"  
      ВИДЕО-ИНСТРУКЦИЯ:
       
      Настоятельно рекомендую, покупать модуль под каждый домен, таким образом Вы поддерживаете развитие и разработку модуля. А также всегда можете рассчитывать на техническую поддержку.
       
      Если при установке появилась ошибка:
      - проверьте установлены ли права на модуль
      - Нажмите на кнопку удаления модуля и установите модуль снова
      Если кнопка в товаре не появилась:
      - необходимо проверить правильно ли указали настройки расположения модуля
       
      Если Вы не уверенны в своих знаниях платформы и не можете самостоятельно установить модули, рекомендую покупать модуль + установка на форуме.
       
      Настоятельно рекомендую, покупать модуль под каждый домен, таким образом Вы поддерживаете развитие и разработку модуля. А также Вы всегда можете рассчитывать на техническую поддержку.
       
      Также рекомендую:
      - Смс уведомления для Opencart
      - Просмотренные товары
      - Все товары магазина (Каталог товаров)
      - Акционные товары, модуль с таймером
      - Товары из категорий
      - Редактор изображений Image Cropper
    • By coder0x7b
      И так, начну с самого начала, у каждого товара есть размеры (*опции). В карточке каждого товара есть таблица размеров, выглядит она вот так - http://prntscr.com/vjctoe
      Кнопки сверху, это размеры товара, которые тянутся с базы (те в свою очередь в базу попадают из 1с), в таблице - замеры, они тоже есть в 1с. Не знаю как верно объяснить что мне нужно. Но постараюсь.
      У каждого товара есть размер и размеров может быть несколько, а у каждого размера свои замеры (данные в таблице размеров). Как правильно выгрузить из 1с эти данные и в какую таблицу базы, чтоб при выборе размера в таблице размеров менялись значения замеров?
      Сейчас это так: Из 1с через NeoSeo импортируются данные замеров в атрибуты, в настройках NeoSeo я переопределил эти данные в таблицу oc_product в новые строки - скрин этих данных в базе   Через ; разделены вариации для разных размеров.
      Прощу помощи, как это правильно реализовать. Куда выгружать из 1с и как разделять их в 1с по размерам
    • By Tatka
      Вопрос
      КАк выровнять таблицы в описании карточки товара исходя из того, что размещение в админке не соответствует тому что отображается на сайте.
      использую стиль <table border="0" cellpadding="0" cellspacing="0" style="max-width:100%; text-align:center; width:100%">
      Заранее благодарю.


    • By AlekseiSim
      Ребята, всем привет!
       
      ocStore-3.0.2.0
      Помогите пожалуйста с поиском модуля. Не так так давно познакомился с вашим любимым "ocStore". Голова пухнет, не могу достойного варианта найти. Либо он не поддерживается, либо дорого и совсем не то...
       
      1. Size Guide - (Таблица размеров). Как можно реализовать, что бы по клику всплывало окошко с заданными для этого товара размеры? Или изображение.
       
      2. SIZE: XS, S, M... - Я думаю тут по легче будет, не так сложно, не так важно. Но если у вас есть варианты, то предлагайте пожалуйста!
       
      3. Color - А вот это самая важная деталь, благодаря которой пухнет голова! Как это лучше реализовать, либо где найти такой модуль что бы при выборе цвета, внутри было мини изображение этого товара?
       
      Я надеюсь на вашу помощь! Предлагайте любые варианты. Заранее всем БОЛЬШОЕ спасибо!!!
       

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.