• Модуль: dav
  • Путь к файлу: ~/bitrix/modules/dav/classes/general/icalendar.php
  • Класс: CDavICalendarProperty
  • Вызов: CDavICalendarProperty::Render
public function Render()
{
	static $arRender1 = array('ATTACH', 'GEO', 'PERCENT-COMPLETE', 'PRIORITY', 'DURATION', 'FREEBUSY', 'TZOFFSETFROM', 'TZOFFSETTO', 'TZURL', 'ATTENDEE', 'ORGANIZER', 'RECURRENCE-ID', 'URL', 'EXRULE', 'SEQUENCE', 'CREATED', 'RRULE', 'REPEAT', 'TRIGGER', 'N', 'ADR');
	static $arRender2 = array('COMPLETED', 'DTEND', 'DUE', 'DTSTART', 'DTSTAMP', 'LAST-MODIFIED', 'CREATED', 'EXDATE', 'RDATE');

	$name = preg_replace('/[;].*$/', '', $this->name);
	$str = $this->content;

	if (in_array($name, $arRender2))
	{
		if (isset($this->arParameters['VALUE']) && $this->arParameters['VALUE'] == 'DATE' && !mb_strpos($str, ','))
			$str = mb_substr($str, 0, 8);
	}
	elseif (isset($this->arParameters['ENCODING']) && $this->arParameters['ENCODING'] == 'BASE64')
	{
	}
	elseif (!in_array($name, $arRender1))
	{
		$str = preg_replace('/([,;\\])/', '\\$1', $str);
		$str = preg_replace('/r?n/', '\\n', $str);
	}

	$name = sprintf("%s%s:", $this->name, $this->RenderParameters());
	if ((mb_strlen($name) + mb_strlen($str)) <= 72)
		$result = $name.$str;
	elseif ((mb_strlen($name) + mb_strlen($str)) > 72 && (mb_strlen($name) < 72) && (mb_strlen($str) < 72))
		$result = $name."rn ".$str;
	else
		$result = preg_replace('/(.{72})/'.BX_UTF_PCRE_MODIFIER, '$1'."rn ", $name.$str);

	return $result;
}