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

Пётр Молчанов
29 октября 2013, 13:29
0
у меня не выводятся значения и не проходит само голосование. вот что пишет при нажатии на палец:
POST url/assets/components/likedislike/connectors/connector.php?action=web/like 
500 Internal Server Error
Виталий Киреев
29 октября 2013, 13:27
0
А что конкретно не работает? У меня на 2.2.9 вроде бы все норм.
Роман Ильин
29 октября 2013, 11:18
0
modx.pro/help/1553/ Судя по всему это то, что мне нужно.
Володя
29 октября 2013, 09:47
0
убрал зависимость от Callback URI и все заработало как нужно!

Василий подскажи пожалуйста — тяжело ли кнопку сделать в админке MODX со своим событием?
Перетягин Илья
28 октября 2013, 22:25
0
Как то на первый взгляд все слишком мудрено, но выглядит чище, красивее!
Спасибо, буду пробовать.
Василий Наумкин
28 октября 2013, 22:15
2
0
Рано радуешься, нужно же еще форму вынести в чанк.

Указываем параметр с именем чанка:
<div id="connect_table">
	[[!resource?tpl=`myForm`]]
</div>

Прописываем обработку чанка в сниппете:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    extract($_POST);
}
$count = $count1 + $count2 + $count3;

return $modx->getChunk($tpl, array(
	'count' => $count
));

И пишем сам чанк с формой myForm:
<form action="[[~[[*id]]]]" method="post" class="form_db">
	<input type="number" name="count1" value="5" />
	<input type="number" name="count2" value="7" />
	<input type="number" name="count3" value="2" />
	<button type="submit" name="submit">ok</button>
</form>
<p>[[+count]]</p>

Вот, примерно так все в MODX и разделяется.
Перетягин Илья
28 октября 2013, 21:51
1
0
Блин, спасибо большое, ты реально помог!

Может кому интересно или пригодиться, выложу чудо творение:
Чанк
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
    $('.form_db').submit(function(e){
	e.preventDefault();
	var m_method=$(this).attr('method');
	var m_action=$(this).attr('action');
	var m_data=$(this).serialize();
		$.ajax({
			type: m_method,
			url: m_action,
			data: m_data,
			success: function(result){
				$('#connect_table').html(result);
			}
		});
	});
});    
</script>
<div id="connect_table">[[!resource]]</div>
Тут мы вызываем наш сниппет который содержит форму, а script type перехватывает его… в общем получается ajax

Код сниппета
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    extract($_POST);
}
$count = $count1 + $count2 + $count3;

$output = '<form action="[[~[[*id]]]]" method="post" class="form_db">';
$output .= '<input type="number" name="count1" value="5" />';
$output .= '<input type="number" name="count2" value="7" />';
$output .= '<input type="number" name="count3" value="2" />';
$output .= '<button type="submit" name="submit">ok</button>';
$output .= '</form>';
$output .= "<p>$count</p>";
return $output;

Тут мы имеем три поля и кнопку отправки, так же прием запроса и вычисления суммы этих трех полей.

Еще раз большое спасибо Василий!

Василий Наумкин
28 октября 2013, 20:19
0
И обновилось =)
Василий Наумкин
28 октября 2013, 20:19
0
Сделай «как без MODX» — все в сниппете.

А потом подумай, как вынести оформление в чанк.
Антон Соловьёв
28 октября 2013, 19:02
0
Ах ты ж — заработало!
Cyrax_02
28 октября 2013, 16:01
0
Самую последнюю строчку читать так:
Этот оператор ничего не будет возвращать для tv, не содержащих значений, т.к. в итоговом запросе вместо (tv IS NULL) получим ('' IS NULL)
Александро
28 октября 2013, 12:04
0
Понял, спасибо за ответ.
Василий Наумкин
28 октября 2013, 12:03
0
Никак.

Продавать можно только ресурсы из MODX. Поэтому, единственный способ — импортировать эти данные в ресурсы.
Володя
28 октября 2013, 11:01
0
Доброе утро!
Василий, событие да другое должно быть, мне OnHandleRequest не подойдет, скорее всего OnDocPublished (отправка нужна только один раз). Но все манипуляции только в админке происходят и каким образом мне $_REQUEST['action'] слушать?

ну слушать то я его буду в плагине, но как оно там появится то? как мне эту цепочку запустить?
Уже по разному пробовал, если на OnDocPublished ставить то зависает при ответе от yandex…
Василий Наумкин
28 октября 2013, 06:40
0
Да.

Плагин, например, запускается на событие OnHandleRequest:
if ($modx->event->name == 'OnHandleRequest') {
	if (!empty($_REQUEST['action']) && $_REQUEST['action'] == 'send_text') {
		// Можно работать
	}
}

Возможно, тебе больше подойдут другие события, когда веб-страница уже загружена, типа OnWebPageComplete или OnLoadWebDocument.
Володя
27 октября 2013, 22:41
0
до полного понимания того что ты написал потребуется время)))
HybridAuth да по такому же принципу работает…
Грубо говоря я прописываю sitename.ru/?action=send_text а плагин как то должен обрабатывать $_REQUEST['action']?
Max Skoryk
27 октября 2013, 21:49
0
обыскал все возможные варианты на данном сайте
Плохо искал
Василий Наумкин
27 октября 2013, 21:21
0
По идее, тебе нужно, чтобы отправкой на сервис и приемкой с него занимался плагин, всегда по одному адресу
http://sitename.ru/?action=send_text
Он же будет и Callback URI.

Очень похоже на HybridAuth. Не пробовал через него авторизоваться и посмотреть в сессию? Там будет токен авторизации в массиве HA:: НЕ_ПОМНЮ.
Володя
27 октября 2013, 21:15
0
нет, это из меня фиговый объясняльщик!
Чтобы получить разрешение пользователя на выполнение действий с его личными данными, приложение должно перенаправить пользователя по следующему URL:
https://oauth.yandex.ru/authorize?response_type=<token|pre>&client_id=<client_id>[&display=popup][&state=<state>]
сначала получаем code, затем передав code получим token, при этом редиректит на Callback URI указанный при регистрации приложения.

требуемый ответ token|code, от OAuth-сервера, будет добавлен к redirect_uri

сниппет запущеный из плагина не отработает таким образом…
хотя я может чего не знаю?