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

Как вывести цену в товаре, которого нет в наличии

  • 14 декабря 2017 г.
  • Добрый день, долго изучал, но ничего не получается. В файле по моей просьбе программистом была удалена функция вывода цены при отсутствующем товаре, но теперь надо чтобы цена выводилась, а я не знаю какую функцию снесли. Подскажите что надо прописать в коде. Правлю файл shop.view.buy_form_id.php. Спасибо

    Код

    if (!defined('DIAFAN'))
    {
    include dirname(dirname(dirname(__FILE__))) . '/includes/404.php';
    }

    if (!$result["result"]["access_buy"])
    return false;

    if (empty($result["row"]['price']) && empty($result["row"]['price_arr']))
    return false;

    echo '
    <form method="post" action="" class="shop_form ajax">
    <input type="hidden" name="good_id" value="'. $result["row"]["id"].'">
    <input type="hidden" name="module" value="shop">
    <input type="hidden" name="action" value="buy">
    <input type="hidden" name="ajax" value="">';

    if ($result["row"]["no_buy"] || empty($result["row"]["count"]))
    {
    echo '<div class="shop_no_buy shop_no_buy_good">' . $this->diafan->_('Товар временно отсутствует') . '</div>';
    $hide_submit = true;
    $waitlist = true;
    }

    // у товара несколько цен
    if ($result["row"]["price_arr"])
    {
    echo '<div class="shop_form_param">';
    foreach ($result["result"]["depends_param"] as $param)
    {
    if(! empty($result["row"]["param_multiple"][$param["id"]]))
    {
    if(count($result["row"]["param_multiple"][$param["id"]]) == 1)
    {
    foreach($result["row"]["param_multiple"][$param["id"]] as $value => $depend)
    {
    echo '<input type="hidden" name="param'.$param["id"].'" value="'.$value.'"'.($depend == 'depend' ? ' class="depend_param"' : '').'>';
    }
    }
    else
    {
    $select = '';
    foreach($param["values"] as $value)
    {
    if(! empty($result["row"]["param_multiple"][$param["id"]][$value["id"]]))
    {
    if(! $select)
    {
    $select = $param["name"].': <div class="styled-select"><select name="param'.$param["id"].'" class="inpselect'.($result["row"]["param_multiple"][$param["id"]][$value["id"]] == 'depend' ? ' depend_param' : '').'"></div>';
    }

    $select .= '<option value="'.$value["id"].'"'
    .(! empty($_GET["p" . $param["id"]]) && $_GET["p" . $param["id"]] == $value["id"] ? ' selected' : '')
    .'>'.$value["name"].'</option>';
    }
    }
    if($select)
    {
    echo $select.'</select></div><br> ';
    }
    }
    }
    }
    echo '</div>';
    foreach($result["row"]["price_arr"] as $price)
    {
    $param_code = '';
    foreach($price["param"] as $p)
    {
    if($p["value"])
    {
    $param_code .= ' param'.$p["id"].'="'.$p["value"].'"';
    }
    }
    echo '<div class="shop_param_price"'.$param_code.'>';
    echo '<div class="shop_price"><span class="price_title">' . $this->diafan->_('Цена') . ': </span><span class="shop_price_value price_style">' . $price["price"] . '</span> <span class="shop_price_currency price_style">' . $result["result"]["currency"] . '</span></div>';
    if (!empty($price["old_price"]))
    {
    echo '<div class="shop_old_price">' . $this->diafan->_('Старая цена') . ': <span class="shop_price_value">' . $price["old_price"] . '</span>'
    . ' <span class="shop_price_currency">' . $result["result"]["currency"] . '</span></div>';
    }
    if (! $price["count"] && empty($hide_submit))
    {
    echo '<span class="shop_no_buy">' . $this->diafan->_('Товар временно отсутствует') . '</span>';
    $waitlist = true;
    }
    echo '</div>';
    }
    }
    if(! empty($waitlist))
    {
    echo '
    <div class="shop_waitlist">
    '.$this->diafan->_('Сообщить, когда появится на e-mail').'
    <input type="text" name="mail" value="'.$this->diafan->_user->mail.'" class="inptext">
    <span class="button_wrap"><input type="button" class="button" value="'.$this->diafan->_('Ок', false).'" action="wait"></span>
    <div class="errors error_waitlist" style="display:none"></div>
    </div>';
    }
    if (empty($result["row"]['is_file']) && (empty($hide_submit) || $result["result"]["wishlist_link"]))
    {
    echo '<div style="display:none"><input type="text" class="inpnum" value="1" name="count" size="1"></div>';
    }
    if(empty($hide_submit))
    {
    echo '<span class="button_wrap"><input type="button" class="button button_buy" value="" action="buy"></span>';
    }
    if($result["result"]["wishlist_link"])
    {
    echo '<span class="button_wrap"><span class="button_wish masterTooltip" title="Отложить" ></span><input type="button" class="button button_wait" value="'.$this->diafan->_('Отложить', false).'" action="wish"></span>';
    }

    echo '<div class="error">';
    if (!empty($result["row"]["count_in_cart"]))
    {
    echo $this->diafan->_('В <a href="%s">корзине</a> %s шт.', true, BASE_PATH_HREF . $result["result"]["cart_link"], $result["row"]["count_in_cart"]);
    }
    echo '</div>';
    echo '</form>';
    if(empty($GLOBALS["include_shop_js"]))
    {
    $GLOBALS["include_shop_js"] = true;
    echo '<script type="text/javascript" src="'.BASE_PATH.'modules/shop/shop.js"></script>';
    }
    //форма быстрого заказа
    if(! empty($result["result"]["one_click"]))
    {
    $this->get('one_click', 'cart', $result["result"]["one_click"]);
    }
    • 14 декабря 2017 г.
    • закоментируйте этот фаил "_" этот знак в начале названия файла поставьте и будет счастье
      • 14 декабря 2017 г.
      • Пошутили, Дмитрий?
        shop.view.buy_form_id.php - если ссылка именно на этот файл, то вообще ничего работать не будет при его отключении.

        Нужно либо вставить сюда код из файла shop.view.buy_form.php, либо переделать ссылку на стандартный файл.
  • 14 декабря 2017 г.
  • Эдуард, не поняла, какая у вас версия движка.

    Найдите файл /modules/shop/views/shop.view.buy_form.php в корне и сравните с тем, который вы представили выше.
    Сразу увидите, что и откуда было выпилено.

    Для сравнения могу предложить использовать Тотал коммандер - "сравнение файлов по содержимому".
  • 14 декабря 2017 г.
  • Цитата
    Найдите файл /modules/shop/views/shop.view.buy_form.php в корне и сравните с тем, который вы представили выше.
    Сразу увидите, что и откуда было выпилено.


    Его я и предоставил выше, а где мне найти изначально не тронутый этот файл? Версии 5.3
    • 14 декабря 2017 г.
    • shop.view.buy_form_id.php и shop.view.buy_form.php - два разных файла. Названия, как видите, не совпадают.

      Этот shop.view.buy_form.php должен лежать тут: /modules/shop/views/
      А этот shop.view.buy_form_id.php должен лежать здесь: custom/ваша тема/modules/shop/views/
  • 14 декабря 2017 г.
  • Решил проблему, рыл не там, программист вообще создал два файла shop.view.buy_form_id.php и shop.view.buy_form_id2.php (я думал 2 это устаревший и не рабочий, но оказалось всё не так), а подцепляется этот файл в shop.view.id.php
    • 14 декабря 2017 г.
    • Т.е. в итоге вы все исправили?

      П.С. У меня исходника вашей версии нет совсем. Не могла точно посмотреть.
      • 15 декабря 2017 г.
      • Да всё как надо поправил, благодаря вам, теперь знаю как сравнивать тексты в файлах (давно думал чем таким это реализовать, про тотал командер не знал, что там есть такая функция). Просто как оказалось рыл совсем не там где надо, а начал сравнивать все файлы у которых есть дубли (цифры добавлены в конце файла). Там программист настраивал и очень много фалов таких стало.

Новости

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

Форум