LDAPAccountManager/lam/lib/3rdParty/composer/pear-pear.horde.org/Horde_Mime/Horde/Mime/Part/Upgrade/V1.php

119 lines
2.9 KiB
PHP

<?php
/**
* Copyright 2015-2017 Horde LLC (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (LGPL). If you
* did not receive this file, see http://www.horde.org/licenses/lgpl21.
*
* @category Horde
* @copyright 2015-2017 Horde LLC
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package Mime
*/
/**
* Upgrade V1 of MIME serialized data to V2.
*
* @author Michael Slusarz <slusarz@horde.org>
* @category Horde
* @copyright 2015-2017 Horde LLC
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package Mime
* @since 2.8.0
*/
class Horde_Mime_Part_Upgrade_V1
{
/**
* Converted data.
*
* @var array
*/
public $data = null;
/**
* Constructor.
*
* @param array $data V1 data.
*/
public function __construct($data)
{
// Version number
array_shift($data);
$d = array();
$type = array_shift($data);
$subtype = array_shift($data);
$ct = Horde_Mime_Headers_ContentParam_ContentType::create();
$d[4] = new Horde_Mime_Headers();
$d[4]->addHeaderOb($ct);
$ct->setContentParamValue($type . '/' . $subtype);
$d[9] = array_shift($data);
if ($lang = array_shift($data)) {
$d[4]->addHeaderOb(
new Horde_Mime_Headers_ContentLanguage('', $lang)
);
}
if ($cd = array_shift($data)) {
$hdr = new Horde_Mime_Headers_ContentDescription(null, '');
$d[4]->addHeaderOb($hdr);
$hdr->setValue($cd);
}
$cd = new Horde_Mime_Headers_ContentParam_ContentDisposition(null, '');
$d[4]->addHeaderOb($cd);
$cd->setContentParamValue(array_shift($data));
foreach (array_shift($data) as $key => $val) {
$cd[$key] = $val;
}
foreach (array_shift($data) as $key => $val) {
$ct[$key] = $val;
}
$d[7] = array_shift($data);
$d[6] = array_shift($data);
$d[2] = array_shift($data);
$d[5] = array_shift($data);
if ($boundary = array_shift($data)) {
$ct['boundary'] = $boundary;
}
$d[1] = array_shift($data);
if ($cid = array_shift($data)) {
$hdr = new Horde_Mime_Headers_ContentId(null, $cid);
$d[4]->addHeaderOb($hdr);
}
if ($cd = array_shift($data)) {
$hdr = new Horde_Mime_Headers_Element_Single('Content-Duration', '');
$d[4]->addHeaderOb($hdr);
$hdr->setValue($cd);
}
$d[8] = 0;
if (array_shift($data)) {
$d[8] |= STATUS_REINDEX;
}
if (array_shift($data)) {
$d[8] |= STATUS_BASEPART;
}
$d[3] = array_shift($data);
if (count($data)) {
$d[10] = reset($data);
}
$this->data = $d;
}
}