Ubercart 3 файл шаблона uc_ajax_cart_block_content.tpl.php

Главные вкладки

Аватар пользователя crew crew 26 ноября 2018 в 22:53

Как вывести переменную <?php print $total ;?> (итоговая стоимость) из файла uc_ajax_cart_block_content.tpl.php в любом месте шаблона? Работает, только если выведена внутри данного файла, при попытке вызова за пределами файла - ничего не выводит. Сайт убера лежит колом уже неделю (мб там была бы какая-либо инфа) пока ищу решение, по поиску ничего не нашел...
Спасайте!) За ранее благодарен всем откликнувшимся.

Комментарии

Аватар пользователя VasyOK VasyOK 26 ноября 2018 в 23:11

План Б. Если других вариантов не найдете.
Вывести блок ajax корзины программно в нескольких местах, ну и CSS-ом (либо хуками если вы крутой прогер) убрать лишнее.

Либо более "народными" методами. Тоже вывести несколько раз блок корзины, но через JS.

Аватар пользователя crew crew 26 ноября 2018 в 23:50

а вот на счет пару раз вывести блок - я не подумал!)) все заработало! сейчас пару строк велосипедного css и все в шоколаде

Аватар пользователя gun_dose gun_dose 26 ноября 2018 в 23:10

Нужно посмотреть в hook_block_view, как этот тотал вызывается. Если в двух словах, то нужно загрузить корзину текущей сессии и взять её тотал. А способов передачи переменных из одного шаблона в другой попросту не существует.

Аватар пользователя crew crew 26 ноября 2018 в 23:33

VasyOK wrote:

План Б. Если других вариантов не найдете.

Вывести блок ajax корзины программно в нескольких местах, ну и CSS-ом (либо хуками если вы крутой прогер) убрать лишнее.
Либо более "народными" методами. Тоже вывести несколько раз блок корзины, но через JS.


уже убился с js и jquery.... ниже код, на скрине что имеется. сама суть, на лету ловить изменения $total и выводить на кнопке, которая вызывает модальное окно с корзиной и вебформой. Пробовал с .change и тд тп, но не пашет вообще ни как.

<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModalCenter">
                <script type="text/javascript">
                (function($) {
                $(document).ready(function(){

                        var htmlprice = document.getElementById('cart-block-summary-total').value;
                        $('#changeprice').html(htmlprice);

                });
                })(jQuery);
                </script>
                <p id="changeprice"></p>
</button>              

<!-- Modal -->
<div class="modal fade" id="exampleModalCenter" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
  <div class="modal-dialog modal-dialog-centered" role="document">
        <div class="modal-content">
          <div class="modal-header">
                <h5 class="modal-title" id="exampleModalLongTitle">Modal title</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                  <span aria-hidden="true">×</span>
                </button>
          </div>
          <div class="modal-body">
                <div class="cart_block_form">
                        <?php if ($page['cart']): ?>
                        <div class="cart_blck">
                                        <?php print render($page['cart']); ?>
                        </div>
                        <?php endif; ?>
                       
                        <?php if ($page['cart_webform']): ?>
                        <div class="cart_webform">
                                        <?php print render($page['cart_webform']); ?>
                        </div>
                        <?php endif; ?>
                </div>
          </div>
        </div>
  </div>
</div>         

Аватар пользователя crew crew 27 ноября 2018 в 14:37

<script type="text/javascript">
(function($) {
$(document).ready(function(){

setInterval(function() {
        $('#changeprice').empty();
    var cost = $(".cbst").clone();
        $("#changeprice").html(cost);
}, 1000)

});
})(jQuery);
</script>

Я изобрел велосипед, который работает. по таймеру очищаем #changeprice где должна выводится цена и туда же клонируем новую)))