Вот код компанента веб-сервиса:
Ключевое место здесь следующее:
Может быть не так задана фильтрация или не правильно обходятся элементы, но названий двух элементов инфоблока нет в возвращаемой методом строке.
Помогите, пожалуйста, разобраться, как правильно получить список всех элементов инфоблока!?
Код |
---|
<? 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); |
Может быть не так задана фильтрация или не правильно обходятся элементы, но названий двух элементов инфоблока нет в возвращаемой методом строке.
Помогите, пожалуйста, разобраться, как правильно получить список всех элементов инфоблока!?