Сергей Шлоков

Сергей Шлоков

Был в сети 06 ноября 2025, 19:54
Заказы не принимаю
В базовой версии права привязываются не к календарям, а к событиям. Для настройки прав для календарей нужно написать свой сниппет-обёртку и в нём описать описанные вами правила. Для запрета редактирования выставлять параметр сниппета readOnly=`1`.
В модсторе же так: обычная цена — это цена себестоимости плюс 20% сверху для окупаемости, а на распродажи делают скидку в эти 20% и продают по себестоимости.
Всё совсем не так. Причём тут себестоимость modstore. Они берут 30% с цены продукта за предоставление площадки. Цену на продукт они не определяют. Её ставит разработчик! И скидка идёт не с доли modstore, а с общей цены. У modstore есть определенные расходы. И они никак не коррелируют с ценами компонентов. И даже полученные 30% от всех продаж могут не покрыть эти расходы. Поэтому устраивают акции для стимулирования продаж.

А кому не нравится размер скидки, стоимость пакетов и т.п. могут сделать свой магазин с блекджеком и клюшками.
Решение, полученное самостоятельно на порядок ценнее, чем подсказанное. Попробуйте сами, а потом сравните с этим
DAYOFMONTH(IF(modUserProfile.dob>0,FROM_UNIXTIME(modUserProfile.dob),ADDDATE('1970-01-01 00:00:00', INTERVAL modUserProfile.dob SECOND))) = DAYOFMONTH(now()) AND 
MONTH(IF(modUserProfile.dob>0,FROM_UNIXTIME(modUserProfile.dob),ADDDATE('1970-01-01 00:00:00', INTERVAL modUserProfile.dob SECOND))) = MONTH(now()) and modUserProfile.dob <> 0
Согласись, 90 строк лучше 420-ти?
И здесь сразу несколько плюсов:
1. Это работает теперь в том числе и на включенной компрессии.
2. Это не перетирает чужие кастомные скрипты.
3. Это не ломает чужие лейауты (сейчас, если кто-то переопределит на свой лад modx-layout, свой код его затрет).
4. Гораздо меньше кода (что обслуживать легче).
5. БОльшая обратная совместимость (не придется отслеживать версию MODX-а в случае, если в новой версии MODX-а будут изменения на уровне твоего текущего переопределенного блока контроллера).
Согласен со всеми пунктами. Поэтому, если ты не против, я твой код использую.
Честно говоря был уверен, что в лейауты админки никто не лазит.

В общем, если ты хочешь писать правильные компоненты, во-первых, меньше огрызайся и больше слушай других, а во-вторых, научись хотеть писать правильный код.
Слушать что, бесконечные оскорбления и фантазии? Это первый комментарий, где ты как более опытный товарищ помог решить проблему. Правда приправив опять же фирменным хамством. Видимо без этого никак. Но если первый и последний абзац выкинуть, то очень хороший разбор.

P.S. А еще лучше пуллреквест бы в MODX отправил. Там вопрос в двух строчках.
Они мой
безобидный PR для отображения используемой памяти принять уже год не могут. А уж про PR с лейаутом и мечтать нечего. Они только критические PR принимают. Видимо интереса ко второй ветке у них уже нет.
Постараюсь ответить вежливо.
Вот в админтулс ты нафига вот это переписал вот этим.
Если ты не понял зачем, может тогда ты себя переоцениваешь? За PR спасибо, но так как ты не понял смысла, то соответственно он ломает задуманный функционал. За $this->modx->smarty->get_template_vars() тоже благодарность, возьму на вооружение.
Написал что-то лично свое, что ломает работу других компонентов. Вот очередная жалоба поступила. Ты считаешь, это профессионально?
А чё не сотая, тысячная, миллионная для драматизма? Конфликты приложений существовали до меня и будут существовать после. А профессиональным я считаю дать знать автору о проблеме.
а то так и будешь писать код для новичков. А ведь наверняка мечтаешь о признании и среди опытных программистов.
Перечитай мою
страничку. Я не вижу ничего позорного писать для новичков.

П.С. PR не приму по описанной выше причине.
П.П.С. Я один раз имел неосторожность обратить внимание на твой robots.txt. Твоими «благовониями» все браузеры пропахли. На те же грабли наступать не собираюсь.

У меня только единственное к тебе пожелание — «Коля, перепиши ты этот oneBooking!»
Что-то мне это напоминает. Вторая часть Марлезонского балета? Василий тогда уже всё сказал. Повторяться не буду.

По последнему абзацу… Чем же тебе помочь, брат? Может тебе отдыхать нужно побольше? Отвлекись. Найди что-ли девушку. Сходите в кафе или театр. Вокруг столько интересного.
Подумай на этим.
Добавил 4 метода логирования (error(), warn(), info() и debug()) и несколько функций для коллекций и объектов — обновление, удаление, подсчет количества (см. последний примеры).
Думаю пока хватит. Жду ваших предложений. Одна голова хорошо…
Рад что хоть документация пригодилась. Только слабо понимаю чем.
А если подключалось бы в виде приложения еще круче было бы.
Документация занимает в разы больше времени, чем разработка. А чтобы сделать в виде пакета, нужно перевести её на английский. Мне легче застрелиться. Могу сделать только для ru сегмента в modstore.
Да мы уже должны были в гости уехать, но у жены резко поднялась высокая температура, да ещё у ребёнка недомогание. Явно тоже заболевает. Пришлось распрягать коней и все 100 пакетов и пакетиков обратно заносить домой. Будем отмечать дома в одиночестве. Поэтому и сижу скучаю. :)
П.С. Ещё и 1-е и 2-е освободилось.
Сделано. Добавил четвёртый строковый параметр, в котором можно указать нужный атрибут. Метод магический. Этот параметр можно указывать и вторым и третьим и четвертым.
// Загрузка файла скрипта в конец страницы
script('/path/to/script.js', 'acync'); // <script acync type="text/javascript" src="/path/to/script.js"></script>

// Загрузка файла скрипта в секцию head
script('/path/to/script.js', true, 'deffer'); // <script deffer type="text/javascript" src="/path/to/script.js"></script>