VM 2.x One Page Checkout 1.3

mumins

Интернетов сантехник
Регистрация
11 Мар 2009
Сообщения
1.004
Реакции
979
Не имеет отношение к Для просмотра ссылки Войди или Зарегистрируйся.
Only for VM 2.0.4 and higher. Joomla 2.5.Х
Для следующих VM версий надо ждать апдейти или сравнить с фаилами в директории \com_virtuemart\cart\ и переписывать изменения.

Демо: Для просмотра ссылки Войди или Зарегистрируйся
D/l:

Распаковываем, читаем info.txt.

MBR
m.
>>>> Для просмотра ссылки Войди или Зарегистрируйся от пользователя Для просмотра ссылки Войди или Зарегистрируйся <<<
 
у вас сразу при загрузке ругается на
TypeError: document.id(...) is null
document.id('shipto_virtuemart_country_id').value=176;

т.е. #shipto_virtuemart_country_id отсутствует на странице
Переустановил таблицы virtuemart_userfield_values и virtuemart_userfields.
При нажатие на кнопку требует заполнить поля, заполняю.
Потом опять ошибка в скрипте, спотыкается на
ship_to.each(function(item) {
//console.log(item);
if(!item.get('autocomplete')){
var name=item.get('id').replace('shipto_','');
if(bill_to.getElementById(name)) {
item.set('value',bill_to.getElementById(name).get('value'));
}
}
});
Обнаружил что есть скрытые поля типа
<input type="text" autocomplete="off" style="width: 86px;" class="" aria-invalid="false">
if(!item.get('autocomplete')) таким исключением обошел их

Далее ошибки пропадают, но кнопка не реагирует.
В консоли хрома видно что аяксом шлет по адресу

Request URL: Для просмотра ссылки Войди или Зарегистрируйся

В ответ получаем
<br />
<b>Strict Standards</b>: Declaration of TableUserfields::check() should be compatible with VmTable::check() in <b>/home/bh46660/fmcomfort/administrator/components/com_virtuemart/tables/userfields.php</b> on line <b>31</b><br />
<br />
<b>Strict Standards</b>: Declaration of TableUserfields::checkAndDelete() should be compatible with VmTable::checkAndDelete($table, $whereField = 0, $andWhere = '') in <b>/home/bh46660/fmcomfort/administrator/components/com_virtuemart/tables/userfields.php</b> on line <b>31</b><br />
[]


Решение придумал.
Вывел две кнопки здесь, первую скрою в css.
echo $this->checkout_link_html;
if (!VmConfig::get('use_as_catalog')) {
echo '<a class="vm-button-correct" href="javascript:void(0);" onclick="submit_order();"><span>' . JText::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU') . '</span></a>';
}

При заполненных полях надо сделать имитацию нажатия на первую кнопку тогда все оформится в один клик.
На jQuery реализовать получилось jQuery('#checkoutFormSubmit').click();

А как это в mootols впихнуть не пойму.
Понимаю что все происходит в этом куске, но мои console.log('1'); и console.log('2'); не отрабатывают.

new Request.JSON({
'url':'index.php?type=onepage&opc_task=set_checkout',
'method':'post',
'data':document.id('checkoutForm').toQueryString(),
'async':false,
'noCache':true,
'onSuccess':function(json,text) {
// Fucky IE adds to task 'update' for some unexpected cause
document.checkoutForm.task.value='confirm';
//alert(document.checkoutForm.task.value);
document.checkoutForm.submit();
//jQuery('#checkoutFormSubmit').click();
console.log('1');
},
'error':function(){console.log('2');}
}).send();

Предположу что из-за ошибки Strict Standards ни чего не возвращается т.к. на пол пути ошибка выходит.
 
Последнее редактирование модератором:
вариант этой функции на jquery с возвратом в fancybox
jQuery.ajax({
dataType: "json",
type: 'POST',
async: false,
url: 'index.php?type=onepage&opc_task=set_checkout',
data: jQuery('#checkoutForm').serialize(),
}).done(function( json ) {
document.checkoutForm.task.value='confirm';
document.checkoutForm.tmpl.value='component';
jQuery.fancybox({
href: '/?'+jQuery('#checkoutForm').serialize(),
type: 'ajax',
onClosed: function(){
document.location='/';
},
onComplete: function(){
jQuery('a.vm-button-correct, .post_payment_payment_name').remove();
jQuery('tr.cart-product-row').remove();
jQuery('#total_amount').text('0 руб');
jQuery('#bill_total').text('0 руб');
jQuery("#vmCartModule").updateVirtueMartCartModule();
}
});
});
по закрытию окна переход на главную и очистка корзины
а Strict Standards - скорее всего в коде идет такая конструкция $db=&JFactory::getDBO();
уберите амперсант, это после перехода на php 5.3+ такой нюанс начал вылезать в старых расширениях
 
кто то пробовал адаптировать этот плагин к VM3? У меня после установки при заходе в корзину - белый экран
 
там проблемы и на 2.6 наблюдались, я переписал часть PHP и практически полностью JS с мутулса, который вечно давал кучу конфликтов на jQuery
 
кто то пробовал адаптировать этот плагин к VM3? У меня после установки при заходе в корзину - белый экран
Учи мат часть! Включай логи и смотри в чем проблема. Белый экран это не отговорка!
ВМ3 Переписан, и нужно не адаптировать вкривь и вкось, и ждать совместимой версии
 
это - плагин от виртуепланет, я же спрашивал про плагин от лайнлаб (этот топик как раз о нём). Поиск поможет?
Я наивно предположил, что вам нужно решение вопроса (поставил - и заработало). Оказалось, шашечки важнее, чем ехать.
Не вижу принципиальной разницы между этими плагинами, кроме той, что от виртуепланет - работает в VM3, и в отличие от Для просмотра ссылки Войди или Зарегистрируйся (который тоже работает в ВМ3) еще и корзину пересчитывает без обновления страницы, и не такой уродливый.
Наличие же в этом топике специального поста по настройкам и хакам красноречиво говорит о качестве.
 
Вам Для просмотра ссылки Войди или Зарегистрируйся
И научитесь уже пользоваться поиском.
1. плагин от linelab и тема про этот плагин, который тоже на более старых версиях работал стабильнее, а сейчас надо допиливать
это Вы научитесь не лезть куда не просят с ненужными советами, кому хватает аналогичных плагинов давно ими пользуются

Я наивно предположил, что вам нужно решение вопроса (поставил - и заработало). Оказалось, шашечки важнее, чем ехать.
Не вижу принципиальной разницы между этими плагинами, кроме той, что от виртуепланет - работает в VM3, и в отличие от Для просмотра ссылки Войди или Зарегистрируйся (который тоже работает в ВМ3) еще и корзину пересчитывает без обновления страницы, и не такой уродливый.
Наличие же в этом топике специального поста по настройкам и хакам красноречиво говорит о качестве.
2. зачем оффтопить, тема не про эти плагины, значит есть на то причина и у меня их несколько
- rupostel слишком большой, в админке наблюдается куча ошибок, запаришься пока настроишь, слишком много опций надо переключать, трудно допиливать
- virtueplanet в целом неплох, но тоже не очень удобно допиливать и соответственно очень трудно отойти от структуры заданной разработчиком, которая мне не кажется удобной, не всегда удобно такое представление
- linelab, основной косяк - mootools, который в joomla 3 используется крайне редко, сам виртумарт всегда без него работал, а разработчик чего-то решил на нем все написать, ну и есть пара косяков по структуре плагина, но самое главное - все правки на уровне шаблона происходят
 
TypeError: document.id(...) is null
document.id('shipto_virtuemart_country_id').value=176;

тоже ругается
 
Назад
Сверху