Подскажите пожалуйста что я делаю не так?
<?
class CAllClass
{
function GetByID($ID)
{
return CClass::GetList(Array(),Array("ID" => $ID));
}
function GetFilter($arFilter)
{
if (!is_array($arFilter))
$arFilter = Array();
$arSqlSearch = Array();
foreach ($arFilter as $key => $val)
{
$res = CCourse::MkOperationFilter($key);
$key = $res["FIELD"];
$cOperationType = $res["OPERATION"];
$key = strtoupper($key);
switch ($key)
{
case "ID":
case "SORT":
case "COURSE_ID":
$arSqlSearch[] = CCourse::FilterCreate("CL.".$key, $val, "number", $bFullJoin, $cOperationType);
break;
case "NAME":
case "DESCRIPTION":
$arSqlSearch[] = CCourse::FilterCreate("CL.".$key, $val, "string", $bFullJoin, $cOperationType);
break;
case "ACTIVE":
$arSqlSearch[] = CCourse::FilterCreate("CL.".$key, $val, "string_equal", $bFullJoin, $cOperationType);
break;
}
}
return $arSqlSearch;
}
function CheckFields(&$arFields, $ID = false)
{
global $DB;
$arMsg = array();
if ( (is_set($arFields, "NAME") || $ID === false) && strlen($arFields["NAME"]) <= 0)
{
$arMsg[] = array("id"=>"NAME", "text"=> GetMessage("LEARNING_BAD_NAME"));
}
if ($ID===false && !is_set($arFields, "COURSE_ID"))
$arMsg[] = array("id"=>"COURSE_ID", "text"=> GetMessage("LEARNING_BAD_COURSE_ID"));
if (is_set($arFields, "COURSE_ID"))
{
$r = CCourse::GetByID($arFields["COURSE_ID"]);
if(!$r->Fetch())
$arMsg[] = array("id"=>"COURSE_ID", "text"=> GetMessage("LEARNING_BAD_COURSE_ID_EX"));
}
if ($ID===false && !is_set($arFields, "USER_ID"))
$arMsg[] = array("id"=>"USER_ID", "text"=> GetMessage("LEARNING_BAD_USER_ID"));
if (is_set($arFields, "USER_ID"))
{
for($i=0; $i<count($arFields["USER_ID"]); $i++)
{
$r = CUser::GetByID($arFields["USER_ID"][$i]);
if(!$r->Fetch())
$arMsg[] = array("id"=>"USER_ID_$i", "text"=> GetMessage("LEARNING_BAD_USER_ID_EX"));
}
}
if (is_set($arFields, "DATE_ACTIVE_FROM") && strlen($arFields["DATE_ACTIVE_FROM"])>0 && (!$DB->IsDate($arFields["DATE_ACTIVE_FROM"], false, LANG, "FULL")))
{
$arMsg[] = array("id"=>"DATE_ACTIVE_FROM", "text"=> GetMessage("LEARNING_BAD_ACTIVE_FROM"));
}
if (is_set($arFields, "DATE_ACTIVE_TO") && strlen($arFields["DATE_ACTIVE_TO"])>0 && (!$DB->IsDate($arFields["DATE_ACTIVE_TO"], false, LANG, "FULL")))
{
$arMsg[] = array("id"=>"DATE_ACTIVE_TO", "text"=> GetMessage("LEARNING_BAD_ACTIVE_TO"));
}
if(!empty($arMsg))
{
$e = new CAdminException($arMsg);
$GLOBALS["APPLICATION"]->ThrowException($e);
return false;
}
//Defaults
if (is_set($arFields, "ACTIVE") && $arFields["ACTIVE"] != "Y")
$arFields["ACTIVE"] = "N";
return true;
}
function Add($arFields)
{
global $DB;
if($this->CheckFields($arFields))
{
unset($arFields["ID"]);
$ID = array();
$ID["B_LEARN_CLASS"] = $DB->Add("b_learn_class", $arFields, Array(), "learning");
$arUser = array ();
$arUser["CLASS_ID"] = $arFields["CLASS_ID"];
$arUser["TIMESTAMP_X"] = $arFields["TIMESTAMP_X"];
$arUser["DATE_ACTIVE_FROM"] = $arFields["DATE_ACTIVE_FROM"];
$arUser["DATE_ACTIVE_TO"] = $arFields["DATE_ACTIVE_TO"];
for($i=0; $i<count($arFields["USER_ID"]); $i++)
{
$arUser["USER_ID"] = $arFields["USER_ID"][$i];
$ID["B_LEARN_CLASS_USER"] = $DB->Add("b_learn_class_user", $arUser, Array(), "learning");
}
return $ID;
}
return false;
}
}