Changeset 5666

Show
Ignore:
Timestamp:
04/04/07 16:30:58 (2 years ago)
Author:
rambo
Message:

added archive importer and exec method to pass files to it
added some more helper functions to work around Zend bugs, and use them where needed.
"handle" midgard_blob type by explicitly not handling it (real handling will be added next)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/midcom.helper.replicator/helpers.php

    r5630 r5666  
    1515 *  
    1616 * @package midcom.helper.replicator 
    17  * @param midgard_object reference to an object 
     17 * @param midgard_object $object reference to an object 
    1818 * @return string object serialized (or false in case of failure) 
    1919 */ 
     
    3131 *  
    3232 * @package midcom.helper.replicator 
    33  * @param midgard_attachment reference to attachment object 
     33 * @param midgard_attachment $object reference to attachment object 
    3434 * @return string blob serialized (or false in case of failure) 
    3535 * @see midcom_helper_replicator_serialize 
     
    4646} 
    4747 
     48/** 
     49 * Workaround for Zend bug regarding object handling inside methods 
     50 * 
     51 * Manifests as "PHP object des not have __res property" when you call 
     52 * it (otherwise properly) inside MidCOM application 
     53 *  
     54 * @package midcom.helper.replicator 
     55 * @param string $xml reference to importable XML 
     56 * @param boolean $use_force whether to use force 
     57 * @return array of objects unserialized from XML (or false for failure) 
     58 * @see midcom_helper_replicator_serialize 
     59 */ 
     60function midcom_helper_replicator_unserialize(&$xml, $use_force = false) 
     61{ 
     62    return midgard_replicator::unserialize($xml, $use_force); 
     63} 
     64 
     65/** 
     66 * Workaround for Zend bug regarding object handling inside methods 
     67 * 
     68 * Manifests as "Wrong parameter count for import_object()" when you call 
     69 * it (otherwise properly) inside MidCOM application 
     70 *  
     71 * @package midcom.helper.replicator 
     72 * @param midgard_object $object reference to an object 
     73 * @param boolean $use_force whether to use force 
     74 * @return boolean indicating success/failure 
     75 */ 
     76function midcom_helper_replicator_import_object(&$object, $use_force = false) 
     77{ 
     78    return midgard_replicator::import_object($object, $use_force); 
     79} 
     80 
     81/** 
     82 * Workaround for Zend bug regarding object handling inside methods 
     83 * 
     84 * @package midcom.helper.replicator 
     85 * @param string $xml reference to importable XML 
     86 * @param boolean $use_force whether to use force 
     87 * @return boolean indicating success/failure 
     88 * @see midcom_helper_replicator_import_object 
     89 */ 
     90function midcom_helper_replicator_import_from_xml(&$xml, $use_force = false) 
     91{ 
     92    return midgard_replicator::import_from_xml($xml, $use_force); 
     93} 
     94 
     95 
    4896?> 
  • trunk/src/midcom.helper.replicator/importer.php

    r5001 r5666  
    100100     
    101101        // Call silenced to avoid warnings generated by missed dependencies 
    102         $objects = @midgard_replicator::unserialize($xml, $use_force); 
     102        //$objects = @midcom_helper_replicator_unserialize($xml, $use_force); 
     103        $objects = midcom_helper_replicator_unserialize($xml, $use_force); 
    103104        if (empty($objects)) 
    104105        { 
     
    110111        foreach ($objects as $object) 
    111112        { 
     113            // TODO: Handle special case of midgard_blob 
     114            if (is_a($object, 'midgard_blob')) 
     115            { 
     116                $GLOBALS['midcom_helper_replicator_logger']->log("midgard_blob requires special handling, aborting for now", MIDCOM_LOG_WARN); 
     117                $GLOBALS['midcom_helper_replicator_logger']->pop_prefix(); 
     118                mgd_set_errno(MGD_ERR_USER_DATA); 
     119                return false; 
     120            } 
    112121            $object_class = get_class($object); 
    113122            if (!$this->import_object($object, $use_force))