function test_decompressFile() { @unlink(MAX_PATH . '/var/ziptest/foo.xml'); @unlink(MAX_PATH . '/var/ziptest/etc/bar.xml'); @rmdir(MAX_PATH . '/var/ziptest/etc'); @rmdir(MAX_PATH . '/var/ziptest'); $oPackageManager = new OX_PluginManager(); $oPackageManager->pathPackages = $this->testpathPackages; $oPackageManager->aErrors = array(); $this->assertFalse($oPackageManager->_decompressFile(MAX_PATH . $this->testpathData . 'ziptest.zip', '/foo')); $this->assertEqual(count($oPackageManager->aErrors), 3); $oPackageManager->aErrors = array(); $this->assertEqual(count($oPackageManager->_decompressFile(MAX_PATH . $this->testpathData . 'ziptest.zip', MAX_PATH . '/var/')), 3); $this->assertEqual(count($oPackageManager->aErrors), 0); $this->assertTrue(file_exists(MAX_PATH . '/var/ziptest/foo.xml')); $this->assertTrue(file_exists(MAX_PATH . '/var/ziptest/etc/bar.xml')); @unlink(MAX_PATH . '/var/ziptest/foo.xml'); @unlink(MAX_PATH . '/var/ziptest/etc/bar.xml'); @rmdir(MAX_PATH . '/var/ziptest/etc'); @rmdir(MAX_PATH . '/var/ziptest'); }
function processForm(&$form, $aPluginValues) { global $pathPlugin, $pathPackages, $pathAdmin; $aPaths = $GLOBALS['_MAX']['CONF']['pluginPaths']; $varTmp = MAX_PATH . '/var/tmp/'; if (!file_exists($varTmp)) { mkdir($varTmp, 0777); } $pathPlugin = $varTmp . $aPluginValues['name']; if (!file_exists($pathPlugin)) { mkdir($pathPlugin, 0777); } $pathPackages = $pathPlugin . $aPaths['packages']; $pathAdmin = $pathPlugin . $aPaths['admin']; require_once LIB_PATH . '/Plugin/PluginManager.php'; $oPluginManager = new OX_PluginManager(); $aVersion = $aPluginValues['version']; $aPluginValues['date'] = date('Y-m-d'); $aPluginValues['oxversion'] = OA_VERSION; $aPluginValues['version'] = $aVersion['major'] . '.' . $aVersion['minor'] . '.' . $aVersion['build'] . $aVersion['status']; $aGroupValues = $aPluginValues['group']; unset($aPluginValues['group']); foreach ($aGroupValues as $extension => $aGroup) { if ($aGroup['groupname']) { $aVals = $aPluginValues; $aVals['extension'] = $extension; $aVals['name'] = $aGroup['groupname']; $aVals['group'] = $aGroup['groupname']; $aPluginValues['grouporder'][] = $aGroup['groupname']; $oPluginManager->_decompressFile('etc/group.zip', $pathPackages . $aGroup['groupname']); $oBuilder = new OX_PluginBuilder_Group(); if (isset($aGroup['schema']) && $aGroup['schema']) { $oBuilder->schema = true; $oPluginManager->_decompressFile('etc/schema.zip', $pathPackages . $aGroup['groupname']); } if ($extension == 'admin') { $oPluginManager->_decompressFile('etc/admin.zip', $pathPlugin); rename($pathAdmin . 'group', $pathAdmin . $aGroup['groupname']); } $oBuilder->init($aVals); $oBuilder->putGroup(); } } $oPluginManager->_decompressFile('etc/plugin.zip', $pathPackages); $oBuilder = new OX_PluginBuilder_Package(); $oBuilder->init($aPluginValues); $oBuilder->putPlugin(); $aMessages[] = $aPluginValues['name'] . ' created in ' . $pathPlugin; return $aMessages; }