<function name="rpcf_get_services_list" id="0x2101"> <input> <integer name="which_service" default="-1"/> </input> <output> <integer name="services_count"/> <for name="i" from="0" count="services_count"> <integer name="service_id_array" array_index="i"/> <string name="service_name_array" array_index="i"/> <integer name="service_type_array" array_index="i"/> <string name="service_comment_array" array_index="i"/> <integer name="service_status_array" array_index="i"/> <set src="service_status_array" src_index="i" dst="service_status"/> <if variable="service_status" value="2" condition="eq"> <string name="tariff_name_array" array_index="i"/> </if> <if variable="service_status" value="2" condition="ne"> <set dst="tariff_name_array" dst_index="i" value=""/> </if> </for> </output> </function>
// Данную функцию необходимо перепроверить // ↑ функция отрабатывает отлично function rpcf_get_services_list($which_service=-1) { //0x2101 $ret=array(); if (!$this->connection->urfa_call(0x2101)) { print "Error calling function ". __FUNCTION__ ."\n"; return FALSE; } $packet = $this->connection->getPacket(); $packet->DataSetInt($which_service); $this->connection->urfa_send_param($packet); if($x = $this->connection->urfa_get_data()){ $count=$x->DataGetInt(); $ret['count']=$count; for ($i=0;$i<$count;$i++) { $services['service_id']=$x->DataGetInt(); $services['service_name']=$x->DataGetString(); $services['service_type']=$x->DataGetInt(); $services['service_comment']=$x->DataGetString(); $service_status=$x->DataGetInt(); $services['service_status']=$service_status; if ($service_status==2){ $services['tariff_name']=$x->DataGetString(); } else { $services['tariff_name']=''; } $ret['services'][]=$services; } } return $ret; }