Jump to content
Sign in to follow this  
Xio

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

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 кто-то может подсказать или помочь?

Share this post


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

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

Share this post


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']);

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

Share this post


Link to post
Share on other sites
12 минут назад, Xio сказал:

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

можно и так

Share this post


Link to post
Share on other sites
5 минут назад, thentru сказал:

можно и так

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

get_size_chart_detail
Edited by Xio

Share this post


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

Share this post


Link to post
Share on other sites
9 minutes ago, Xio said:

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

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

Share this post


Link to post
Share on other sites
14 минут назад, lexxkrt сказал:

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

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

 

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

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

Share this post


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>

Share this post


Link to post
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.

Guest
You are posting as a guest. If you have an account, please sign in.
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.

Sign in to follow this  

  • Similar Content

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

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


      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
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х Обращение к серверу разработчика Нет Старая цена 0  
    • 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 - А вот это самая важная деталь, благодаря которой пухнет голова! Как это лучше реализовать, либо где найти такой модуль что бы при выборе цвета, внутри было мини изображение этого товара?
       
      Я надеюсь на вашу помощь! Предлагайте любые варианты. Заранее всем БОЛЬШОЕ спасибо!!!
       

    • By zello
      700.00 руб
      Скачать/Купить дополнение


      SizeGrid
      Модуль позволяет создавать таблицы соответствий размеров с описанием.
       
      Возможности
      Удобное создание, удаление, редактирование таблиц размеров (размерных сеток) Привязка размерной сетки к категории товара (но отображение только в карточке товара) Каждая размерная сетка содержит две вкладки: для описания и самой таблицы Предварительный просмотр прямо в админке (может отличаться от отображения в магазине) Возможность выбора цвета выделения в размерной сетке После установки и настройки в карточке товара возле кнопки добавить в корзину появляется кнопка SizeGid Размерная сетка в модальном окне  
      Установка
      Распакуйте архив в корневую папку магазина
      После установки обязательно нужно добавить в схему "ПРОДУКТ".
       
      Модуль тестировался на ocStore 2.1.0.2.1, частичная совместимость с недефолтными шаблонами.
      Готов оказать помощь в адаптации к вашему шаблону.
       
      Добавлена версия для opencart-2.3.0.2-rs!
       
      Добавил zello Добавлено 15.05.2017 Категория Прочее Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.1 ocStore 2.3
      2.1 OpenCart.Pro, ocShop  
  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.