Переопределить кнопку

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

Аватар пользователя sasha_gar sasha_gar 14 июля 2012 в 10:52

Здравствуйте всем!
Делаю интернет магазин. друпал 7 + уберкарт 3.
Создал вьюшку, которая выводит мне изображение товара, цену товара, название товара.
Хотел сделать так: цену сделать ссылкой, при нажатии на которую продукт отправлялся бы в корзину. Но ничего не получилось. Подскажите как это правильно сорганизовать?

Комментарии

Аватар пользователя sg85 sg85 14 июля 2012 в 11:48

На сколько помню товары в корзину там уходят через форму по параметрам post

Еще помню там был штатный уберовский модуль, позволяющий делать это через обычную ссылку только вот название не помню

Аватар пользователя rimen rimen 14 июля 2012 в 12:57

модуль этот зовется uc_cart_links
Чтобы не лезь глубоко можно просто вывести цену и ссылку add_to_cart в одном диве, а ссылку затемить css чтобы перекрывала цену (position: absolute, height, width...)

Аватар пользователя Orion76 Orion76 14 июля 2012 в 13:13

Скрыть поля Цена и Ссылка "add_to_cart "
Добавить поле Global:text, и токенами и html сформировать нужную ссылку..
Обязательное условие - дополнительное поле должно быть "ниже"полей, токены которых оно использует.

Аватар пользователя rimen rimen 14 июля 2012 в 13:25

Скрывать не нужно -
Два поля: цена, ссылка.
Global text перед и после (аля префикс и суффикс) -

<div class="add-to-cart"> и закрывающий
</div>

css код какой-нить такой (пишу прям здесь - не проверял)

.add-to-cart{
position: relative;
width: 100px;
height: 30px;
}
a.add-to-cart-link{
display: block;
position: absolute;
top: 0;
width: 100%;
height: 100%;
text-indent: -9999em;
}

UPD orion, прошу прощения, не внимательно прочел, твой способ чуток другой - формирование ссылки из текста цены и линка ссылки, однака тут есть трабла - вьюс из базы цену дергает просто цифрой 9999, форматирование uc_price уже после идет, поэтому, полагаю, мой способ будет оптимальнее.

Аватар пользователя sasha_gar sasha_gar 16 июля 2012 в 13:06

Всем спасибо за комменты...
Пробовал с токенами, а потом css. Получается что на кнопку можно было нажать, только вне блока где указана цена.
Тогда я сделал так.
Создал поле Глобал: текст.
Скрыл из вывода два поля: Цена и Добавить в корзину.
В поле глобал сделал 2 дива: 1 с токеном от кнопки добавить в корзину, а второй див с ценой.
Потом создал файл отвечающий за отображение этого поля. и все. при помощи php подменил добавить в корзину на цену. В итоге все работает.

<?php
         $price = $row->uc_products_sell_price;
         $price = substr($price, 0, -3).' руб';
         $a = str_replace('Добавить в корзину', $price, $output);
         print $a;
?>