/** * put your comment there... * */ public function _checkInstallationState() { # Initialize $extensionClass = $this->extensionClass; $extension =& $this->extension; $extensionDeDoc =& $extension['defDoc']; $extensionState = new CJT_Framework_Extensions_Package_State_Extension($extensionDeDoc); # Upgrade and Install is the same both # required checking the packages inside # Package-Extension is a only a wrapper for packages inside! if ($extensionState->getState() != CJT_Framework_Extensions_Package_State_Extension::INSTALLED) { # Initialize $packageFileModel = CJTModel::getInstance('package-file'); $packageModel = CJTModel::getInstance('package'); $extensionDir = ABSPATH . PLUGINDIR . DIRECTORY_SEPARATOR . $extension['dir']; $packagesFolderPath = $extensionDir . DIRECTORY_SEPARATOR . (string) $extensionDeDoc->packages->attributes()->folder; # Getting packages state $extensionPackagesState = new CJT_Framework_Extensions_Package_State_Packages($extensionDeDoc); # Check packages foreach ($extensionPackagesState as $pckName => $package) { # Get state $pckState = $extensionPackagesState->getState(); # If not yet installed or requied upgrade if ($pckState != CJT_Framework_Extensions_Package_State_Packages::INSTALLED) { # Take action based on package installation state switch ($pckState) { case CJT_Framework_Extensions_Package_State_Packages::UPGRADE: # Delete package $packageModel->delete($package['id']); break; } # Get package file info. $packageFile = $packagesFolderPath . DIRECTORY_SEPARATOR . $package['file']; # Add/Create Package $packageCJTToken = $packageFileModel->parse(uniqid(), $packageFile); $packageId = $packageFileModel->install($packageCJTToken); # Mark as installed/created/added $extensionPackagesState->packageInstalled($packageId); } # Remove from queue $extensionPackagesState->removeOld(); } # Packages to delete! foreach ($extensionPackagesState->getDeletedPackages() as $name => $deletedPack) { # Delete package $packageModel->delete($deletedPack['id']); } # Upgrade packages state $extensionPackagesState->upgrade(); # Upgrade extension state $extensionState->upgrade($extension['defFile']); # Register uninstaller register_uninstall_hook($extension['pluginFile'], array(__CLASS__, "uninstall_{$extensionClass}")); } }
/** * put your comment there... * */ public function &activate() { # Getting extension class $extensionClass = CJT_Framework_Extensions_Package_Extension::getPluginExtensionClass($this->extensionPluginObject); # No activation process until the Plugin is deactivated before # It must be installed first. if (CJT_Framework_Extensions_Package_State_Extension::isInstalled($extensionClass)) { # Initialize $stateExtension = CJT_Framework_Extensions_Package_State_Extension::create($extensionClass); $statePackage = new CJT_Framework_Extensions_Package_State_Packages($stateExtension->getExtensionDeDoc()); $extBlocks = new CJT_Framework_Extensions_Package_Blocks($statePackage); # Enable all Blocks associated with extension packages $extBlocks->setState(CJT_Framework_Extensions_Package_Blocks::ACTIVE); } # Chain return $this; }