/** * @param $arUserField * @param $value * @param CAdminListRow $row */ function AddUserField($arUserField, $value, &$row) { if($arUserField["USER_TYPE"]) { $js = $this->ShowScript(); if(is_callable(array($arUserField["USER_TYPE"]["CLASS_NAME"], "getadminlistviewhtml"))) { if($arUserField["MULTIPLE"] == "N") { $html = call_user_func_array( array($arUserField["USER_TYPE"]["CLASS_NAME"], "getadminlistviewhtml"), array( $arUserField, array( "NAME" => "FIELDS[".$row->id."][".$arUserField["FIELD_NAME"]."]", "VALUE" => htmlspecialcharsbx($value), ), ) ); if($html == '') $html = ' '; $row->AddViewField($arUserField["FIELD_NAME"], $html.$js.CAdminCalendar::ShowScript()); } elseif(is_callable(array($arUserField["USER_TYPE"]["CLASS_NAME"], "getadminlistviewhtmlmulty"))) { if(is_array($value)) $form_value = $value; else $form_value = unserialize($value); if(!is_array($form_value)) $form_value = array(); foreach($form_value as $key=>$val) $form_value[$key] = htmlspecialcharsbx($val); $html = call_user_func_array( array($arUserField["USER_TYPE"]["CLASS_NAME"], "getadminlistviewhtmlmulty"), array( $arUserField, array( "NAME" => "FIELDS[".$row->id."][".$arUserField["FIELD_NAME"]."]"."[]", "VALUE" => $form_value, ), ) ); if($html == '') $html = ' '; $row->AddViewField($arUserField["FIELD_NAME"], $html.$js.CAdminCalendar::ShowScript()); } else { $html = ""; if(is_array($value)) $form_value = $value; else $form_value = strlen($value) > 0? unserialize($value): false; if(!is_array($form_value)) $form_value = array(); foreach($form_value as $i=>$val) { if($html!="") $html .= " / "; $html .= call_user_func_array( array($arUserField["USER_TYPE"]["CLASS_NAME"], "getadminlistviewhtml"), array( $arUserField, array( "NAME" => "FIELDS[".$row->id."][".$arUserField["FIELD_NAME"]."]"."[".$i."]", "VALUE" => htmlspecialcharsbx($val), ), ) ); } if($html == '') $html = ' '; $row->AddViewField($arUserField["FIELD_NAME"], $html.$js.CAdminCalendar::ShowScript()); } } if($arUserField["EDIT_IN_LIST"]=="Y" && is_callable(array($arUserField["USER_TYPE"]["CLASS_NAME"], "getadminlistedithtml"))) { if($arUserField["MULTIPLE"] == "N") { $html = call_user_func_array( array($arUserField["USER_TYPE"]["CLASS_NAME"], "getadminlistedithtml"), array( $arUserField, array( "NAME" => "FIELDS[".$row->id."][".$arUserField["FIELD_NAME"]."]", "VALUE" => htmlspecialcharsbx($value), ), ) ); if($html == '') $html = ' '; $row->AddEditField($arUserField["FIELD_NAME"], $html.$js.CAdminCalendar::ShowScript()); } elseif(is_callable(array($arUserField["USER_TYPE"]["CLASS_NAME"], "getadminlistedithtmlmulty"))) { if(is_array($value)) $form_value = $value; else $form_value = strlen($value) > 0? unserialize($value): false; if(!is_array($form_value)) $form_value = array(); foreach($form_value as $key=>$val) $form_value[$key] = htmlspecialcharsbx($val); $html = call_user_func_array( array($arUserField["USER_TYPE"]["CLASS_NAME"], "getadminlistedithtmlmulty"), array( $arUserField, array( "NAME" => "FIELDS[".$row->id."][".$arUserField["FIELD_NAME"]."][]", "VALUE" => $form_value, ), ) ); if($html == '') $html = ' '; $row->AddEditField($arUserField["FIELD_NAME"], $html.$js.CAdminCalendar::ShowScript()); } else { $html = "<table id=\"table_".$arUserField["FIELD_NAME"]."_".$row->id."\">"; if(is_array($value)) $form_value = $value; else $form_value = unserialize($value); if(!is_array($form_value)) $form_value = array(); $i = -1; foreach($form_value as $i=>$val) { $html .= '<tr><td>'.call_user_func_array( array($arUserField["USER_TYPE"]["CLASS_NAME"], "getadminlistedithtml"), array( $arUserField, array( "NAME" => "FIELDS[".$row->id."][".$arUserField["FIELD_NAME"]."]"."[".$i."]", "VALUE" => htmlspecialcharsbx($val), ), ) ).'</td></tr>'; } $html .= '<tr><td>'.call_user_func_array( array($arUserField["USER_TYPE"]["CLASS_NAME"], "getadminlistedithtml"), array( $arUserField, array( "NAME" => "FIELDS[".$row->id."][".$arUserField["FIELD_NAME"]."]"."[".($i+1)."]", "VALUE" => "", ), ) ).'</td></tr>'; $html .= '<tr><td><input type="button" value="'.GetMessage("USER_TYPE_PROP_ADD").'" onClick="addNewRow(\'table_'.$arUserField["FIELD_NAME"].'_'.$row->id.'\', /'.'FIELDS\['.$row->id.'\]\['.$arUserField["FIELD_NAME"].'\]'.'\[([0-9]*)\]/g, 1)"></td></tr>'. '</table>'; $row->AddEditField($arUserField["FIELD_NAME"], $html.$js.CAdminCalendar::ShowScript()); } } } }