function checkChildCond($arConditions) { //echo "<pre>@";print_r($arConditions);echo "@</pre>";die; $trueEventCounter = 0; $needTrueEvent = count($arConditions["CHILDREN"]); if (!empty($arConditions["CHILDREN"])) { foreach ($arConditions["CHILDREN"] as $child) { switch ($child["CLASS_ID"]) { case 'CondUserName': if (CFoodclubEventCompare::compareString($this->_fields["NAME"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case 'CondUserLastName': if (CFoodclubEventCompare::compareString($this->_fields["LAST_NAME"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case 'CondUserEmail': if (CFoodclubEventCompare::compareString($this->_fields["EMAIL"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case 'CondPersonalPhoto': $user = self::getUserFields(); if (CFoodclubEventCompare::compare($user["PERSONAL_PHOTO"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case 'CondUserWorkWWW': if (CFoodclubEventCompare::compareString($this->_fields["WORK_WWW"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBTags": if (CFoodclubEventCompare::compare($this->_fields["TAGS"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBModifiedBy": if (CFoodclubEventCompare::compare($this->_fields["MODIFIED_BY"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondUserDateRegister": $user = self::getUserFields(); if ($user["DATE_REGISTER"]) { if (CFoodclubEventCompare::compareDates($user["DATE_REGISTER"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } } break; case "CondUserLADate": $user = self::getUserFields(); if (CFoodclubEventCompare::compareDates($user["LAST_ACTIVITY_DATE"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBTimestampX": $date = isset($this->_fields["TIMESTAMP_X"]) ? $this->_fields["TIMESTAMP_X"] : $this->_fields["~TIMESTAMP_X"]; if (CFoodclubEventCompare::compareDates($date, $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBCreatedBy": if (CFoodclubEventCompare::compare($this->_fields["CREATED_BY"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBDateCreate": $date = isset($this->_fields["DATE_CREATE"]) ? $this->_fields["DATE_CREATE"] : $this->_fields["~DATE_CREATE"]; if (CFoodclubEventCompare::compareDates($date, $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBDetailText": if (CFoodclubEventCompare::compare($this->_fields["DETAIL_TEXT"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBPreviewText": if (CFoodclubEventCompare::compare($this->_fields["PREVIEW_TEXT"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBSort": if (CFoodclubEventCompare::compare($this->_fields["SORT"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBDateActiveTo": if (CFoodclubEventCompare::compareDates($this->_fields["ACTIVE_TO"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBDateActiveFrom": if (CFoodclubEventCompare::compareDates($this->_fields["ACTIVE_FROM"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBActive": if (CFoodclubEventCompare::compare($this->_fields["ACTIVE"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBName": if (CFoodclubEventCompare::compare($this->_fields["NAME"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBXmlID": if (CFoodclubEventCompare::compare($this->_fields["XML_ID"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBCode": if (CFoodclubEventCompare::compare($this->_fields["CODE"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondUserGroup": //Проверяем группу пользователя if (CFoodclubEventCompare::compareArrayValue(CUser::GetUserGroupArray(), $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBElement": if (CFoodclubEventCompare::compare($this->_fields["ID"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBSection": //Проверяем группу пользователя if (CFoodclubEventCompare::compare($this->_fields["SECTION_ID"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBIBlock": //Проверяем группу пользователя if (CFoodclubEventCompare::compare($this->_fields["IBLOCK_ID"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondUser": //Проверяем пользователя if (CFoodclubEventCompare::compare(CUser::GetID(), $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; case "CondIBElementProperty": //Проверяем пользователя if (CFoodclubEventCompare::compare($this->_fields["PROPERTY_VALUES"], $child["DATA"]["logic"], $child["DATA"]["value"])) { $trueEventCounter++; } break; } } $bOk = CFoodclubEventCompare::checkLogic($arConditions["DATA"], $trueEventCounter, $needTrueEvent); } return $bOk; }