Aliaksandr
добрый день. в сниппете ulogin получаю инфу о пользователе. можно ли через runsnippet formlister авторизовать его?
Он же вроде авторизовывал автоматом через сниппет weblogin . Или перестало работать? :)
Andrey
Можно. Сниппеты на изменение вывода цен в зависимости от группы пользователя или другого параметра. Плагин на изменение цены на событие "OnSHKgetProductPrice". Вот пример. Немного хардкодовый и перегруженный, но какой нашел у себя. $e = &$modx->Event; $output = ""; if ($e->name == 'OnSHKgetProductPrice') { $id = $_POST['shk-id'];//получаем id товара /*Получаем значение параметра "Без скидки (bool)"*/ $nodiscounts_arr = $modx->getTemplateVar('nodiscounts','*',$id);//Получаем значение параметра, отвечающего за вывод фиксированной цены $nodiscounts = $nodiscounts_arr['value']; /*Получаем id бренда (int)*/ $brands_arr = [52,1094,3233];//Список возможных id для бренда $parents = $modx->getParentIds($id); foreach($brands_arr as $brand){ if (in_array($brand, $parents)) { $brand_id = $brand;//Бренд break; } } $user_id = $modx->getLoginUserID(); $user_info_arr = $modx->getWebUserInfo($user_id); $discount_arr = [52 => $user_info_arr['discount_centro'], 1094 => $user_info_arr['discount_kapro'], 3233 => $user_info_arr['discount_truper']]; $discount = $discount_arr[$brand_id]; if(isset($price)){ if((isset($discount) && $discount > 0 && $discount < 100) && ($nodiscounts != 1)){ $output = round($price * (1-$discount/100), 2); }else{ $output = round($price, 2); } } $e->output($output); }
Спасибо!
h k
Он же вроде авторизовывал автоматом через сниппет weblogin . Или перестало работать? :)
http://modx.im/blog/addons/2214.html 500 ошибка, как только уберу код, который отвечает за авторизацию - сайт работает норм, но, как Вы уже догадались, никакой авторизации не произошло)
Ghostery
В общем, если вдруг он еще тут появится, то мог бы попробовать и об итогах рассказать:)
До итогов еще не дошло. Пока решал как вокруг одних маркеров показывать другие
Oleg
Aliaksandr
http://modx.im/blog/addons/2214.html 500 ошибка, как только уберу код, который отвечает за авторизацию - сайт работает норм, но, как Вы уже догадались, никакой авторизации не произошло)
ну фиг знает, может он сам уже перестал работать (можно проверить просто вызовом сниппета на странице [!WebLogin!] , а может и какой плагин висит на авторизации и дело совсем не в сниппете
Aleksey
Скорее всего в режиме CGI сайт работает. Там набор расширений разный
да, при FastCGI (Nginx + PHP-FPM) работает все. А при Apache эти расширения конфликтуют, хотя они есть
h k
ну фиг знает, может он сам уже перестал работать (можно проверить просто вызовом сниппета на странице [!WebLogin!] , а может и какой плагин висит на авторизации и дело совсем не в сниппете
Делали обычную авторизацию с помощью формлистера. Personalize стоит в шапке сайте. Обычная авторизация (ввод инфы и отправка формы) срабатывает нормально. вызвал сниппет WebLogin, как Вы писали выше - абсолютно ничего не вывел.
h k
но авторизацию через соц сети делал по статье: http://modx.im/blog/addons/2214.html
Aliaksandr
Делали обычную авторизацию с помощью формлистера. Personalize стоит в шапке сайте. Обычная авторизация (ввод инфы и отправка формы) срабатывает нормально. вызвал сниппет WebLogin, как Вы писали выше - абсолютно ничего не вывел.
ну так взять и вместо $modx->runSnippet('WebLogin'); просто вставить $modx->runSnippet('FormLister', array('controller' => 'Login')); - вдруг ничего и делать не надо больше :)
Aliaksandr
он же по идее те же поля username/password из $_POST и чекает для авторизации
Ilya
а есть вообще новости по Evo 2.0 ?
Anonymous
а есть вообще новости по Evo 2.0 ?
Все бухают на донат и ничего не делают
Ilya
а, ну вполне норм, да
Anonymous
https://github.com/evolution-cms/evolution/commits/2.x Ну а вообще почти каждый день что-либо дополняется.
Ilya
а насколько он щас вообще юзабельный?
Ilya
на какой стадии? ну там, альфа бета и все вот это вот
Anonymous
Как знаю готовится к Альфе. Позавчера был более юзабельный чем сегодня.
Anonymous
Сегодня там сломаны чанки, сниппеты, шаблоны, тв и плагины. А позавчера ещё работали 😊
Ilya
🤔
Anonymous
Это называется в активной разработке. Вот немного сломалось, но это нормально, это же не релиз.
Volodymyr
Вопрос по FormLister и prepare, мне нужно в таблицу manager_shopkeeper после отправки формы добавить новый заказ, но проблема в том что в письме нужно указать id созданного заказа. если создавать заказ в prepareProcess то запись будет создана даже если пользователь получил Данные успешно отправлены. Нет нужды отправлять их еще раз. если создавать запись в afterPrepareProcess то письмо уже будет отправлено, и туда уже id мы никак не сможем отправить, Есть еще вариант, в prepareProcess проверять $FormLister->checkSubmitLimit(); и $FormLister->checkSubmitProtection(); но есть шанс что в prepare checkSubmitLimit не пройдет, а плюс одна секунда и в самом класе уже проверка будет гуд. Шанс очень очень маленький, но есть. Найболее правильный вариант как я понимаю вручную отправлять почту на afterPrepareProcess. Верно я понимаю логику или туплю @Pathologic93 @Dmi3yy
Dmytro
Так глянь пример из евошоп там же номер заказа в почту уходит ;)
Dmytro
http://modx.im/blog/evoshop/5188.html
Pathologic
а еще лучше сделай свой контроллер
Anonymous
А разве "prepareProcess - после прохождения валидации"?
Volodymyr
А разве "prepareProcess - после прохождения валидации"?
после прохождения валидации но до проверки на submit i limit
Pathologic
можешь опять же отключить эти проверки и выполнить их вручную
Сергей
а зачем с ШК ставить submitLimit?
Volodymyr
ну скорее всего отключу, а если будут на спам жаловаться то тогда буду думать что делать
Сергей
в препаре
Volodymyr
это да
Volodymyr
думал что можна сделать правильно средствами FormLister вот и спросил
Сергей
что-то не помню, чтобы спамщики в корзину товары добавляли))
Pathologic
в препаре
лучше $FormLister->setValid(false);
Pathologic
хотя нет
Pathologic
если заказова нет, то и форма не нужна
Pathologic
так что нужно и то и то
Сергей
если заказова нет, то и форма не нужна
ну да, formid можно пустой передать
Volodymyr
лучше $FormLister->setValid(false);
setValid чотко, могу ли я както из prepare заполнить formData['messages'], поле private а метода setFormData я не вижу, не критично но интересно
Pathologic
а метод addMessage ты почему не видишь
Am
что-то не помню, чтобы спамщики в корзину товары добавляли))
В некоторых CMS есть целое направление "брошенных" корзин от спамеров. Когда регаются по чуть-чуть, смотрят-лазят, а потом начинают создавать заказы и в БД пишутся "брошенные" корзины засирая и БД и желание менеджеров работать. (%
Volodymyr
а метод addMessage ты почему не видишь
а по факту и не надо checkSubmitLimit сам сообщение добавит http://joxi.ru/a2XRbZpt1WWNar вроде так верно пасибо
Am
Или заSHITа
Aliaksandr
а я отправляю заказы через eForm и вообще не парюсь :) ))
Aliaksandr
и пыха 5.6)
да ладно, она и на 7.2 работает нормально
Сергей
ну так там правили немножко
Aliaksandr
иногда пару массивов объявить приходится и то не всегда почему-то :)
Aliaksandr
проще написать !is_array() array() чем делать на препаре, когда нет 100% варианта как сделать правильно - такое мое мнение
Aliaksandr
не знаю, никто мне не заказывал магазина даже с тремя формами заказа, тем более с 28 :)
Aliaksandr
если б кто-то дописал или контроллер или какой-нибудь prepare, чтоб это было точно правильно - можно было бы и пользоваться. А так видишь - то одно отключить, то второе включить, то "письмо все равно уйдет", то "письмо уже ушло" - и никто не скажет, как оно правильно
Aliaksandr
а еформ фиганул и нет вопросов :)
Aliaksandr
так то ж какие-то калькуляторы, я конкретно про связку с шопкипером для магазина :)
Сергей
так то ж какие-то калькуляторы, я конкретно про связку с шопкипером для магазина :)
ну а там тем более, зачем ставить еформ, если уже есть ФЛ, и уже пара форм на сайте на нём. ну и я на максимальном уровне ошибок работаю, тут еформ сразу отваливается
Aliaksandr
ну а там тем более, зачем ставить еформ, если уже есть ФЛ, и уже пара форм на сайте на нём. ну и я на максимальном уровне ошибок работаю, тут еформ сразу отваливается
чтоб быстро скопипастить и не думать, правильно оно там или надо было еще что-то включить/отлючить или переопределить :)
Aliaksandr
вот почитал выше и так и не понял все-таки как надо сделать, чтоб вот железобетонно 100% правильно работало
Pathologic
в целом-то нет проблемы в базу записать
Aliaksandr
требуется как обычно - отправить письмо с номером заказа и его составом я так понял
Pathologic
и свою логику всунуть тоже проблем ноль
Pathologic
на самом деле странно, что никто не выложил готового решения ((:
Aliaksandr
вот и я говорю - все что-то мутят-крутят, а как до дела доходит, так ничего ни у кого и нет ))
Aliaksandr
ладно ты, как видишь магазин - ставишь рево+минишоп, тебе простительно ))
Aliaksandr
но есть же тут много любителей и эво+шопкипер ))
Pathologic
нет, не я, кто-то другой
Aliaksandr
вот такое было помню - http://modx.im/blog/questions/4888.html#comment40634
Aliaksandr
а потом началось
Aliaksandr
Только у вызов FormLister'а добавлял такие 2 параметра: &submitLimit=`0` &protectSubmit=`0`