roundcubemail/plugins/enigma/lib/enigma_engine.php
private function modify_structure(&$p, $struct, $size = 0)
    {
        // modify mime_parts property of the message object
        $old_id = $p['structure']->mime_id;

        foreach (array_keys($p['object']->mime_parts) as $idx) {
            if (!$old_id || $idx == $old_id || strpos($idx, $old_id . '.') === 0) {
                unset($p['object']->mime_parts[$idx]);
            }
        }

        // set some part params used by Roundcube core
        $struct->headers  = array_merge($p['structure']->headers, $struct->headers);
        $struct->size     = $size;
        $struct->filename = $p['structure']->filename;

        // modify the new structure to be correctly handled by Roundcube
        $this->modify_structure_part($struct, $p['object'], $old_id);

        // replace old structure with the new one
        $p['structure'] = $struct;
        $p['mimetype']  = $struct->mimetype;
    }
private function modify_structure(&$p, $struct, $size = 0)
    {
        // modify mime_parts property of the message object
        $old_id = $p['structure']->mime_id;

        foreach (array_keys($p['object']->mime_parts) as $idx) {
            if (!$old_id || $idx == $old_id || strpos($idx, $old_id . '.') === 0) {
                unset($p['object']->mime_parts[$idx]);
            }
        }

        // set some part params used by Roundcube core
        $struct->headers  = array_merge($p['structure']->headers, $struct->headers);
        $struct->size     = $size;
        $struct->filename = $p['structure']->filename;

        // modify the new structure to be correctly handled by Roundcube
        $this->modify_structure_part($struct, $p['object'], $old_id);

        // replace old structure with the new one
        $p['structure'] = $struct;
        $p['mimetype']  = $struct->mimetype;
    }
private function modify_structure ( & $ p , $ struct , $ size = 0 ) { // modify mime_parts property of the message object $ old_id = $ p [ 'structure' ] -> mime_id ; foreach ( array_keys ( $ p [ 'object' ] -> mime_parts ) as $ idx ) { if ( ! $ old_id || $ idx == $ old_id || strpos ( $ idx , $ old_id . '.' ) === 0 ) { unset ( $ p [ 'object' ] -> mime_parts [ $ idx ] ) ; } } // set some part params used by Roundcube core $ struct -> headers = array_merge ( $ p [ 'structure' ] -> headers , $ struct -> headers ) ; $ struct -> size = $ size ; $ struct -> filename = $ p [ 'structure' ] -> filename ; // modify the new structure to be correctly handled by Roundcube $ this -> modify_structure_part ( $ struct , $ p [ 'object' ] , $ old_id ) ; // replace old structure with the new one $ p [ 'structure' ] = $ struct ; $ p [ 'mimetype' ] = $ struct -> mimetype ; }
Replace message encrypted structure with decrypted message structure

@param array              Hook arguments
@param rcube_message_part Part structure
@param int                Part size
Replace message encrypted structure with decrypted message structure