08 марта 2013, 00:35 Не, return false это такая коварная штука, которая помимо предотвращения действия по умолчанию, ещё и останавливает «всплытие» события по DOM. А иногда это бывает ой как не хорошо. Лучше уж сферическое «e.preventDefault(); не во всех браузерах правильно срабатывает», чем долгий и нудный поиск бага на тему — почему же закрывается js-модальное окно или кастомный комбобокс… Кстати, лично вы встречали какие-либо проблемы при использовании e.preventDefault()? Я лично нет (даже в ишаках, включая 7й), хотя верстаю много и (возможно) профессионально. Для разработчиков / Основы Ajax 86 0
05 марта 2013, 18:43 чорд, когда писал свой коммент, не видел, что уже ответили… надо чаще обновлять страницу. Вопросы / аналог Rowboat 4 0
05 марта 2013, 18:13 2. Чтобы работал такой функционал, надо использовать getResource вместо getTickets. В вызове getResource надо выставить параметры [[getResource? ... &showHidden=`1` &includeContent=`1`]]При &includeContent=`1` дополнительно заработают плейсхолдеры [[+date_ago]], [[+comments]], [[+views]]. Конечно, с getResource'ом будет сильно медленнее. По поводу пунктов 3 и 4 — раз вы уже знаете где и что можно исправить в сниппетах — не ждите, вносите изменения и отправляйте pull request в репозиторий Тикетов. Быстрее появится в релизе :-) Вопросы / Пожелания по Tickets 3 0
05 марта 2013, 18:03 Вообще, такой запрос составить легко (даже очень просто). Нужны минимальные знания sql. Но чтобы вам помочь, надо знать — какой тип данных вы используете для хранения даты в таблице? Вопросы / Выбора ресурcа в зависимости от параметра TV 3 0
05 марта 2013, 18:01 Если не хотите писать запрос руками, то юзайте pdoTools Василия. pdoTools — это такой конструктор запросов. В нём можно присоединять сколько вам угодно таблиц, использовать сортировки и всё-всё-всё. Описание ищите здесь на сайте. Вопросы / аналог Rowboat 4 0
22 февраля 2013, 13:27 ок, понял. спасибо) Вопросы / Вопрос про MODX Contributor’s License Agreement 2 0
20 февраля 2013, 17:47 Да это понятно) Было бы удивительно, если бы его не было :-) Это ж nginx! Просто времени с этим разбираться пока нету, а переезд будет не завтра и не послезавтра. Поэтому изучение nginx'а пока откладываю. А вот решение с кроном уже сейчас нужно. Вопросы / Защита скрипта, предназначенного для крона, от случайного запуска из вне 18 0
20 февраля 2013, 15:07 Это смотря что вы имеете ввиду под апи с токенами для входа. Сходу сказать не могу — потому что реализаций море и у всех по своему. Поэтому пример немного не корректен. Если бы вы конкретный пример привели, можно было бы посмотреть) Вопросы / Защита скрипта, предназначенного для крона, от случайного запуска из вне 18 0
20 февраля 2013, 14:46 Ну это вообще не защита :-) Такой адрес запишется во все логи по всей цепочке «пользователь» => «сервер». В том числе всякими Яндекс.Недобраузерами и иже с ними, роботы которых любят посещать проснифанные урлы на предмет индексации. Так что это вообще не выход) Вопросы / Защита скрипта, предназначенного для крона, от случайного запуска из вне 18 0
20 февраля 2013, 14:41 Про паролирование через htaccess и htpasswd знаю и пользуюсь, да. Но планирую слезать с апача. А nginx пока не знаю. С ним ещё только буду разбираться. Поэтому такой вариант не особо рассматриваю. Но спасибо, что напомнили :-) Вопросы / Защита скрипта, предназначенного для крона, от случайного запуска из вне 18 0
20 февраля 2013, 13:31 Вы безусловно правы, но не везде есть возможность использовать putty. Да и с планшета/мобильника куда проще сперва залогиниться, а потом открыть файл, чем искать и настраивать ssh-клиенты для ондроеда и иос) Ну это уже больше прихоти, конечно :-) Да к тому же, не сильно влияющие на конечную безопасность. Да и не такой уж и большой огород :-) if ($modx->user->id != 1 && !XPDO_CLI_MODE) { header('HTTP/1.1 404 Not Found'); exit; } if (!XPDO_CLI_MODE) set_time_limit(0); Вопросы / Защита скрипта, предназначенного для крона, от случайного запуска из вне 18 0
20 февраля 2013, 13:03 Так серверной авторизации-то и не надо. Из командной строки сервера этот скрипт смогу запустить только я (и крон). А вот из браузера не только я. Поэтому отсекаем всех, кто не из консоли и кто запускает скрипт через веб-сервер, кроме авторизованного юзера с id администратора. который залогинен: if ($modx->user->id != 1 && !XPDO_CLI_MODE) { // ...Просто может есть ещё какие-то тонкости, о которых я не подумал? Вопросы / Защита скрипта, предназначенного для крона, от случайного запуска из вне 18 0
20 февраля 2013, 12:51 И так, и так. Представьте ситуацию, что есть некий сайт, который предоставляет некое апи для доступа к своим данным, которые периодически обновляются. Заранее об обновлениях неизвестно, да и обновления не такие уж и частые. Поэтому пишем скрипт для работы с этим апи, чтобы проверять обновления данных и отображать их у себя, ставим в крон, к примеру раз в сутки в ночное время, когда нагрузка на сервер небольшая. А может быть и раз в двое суток — обновления-то не частые. Но вот я заметил, что произошло обновление этих данных на том самом сайте и мне не за чем ждать до ночи, чтобы эти обновления увидеть у себя. А то и до ночи следующего дня. Тогда я просто логинюсь в админку, открываю в браузере свой файл и, собственно, вуаля :-) Вопросы / Защита скрипта, предназначенного для крона, от случайного запуска из вне 18 0
20 февраля 2013, 12:26 ну когда ip домашнего компа — динамика, да ещё и с частыми реконнектами, то не выход) Вопросы / Защита скрипта, предназначенного для крона, от случайного запуска из вне 18 0
20 февраля 2013, 12:00 Т.е. смысла городить собственные велосипеды нету? Вопросы / Защита скрипта, предназначенного для крона, от случайного запуска из вне 18 0
20 февраля 2013, 11:20 Не за что) Сам в итоге «ниасилил» — времени не хватает, но думаю к ext'у ещё вернусь. Может хоть вам пригодится) Вопросы / ExtJS для Modx 5 0
20 февраля 2013, 06:10 уж не знаю, почему вас в гугле забанили, но вот: ExtJS-4 с самого начала Ext4 Grid на пальцах Офф. доки Ну и, конечно же, здесь. Только учтите, что в ModX испольуется ExtJS-3, а первые 2 ссылки выше о ExtJS-4. А это большая разница. Но в целом для ознакомления пойдёт) Вопросы / ExtJS для Modx 5 0
14 февраля 2013, 23:36 Средства modx здесь не при чём. Простой яваскрипт. Этот код вставить в месте, где нужно вывести ссылку: <script> var Base64={_keyStr:'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',encode:function©{for(var a='',d,b,f,g,h,e,i=0,c=Base64._utf8_encode©;i<c.length;)d=c.charCodeAt(i++),b=c.charCodeAt(i++),f=c.charCodeAt(i++),g=d>>2,d=(d&3)<<4|b>>4,h=(b&15)<<2|f>>6,e=f&63,isNaN(b)?h=e=64:isNaN(f)&&(e=64),a=a+this._keyStr.charAt(g)+this._keyStr.charAt(d)+this._keyStr.charAt(h)+this._keyStr.charAt(e);return a},decode:function©{for(var a='',d,b,f,g,h,e=0,c=c.replace(/[^A-Za-z0-9\+\/\=]/g,'');e< c.length;)d=this._keyStr.indexOf(c.charAt(e++)),b=this._keyStr.indexOf(c.charAt(e++)),g=this._keyStr.indexOf(c.charAt(e++)),h=this._keyStr.indexOf(c.charAt(e++)),d=d<<2|b>>4,b=(b&15)<<4|g>>2,f=(g&3)<<6|h,a+=String.fromCharCode(d),64!=g&&(a+=String.fromCharCode(b)),64!=h&&(a+=String.fromCharCode(f));return a=Base64._utf8_decode(a)},_utf8_encode:function©{for(var c=c.replace(/\r\n/g,'\n'),a='',d=0;d<c.length;d++){var b=c.charCodeAt(d);128>b?a+=String.fromCharCode(b):(127<b&&2048>b?a+=String.fromCharCode(b>> 6|192):(a+=String.fromCharCode(b>>12|224),a+=String.fromCharCode(b>>6&63|128)),a+=String.fromCharCode(b&63|128))}return a},_utf8_decode:function©{for(var a='',d=0,b=c1=c2=0;d<c.length;)b=c.charCodeAt(d),128>b?(a+=String.fromCharCode(b),d++):191<b&&224>b?(c2=c.charCodeAt(d+1),a+=String.fromCharCode((b&31)<<6|c2&63),d+=2):(c2=c.charCodeAt(d+1),c3=c.charCodeAt(d+2),a+=String.fromCharCode((b&15)<<12|(c2&63)<<6|c3&63),d+=3);return a}}; // сюда поместить сгенерированную строку: var str = 'PGEgaHJlZj0ibWFpbHRvOm1haWxAbWFpbC5ydSI+bWFpbEBtYWlsLnJ1PC9hPg=='; document.write(Base64.decode(str)); </script>, где «PGEgaHJlZj0ibWFpbHRvOm1haWxAbWFpbC5ydSI+bWFpbEBtYWlsLnJ1PC9hPg==» — это закодированная методом Base64.encode строка: <a href="mailto:mail@mail.ru">mail@mail.ru</a>Соответственно, если вам надо в этой строчке что-то поменять, в консоли браузера выполните: str = '<a href="mailto:new-mail@mail.ru">new-mail@mail.ru</a>'; console.log(Base64.encode(str));И скопируйте в код выше (где находится соответствующая пометка) получившуюся строку в консоли. Вопросы / Защита e-mail от спама 6 0
11 февраля 2013, 00:15 Пишите на почту.Вы бы её тогда указали чтоли..) Объявления о работе / Modex 6 0
04 февраля 2013, 17:54 Хм, фильтр по доп. параметрам без tv? Интересно… :-) Прям с нетерпением жду) Вопросы / getTickets и фильтрация тикетов по tv 5 0
Возможно ли реализовать возможность предоплаты за доставку на сайте? В любом случаем стандартный флоу минишоп2 рассчитан на оплату по ссылке, т.е. чтобы получить информацию об оплате, нужно чтобы заказ существовал. Чтобы сделать иначе, нужно использ...
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 18 px. Да и текст комментариев можно таким сделать. Для меня лично 16 — мелковато на больших экранах (в комментариях вообще 15 ...
MiniShop3 1.11.0 при клике на radio идет пересчет итоговой суммы в orderUI, в зависимости от способов(оплаты доставки) я так поняла. попробуй код запуска события поставить ниже чем orderUI, после
ImageOptimizer - WebP/AVIF и responsive <picture> для MODX 3 Дополнение доступно modstore.pro/packages/photos-and-files/imageoptimizer
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeV... Добавил localizator3_default_language
msInShopNotify Начиная с версии 3.0.0-beta добавлена поддержка MiniShop3 Минимальные требования: PHP 8.4 MODX 3.2 MiniShop3
MaxNotify Обновление 1.2.0-pl (03.07.2026) — добавлены уведомления о заявках FormIt через hook-сниппет `maxNotifyFormIt`; — добавлены уведомления о заявках SendIt через hook-...
[msBonus2] 1.3.0 Бонус-коды, уведомления о сгорании и совместимость с msMultiCurre... Да, планируется. Даже чуть больше, чем просто бонусная система)
Лучше уж сферическое «e.preventDefault(); не во всех браузерах правильно срабатывает», чем долгий и нудный поиск бага на тему — почему же закрывается js-модальное окно или кастомный комбобокс…
Кстати, лично вы встречали какие-либо проблемы при использовании e.preventDefault()? Я лично нет (даже в ишаках, включая 7й), хотя верстаю много и (возможно) профессионально.
При &includeContent=`1` дополнительно заработают плейсхолдеры [[+date_ago]], [[+comments]], [[+views]].
Конечно, с getResource'ом будет сильно медленнее.
По поводу пунктов 3 и 4 — раз вы уже знаете где и что можно исправить в сниппетах — не ждите, вносите изменения и отправляйте pull request в репозиторий Тикетов. Быстрее появится в релизе :-)
pdoTools — это такой конструктор запросов. В нём можно присоединять сколько вам угодно таблиц, использовать сортировки и всё-всё-всё. Описание ищите здесь на сайте.
Просто времени с этим разбираться пока нету, а переезд будет не завтра и не послезавтра. Поэтому изучение nginx'а пока откладываю.
А вот решение с кроном уже сейчас нужно.
Такой адрес запишется во все логи по всей цепочке «пользователь» => «сервер».
В том числе всякими Яндекс.Недобраузерами и иже с ними, роботы которых любят посещать проснифанные урлы на предмет индексации.
Так что это вообще не выход)
Но планирую слезать с апача. А nginx пока не знаю. С ним ещё только буду разбираться.
Поэтому такой вариант не особо рассматриваю. Но спасибо, что напомнили :-)
Ну это уже больше прихоти, конечно :-) Да к тому же, не сильно влияющие на конечную безопасность.
Да и не такой уж и большой огород :-)
Поэтому отсекаем всех, кто не из консоли и кто запускает скрипт через веб-сервер, кроме авторизованного юзера с id администратора. который залогинен:
Просто может есть ещё какие-то тонкости, о которых я не подумал?
Представьте ситуацию, что есть некий сайт, который предоставляет некое апи для доступа к своим данным, которые периодически обновляются. Заранее об обновлениях неизвестно, да и обновления не такие уж и частые.
Поэтому пишем скрипт для работы с этим апи, чтобы проверять обновления данных и отображать их у себя, ставим в крон, к примеру раз в сутки в ночное время, когда нагрузка на сервер небольшая. А может быть и раз в двое суток — обновления-то не частые.
Но вот я заметил, что произошло обновление этих данных на том самом сайте и мне не за чем ждать до ночи, чтобы эти обновления увидеть у себя. А то и до ночи следующего дня.
Тогда я просто логинюсь в админку, открываю в браузере свой файл и, собственно, вуаля :-)
Может хоть вам пригодится)
ExtJS-4 с самого начала
Ext4 Grid на пальцах
Офф. доки
Ну и, конечно же, здесь.
Только учтите, что в ModX испольуется ExtJS-3, а первые 2 ссылки выше о ExtJS-4. А это большая разница. Но в целом для ознакомления пойдёт)
Этот код вставить в месте, где нужно вывести ссылку:
, где «PGEgaHJlZj0ibWFpbHRvOm1haWxAbWFpbC5ydSI+bWFpbEBtYWlsLnJ1PC9hPg==» — это закодированная методом Base64.encode строка:
Соответственно, если вам надо в этой строчке что-то поменять, в консоли браузера выполните:
И скопируйте в код выше (где находится соответствующая пометка) получившуюся строку в консоли.
Прям с нетерпением жду)