Иногда требуется добавить выбор по местоположению, цене, для этого можно использовать новые обработчики событий, например, обработчик события «Привязка к ценам»:
function GetListLocations(){ return array( "PROPERTY_TYPE" => "S", "USER_TYPE" => "SListLocations", "DESCRIPTION" => "Привязка к местоположению", "GetPropertyFieldHtml" => array("regionality", "GetPropertyFieldHtmlLocations"), ); } function GetPropertyFieldHtmlLocations( $arProperty, $value, $strHTMLControlName ){ static $cache = array(); $cache["LOCATIONS"] = array(); $rsLoc = CSaleLocation::GetList(array(), array()); while( $arLoc = $rsLoc->GetNext() ){ if( !empty( $arLoc["CITY_NAME"] ) ){ $cache["LOCATIONS"][$arLoc["ID"]] = $arLoc; } } $varName = str_replace("VALUE", "DESCRIPTION", $strHTMLControlName["VALUE"]); $html = '<select name="'.$strHTMLControlName["VALUE"].'" onchange="document.getElementById(\'DESCR_'.$varName.'\').value=this.options[this.selectedIndex].text"> <option value=""></option>'; foreach( $cache["LOCATIONS"] as $arLoc ){ $html .= '<option value="'.$arLoc["ID"].'"'; if( $value["VALUE"] == $arLoc["~ID"] ) $html .= ' selected'; $html .= '>'.$arLoc["CITY_NAME"].'</option>'; } $html .= '</select>'; return $html; }