Andrey

Andrey

Был в сети 27 апреля 2023, 14:37
Заказы принимаю
все, разобрался, пользовался этой заметкой для оптимизации
modx.pro/solutions/22267

и взял этот код:
if( ! empty( $modx->context->resourceMap ) ) {
  $options = [ xPDO::OPT_CACHE_KEY => 'context_settings/' . $modx->context->key ];
  if( $val = $modx->getCacheManager()->get( 'context', $options ) ) {
      $val[ 'resourceMap' ] = [];
      $modx->getCacheManager()->set( 'context', $val, 0, $options );
  }
}
Собственно этот плагин и мешал крошкам!
заметил один баг, он не прям совсем неприятный, но когда добавляешь допустим пользователя в определенную группу, например был он в группе: Users, а нужно еще добавить добавить в Bussines, то раньше при чистке КЕШа и перезагрузке прав, помогало не перелогиниваться пользователю и сразу пользоваться преимуществами новой группы, а сейчас нужно в базе удалять сессию.

Я может конечно чет не так понял… но это случилось после того как перешел на этот обработчик! Не подскажите в чем может быть проблемс?
Госпаде! Спасибо Вам святой Вы человек! Пусть мана небесная сыплется бесконечно! Это реально ускоряет работу сайта, прям глаза открыли :DDD

П.С.
А еще закинул чуть чуть рублс для стимуляции подвигов, а это без сомнений подвиг!
ничего я «сумбурно» не описывал… почему все кто отвечает тут, игнорируют тот факт, что русским по белому пишу о том, что использую компонент: ms2form.
А все кто тут пока ответил, либо игнорируют это, либо вообще не знают, что это за компонент…
Описываю для Вас и для тех, кто этого не знает и не читал мат.часть по работе Прав и привелегий в MODX и о компоненте ms2form.

Компонент ms2form позволяет добавлять и редактировать Товары через форму на фронтэнде, чтобы не пускать очумелые ручки в админку… у него есть Шаблон ролей специально для этого, который «берет» часть привелегий стандарта Минишопа, который позволяет публиковать, сохранять и создавать новые Категории товаров и собственно Сам товар…

НО! Опять таки в мат.части сказано, что у сниппета есть параметр permissions, которому можно задать политику, по которой он будет чекать в какую группу ресурсов можно публиковать, а в какую нет, определнной группе пользователей, если те имеют привилегию section_add_children (которую тоже все почему игнорят в вопросе). Так вот Тикетс тут при том, что с ним в пакете уже есть созданный Шаблон прав, в котором есть те самые нужные привилегии, а собственно всего одна а именно section_add_children… (да и вообще он по фактуре и логике работы с правами на публикацию в раздел, имеет одинаковую политику, а именно strong>section_add_children)

А мат.часть заключается в том, что Группе ресурсов в которой сидит нужная для публикации Категория товаров, назначена эта привилегия, НО в нужный час, когда жмякаешь Публиковать, пишет, что доступ запрещен…

Хотя это не вообразимо, т.к. все права выставлены…
Я Вас очень прошу, если вы не читали документацию по компоненту ms2form и Вам реально не чем помочь, то прошу не сотрясать воздух только лишь своими комментариями, о том, что Вам не понятно.

Повторюсь, я надеюсь, что мне поможет тот, кто пользуется или пользовался компонентом и знает как он работает или хотя бы разобрался.
я ж говорил… мат. часть я знаю, документацию изучил. Вопрос в том, что мне нужно, чтобы при добавлении Пользователем с Фронт Формы через ms2form шла проверка прав, а именно: section_add_children (это написано в документации). Вот собственно это не хочет работать! Просто так уж вышло, что у ms2form и у TicketForm схожая фактура и в комплекте с тикетом идет такая вот шляпа в виде Шаблона прав: TicketSectionPolicy, которая содержит ту самую директиву которая мне нужна при проверке:
«а есть ли у пользователя section_add_children, чтобы он мог публиковать в эту категорию Товары»
За то, где найти проверку вообще прав, спасибо, погляжу что можно достать, но проблемы не решает, мне начинает казаться, что просто на просто не работает нихрена эта проверка вообще или как то иначе, а как самому автору наверное известно, но это не точно.
ну получается что по ссылке подключаются я так полагаю куча всякой фигни не понятной, я как не оч шарящий человек сразу и не разберет, может там что то совершенно ненужное подключается.

Мне вот допустим базового скрипта хватило, который я стянул с сайта и запилил у себя, подключил его в том порядке котором мне нужно, чтобы не громоздить скрипты в подвале и тем более в шапке.

Ну опять таки это для кого как, как говорится кому так удобнее тот так и делает, а вот уведомлялки крутые и подключаются быстро и адаптированны под работу востребованных сниппетов уже, так что то что надо прям, лакшери как говорится. Стильно, четко, молодежно, соверменно!
За компонент лойс однозначно!
Собственно скачал и поставил на проект, которым сейчас занимаюсь!
Крутые уведомлялки, я бы чуть чуть буквально внес корректировку!

Там у Вас получается подключаются куча скриптов со стороннего сайта:
Скрипты фронтенда: //cdn.jsdelivr.net/npm/sweetalert2@9
Меня просто все же слегка трясет от того, что бывает на сайте грузятся скрипты не родные, может решение не самое элегантное и не знаю что теряется при таком подходе, но я взял с сайта только этот скрипт:
/npm/sweetalert2@9.10.12/dist/sweetalert2.all.min.js
И запилил себе на сайт, с одной стороны конечно не самое элегантное решение, в плане, что придется самостоятельно следить за изменением версий, но думаю не критично, я протестил, как описал, работает отлично и на УРА, даже с компонентом Минюфиксом!
да вот в том и дело не работает ни как…
Как оно (якобы) работает, НО не сохраняет поле при редактировании, но при добавлении работает:
Мое ТВ поле: vault с ID 3
Значит должно быть так:
(в форме при Добавлении)
<label class="well__checkbox g-mt30 g-mb20" for="tv3">Наличие на складе 
      <input type="hidden" name="tv3" value="0">
      <input type="checkbox" name="tv3" id="tv3" value="1"/>
      <span class="well__check"></span>
    </label>
(в форме при Редактировании)
<label class="well__checkbox g-mt30 g-mb20" for="tv3">Наличие на складе 
      <input type="hidden" name="tv3" value="0">
      <input type="checkbox" name="tv3" id="tv3" value="1" {if $tv3 == 1}checked{/if}/>
      <span class="well__check"></span>
    </label>
При этом allowedFields = 'tv3'

Как я понял, что работает только так? Отредактировал в ручную ТВ у товара, в форме редактирования вижу, что при записи
<label class="well__checkbox g-mt30 g-mb20" for="tv3">Наличие на складе 
      <input type="hidden" name="tv3" value="0">
      <input type="checkbox" name="tv3" id="tv3" value="1" {if $tv3 == 1}checked{/if}/>
      <span class="well__check"></span>
    </label>
Работает хотя бы вывод ТВ.
В общем при сохранении не работает перезапись вообще.