|
@@ -987,12 +987,14 @@ class Message {
|
|
if ($this->type0 == 'multipart') {
|
|
if ($this->type0 == 'multipart') {
|
|
if($this->type1 == 'alternative') {
|
|
if($this->type1 == 'alternative') {
|
|
$msg = $this->findAlternativeEntity($alt_order);
|
|
$msg = $this->findAlternativeEntity($alt_order);
|
|
- if (count($msg->entities) == 0) {
|
|
|
|
- $entity[] = $msg->entity_id;
|
|
|
|
- } else {
|
|
|
|
- $entity = $msg->findDisplayEntity($entity, $alt_order, $strict);
|
|
|
|
|
|
+ if ( ! is_null($msg) ) {
|
|
|
|
+ if (count($msg->entities) == 0) {
|
|
|
|
+ $entity[] = $msg->entity_id;
|
|
|
|
+ } else {
|
|
|
|
+ $entity = $msg->findDisplayEntity($entity, $alt_order, $strict);
|
|
|
|
+ }
|
|
|
|
+ $found = true;
|
|
}
|
|
}
|
|
- $found = true;
|
|
|
|
} else if ($this->type1 == 'related') { /* RFC 2387 */
|
|
} else if ($this->type1 == 'related') { /* RFC 2387 */
|
|
$msgs = $this->findRelatedEntity();
|
|
$msgs = $this->findRelatedEntity();
|
|
foreach ($msgs as $msg) {
|
|
foreach ($msgs as $msg) {
|
|
@@ -1057,19 +1059,19 @@ class Message {
|
|
|
|
|
|
/**
|
|
/**
|
|
* @param array $alt_order
|
|
* @param array $alt_order
|
|
- * @return array
|
|
|
|
|
|
+ * @return entity
|
|
*/
|
|
*/
|
|
function findAlternativeEntity($alt_order) {
|
|
function findAlternativeEntity($alt_order) {
|
|
/* If we are dealing with alternative parts then we */
|
|
/* If we are dealing with alternative parts then we */
|
|
/* choose the best viewable message supported by SM. */
|
|
/* choose the best viewable message supported by SM. */
|
|
$best_view = 0;
|
|
$best_view = 0;
|
|
- $entity = array();
|
|
|
|
|
|
+ $entity = null;
|
|
foreach($this->entities as $ent) {
|
|
foreach($this->entities as $ent) {
|
|
$type = $ent->header->type0 . '/' . $ent->header->type1;
|
|
$type = $ent->header->type0 . '/' . $ent->header->type1;
|
|
if ($type == 'multipart/related') {
|
|
if ($type == 'multipart/related') {
|
|
$type = $ent->header->getParameter('type');
|
|
$type = $ent->header->getParameter('type');
|
|
- // Mozilla bug. Mozilla does not provide the parameter type.
|
|
|
|
- if (!$type) $type = 'text/html';
|
|
|
|
|
|
+ // Mozilla bug. Mozilla does not provide the parameter type.
|
|
|
|
+ if (!$type) $type = 'text/html';
|
|
}
|
|
}
|
|
$altCount = count($alt_order);
|
|
$altCount = count($alt_order);
|
|
for ($j = $best_view; $j < $altCount; ++$j) {
|
|
for ($j = $best_view; $j < $altCount; ++$j) {
|