Всего 125 938 комментариев

Максим
17 февраля 2018, 09:11
0
Ой, не массив а json.
Максим
17 февраля 2018, 08:57
0
Судя по всему это не подсказали, а написали за вас!))) И в результате вы не понимаете что делаете! Что у вас сниппет возвращает??? По идее он должен вернуть массив.
Максим
17 февраля 2018, 08:46
+1
Если на страницу, но которой вызывается ajaxForm отправить данные методом POST, то ваша валидация на стороне JS будет игнорирована.
Для того что бы такое не приходило нужно проверку осуществлять на стороне PHP. Для этого у Formit есть хуки.
Офф. док: https://docs.modx.com/extras/revo/formit/formit.hooks
По примеру в докуентации создаете хук для проверки заполненности скрытого поля и добавляете свой хук в вызов сниппета.
Промер хука:
<?php
// Name = testHook
$hidden = $hook->getValue('hiddenField');
if(!empty($hidden)){return false;}
return true;
В вызове сниппета:
&hooks=`testHook,email`
Ну а проверку на нажатие кнопки можно добавить в этот же хук. Она будет доступна в хуке, если у кнопки будет стоять атрибут name, например name=«formSubmit»
Максим
17 февраля 2018, 08:31
0
Попробуйте в назавии файлов использовать только латинские буквы и дефисы вместо пробелов.
Максим
17 февраля 2018, 08:22
0
Наверное, самым простым решением будет добавить код инициализации в чак с результатами, что бы он инициализировался после добавления результатов.
Михаил
17 февраля 2018, 07:58
1
+1
Пример
Давайте подключим свой класс заказа и переопределим в нём проверку email.

Создаём и подключаем свой расширяющий класс. Затем пишем в нём
<?php
class myOrderHandler extends msOrderHandler {
}
Это мы унаследовали оригинальный класс оформления заказа.
Теперь указываем новый класс myOrderHandler в системной настройке ms2_order_handler_class. Если что то пойдёт не так, то всегда можно вернуть старый класс.
После этого ms2 уже использует ваш класс для работы, а тот, в свою очередь наследует свои методы от стандартного.

Теперь мы можем изменить любой метод создания заказа, чем и пользуемся — меняем msOrderHandler::validate().
<?php
class myOrderHandler extends msOrderHandler {
public function validate($key, $value) {
    switch ($key) {
        case 'email':
            // меняем filter_var() на простую регулярку
            // $value = filter_var($value, FILTER_VALIDATE_EMAIL) ? $value : @$this->order[$key];
            $value = preg_match('/.+@.+\..+/i', $value) ? trim($value) : @$this->order[$key];
        break;
        // Конечно, также можно переопределить и другие валидаторы

        // Если прислано поле, которого тут нет - отправляем в дефолтный класс
        default:
            return parent::validate($key, $value);
    }
    if ($value === false) {
        $value = '';
    }

    return $value;
}
}
Вот и всё. Мы унаследовали метод и изменили проверку email. Точно также мы можем добавить\изменить проверку и других полей, или вообще полностью поменять весь ход оформления заказа.

Вот и все что Вам надо
Alex
17 февраля 2018, 02:58
0
Я и не отрицаю, что логично, так как знаний в области администрирования серверов у меня маловато. Для себя понял, что использовать подобную конфигурацию сервера вообще бессмысленно, возможно, только для разработки. Если я не прав, с удовольствием почитаю мнение по этому поводу от более опытных в этом деле людей.
Дмитрий
16 февраля 2018, 22:05
0
Я видел, и если честно не очень помогло)
Metallurg.IT
16 февраля 2018, 20:56
+1
Я криворук, 4 месяца висела задача, а оказалось был невнимателен,
Распихиваем css b4 и js в нужные папки и не забываем подключить НОВЫЙ JQuery
Metallurg.IT
16 февраля 2018, 20:47
-1
Добрый вечер.
В соседней теме давно жду ответа.
Как починить комментарии если Bootstrap4 и новый JQuery?
Михаил
16 февраля 2018, 20:42
0
очень подробно описано в документации
Виктор
16 февраля 2018, 20:08
0
Посмотрел, там ссылки на документацию не работают. Попробовал варианты, которые там есть, поставил phpthumbof — ватемарки не накладываются, конкретно применительно к моему варианту можете подсказать.
Константин
16 февраля 2018, 20:07
0
Спасибо! Все заработало как нужно.
Alex Zhuravlev
16 февраля 2018, 19:40
0
Еще не забыть добавить события на плагин
OnWebPageInit
OnParseDocument
OnLoadWebDocument
msOnBeforeAddToCart
msOnBeforeRemoveFromCart
msOnBeforeChangeInCart
msOnSubmitOrder
msOnChangeOrderStatus
but1head
16 февраля 2018, 19:29
0
Таблица с странами
Id / name

Таблица с городами
Id / country_id / lat,lng

При заходе юзера определяется / выбирается его город, и по координатам высчитывается расстояние (в гугле очень много примеров).

P.s на mongo есть очень крутая штука для вывода объявлений основываясь на расстоянии от пользователя, возможно есть некий аналог под mysql
Виктор Долгий
16 февраля 2018, 19:04
0
Сейчас как раз разбираюсь, как будет что-то — поделюсь :)
Роман
16 февраля 2018, 18:26
0
Можно более конкретно, желательно с примером, пока не совсем понял про что речь!
Максим
16 февраля 2018, 18:22
0
У вас валидация проверка на спам происходит на фронте и если отпрвито постом, то проходим мимо проверки!)
Напишите хук для проверки скрытого поля и можно еще контролировато нажатие кнопки присвоив ей имя. Написанный хук указать перед хуком email.