Перейти к содержимому


Фотография
- - - - -

Вывод элементов цены в произвольном месте шаблона

элемент цены цена элемент

Сообщений в теме: 13

#1 Mirotvoretz

Mirotvoretz

Отправлено 28 December 2016 - 09:53

Подскажите, можно ли вывести элементы цены в произвольных местах шаблона (teaser, full и т.п.)?

К примеру, в шаблоне тизера мне нужно в определённые места вывести информацию о наличии, артикул, саму кнопку "купить" и т.д.

 

На форуме не нашел такой информации. Если плохо искал, поделитесь ссылкой.


  • 0

Выгрузки из keys.so


#2 woodman

woodman

Отправлено 28 December 2016 - 09:54

$('.price-style').prependTo('.custom-div');

  • 1

#3 Mirotvoretz

Mirotvoretz

Отправлено 28 December 2016 - 09:57

Можно более развёрнуто? Для начинающих)


Сообщение отредактировал Mirotvoretz: 28 December 2016 - 10:20

  • 0

Выгрузки из keys.so


#4 woodman

woodman

Отправлено 28 December 2016 - 11:05

Конечно можно. Для тех, кто ищет знаний у нас всегда двери открыты - http://jquery-docs.r...ation/prependto


  • 1

#5 Mirotvoretz

Mirotvoretz

Отправлено 28 December 2016 - 11:32

Спасибо за ссылку. Но к сожалению, в вопросе пока не разобрался.


  • 0

Выгрузки из keys.so


#6 woodman

woodman

Отправлено 28 December 2016 - 13:08

Показываю один раз, смотри внимательно

 

magic.png

 

К примеру, мне нужно значение цены "550" перенести куда-то повыше, скажем, в блок с классом "new-wrapper". Для таких простых манипуляций я могу использовать jQuery и после построения документа уже передвинуть блок на самой странице. 

Вид записи, как я писал выше, очень простой. Берем блок, выбирая его по селектору (классу) .jbcurrency-value (красная стрелка) и добавляем его к блоку с классом .new-wrapper (желтая стрелка).

 

В документации jQuery написано, что для этого надо исполозовать метод prependTo (присоединить к). Вот его и пишем

$('.jbcurrency-value').prependTo('.new-wrapper');

Этот код можно добавить в общий шаблон, или же вывести куда-то на конкретной странице, обрамив тегом <script>

 

Все, ты теперь знаешь jQuery и больше не будешь такие очевидные вопросы задавать.


Сообщение отредактировал woodman: 28 December 2016 - 13:09

  • 4

#7 Mirotvoretz

Mirotvoretz

Отправлено 28 December 2016 - 18:58

Спасибо. Способ интересный, простой. Но работает уже после построения документа.

Мне кажется должен быть способ вывода элементов цены на уровне шаблона jbzoo, без использования скриптов. Или я ошибаюсь и такая возможность не предусмотрена?


  • 0

Выгрузки из keys.so


#8 woodman

woodman

Отправлено 28 December 2016 - 20:38

Там все равно половина функций скриптами. Делай как я написал. Глазамии разницы не увидишь


  • 0

#9 Mirotvoretz

Mirotvoretz

Отправлено 29 December 2016 - 21:28

Опять засада. Для шаблона Full (полная карточка товара) скрипт работает замечательно.

 

Но для повторяющихся шаблонов teaser  (выводятся на странице категории) скрипт берёт все блоки со страницы с указанным классом и кладёт их в одно поле. В результате того, что на странице много повторяющихся блоков, получается картина как на скриншоте:

Screenshot_2.jpg

 

Вообще задача простая. Нужно разместить элементы цены (наличие, цена, кол-во, кнопка "купить") в разные блоки div-вёрстки. Т.е. если представить шаблон в виде таблицы, то элемент цены "наличие" должен попасть в ячейку "наличие", кнопка "купить" - в ячейку "купить" и т.д.

Screenshot_3.jpg

Вот как это сделать в тизере, не могу понять(

Результат нужен примерно такой:

Screenshot_4.jpg

 

А нельзя просто кодом примерно такого вида

<?php echo $item->name ?>

вывести в нужном месте элементы цены?


Сообщение отредактировал Mirotvoretz: 29 December 2016 - 21:29

  • 0

Выгрузки из keys.so


#10 woodman

woodman

Отправлено 30 December 2016 - 03:01

Та не, там не так все просто. Нужно id элемента брать, а элемент цены в свою очередь тоже из элементов состоит и вообще все грустно.

 

Давай лучше продолжим учить jQuery. Это проще.

Для того, чтоб твой блок приклеивался к нужному объекту, надо написать простенькую функцию. Сначала она выделяет все объекты, а потом для каждого в рамках родителя будет перемещать. Выглядит примерно так:

$(".parent-class .class").each(function() {
    var $class = $(this);
    $class.closest('.parent-class').find('.target-class').prepend($class);
});

Тут .parent-class - это обертка для твоего дива и того, к которому надо приклеить, .class - это твой селектор, .target-class - тот, к которому ты приклеиваешь.

Все просто.


  • 1





Темы с аналогичным тегами элемент цены, цена, элемент

Click to return to top of page in style!