Вход • Регистрация

Кастомизация вывода дополнительных характеристик в shop.view.param.php и вывод в определенном месте shop.view.id.php

  • 18 января 2017 г.
  • Есть дополнительная характеристика товара - значение1|значение2.
    Необходимо выводить её определенным образом (<div class="p1">значение1</div><div class="p2">значение2</div>) в определенном месте shop.view.id.php.
    Как это можно реализовать?
    • 18 января 2017 г. , редакция: 18 января 2017 г.
    • $result['all_param']
      - Обходите массив foreach циклом и с условием if (ID характеристики = "нужный ID") выводите значения характеристики

      КОД можно клепать прям во вьюхе...
  • 18 января 2017 г. , редакция: 18 января 2017 г.
  • Вставляете где угодно во вьюхи карточки товара:
    Код

    foreach ( $result['all_param'] as $values ) {
    if($values['id']==14){
    echo '<div>'.$values['name'].' => '.$values['value'].'</div>';
    }
    }


    число 14 - меняете на ID характеристики (можно посмотреть в списке характеристик - Админка)

    если несколько характеристик (как пример 14 и 15) то:

    Код

    foreach ( $result['all_param'] as $values ) {
    if($values['id']==14 or $values['id']==15){
    echo '<div>'.$values['name'].' => '.$values['value'].'</div>';
    }
    }

    • 18 января 2017 г.
    • Спасибо)
      А если доп характеристика содержит 2 значения - например цена и ссылка на другой магазин (2000|http://shop.ru) - как мне разбить это значение на две части при выводе в шаблоне?
      • 18 января 2017 г.
      • Ну сохраните в разные переменные и подставьте туда куда надо в шаблоне.
      • 18 января 2017 г. , редакция: 18 января 2017 г.
      • Код
        foreach ( $result['all_param'] as $key => $values ) {
        if($key==3){
        if(is_array($values['value'])){
        // Значение массив
        echo "<div>".$values['name']." = ";
        foreach ($values['value'] as $value){
        echo $value.", ";
        }
        echo "</div>";
        }else{
        // Значение не массив
        echo "<div>".$values['name']." = ".$values['value']."</div>";
        }
        }
        //print_r ($values);
        }


        в строке
        Код
        if($key==3){

        3 - Это ID характеристики
    • 08 марта 2017 г.
    • Дмитрий, а если то же самое делать на списке товаров ?
      В коде ниже вывожу название товара и артикул в списке товаров, а хочется еще дополнительно характеристику (id=32)

      Код

      . '<a href="' . BASE_PATH_HREF . $row["link"] . '" class="item-info__link">'.$row['name'].', '.$row["article"].'</a>'
    • 06 февраля 2019 г.
    • А не подскажете, что изменить в коде, чтобы он работал в файлах shop.view.buy_form_id.php и shop.view.buy_form.php?
      • 06 февраля 2019 г.
      • Сначала нужно убедиться что туда передается полный массив $result, если это так, то ничего не меняется, единственное что может быть, $result кладется в $row. Пишу по памяти. Если не работает, вместо $result, напишите $row
  • 12 августа 2017 г. , редакция: 12 августа 2017 г.
  • Может подскажите, как вывести характеристику даже если она не заполнена. Т.е. name выводим, а value - пустое значение.
    Спасибо!
    • 12 августа 2017 г.
    • Есть такой файл /modules/shop/shop.model.php
      В нем есть функция
      Код
      private function param(&$good, $function = "id") { ... }
      Вот в этой функции идет проверка: если значение пустое, то оно отбрасывается.
      • 13 августа 2017 г. , редакция: 13 августа 2017 г.
      • Спасибо, Виталий!
        если кому еще пригодится скидываю по шагам, как делал
        находим в /modules/shop/shop.model.php
        Код
        private function param(&$good, $function = "id") { ... }


        внутри этой функции находим
        Код
        if(isset($row["value"])) {
        ....
        }

        добавляем условие else. копируем туда все что лежит в if
        и в else вместо
        Код
        "value" => $row["value"],

        пишем
        Код
        "value" => " ",


    • 13 августа 2017 г. , редакция: 13 августа 2017 г.
    • - Как съесть Апельсин на завтрак если его нет в доме(холодильнике)?

      1) Купить и положить его (сделать это днем раньше) - в вашем случаи в характеристике иметь доп значение (Нет или Не указано) и у товаров указать его

      2) Подойти к холодильнику и Представить продукт, потом открыть поискать и если его нет, закрыть дверь холодильника и повторить процедуру (с перебором всех продуктов.... которые вы знаете из ближайшего магазина....)

      как то так)))

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум