Всего 122 919 комментариев

Василий Наумкин
10 июля 2013, 16:40
0
А я начинал сисадмином работать. У меня вообще забавная трудовая биография =)
Перетягин Илья
10 июля 2013, 16:38
0
Что то я пропустил эти статьи в свое время… Сколько ты уже занимаешься этим направлением и по сколько часов в день, если не секрет?
Maxym Zymbala
10 июля 2013, 16:38
0
а подскажите еще как, быть с тем что у меня глобальных переменных не чувствует?
если код написать непосредственно в файле, то первое окно не отображается
var w = MODx.load({});
w.setValues(data);

а если поместить его в функцию то отображается, но тогда это ж локальные переменные получаются?
asd: function () {
var w = MODx.load({});
w.setValues(data);
}
???
Перетягин Илья
10 июля 2013, 16:29
0
Надо было изначально идти в эту тему, интересно до жути, а главное не каких подстав как в сео. Но сейчас уже думается мне, не успеть тут стать профи, времени столько нету, а действительно жаль.
Спасибо еще раз, действительно очень темный материал, его бы немного подробнее расписать и можно было бы всем новичкам без исключения давать вместо опенсерверов и денверов.
Иван Брежнев
10 июля 2013, 16:22
0
Вот пример их минишопа первого
Начало метода редактирования товара, открывается окошко и заполняется данными из AJAX запроса к коннектору который в свою очередь исполняет указанный процессор
github.com/bezumkin/miniShop/blob/master/assets/components/minishop/js/mgr/widgets/goods.grid.js#L137
Вот этот метод и заполняет окно данными
github.com/bezumkin/miniShop/blob/master/assets/components/minishop/js/mgr/widgets/goods.grid.js#L179
Василий Наумкин
10 июля 2013, 16:21
0
1. Нужно сделать метод в классе оплаты
2. Нужно проставить плейсхолдер [[+payment_link]] в письме.

Метод выглядит примерно так:
public function getPaymentLink(msOrder $order) {
	$id = $order->get('id');
	$sum = number_format($order->get('cost'), 2, '.', '');
	$request = array(
		'LMI_PAYMENT_NO' => $id
		,'LMI_PAYMENT_AMOUNT' => $sum
		,'CLIENT_MAIL' => $order->getOne('UserProfile')->get('email')
		,'LMI_PAYMENT_DESC' => 'Payment #'.$id
		,'LMI_PAYEE_PURSE' => $this->config['shopId']
	);
	return $this->config['checkoutUrl'] .'?'. http_build_query($request);
}

Он сразу есть, например, в mspZPayment, а вот в PayPal его реализовать нельзя из-за особенностей этого сервиса.

У писем из нашего магазина, кстати, эта ссылка в наличии.
Иван Брежнев
10 июля 2013, 16:19
0
Это для фронта я писал топикстартеру как вариант!

Для ExtJS совершенно иначе всё делается.

var w = MODx.load({});
w.setValues(data);
Но это очень утрированно.
Василий Наумкин
10 июля 2013, 16:16
0
На здоровье!

Эти навыки пригодятся при работе на реальных серверах. Очень большой плюс в нашем деле.
Перетягин Илья
10 июля 2013, 16:14
0
Шикарно Василий, просто шикарно!!!
Почти все сделал, есть небольшие запинки, но скоро разберусь, все таки материал создан для не совсем новичков.
Наконец то можно выкинуть опенсервер!
Настроение поднято на +100500, спасибо огромное!
Maxym Zymbala
10 июля 2013, 16:09
0
пишу компонент для MODx revo
для визуализации в админке используется ExtJs
решил воспользоваться Вашим советом, но если код написать непосредственно в файле, то первое окно не отображается
а если поместить его в функцию то отображается, но тогда это ж локальные переменные получаются?
Василий Наумкин
10 июля 2013, 15:36
0
Давай мы «вопросы не по теме» будем задавать в новых темах?
Евгений
10 июля 2013, 14:48
0
Василий, вопрос не по теме, но хотелось бы спросить.

В последней версии магазина, есть такое изменение:
Added placeholder [[+payment_link]] in the new user email. It will work only if payment method has function getPaymentLink(msOrder $order);
Оно очень подходит для организации оплаты товара после проверки заказа менеджером… Но у меня не сработала с первого раза. Есть ли там какая-либо «магия»? В класс оплаты я добавил метод getPaymentLink(msOrder $order). Этого достаточно? Чтобы в письме по определенному статусу отправить ссылку на оплату?
Иван Брежнев
10 июля 2013, 14:45
0
Скачайте этот плугин и подключите на странице
www.keyframesandcode.com/resources/javascript/jQuery/demos/populate-demo.html
Далее повесьте на событие открытия второго окна, как пример (такое событие в Twitter Bootstrap)
$('#modal_2').on('shown', function() {
	$(this).find('form').first().populate(someObject.modal_1);
});
Можно пойти и более сложным путем, но я вам написал как проще именно для вас!
Евгений
10 июля 2013, 14:08
0
Так и хотел)
Но:
Системным плагином по событию msOnBeforeAddToOrder это делать не получится, ибо я такого не предусмотрел =)
С другой стороны можно метод оформления заказа переписать на свой. Надо копать)
Maxym Zymbala
10 июля 2013, 13:58
0
подскажите пожалуйста, как подтянуть переданные значения во второе окно?
Мордынский Николай
10 июля 2013, 13:46
0
просто еще раз проверять наличие при нажатии оформить если товар закончился выводить сообщение что опоздали вы ьбатенька
Иван Брежнев
10 июля 2013, 12:26
0
Если проверка введенных значение не играет большую роль когда передаете из 1-го окна во 2-ое то можно по нажатии кнопки «Сохранить» записывать значения всех полей 1-го окна в браузере в JSON. Т.е. как пример

var someObject = {
   modal_1: {},
   modal_2: {}
};
$('#modal_1').on('click', '#save_1', function(event) {
	var data = someObject.modal_1,
		form_data = $('#modal_1').find('form').first().serializeArray();

	for (var i = form_data.length - 1; i >= 0; i--) {
		data[form_data[i].name] = form_data[i].value;
	};

})
После нажатия кнопки сохранить данные первого окна будут содержаться в someObject.modal_1
В someObject.modal_2 сохраните (либо сразу отправите) данные со второго окна и потом отправите на сервер.