Вот код компанента веб-сервиса:
Ключевое место здесь следующее:
Может быть не так задана фильтрация или не правильно обходятся элементы, но названий двух элементов инфоблока нет в возвращаемой методом строке.
Помогите, пожалуйста, разобраться, как правильно получить список всех элементов инфоблока!?
| Код |
|---|
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
if(!CModule::IncludeModule("webservice") || !CModule::IncludeModule("iblock")) return;
// Наш новый класс наследуется от базового IWebService
class CGetInfoWS extends IWebService{
// Возвращает описание сервиса и его методов
function GetWebServiceDesc(){
$wsdesc = new CWebServiceDesc();
$wsdesc->wsname = "bitrix.webservice.getinfo"; // название сервиса
$wsdesc->wsclassname = "CGetInfoWS"; // название класса
$wsdesc->wsdlauto = true;
$wsdesc->wsendpoint = CWebService::GetDefaultEndpoint();
$wsdesc->wstargetns = CWebService::GetDefaultTargetNS();
$wsdesc->classTypes = array();
$wsdesc->structTypes = Array();
$wsdesc->classes = array(
"CGetInfoWS"=> array(
"GetInfo" => array(
"type" => "public",
"input" => array(
),
"output" => array("info" => array("varType" => "string")),
"httpauth" => "Y"
)
));
return $wsdesc;
}
function GetInfo(){
$iblock_permission = CIBlock::GetPermission(33);
if ($iblock_permission < "W"){
$GLOBALS["USER"]->RequiredHTTPAuthBasic();
return new CSOAPFault('Server Error', 'Unable to authorize user.');
}
// $arFields = Array(
// "IBLOCK_ID"=>3, // инфоблок "Новости магазина"
// "NAME"=>$NAME,
// "DATE_ACTIVE_FROM"=>$DATE,
// "PREVIEW_TEXT"=>$PREVIEW_TEXT,
// "DETAIL_TEXT"=>$DETAIL_TEXT,
// "PROPERTY_VALUES" => Array(
// "KEYWORDS"=>$KEYWORDS,
// "SOURCE"=>$SOURCE
// )
// );
//
// $ib_element = new CIBlockElement();
// $result = $ib_element->Add($arFields);
// if ($result > 0){
// return Array("info"=>$result);
// }
// return new CSOAPFault('Server Error', 'Error: '.$ib_element->LAST_ERROR);
$arFilter = Array(
"IBLOCK_ID"=>2 // инфоблок "Статьи"
);
$arSelect = Array();
$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
$info = "";
while ($obRes = $res->GetNextElement()){
$ar_res = $obRes->GetFields();
$info = $info . $ar_res['NAME'] . "; ";
}
return Array("info"=>$info);
}
}
$arParams["WEBSERVICE_NAME"] = "bitrix.webservice.getinfo";
$arParams["WEBSERVICE_CLASS"] = "CGetInfoWS";
$arParams["WEBSERVICE_MODULE"] = "";
// Передаем в компонент описание веб-сервиса
$APPLICATION->IncludeComponent("bitrix:webservice.server", "", $arParams);
die();
?>
|
Ключевое место здесь следующее:
| Код |
|---|
$arFilter = Array(
"IBLOCK_ID"=>2 // инфоблок "Статьи"
);
$arSelect = Array();
$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
$info = "";
while ($obRes = $res->GetNextElement()){
$ar_res = $obRes->GetFields();
$info = $info . $ar_res['NAME'] . "; ";
}
return Array("info"=>$info); |
Может быть не так задана фильтрация или не правильно обходятся элементы, но названий двух элементов инфоблока нет в возвращаемой методом строке.
Помогите, пожалуйста, разобраться, как правильно получить список всех элементов инфоблока!?