"16","ACTIVE"=>"Y","NAME"=>$currentYear),false,array("ID"),false); if($arSection=$dbSection->GetNext()){ $dbElements = CIBlockElement::GetList(array(),array("IBLOCK_ID"=>"16","ACTIVE"=>"Y","SECTION_ID"=>$arSection["ID"],">=DATE_ACTIVE_FROM" => array(false, ConvertTimeStamp(false, "FULL")),),false,false,array("*")); while($obElement = $dbElements->GetNextElement()){ $arFields = $obElement->GetFields(); $arProperties = $obElement->GetProperties(); $arEvent = array(); $arEvent["ID"] = $arFields["ID"]; $arEvent["NAME"] = $arFields["NAME"]; $arEvent["DATE"] = $arFields["ACTIVE_FROM"]; if(!$arEvent["DATE"]){ $arEvent["DATE"] = $arFields["DATE_CREATE"]; } $arEvent["DATE"] = explode(" ",$arEvent["DATE"]); $arEvent["DATE"] = $arEvent["DATE"][0]; $arEvent["DATE_START"] = $arEvent["DATE"]." 00:00:00"; $arEvent["DATE_END"] = $arEvent["DATE"]." 23:59:59"; $arEvent["DATE_START"] = date("Y-m-d H:i:s",MakeTimeStamp($arEvent["DATE_START"], "DD.MM.YYYY HH:MI:SS")); $arEvent["DATE_END"] = date("Y-m-d H:i:s",MakeTimeStamp($arEvent["DATE_END"], "DD.MM.YYYY HH:MI:SS")); $arEvent["DESCRIPTION"] = $arFields["PREVIEW_TEXT"]; $arEvent["PROPERTIES"] = array(); if($arProperties["CATEGORY"]["VALUE"]){ $arEvent["PROPERTIES"][$arProperties["CATEGORY"]["ID"]]["NAME"] = $arProperties["CATEGORY"]["NAME"]; $arEvent["PROPERTIES"][$arProperties["CATEGORY"]["ID"]]["VALUE"] = $arProperties["CATEGORY"]["VALUE"]; } if($arProperties["ORGANIZER"]["VALUE"]){ $arEvent["PROPERTIES"][$arProperties["ORGANIZER"]["ID"]]["NAME"] = $arProperties["ORGANIZER"]["NAME"]; $arEvent["PROPERTIES"][$arProperties["ORGANIZER"]["ID"]]["VALUE"] = $arProperties["ORGANIZER"]["VALUE"]; } if($arProperties["DISCIPLINE"]["VALUE"]){ $arEvent["PROPERTIES"][$arProperties["DISCIPLINE"]["ID"]]["NAME"] = $arProperties["DISCIPLINE"]["NAME"]; $arEvent["PROPERTIES"][$arProperties["DISCIPLINE"]["ID"]]["VALUE"] = $arProperties["DISCIPLINE"]["VALUE"]; } $arEvents[] = $arEvent; } } } if(count($arEvents)){ $icalobj = new ZCiCal(); foreach($arEvents as $arEvent){ $eventobj = new ZCiCalNode("VEVENT", $icalobj->curnode); $eventobj->addNode(new ZCiCalDataNode("SUMMARY:" . $arEvent["NAME"])); $eventobj->addNode(new ZCiCalDataNode("DTSTART:" . ZCiCal::fromSqlDateTime($arEvent["DATE_START"]))); $eventobj->addNode(new ZCiCalDataNode("DTEND:" . ZCiCal::fromSqlDateTime($arEvent["DATE_END"]))); $uid = date('Y-m-d-H-i-s') . $arEvent["ID"]."@foxlodge.ru"; $eventobj->addNode(new ZCiCalDataNode("UID:" . $uid)); $eventobj->addNode(new ZCiCalDataNode("DTSTAMP:" . ZCiCal::fromSqlDateTime())); $arEvent["DESCRIPTION"] = strip_tags($arEvent["DESCRIPTION"]); $arEvent["DESCRIPTION"] = html_entity_decode($arEvent["DESCRIPTION"]); foreach($arEvent["PROPERTIES"] as $property){ $arEvent["DESCRIPTION"].="\n".$property["NAME"].":".$property["VALUE"]; } $eventobj->addNode(new ZCiCalDataNode("DESCRIPTION:" . ZCiCal::formatContent($arEvent["DESCRIPTION"]))); } header('Content-Type: text/calendar; charset=utf-8'); header('Content-Disposition: attachment; filename="cal.ics"'); echo $icalobj->export(); } else{ $icalobj = new ZCiCal(); header('Content-Type: text/calendar; charset=utf-8'); header('Content-Disposition: attachment; filename="calendar.ics"'); echo $icalobj->export(); } include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php"); ?>