Олег Захаров

Олег Захаров

С нами с 14 октября 2017; Место в рейтинге пользователей: #134
Олег Захаров
22 февраля 2018, 21:31
0
у меня используется конструкция
[[!pdoResources?

&sortby=`{ «menuindex»:«ASC», «pagetitle»:«DESC» }`

]]
(до этого имел проблемы с работой, решил простановкой пробелов после {)

Как ее заменить на конструкцию вида как в решении выше когда 2 условия сортировки:
[[!pdoResources?

&sortby=`menuindex`
&sortdir=`ASC`

]]
Указывать дважды или через запятую?
Олег Захаров
12 февраля 2018, 11:13
0
Предлагаю добавить во вкладку Тарифы возможность указывать цену используя некий шаблонный тариф — который был бы не привязан только к одному контенту, а чтобы его можно было привязать к нескольким разным контентам. И если мне понадобилось поднять цену сразу для всех контентов. Это сильно упростит жизнь если нам вдруг надо будет везде поменять цену — меняем в одном месте, а не в сотне разных мест.
Или еще как вариант используя плейсхолдеры ClientConfig. Для этого надо добавить возможность прописывать их в поле цены — сейчас плейсхолдер ClientConfig туда не вставишь :).
Олег Захаров
04 февраля 2018, 18:08
0
Спасибо за обратную связь!
Вопрос сюда пишу потому что в других ветках вижу люди также делятся наработками.
Мне пришлось делать треххуровневый доступ с разными тарифами оплаты.
Несколько бессонных дней и ночей уже делаю сайт, многое не сразу стало понятно, но разобрался вроде. Ваше приложение очень крутое, сильно выручило!
Олег Захаров
04 февраля 2018, 15:02
0
Посмотрите пожалуйста пост выше — наверное не заметили — про Активен для потомков?
Олег Захаров
04 февраля 2018, 14:32
0
getPls — в каком виде данные получаются?
Извините, что вопросов много задаю :) PayAndSee супер вещь, но многое не понятно.
Олег Захаров
04 февраля 2018, 14:21
0
я посмотрел пример расширения. Сделал по своемому как в посте выше в выше и все заработало.
В описании расширения для примеров не указаны какие параметры задавать надо — где их посмотреть я не нашел. Можете документацию дополнить описанием параметров?
$cid = $PayAndSee->getContentId($rid, 10, $cache);
— вот тут второй параметр из документации — почему 10?
$access = $PayAndSee->getContentAccess($cid, $uid, $cache);
— я так понимаю этим способом можно присвоить доступ? $uid как подхватывается? Из примера не понял как он присваивается переменной, вроде задана пустая? Это id клиента (скорее всего) или пользователя?
$PayAndSee->addStore('access', $key, $access);
— это мы добавляем по ключу я так понимаю доступ?
$cache — что за переменная? Надо ее как-то задавать?
$PayAndSee->getStore('access', $key)) — это я так понимаю можно считать доступ к ресурсу для любого ресурса?
Олег Захаров
04 февраля 2018, 14:19
0
я понял почему в 1 уроке форма выводится а в остальных не выводились. Оказалось что я ресурсы оставил на другие уроки в статусе «Неопубликовано». Проставил везде опубликовано и все заработало.
Олег Захаров
04 февраля 2018, 04:57
0
Еще бы добавить возможность использовать тариф для разных контентов. А то когда много страниц — тяжело добавлять и менять вручную цены на десятки ресурсов. Было бы круто прописывать например переменную из clientconfig.
Олег Захаров
04 февраля 2018, 03:19
0
и еще вопрос не совсем понятно как работает настройка контента «Активен для потомков». Можно ли сделать логику что если оплатили доступ к родительскому ресурсу, то доступы к дочерним автоматически добавлялись (сделать бы доп. настройку для выбора схемы подчиненности?)?
Олег Захаров
04 февраля 2018, 03:07
0
и еще как можно сделать одно выпадающее окно выбора подписки для разных ресурсов (контентов)?
И как можно повесить на свою кнопку?
Олег Захаров
04 февраля 2018, 02:53
1
0
Привет!
На сайте хотим сделать 3 варианта оплаты — за 1 урок, за конкретный месяц (в нем несколько уроков) и за годовой доступ ко всем урокам. 9 учебных месяцев в курсе. Как лучше логику отстроить.
Пока сообразил проверку через вложенные
{If} {else} {/if}
.
Подскажите как вывести форму оплаты за годовой доступ?
Пока сообразил так:
...
{set $parrentmounth = $_modx->resource.parent}
{set $parrentmounthObject = $modx->getObject('modResource',$parrentmounth)}
{set $parrentyear = $parrentmounthObject ->get('parent')}
{set $accessyear = ''|pasraccess:0:$parrentyear}
{if !$accessyear}
	Вы можете оплатить курс за год по цене 
	<p class="bg-danger"> Оплатить доступ</p>
	{getContentId($parrentyear, 10, $cache)|pasraccess:('pas.content'|snippet:['resource'=>$parrentyear])}
{else}
	Год оплачен {$parrentyear}
{/if}
{set $accessmounth = $parrentmounth|pasraccess:0:$parrentmounth}
{if !$accessmounth}
	<pre class="alert alert-info">  
	Нет оплаты к курсу [[!pdoField? &id=`[[*id]]` &field=`pagetitle` &top=`2`]] 
	</pre>
	<!--  как вывести форму оплаты за месяц? -->
	{getContentId($parrentmounth, 10, $cache)|pasraccess:('pas.content'|snippet:['resource'=>$parrentmounth])}
{else}
	<!-- для тестирования вывожу номера ресурсов -->
	У вас активная подписка ко всем урокам месяца ({$parrentmounth}) "[[!pdoField? &id=`[[*id]]` 		&field=`pagetitle` &top=`1` ]]" курса ({$parrentyear}) [[!pdoField? &id=`[[*id]]` &field=`pagetitle` &top=`2` ]]
{/if}
<!--смотрим доступ к уроку -->
{set $access = $_modx->resource.id|pasraccess:0}
<!--Если вообще никакого доступа нет то выводим форму оплаты за урок-->
{if !$access and !$accessmounth and !$accessyear}
	<p class="bg-danger"> Оплатить доступ</p>
	{$_modx->resource.content|pasraccess:('pas.content'|snippet:['resource'=>''])}
{else}
	<div id="lessonvideo" data-video-1080="тут полезный платный контент"></div>
{/if}
то есть вывод формы оплаты сделал так:
{getContentId($parrentyear, 10, $cache)|pasraccess:('pas.content'|snippet:['resource'=>$parrentyear])}
что значит параметр 10 сам не понял, взял из документации расширения, вроде сработало. Где лежит код функции getContentId?
Прикол в том что в 1 уроке все норм работает, а в следующих (входящем в месяц 1) не работает.
Контент и тарифы зада на годовой курс (он корневой ресурс), на месяцы (они включают в себя уроки) и на сами уроки.
Олег Захаров
24 января 2018, 14:23
0
В OrangeData в личном кабинете я не нашел никаких смен. Возможно у них такое понятие не используется. Что за смены, что за глупость :)
Олег Захаров
24 января 2018, 13:21
1
0
ТП говорит что у них и так стоит HTTP хотя в личном кабинете вижу CMS!
ТП Яндекса нашли у себя ошибку — обещали исправить и переподключить.
Сегодня позвонил в очередной раз — специалист Яндекс.Кассы попался толковый — сразу на лету что-то там на стороне Яндекс.Кассы подшаманил и тестовый платеж прошел. Но не отработала фискализация — у меня в личном кабинете у них подключена онлайн-касса OrangeData — пришло сообщение что чек не удалось отправить, в личном кабинете платеж со значком что не фискализирован. Задал вопрос в техподдержку Яндекс.Кассы, пока жду ответа.
В письме:
Платёж прошёл успешно, но мы не смогли отправить данные для чека вашей онлайн-кассе.
Номер транзакции: 2000....57
shopId: shopId хххххх
Идентификатор запроса к онлайн-кассе: 2000...57_5....7
...
Где может быть ошибка:
- Вы передаёте данные для чека в неправильном формате.
  Проверьте по инструкции:
https://github.com/yandex-money/yandex-money-joinup/blob/master/demo/54-fz.md
- Онлайн-касса не подключена к интернету или не включена в розетку.
  Если касса стоит у вас, проверьте, что с ней всё в порядке.
  Если вы арендуете кассу, проверьте её статус в личном кабинете своего сервиса.
Проверил статус кассы в личном кабинете — все норм. Соответственно подозрение на формат передаваемых данных. Можете проверить инструкцию по формату и подсказать — что передает ваш модуль в ym_merchant_receipt? Как посмотреть?
Возможно есть трабла на стороне Яндекс.Кассы — возможно там чтото теряется. Не знаю как проверить и что написать ТП Яндекс.Кассы.
Есть еще документация API OrangeData https://github.com/orangedata-official/API и репозиторий интеграций PHP https://github.com/orangedata-official/PHP-OrangeData-official/
Можете посмотреть и сравнить с тем что требует OrangeData и что передает Ваш модуль в Яндекс.Кассу (возможно каких-то параметров не хватает)?
Думаю что решив эту проблему Вы сильно популизируете ваш модуль :). Готов помочь с тестированием через себя.
Олег Захаров
22 января 2018, 17:03
0
SSL переустановил. Все равно выходит ошибка. ТП Яндекс.Кассы отвечает что мол все CMS модули работают через HTTP — и в личном кабинете остается тип подключения CMS модуль «MODx». Может ли это быть причиной?
Олег Захаров
16 января 2018, 19:57
0
да, действительно оказалось что я сначала подключал CMS модуль MODX Revo.
Попросил ТП Яндекс.Кассы поменять. Меняется в личном кабинете на их стороне, изменения вносятся в течение суток.
Еще по ходу выяснилось что тот сертификат SSL который я поставил от хостера — для работы с Яндекс.Кассой не подходит (т.к. работает с SNI) — хостер сказал что SNI подключается на 1 общий IP адрес и не может быть отключен. Пришлось запросить новый сертификат SSL для сайта через менеджера Яндекс.Кассы.
Ох как все сложно, так не морочился никогда, 3-й месяц подключаю… :(((
Олег Захаров
16 января 2018, 15:42
0
Способ подключения к Яндекс Кассе какой должен быть? У меня сначала был поставлен стандартный модуль от самой яндекс Кассы — «CMS модуль MODX Revo» (в тестовом режиме он работал), но с ним я не понял как работать.
Поставил Ваш модуль — попросил перепрописать адреса checkUrl и avisoUrl на domainname.com/assets/components/minishop2/payment/mspyacassa.php
ТП Яндекса все сделали.
Сегодня проверяю — не работает. Написал вопрос в техподдержку, жду ответ.
Олег Захаров
11 января 2018, 20:43
0
Привет! С OrangeData когда сделаете? Или уже работает? Очень надо! Купил ваш компонент, но как привязать к OrangeData пока не понял.
Олег Захаров
18 декабря 2017, 12:14
0
решил проблему. Сделал переустановку pdoTools (на версии 2.3.10) и все заработало.
Будем ждать ответа по обновлению в другом топике и пробовать обновиться.
Вопрос пока оставлю в статусе новый. Т.к. по факту проблему не решил — я просто откатился, попутно словив багов.
А вот в чем причина такого поведения при обновлении непонятно.
Олег Захаров
18 декабря 2017, 11:17
0
Еще на главной был код проверки авторизован пользователь или нет:
{if is_auth()}
          ...
 {else}
           ...
  {/if}
Теперь не работает :(((
Вываливается на главной оба блока кода которые должны быть и сами теги:
{if is_auth()} {css('')} блок кода 1
 {else} 
блок кода 2 {/if}
простановка пробелов не помогает.
Короче сломались отработка условий по if на базе тегов Fenom :((