9 часов назад
с включенным opcash
При нажатии на файлы в разделе ресурсы вылезают пустые страницы. 5
Вчера в 19:42
[[msOptions?
&name=`color`
&product=`[[+id]]`
&tplOuter=`Product.Color.Outer`
&tplRow=`Product.Col...
Вывести цвет из свойств товара Mininshop2 1
Вчера в 10:19
Скажите, а есть какое-то понимание по срокам? Хотя бы приблизительно, спасибо
msOrderFields. Управление полями заказа. 36
Вчера в 10:13
MiniShop3 использует компоненты composer, а значит перед установкой нужно запустить композер, чтобы он скачал необходимые для работы компоненты.
MiniShop3 для MODX3. Отчет за месяц 14
19 мая 2024, 09:47
добавить можно с помощью &includeDocs
исключить с помощью &excludeDocs
Шрифты меняются в стилях css
Найти место редактирования меню 3
19 мая 2024, 07:27
Оперативно. На ум приходит только старый анекдот:
— Скажите, больной перед смертью потел?
— Да.
— Это хорошо.
Facade Laravel в Modx 2/3 22
18 мая 2024, 16:42
Не совсем в тему, но добавлю свои пять копеек :)
Ставил Твиг в Битрикс три года назад и тем самым избавился от лютого говнокода в битриксовых файлах...
mmxTwig - еще одна интеграция шаблонизатора 9
Спасибо большое!
А скрипты для рефреша на связанный товар в комплекте идут? Или написать их самому?
p.s. извини, за бомбёжку вопросами
Супер! Значит будем разбираться.
А на mamaboutique нашёл только несколько товаров (вроде этого) у которых можно поменять размер, но цена не меняется.
А в OnDocFormSave известен id, но не обновляется карта алиасов. Как ж мне быть?
В форме добавления нового тикета, кроме, собственно, полей тикета, так же есть поля для редактирования данных пользователя. И если пользователь залогинен, то данные автоматом подставляются в эти поля. Если не залогинен, то их надо вписать и юзер автоматом создастся и залогинится. Так вот при добавлении тикета поля пользователя обрабатываются отдельно — если надо — юзер создаётся, если что-то изменилось — юзер обновляется.
Так вот обновление юзера происходило вот так:
И фишка вышла такая — благодаря $user->toArray() в процессор передаётся так же поле текущего пароля. А точнее не сам пароль, а его хэш (в базе же пароли хешированные лежат). А процессор, получив заполненное поле пароля, делал из него новый хэш и его записывал. Соответственно, пароль-то фактически каждый раз менялся. Вот такой вот я балда :-)
Изначально я считал, что в процессор достаточно передать id-шник юзера и поля, которые надо изменить. А оказалось, что нифига — этому процессору обязательно нужны ещё логин и мыло (которое надо тянуть из профайла). Поэтому решил перебдеть, собрав все данные в кучу. И зря, как выяснилось)
Переделал на это и всё заработало:
Василий, я не зря отвечаю в этой ветке именно тебе, потому что в процессе копания выяснилась интересная особенность тикетов, возможно даже баг.
Помнишь, ты мне как-то помогал разобраться с изменением алиасов при создании тикетов? К алиасу добаляется id тикета в плагине на «OnDocFormSave» вот так:
У меня в сниппете myTicketForm в самом конце, после всех шаманств и отработки всех процессоров, идёт редирект на этот тикет:
И вот в чём дело — редирект происходит на uri со старым алиасом, т.е. на тот, который был до моих изменений! Хотя все плагины отработали и всё должно было измениться. Но и это не самое интересное — у самого тикета алиас сохранился таким, каким я его и сделал, с id-шником! Т.е. makeUrl берёт uri документа из какого-нибудь alias_map, а там данные ещё старые. В итоге редирект происходит на не существующий адрес. Но и это ещё не всё — страница открывается! xD
Т.е., положим у тикета сформировался такой алиас — 'this-is-ticket-alias'. В плагине к нему подставляется id тикета: '123-this-is-ticket-alias'. И этот алиас фактически у ресурса и записан, но в кэше лежит 'this-is-ticket-alias', и при редиректе на этот адрес открывается только что созданный тикет (хотя адрес-то фактически не существующий)!
И вот только после того, как в админке что-нибудь изменю/сохраню или просто тыкну «обновить сайт» — кэш очищается и по адресу 'this-is-ticket-alias' как и положено вылезает 404, а сам документ становится доступен по '123-this-is-ticket-alias'.
Такие дела.
В процессе копания пришёл к вот этому.
Заменил код метода на:
Не помогло.
Потом заменил на одну строчку:
И всё встало на свои места, всё заработало как надо. Только вот теперь чистится весь кэш сайта, а собственная система кэширования тикетов получается не при делах :-(
Выходит проблема именно в кэшировании тикетов. Точнее в очистке кэша.
Как-то так.
Спасибо вам!
Пусто :-(
Вроде нет. Во всяком случае с кэшем не игрался и все настройки кэша по умолчанию из коробки.
Сейчас вообще жесть какая-то — после последней попытки логина через Login тупо перестала отображаться форма входа. Вот вообще нету. Папку с кэшем чистил несколько раз (мало ли). Раньше такого не было.
Предположим форма добавления тикета находится на странице /post.html с id = 9. Тогда вам в шаблоне тикета надо поставить ссылку вида:
Я правильно понимаю, что вам надо реализовать отсутствие этой галочки? Тогда просто удалите соответствующий html-код из шаблона добавления/редактирования тикета и добавьте внутрь формы вот это:
getTicketForm — показывает форму добавления/редактирования тикета,
saveTicket — сохраняет тикет,
previewTicket — предпросмотр тикета.
Ваш К.О.
p.s. если из написанного выше вы не поняли, что же надо сделать, чтобы решить ваши задачи, то лучше отдайте делать сайт тому, кто в этом разбирается.
Вот туда же, в копилку на почитать и осмыслить =)
modx.pro/development/39/
Сейчас сайты делаю сразу на тестовом сервере. Всё никак не доберусь настроить виртуальную машину по мануалу Василия, на случай, если останусь без инета.