0 Пользователей и 1 Гость просматривают эту тему.
  • 29 Ответов
  • 3029 Просмотров
*

hr.al

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Здравствуйте! Такой вопрос, как можно вывести с помощью отдельной заглушки меню выбора свойств (дочерних товаров) в flypage.tpl.php?

Я попытался это сделать добавив новую заглушку в файл:
/public_html/administrator/components/com_virtuemart/html/shop.product_details.php

/* ADD-TO-CART */
$tpl->set( 'manufacturer_id', $manufacturer_id );
$tpl->set( 'flypage', $flypage );
$tpl->set( 'ps_product_attribute', $ps_product_attribute );
$addtocart = $tpl->fetch('product_details/includes/addtocart_form.tpl.php' );
$new_addtocart = $tpl->fetch('product_details/includes/new_addtocart_form.tpl.php' );

далее создал новый файл /product_details/includes/new_addtocart_form.tpl.php
в нем я закомментировал вывод кнопки корзины

и добавил заглушку $new_addtocart в flypage.tpl.php

в файле addtocart_form.tpl.php закомментировал строку
list($html,$children) = $ps_product_attribute->list_attribute( ( $product_parent_id > 0 )? $product_parent_id : $product_id );
список действительно перестал выводится для заглушки $addtocart, как мне и надо, но теперь при нажатии на кнопку корзины - товар не добавляется в нее.....

что делать? очень прошу мне помочь, я просто в тупике

версия VirtueMart 1.1.9 stable
*

fsv

  • Moderator
  • 2680
  • 387 / 2
в файле addtocart_form.tpl.php закомментировал строку
list($html,$children) = $ps_product_attribute->list_attribute( ( $product_parent_id > 0 )? $product_parent_id : $product_id );
список действительно перестал выводится для заглушки $addtocart, как мне и надо, но теперь при нажатии на кнопку корзины - товар не добавляется в нее.....

И не добавится. Есть взаимосвязи. Можно попробовать эту строку в див с "display:none;". Хотя, если у вас выпадающим списком атрибуты, все равно работать не будет, или пока не выберешь (как выбрать то, что скрыто?), или в коде задать принудительно выбор первого option.

Если не секрет, что вы хотите получить в итоге с такой конструкцией: в первой корзине скрыть выбор атрибутов, но оставить кнопку, во второй корзине будут атрибуты (?), но кнопки не будет (и кому эти атрибуты нужны тогда? -> разве что по onchange какой-нибудь скриптик запускать)?
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

hr.al

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
дело в том что мне по дизайну так нужно, чтобы эти две функции лежали в разных частях страницы, я совсем и не против чтобы они были в одном файле как и раньше, но как их разделить в угоду дизайна ума не приложу - в этих делах я самоучка и подобные вопросы решить не удается... может есть мысли на этот счет?
*

hr.al

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
и кстати, в моем случае выбор остался зависимым друг от друга, т.е. если я делаю выбор в списке new_addtocard, то и в addtocard выбор происходит - так что осталось только визуально скрыть выбор во втором варианте
*

hr.al

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
мдаа... попробовал с <div style="display:none;">
не работает...

так есть сейчас


так должно быть
*

fsv

  • Moderator
  • 2680
  • 387 / 2
и кстати, в моем случае выбор остался зависимым друг от друга, т.е. если я делаю выбор в списке new_addtocard, то и в addtocard выбор происходит

Ну, да.  И там и там - $html. Просто я недавно одну фишку делал с двумя корзинами, так у меня были $html и $html2 - все раздельно, в т.ч.классы, поэтому чуть запутался.
С картинок надо было и начинать. Две корзины не нужны. Только верхняя. В ней кнопку скрываете. Нижняя кнопка - обычная, по onclick сабмит верхней. Все!
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

hr.al

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Ну, да.  И там и там - $html. Просто я недавно одну фишку делал с двумя корзинами, так у меня были $html и $html2 - все раздельно, в т.ч.классы, поэтому чуть запутался.
С картинок надо было и начинать. Две корзины не нужны. Только верхняя. В ней кнопку скрываете. Нижняя кнопка - обычная, по onclick сабмит верхней. Все!
но для меня как раз это и есть вопрос! в верхней я скрыл кнопку - а как собственно скрыть выбор свойств для второй кнопки?
ни комментирование, ни "display:none;" не работает - в обоих случаях выбор скрывается, но перестает функционировать кнопка - видимо зависимость по $html не единственная
да и... при способе "display:none;", в IE слетают все div'ы
*

fsv

  • Moderator
  • 2680
  • 387 / 2
в верхней я скрыл кнопку - а как собственно скрыть выбор свойств для второй кнопки?

Каких "свойств для второй кнопки"? Нет там никаких свойств. Я же написал, корзина (addtocart_form) - ОДНА. И "свойства" только у нее (та, что сейчас верхняя). Внизу - обычная кнопка, на нее вешаете по onclick срабатывание скрытой кнопки корзины.
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

hr.al

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
хм.... видимо я совсем не уловил вашу мысль... если не сложно, может вы поправите код:

Код
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>

<div class="vmCartContainer">
<div style="display:none;">
<?php
mm_showMyFileName(__FILE__);
// This function lists all product children ( = Items)
// or, when not children are defined, the product_id
// SO LEAVE THIS IN HERE!
list($html,$children) = $ps_product_attribute->list_attribute( ( $product_parent_id > 0 )  ? $product_parent_id : $product_id );

if ($children != "multi") {

    if( CHECK_STOCK == '1' && ( $product_in_stock < 1 ) ) {
      $notify = true;
    } else {
    $notify = false;
    }

?> 
    <form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="<?php echo uniqid('addtocart_')?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>
     
<?php
}
echo $html;

if (USE_AS_CATALOGUE != '1' && $product_price != "" && !stristr( $product_price, $VM_LANG->_('PHPSHOP_PRODUCT_CALL') )) {
?>
</div>
        <?php if ($children != "multi") { ?>
    <div style="float: right;vertical-align: middle;"> <?php
    if ($children == "drop") {
    echo $ps_product_attribute->show_quantity_box($product_id,$product_id);
    }
    if ($children == "radio") {
echo $ps_product_attribute->show_radio_quantity_box();
    }
    if ($children == "radio") {
echo $ps_product_attribute->show_radio_quantity_box();
    }
    $button_lbl = $VM_LANG->_('PHPSHOP_CART_ADD_TO');
    $button_cls = 'addtocart_button';
    if( CHECK_STOCK == '1' && ( $product_in_stock < 1) ) {
      $button_lbl = $VM_LANG->_('VM_CART_NOTIFY');
      $button_cls = 'notify_button';
    }
    ?>   
    <input type="submit" class="<?php echo $button_cls ?>" value="<?php echo $button_lbl ?>" title="<?php echo $button_lbl ?>" />
    </div>
    <?php  } ?>   
    <input type="hidden" name="flypage" value="shop.<?php echo $flypage ?>" />
<input type="hidden" name="page" value="shop.cart" />
    <input type="hidden" name="manufacturer_id" value="<?php echo $manufacturer_id ?>" />
    <input type="hidden" name="category_id" value="<?php echo $category_id ?>" />
    <input type="hidden" name="func" value="cartAdd" />
    <input type="hidden" name="option" value="<?php echo $option ?>" />
    <input type="hidden" name="Itemid" value="<?php echo $Itemid ?>" />
    <input type="hidden" name="set_price[]" value="" />
    <input type="hidden" name="adjust_price[]" value="" />
    <input type="hidden" name="master_product[]" value="" />
    <?php
}
if ($children != "multi") { ?>
</form>
<?php
}
    if($children == "radio") { ?>
   
    <script language="JavaScript" type="text/javascript">//<![CDATA[
    function alterQuantity(myForm) {
        for (i=0;i<myForm.selItem.length;i++){
            setQuantity = myForm.elements['quantity'];
            selected = myForm.elements['selItem'];
            j = selected[i].id.substr(7);
            k= document.getElementById('quantity' + j);
            if (selected[i].checked==true){
                k.value = myForm.quantity_adjust.value; }
            else {
                k.value  = 0;
            }
        }
    }
//]]></script>
<?php } ?>
</div>

это addtocart_form.tpl.php (тот что внизу)
*

fsv

  • Moderator
  • 2680
  • 387 / 2
Пишу, что корзина нужна только верхняя, вы просите подправить код нижней...

Еще раз (подробнее некуда):
1. Удаляете верхнюю корзину (new). На её место ставите "старую" - <?php echo $addtocart ?> во flypage
2. На то место во flypage, где была "нижняя" корзина вставляете:
Код
<input type="button" value="Купить" onclick="document.getElementById('addbutton').click()" />
3. В addtocart_form.tpl.php  строку
Код
<input type="submit" class="<?php echo $button_cls ?>" value="<?php echo $button_lbl ?>" title="<?php echo $button_lbl ?>" />
дополняете стилем и id:
Код
<input type="submit" id="addbutton" style="display:none;" class="<?php echo $button_cls ?>" value="<?php echo $button_lbl ?>" title="<?php echo $button_lbl ?>" />

Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

hr.al

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
я сделал все как вы написали и... ничего не работает.
но не хочу вас больше напрягать. спасибо за помощь.
*

fsv

  • Moderator
  • 2680
  • 387 / 2
я сделал все как вы написали и... ничего не работает.
но не хочу вас больше напрягать. спасибо за помощь.

За помощь пожалуйста.
Все работает. Прежде чем написать предыдущий свой пост проверил.
..."не работает" - было уже неоднократно. причина - невнимательность.
Конкретно про вас - 2 раза написал, что нижнюю корзину убрать, вы про нее: "как ее код подправить?".
И чего я столько распинался? Чтобы у вас не получилось? Давайте, вдумчиво, аккуратно и не спеша. Потом отписываемся, что и где не получилось.
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

Sonio

  • Захожу иногда
  • 52
  • 0 / 0
Помогите пожалуйста, как сделать кнопку купить и количество товаров раздельно. Мне нужно чтобы количество было в другом месте от кнопку купить.
*

andranik1957

  • Захожу иногда
  • 63
  • 2 / 0
Можно увидеть ссылку на сайт?
*

Sonio

  • Захожу иногда
  • 52
  • 0 / 0
Можно увидеть ссылку на сайт?


Сайт в проэкте , могу залить скрины и код и описать , то что мне нужно.
*

andranik1957

  • Захожу иногда
  • 63
  • 2 / 0
Цитировать
"так что осталось только визуально скрыть выбор во втором варианте"
"мдаа... попробовал с <div style="display:none;">
не работает..."
Я бы попробовал копать в этом напрвлении, но жаль нет ссылки.
*

Sonio

  • Захожу иногда
  • 52
  • 0 / 0
За помощь пожалуйста.
Все работает. Прежде чем написать предыдущий свой пост проверил.
..."не работает" - было уже неоднократно. причина - невнимательность.
Конкретно про вас - 2 раза написал, что нижнюю корзину убрать, вы про нее: "как ее код подправить?".
И чего я столько распинался? Чтобы у вас не получилось? Давайте, вдумчиво, аккуратно и не спеша. Потом отписываемся, что и где не получилось.


Большое спасибо fsv. Действительно читать надо внимательнее. Все работает. Хотелось бы понять теперь технически что происходит. Я примерно понял. Но если не сложно объяснить более детально для опыта.
*

fsv

  • Moderator
  • 2680
  • 387 / 2
Большое спасибо fsv. Действительно читать надо внимательнее. Все работает. Хотелось бы понять теперь технически что происходит. Я примерно понял. Но если не сложно объяснить более детально для опыта.

да тут 1 короткая строчка кода кнопки... для диссертации как-то маловато, не разгонишься...

1. В addtocart_form.tpl.php  строку кода кнопки "Купить" дополняете стилем - style="display:none;" - чтобы скрыть ее, дополняете id - id="addbutton" - чтобы иденцифицировать в последствии.
2. Корзину втыкаете куда хотите, кнопка "Купить" не видна.
3. Создаете свою кнопку "Купить" где хотите:
<input type="button" value="Купить" onclick="document.getElementById('addbutton').click()" />
Кликая на нее (onclick), вы кликаете ( click() ) по элементу с id=addbutton (а это настоящая кнопка "Купить"). Все.
Стили новой кнопки - каждый делает себе сам.
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

Sonio

  • Захожу иногда
  • 52
  • 0 / 0
Еще раз спасибо, у меня теперь другая сложность. Как сделать стрелочки количества товаров вретикальными, а не горизонтальными?

======================================
Не надо дублировать ваши вопросы по всем темам. Эта тема не про "стрелочки количества".
Кнопки здесь: \components\com_virtuemart\themes\default\templates\product_details\includes\quantity_box_general.tpl.php , смотрите классы и в CSS
« Последнее редактирование: 19.10.2012, 14:42:55 от fsv »
*

Sonio

  • Захожу иногда
  • 52
  • 0 / 0
Еще раз спасибо, у меня теперь другая сложность. Как сделать стрелочки количества товаров вретикальными, а не горизонтальными?

======================================
Не надо дублировать ваши вопросы по всем темам. Эта тема не про "стрелочки количества".
Кнопки здесь: \components\com_virtuemart\themes\default\templates\product_details\includes\quantity_box_general.tpl.php , смотрите классы и в CSS

Я знаю в каком файле редактировать, только вот сложно редактировать когда они в <form>, хотелось бы их вынести отдельно из форм.
*

hr.al

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
За помощь пожалуйста.
Все работает. Прежде чем написать предыдущий свой пост проверил.
..."не работает" - было уже неоднократно. причина - невнимательность.
Конкретно про вас - 2 раза написал, что нижнюю корзину убрать, вы про нее: "как ее код подправить?".
И чего я столько распинался? Чтобы у вас не получилось? Давайте, вдумчиво, аккуратно и не спеша. Потом отписываемся, что и где не получилось.


Я действительно напоролся на свою же ошибку - когда я до обращения к вам сам пытался что-то придумать в коде уже успел наломать дров и ничего не сработало.... Сорри! Ваш метод действительно работает! Огромное спасибо!
*

hr.al

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
и еще небольшой оффтоп - что за модуль (или аналог) используется справа (по краю страницы) на этом сайте - http://www.pentathlon.org/
*

fsv

  • Moderator
  • 2680
  • 387 / 2
и еще небольшой оффтоп - что за модуль (или аналог) используется справа (по краю страницы) на этом сайте - http://www.pentathlon.org/

Facebook Slide Likebox Pro
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

hr.al

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Facebook Slide Likebox Pro
спасибо! хотя это все же немного не то что нужно.
по существу вопрос такой - мне нужен такой модуль/плагин который умеет скрывать информацию (произвольную - мне например нужно туда купон со скидкой поместить) за край экрана, как это делает Facebook Slide Likebox Pro и при этом находится всегда на одной позиции не зависимо от скролинга. не знаю, может у модулей такого типа есть свое название - пытался в поиске нарыть, что-то безрезультатно...
*

niggatub

  • Захожу иногда
  • 205
  • 2 / 3
Для browse не подскажете решение? Точнее принцип то тот же. только вот получается что элементов "addbutton" на странице категории несколько и соответственно getElementById срабатывает чуть ли не рандомно. Можно было бы сделать динамическое "addbutton<?php echo $product_id ?>", но беда в том, что инпут находится за пределами форму и генерится какой то непонятный getElementById('addbutton_<?php echo $product_id ?>').click().
Вобщем каким образом на странице категории можно все это дело? Бъюсь который день уже(
*

niggatub

  • Захожу иногда
  • 205
  • 2 / 3
Короче не стал заморачиваться, стилями разрулил все. Задолбало.
*

fsv

  • Moderator
  • 2680
  • 387 / 2
Можно было бы сделать динамическое "addbutton<?php echo $product_id ?>"
Так и делается.

Вот это
но беда в том, что инпут находится за пределами форму
не понял. Доп.кнопка за пределами <div class="browseProductContainer"> ? Где? Ссылка?

Еще решение этого вопроса - только CSS - позиционирование кнопки "купить".
(пока отвечал, вопрос решили)
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

niggatub

  • Захожу иногда
  • 205
  • 2 / 3
Вот этоне понял. Доп.кнопка за пределами <div class="browseProductContainer"> ? Где? Ссылка?
http://del
щас там уже переделано средствами ксс.
input за пределами <form id="addtocartxxx"......</form>

« Последнее редактирование: 17.04.2013, 14:18:19 от niggatub »
*

fsv

  • Moderator
  • 2680
  • 387 / 2
Сделали, ну и хорошо.
Но если вернуться к тому, что не получалось.
input за пределами <form id="addtocartxxx"......</form>
Какой инпут?
Если "родная" кнопка, которую надо было скрыть, то зачем выносить ее из формы?
Если доп.кнопка, то это не имеет значения. Главное, чтобы она внутри <div class="browseProductContainer"> (у вас class="tovar") была, чтобы id товара определяла.
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

niggatub

  • Захожу иногда
  • 205
  • 2 / 3
Сделали, ну и хорошо.
Но если вернуться к тому, что не получалось.Какой инпут?
Если "родная" кнопка, которую надо было скрыть, то зачем выносить ее из формы?
Если доп.кнопка, то это не имеет значения. Главное, чтобы она внутри <div class="browseProductContainer"> (у вас class="tovar") была, чтобы id товара определяла.
Инпут <div id="kupit_but"><input type="submit" value="" onclick="document.getElementById('kupit').click()" /></div>
Он был внутри .tovar как раз, а вот id товара брался непонятно какой, при чем, как я понял id был +1 к последнему id товара в строке таблицы. вобщем муть какая то, где то скорее всего невнимателен был. Вобщем да - щас выглядит как надо.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Настройки отображения товара

Автор wectra

Ответов: 2
Просмотров: 1026
Последний ответ 12.07.2017, 22:12:27
от wectra
Несколько изображений для товара/ Лупа для изображения/ Magic Zoom

Автор antoha333

Ответов: 41
Просмотров: 24093
Последний ответ 13.11.2015, 16:08:16
от sonics
Как реализовать на VirtueMart такую карточку товара?

Автор AdmbVlad

Ответов: 0
Просмотров: 1031
Последний ответ 14.10.2015, 17:01:55
от AdmbVlad
Вставить картинку в карточку товара через URL и создать его миниатюру

Автор sashgera

Ответов: 8
Просмотров: 1390
Последний ответ 14.02.2015, 21:12:46
от sashgera
Как изменить сортировку товара ?

Автор Timer

Ответов: 0
Просмотров: 953
Последний ответ 21.01.2015, 23:49:28
от Timer