Новое в блогах

Легкая проверка полей при оформлении заказа

А вы знали, что данное решение проверки полей не просто выводит красивые крыжики (кстати, их можно отключить), но и позволяет очень быстро писать кастомные обработчики проверки. Вот к примеру как я легко и просто добавил проверку обязательности города:
AddEventHandler('asd.ordercheckfields', 'OnOrderPropCheck', array('CSaleHandlers', 'OnOrderPropCheckHandler'));
class CSaleHandlers {

   /*
    * Проверка полей модулем asd.ordercheckfields
    */
   public static function OnOrderPropCheckHandler($arProp, $val) {
      if ($arProp['IS_EMAIL'] == 'Y') {
         if (!self::checkEmailForDomain($val, $arEmails)) {
            return 'Укажите другой e-mail. Допускаются e-mail адреса следующих почтовых сервисов:'."\n".implode("\n", $arEmails);
         }
      } elseif ($arProp['IS_LOCATION'] == 'Y') {
         if ($arLocation = CSaleLocation::GetByID($val)) {
            if (!$arLocation['CITY_ID']) {
               return 'Выберите город';
            }
         }
      }
   }  
}