Игорь

Игорь

С нами с 21 марта 2018; Место в рейтинге пользователей: #119
Игорь
06 июля 2022, 10:48
0
Есть ещё передача параметров POST (в будущем) — я как бы сразу написал…
Думаю, что замена (int) $_GET[ на (int) $_POST[ в PHP и ссылок на формы с кнопками с передачей POST снимет эту проблему.
Игорь
06 июля 2022, 07:16
0
«сохранять состояние можно в куки, в сессию или local storage» — зачем?
Все необходимые для работы программы параметры передаются в браузерной строке при переходе на следующую страницу.

«migx, как и в твоём варианте, будет просто интерфейсом редактирования» — да, просто интерфейс редактирования.

«не хватает описания практического применения» — квест является примером реализации.
Конечно же, есть определённые чанки для вывода HTML-блоков, которые размещаются в шаблоне (у меня — в одном шаблоне для всего квеста).

При размещении в шаблоне MODX при помощи formirfrommigx выведет HTML-блоки для основного экрана

[[*content]]
[[$formirfrommigx?&tipokna=`1`&nomerknigi=`0`]]
В окне для записной книжки

<!-- HTML-код модального окна -->
<div id="myModalzapis" class="modal fade">
  <div class="modal-dialog">
    <div class="modal-content">
      <!-- Заголовок модального окна -->
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">X</button>
        <h4 class="modal-title">Записная книжка</h4>
      </div>
      <!-- Основное содержимое модального окна -->
      <div class="modal-body">
[[$formirfrommigx?&tipokna=`3`&nomerknigi=`0`]]
[[$formirfrommigxinterf?&tipokna=`3`&tipinter=`3`&nomerknigi=`0`]]
    <hr>
      </div>
      <!-- Футер модального окна -->
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button>
      </div>
    </div>
  </div>
</div>
[[$formirfrommigx?&tipokna=`3`&nomerknigi=`0`]] — вывести HTML-блоки для ЗАПИСНОЙ книжки именно на этой странице — в самом верху
[[$formirfrommigxinterf?&tipokna=`3`&tipinter=`3`&nomerknigi=`0`]] — вывести HTML-блоки для ЗАПИСНОЙ книжки для ВСЕХ страниц — глобальный интерфейс

чанк formirfrommigx

[[getImageList?
    &tvname=`sobit`
    &tpl=`formirscenariotpl`
    &where=`{"sobitie_tip:=":"[[+tipokna]]","sobitie_tip_int:<":"2"}`
    &prmnomerknigi=`[[+nomerknigi]]`
]]
tpl formirscenariotpl

[[!newformirpostuslovienew?&nomerknigi=`[[+property.prmnomerknigi]]`&imachunk=`formirscenariotc[[+sobitie_ssilkatip]]`&uslovieprov=`[[+sobitie_uslovie]]`
&sobitie_html=`[[+sobitie_html]]`
&sobitie_text=`[[+sobitie_text]]`
&sobitie_this_text=`[[+sobitie_this_text]]`
&sobitie_obrabotka=`[[+sobitie_obrabotka]]`
&sobitie_stranica=`[[+sobitie_stranica:is=`0`:then=`[[*id]]`:else=`[[!getmoiparamphp?&mp=`[[+sobitie_stranica]]`]]`]]`
&sobitie_ssilkatip=`[[+sobitie_ssilkatip]]`
&sobitie_kod=`[[+sobitie_kod]]`
&sobitie_uslovie_true=`[[+sobitie_uslovie_true]]`
&sobitie_uslovie_false=`[[+sobitie_uslovie_false]]`
&sobitie_obrabotka_true=`[[+sobitie_obrabotka_true]]`
&sobitie_obrabotka_false=`[[+sobitie_obrabotka_false]]`
&imiapar=`[[+imiapar]]`
&sobitie_dtext_ssilki=`[[+sobitie_dtext_ssilki:is=``:then=``:else=`[[+sobitie_dtext_ssilki]]`]]`
]]

«Только текстовые квесты?» — применяется там, где вывод страницы зависит от наличия (состояния значений) параметров.

Вместо текста — любой HTML-код (или я что-то не так понял?).

Пример с кучей параметров (пока игрок подошёл к дракону, он успел получить два заклинания, подсказку о наличии клада, волшебную флягу в три порции воды, кошелёк вместимостью в 50 монет, деньги — 35 золотых, почти бодрый и с «флагами» о прохождении определённых шагов — n1=1 — загадка короля решена — при встрече с единорогом это обыгрывается, n2=1 — игрок раскопал клад — в слухах в это обыгрывается)

maple4.ru/knigi/put-geroya/452-tryoxgolovyij-drakon/?&zklpolet=1&zklplav=1&dveberez=1&flg=1&flgzn=3&flgzntip=1&flgznpar=3&ksl=1&kslzn=35&kslznpar=50&ust=997&n1=1&n2=1

Можно открыть записную книжку или вещмешок для доп действий

ну, и без параметров
maple4.ru/knigi/put-geroya/452-tryoxgolovyij-drakon/
Игорь
06 июля 2022, 00:02
0
Представим ситуацию — я НЕ хочу (или не могу) напрямую работать с параметрами (да и самим PHP), тем более, начиная проект, я ещё НЕ ЗНАЮ, какие параметры мне понадобятся.

Я знаю, что HTML страница, уже как ИГРОВОЙ элемент, состоит из, собственно, самой страницы ПЛЮС параметры.

Сама страница — это просто шаблон.
Я же в MODX (поле MIGX) размещаю HTML-блоки, условия их показа на странице и отработку кликов (нажатий) по ссылкам/кнопкам/формам, НЕ КОДИРУЯ в PHP напрямую — в рисунке ВЫШЕ был пример — рекомендую открыть в новом окне.

Нужен мне какой-то параметр — в РОДИТЕЛЬСКОЙ странице (поле MIGX в MODX) его добавляю, а потом использую там, где НАДО (при помощи условий, опять же в поле MIGX в MODX).

Ну и самое главное — параметры при переходе на новую страницу не «теряются», если они НЕ РАВНЫ нулю.
Игорь
05 июля 2022, 23:36
0
Делая квест я НЕ ЗНАЛ, чем он закончится, какие параметры мне понадобятся и т.д.

Открывая новую страницу, бумажную версию квеста, вижу «Вы находите амулет со звездой, если понадобится — добавьте 5 к номеру страницы».

Ок, ТУТ же, в MODX, добавляю ИГРОВОЙ объект amlzvz

В MODX добавляю реакцию на получение амулета и его потерю (а вдруг его отберут?), отображение в малом интерфейсе на главном экране и в модальном окне — НЕ ЗАНИМАЯСЬ напрямую непосредственно кодированием кода PHP, прописывая только условия отображения на экране или том же модальном окне.
Мне это НЕ ИНТЕРЕСНО, у меня есть HTML-код, который я должен вывести.
И «забываю» об амулете.

Потом, в процессе прохождения квеста (точнее — последовательного переноса каждой бумажной страницы в электронный вариант), я вижу такое:

«Вы заходите в комнату с изображением звезды»

Ок, я понимаю, что должен «воспользоваться» амулетом, поэтому в Вещмешке добавляю ИМЕННО НА ЭТОЙ странице добавляю кнопку «Использовать амулет звезды» — опять же, в MODX, никакого кодирования напрямую в PHP — и для кнопки задаю действие — что должно произойти при использовании амулета (скорее всего — переход на новую страницу с новыми параметрами).

ВСЁ. Я НЕ РАБОТАЮ напрямую с параметрами из строки браузера, не объявляю переменных PHP, я всего лишь проверяю условия срабатывания и изменение при использовании.

Могу ради интереса прямо сейчас добавить куда-то объект и реакцию на его использование :)
Игорь
02 апреля 2022, 20:21
0
Большущее СПАСИБО за ответ!
Нет картинки «по умолчанию» к видео — значит нужно подставить публикацию из телеграма
Игорь
04 декабря 2021, 23:24
0
Вызов pdoResources, который будет отображать категории товаров, например указав в where шаблон категории товаров. В tpl например выводится название категории а потом вызывается msProducts куда в качестве родителя передан id категории.
Спасибо, так и сделал!
Игорь
29 октября 2021, 20:50
0
в чанке tpl.msOrder написал вот это (для email):

{if $field=='email'}
                        <input type="text" id="{$field}" placeholder="{('ms2_frontend_' ~ $field) | lexicon}"
                            name="{$field}" value="{$form[$field]}"
                            class="form-control{($field in list $errors) ? ' error' : ''}" readonly>
{/if}
Насколько всё это безопасно?
Игорь
27 октября 2021, 21:12
0
Огромное спасибо!
Тот случай, когда, оказывается, уже всё сделано…
Я уже думал — придётся в поля заказа вбивать имя пользователя и его email.
И «играться» с группами (при добавлении заказа).
Тогда ещё один вопрос.
Можно ограничиться недоступностью полей ИМЕНИ и ПОЧТЫ для невозможности их поменять (для АВТОРИЗОВАННЫХ пользователей)?
Игорь
26 октября 2021, 21:14
0
Понял, спасибо.
Игорь
04 октября 2021, 21:53
0
Только что работал :)
Но проблема с авторизацией всё равно есть
Игорь
30 сентября 2021, 15:27
0
Пользователь авторизовался на сайте, сохранил настройки (не показывать раздел на сайте) и вышел.
Далее ОН же неавторизованно (не хочет он!) находясь на этой же странице, уже не видит раздела на сайте — он не авторизовался, зато Cookie его помнят, и к нему применяются точно же такие настройки.
Игорь
30 сентября 2021, 14:34
0
Значит, пользователь не авторизовался и для него настройки «по умолчанию».
Игорь
30 сентября 2021, 08:53
+1
Сам и допишу… Скорее всего, дополнением никто не пользуется?
Документации нет.
1. Голосование сделал только авторизованным.
2. Статистика собирается в таблице helpfulpage_vote, в ней есть id пользователя, id ресурса и как пользователь проголосовал.
Можно все данные собрать и обработать… но хотелось бы знать сразу данные по голосовавшим за и против, ведь процент выдаётся сразу.
3. Форму отправки сообщения убрал.
Игорь
22 сентября 2021, 18:14
+1
Действительно, после обновления всё работает.
Игорь
15 сентября 2021, 09:30
0
Проблема оказалась комплексной (при AddType — скачивались страницы вместо того, чтобы открываться — я так понимаю, это зависит от сервера)
Нужно разрешить серверу обрабатывать htm html страницы.
Либо
AddType application/x-httpd-php .html .htm
Либо (!)
AddHandler application/x-httpd-php .html .htm

Непонятно только, почему раньше то всё работало
Игорь
11 февраля 2021, 22:11
0
… и тут выяснилось, что основная проблема — в таблице session

Очистка таблицы помогла.

Я предложенное по данной теме уже прочитал, но так и не понял, в чём дело.
bezumkin.ru/sections/tips_and_tricks/2422/
Получается, надо раз в какое-то время очищать таблицу.
Игорь
04 июня 2020, 21:34
0
Некешированный вызов же…
[[!+totalmigxmain:is=`0`:then=`[[*description]]`]]
Игорь
02 июня 2020, 20:18
0
Спасибо большое! Даже не буду спрашивать, почему в этом случае надо было через value — просто ЗАПОМНЮ :)
Игорь
13 марта 2020, 23:01
0
Всем спасибо!
Как я и предполагал, «виноват» хостинг (виноват всё равно я) — по умолчанию на хостинге стоит галочка использовать SSL.
Галочка-то стоит, но ключей нет.
Удивительно, как сайт «работал», ведь https получали только избранные страницы (непонятно, по какому признаку)?
Игорь
13 марта 2020, 19:55
0
В server_protocol прописано http
Я просто НЕ ПОНИМАЮ, раз в день приходится заходить, чистить кзш. Это же бред какой-то?
Ладно бы там для страниц использовались разные шаблоны, но используется ОДИН и тот же!
Для одних страниц — всё нормально, для некоторых — постоянные глюки с этим https (которые мне НЕ НУЖЕН сейчас).

Похожая проблема вот тут
https://modx.pro/help/10992

Хостинг на foxcloud.net