- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/lib/imap/bodystructure.php
- Класс: BitrixMailImapBodyStructure
- Вызов: BodyStructure::__construct
public function __construct(array $bodystructure, $number = null)
{
$this->number = $number;
$this->data = &$bodystructure;
if (is_array($bodystructure[0]))
{
$this->isMultipart = true;
$this->partsCount = count($bodystructure[0]);
for ($i = 0; $i < $this->partsCount; $i++)
{
$bodystructure[0][$i] = new static(
$bodystructure[0][$i],
(string) (!is_null($number) ? sprintf('%s.%u', $number, $i + 1) : $i + 1)
);
}
}
else
{
if (is_null($number))
{
$this->number = 1;
}
$bodystructure[self::TYPE_INDEX] = $this->formatProperty($bodystructure[self::TYPE_INDEX], self::TYPE_INDEX);
$bodystructure[self::ENCODING_INDEX] = $this->formatProperty($bodystructure[self::ENCODING_INDEX], self::ENCODING_INDEX);
}
$bodystructure[self::SUBTYPE_INDEX] = $this->formatProperty($bodystructure[self::SUBTYPE_INDEX], self::SUBTYPE_INDEX);
if (!empty($bodystructure[2]) && is_array($bodystructure[2]))
{
$params = array();
$count = count($bodystructure[2]);
for ($i = 0; $i < $count; $i += 2)
{
$params[mb_strtolower($bodystructure[2][$i])] = $bodystructure[2][$i + 1];
}
$bodystructure[2] = $params;
}
$disposition = &$bodystructure[$this->getDispositionIndex()];
$disposition[0] = mb_strtolower($disposition[0]);
if (!empty($disposition[1]) && is_array($disposition[1]))
{
$params = array();
$count = count($disposition[1]);
for ($i = 0; $i < $count; $i += 2)
{
$params[mb_strtolower($disposition[1][$i])] = $disposition[1][$i + 1];
}
$disposition[1] = $params;
}
}