/** * initialise module */ public function install() { // create tables $classes = array('Zikula\\Core\\Doctrine\\Entity\\Category', 'Zikula\\Core\\Doctrine\\Entity\\CategoryAttribute', 'Zikula\\Core\\Doctrine\\Entity\\CategoryRegistry'); try { \DoctrineHelper::createSchema($this->entityManager, $classes); } catch (\Exception $e) { return false; } // insert some default data $this->insertData_10(); // Set autonumber to 10000 (for DB's that support autonumber fields) $cat = new \Zikula\Core\Doctrine\Entity\Category(); $cat['id'] = 9999; $this->entityManager->persist($cat); $this->entityManager->flush(); $this->entityManager->remove($cat); $this->entityManager->flush(); // set module vars $this->setVar('userrootcat', '/__SYSTEM__/Users'); $this->setVar('allowusercatedit', 0); $this->setVar('autocreateusercat', 0); $this->setVar('autocreateuserdefaultcat', 0); $this->setVar('userdefaultcatname', 'Default'); // Initialisation successful return true; }
/** * Uninstall the module. * * @return bool */ public function uninstall() { // drop table \DoctrineHelper::dropSchema($this->entityManager, array('ExampleModule\\Entity\\User', 'ExampleModule\\Entity\\UserCategory', 'ExampleModule\\Entity\\UserAttribute', 'ExampleModule\\Entity\\UserMetadata')); // remove all module vars $this->delVars(); return true; }
public function uninstall() { // @todo Also delete media files? \DoctrineHelper::dropSchema($this->entityManager, static::getEntities()); \HookUtil::unregisterProviderBundles($this->version->getHookProviderBundles()); \HookUtil::unregisterSubscriberBundles($this->version->getHookSubscriberBundles()); $this->delVars(); return true; }
/** * @return bool */ public function uninstall() { try { DoctrineHelper::dropSchema($this->entityManager, array('Dashboard_Entity_UserWidget', 'Dashboard_Entity_Widget')); } catch (Exception $e) { return false; } EventUtil::unregisterPersistentModuleHandlers($this->name); return true; }
/** * Uninstall the module. * * This function is only ever called once during the lifetime of a particular * module instance. * * @return bool True on success, false otherwise. */ public function uninstall() { // drop table DoctrineHelper::dropSchema($this->entityManager, array('ExampleDoctrine_Entity_User', 'ExampleDoctrine_Entity_UserCategory', 'ExampleDoctrine_Entity_UserAttribute', 'ExampleDoctrine_Entity_UserMetadata')); // remove all module vars $this->delVars(); // delete categories CategoryRegistryUtil::deleteEntry('ExampleDoctrine'); CategoryUtil::deleteCategoriesByPath('/__SYSTEM__/Modules/ExampleDoctrine', 'path'); // Deletion successful return true; }
/** * initialise the permissions module * * This function is only ever called once during the lifetime of a particular * module instance. * This function MUST exist in the pninit file for a module * * @return bool true on success, false otherwise */ public function install() { // create the table try { \DoctrineHelper::createSchema($this->entityManager, array('Permission')); } catch (\Exception $e) { return false; } // Create any default for this module $this->defaultdata(); // Initialisation successful return true; }
/** * initialise the blocks module * * @return bool true on success, false otherwise */ public function install() { // create tables $classes = array('BlocksModule\\Entity\\Block', 'BlocksModule\\Entity\\BlockPosition', 'BlocksModule\\Entity\\BlockPlacement', 'BlocksModule\\Entity\\UserBlock'); try { \DoctrineHelper::createSchema($this->entityManager, $classes); } catch (\Exception $e) { return false; } // Set a default value for a module variable $this->setVar('collapseable', 0); // Initialisation successful return true; }
/** * Delete the Search module * This function is only ever called once during the lifetime of a particular * module instance */ public function uninstall() { try { \DoctrineHelper::dropSchema($this->entityManager, array('SearchModule\\Entity\\SearchResultEntity', 'SearchModule\\Entity\\SearchStatEntity')); } catch (\Exception $e) { return false; } // Delete any module variables $this->delVars(); // unregister event handlers EventUtil::unregisterPersistentModuleHandlers('Search'); // Deletion successful return true; }
/** * Upgrade the MUVideo application from an older version. * * If the upgrade fails at some point, it returns the last upgraded version. * * @param integer $oldVersion Version to upgrade from. * * @return boolean True on success, false otherwise. */ public function upgrade($oldVersion) { // Upgrade dependent on old version number switch ($oldVersion) { case '1.0.0': // update the database schema try { DoctrineHelper::updateSchema($this->entityManager, $this->listEntityClasses()); } catch (\Exception $e) { if (System::isDevelopmentMode()) { return LogUtil::registerError($this->__('Doctrine Exception: ') . $e->getMessage()); } return LogUtil::registerError($this->__f('An error was encountered while updating tables for the %s extension.', array($this->getName()))); } $categoryRegistryIdsPerEntity = array(); // add default entry for category registry (property named Main) include_once 'modules/MUVideo/lib/MUVideo/Api/Base/Category.php'; include_once 'modules/MUVideo/lib/MUVideo/Api/Category.php'; $categoryApi = new MUVideo_Api_Category($this->serviceManager); $categoryGlobal = CategoryUtil::getCategoryByPath('/__SYSTEM__/Modules/Global'); $registryData = array(); $registryData['modname'] = $this->name; $registryData['table'] = 'Collection'; $registryData['property'] = $categoryApi->getPrimaryProperty(array('ot' => 'Collection')); $registryData['category_id'] = $categoryGlobal['id']; $registryData['id'] = false; if (!DBUtil::insertObject($registryData, 'categories_registry')) { LogUtil::registerError($this->__f('Error! Could not create a category registry for the %s entity.', array('collection'))); } $categoryRegistryIdsPerEntity['collection'] = $registryData['id']; $registryData = array(); $registryData['modname'] = $this->name; $registryData['table'] = 'Movie'; $registryData['property'] = $categoryApi->getPrimaryProperty(array('ot' => 'Movie')); $registryData['category_id'] = $categoryGlobal['id']; $registryData['id'] = false; if (!DBUtil::insertObject($registryData, 'categories_registry')) { LogUtil::registerError($this->__f('Error! Could not create a category registry for the %s entity.', array('movie'))); } $categoryRegistryIdsPerEntity['movie'] = $registryData['id']; // unregister persistent event handlers EventUtil::unregisterPersistentModuleHandlers($this->name); // register persistent event handlers $this->registerPersistentEventHandlers(); case '1.1.0': // for later updates } // update successful return true; }
/** * Install the Extensions module. * * @return boolean */ public function install() { // create tables $tables = array('Zikula\\Core\\Doctrine\\Entity\\Extension', 'Zikula\\Core\\Doctrine\\Entity\\ExtensionDependency', 'Zikula\\Core\\Doctrine\\Entity\\ExtensionVar', 'Zikula\\Component\\HookDispatcher\\Storage\\Doctrine\\Entity\\HookAreaEntity', 'Zikula\\Component\\HookDispatcher\\Storage\\Doctrine\\Entity\\HookBindingEntity', 'Zikula\\Component\\HookDispatcher\\Storage\\Doctrine\\Entity\\HookProviderEntity', 'Zikula\\Component\\HookDispatcher\\Storage\\Doctrine\\Entity\\HookRuntimeEntity', 'Zikula\\Component\\HookDispatcher\\Storage\\Doctrine\\Entity\\HookSubscriberEntity'); try { \DoctrineHelper::createSchema($this->entityManager, $tables); } catch (Exception $e) { return false; } // create hook provider table. EventUtil::registerPersistentModuleHandler('Extensions', 'controller.method_not_found', array('ExtensionsModule\\HookUI', 'hooks')); EventUtil::registerPersistentModuleHandler('Extensions', 'controller.method_not_found', array('ExtensionsModule\\HookUI', 'moduleservices')); // populate default data $this->defaultdata(); $this->setVar('itemsperpage', 25); // Initialisation successful return true; }
/** * Upgrade the module from an old version. * * This function must consider all the released versions of the module! * If the upgrade fails at some point, it returns the last upgraded version. * * @param string $oldversion Version number string to upgrade from. * * @return boolean|string True on success, last valid version string or false if fails. */ public function upgrade($oldversion) { // Upgrade dependent on old version number switch ($oldversion) { case '3.7.10': // Load DB connection $connection = $this->entityManager->getConnection(); // increase length of some hook table fields from 20 to 60 $commands = array(); $commands[] = "ALTER TABLE `hook_provider` CHANGE `method` `method` VARCHAR(60) NOT NULL"; $commands[] = "ALTER TABLE `hook_runtime` CHANGE `method` `method` VARCHAR(60) NOT NULL"; foreach ($commands as $sql) { $stmt = $connection->executeQuery($sql); } case '3.7.11': \DoctrineHelper::updateSchema($this->entityManager, array('Zikula\\ExtensionsModule\\Entity\\ExtensionEntity')); case '3.7.12': // future upgrade routines } // Update successful return true; }
/** * Upgrade the MUBoard application from an older version. * * If the upgrade fails at some point, it returns the last upgraded version. * * @param integer $oldversion Version to upgrade from. * * @return boolean True on success, false otherwise. */ public function upgrade($oldversion) { // Upgrade dependent on old version number switch ($oldversion) { case '1.0.0': // nothing to do // update the database schema try { DoctrineHelper::updateSchema($this->entityManager, $this->listEntityClasses()); } catch (Exception $e) { if (System::isDevelopmentMode()) { LogUtil::registerError($this->__('Doctrine Exception: ') . $e->getMessage()); } return LogUtil::registerError($this->__f('An error was encountered while dropping the tables for the %s module.', array($this->getName()))); } $this->setVar('showStatisticInDetails', true); $this->setVar('showStatisticOnBottom', false); case '1.1.0': // for later updates } // update successful return true; }
/** * Uninstall Reviews. * * @return boolean True on success, false otherwise. */ public function uninstall() { // delete stored object workflows $result = Zikula_Workflow_Util::deleteWorkflowsForModule($this->getName()); if ($result === false) { return LogUtil::registerError($this->__f('An error was encountered while removing stored object workflows for the %s extension.', array($this->getName()))); } try { DoctrineHelper::dropSchema($this->entityManager, $this->listEntityClasses()); } catch (\Exception $e) { if (System::isDevelopmentMode()) { return LogUtil::registerError($this->__('Doctrine Exception: ') . $e->getMessage()); } return LogUtil::registerError($this->__f('An error was encountered while dropping tables for the %s extension.', array($this->name))); } // unregister persistent event handlers EventUtil::unregisterPersistentModuleHandlers($this->name); // unregister hook subscriber bundles HookUtil::unregisterSubscriberBundles($this->version->getHookSubscriberBundles()); // remove all module vars $this->delVars(); // remove category registry entries ModUtil::dbInfoLoad('Categories'); DBUtil::deleteWhere('categories_registry', 'modname = \'' . $this->name . '\''); // remove all thumbnails $manager = $this->getServiceManager()->getService('systemplugin.imagine.manager'); $manager->setModule($this->name); $manager->cleanupModuleThumbs(); // remind user about upload folders not being deleted $uploadPath = FileUtil::getDataDirectory() . '/' . $this->name . '/'; LogUtil::registerStatus($this->__f('The upload directories at [%s] can be removed manually.', $uploadPath)); // uninstallation successful return true; }
public function install() { // create table \DoctrineHelper::createSchema($this->entityManager, $this->entities); //$this->variableApi->setAll($this->name, $modvars); /* try { $this->schemaTool->create($this->entities); } catch (\Exception $e) { $this->addFlash('error', $e->getMessage()); return false; } // insert default category try { $this->createCategoryTree(); } catch (\Exception $e) { $this->addFlash('error', $this->__f('Did not create default categories (%s).', $e->getMessage())); } // set up config variables $modvars = array( 'itemsperpage' => 25, 'enablecategorization' => true ); $this->variableApi->setAll($this->name, $modvars); $hookContainer = $this->hookApi->getHookContainerInstance($this->bundle->getMetaData()); \HookUtil::registerSubscriberBundles($hookContainer->getHookSubscriberBundles()); \HookUtil::registerProviderBundles($hookContainer->getHookProviderBundles()); */ // initialisation successful return true; }
/** * @AfterScenario */ public function dropSchema() { $this->doctrineHelper->dropSchema(); }
/** * upgrade */ public function upgrade($oldversion) { // Upgrade dependent on old version number switch ($oldversion) { case '2.4': $prefix = $this->serviceManager['prefix']; $connection = Doctrine_Manager::getInstance()->getConnection('default'); $sql = 'RENAME TABLE ' . $prefix . '_' . 'reviews' . ' TO ' . 'reviews'; $stmt = $connection->prepare($sql); try { $stmt->execute(); } catch (Exception $e) { LogUtil::registerError($e); } case '2.4.1': try { DoctrineHelper::updateSchema($this->entityManager, $this->listEntityClasses()); } catch (\Exception $e) { if (System::isDevelopmentMode()) { LogUtil::registerError($this->__('Doctrine Exception: ') . $e->getMessage()); } return LogUtil::registerError($this->__f('An error was encountered while dropping the tables for the %s extension.', array($this->getName()))); } $repository = $this->getEntityManager()->getRepository('Reviews_Entity_Review'); // we get all old entries $result = DBUtil::executeSQL('SELECT * FROM `reviews`'); $reviews = $result->fetchAll(Doctrine::FETCH_ASSOC); $dom = ZLanguage::getModuleDomain($this->name); $workflowHelper = new Zikula_Workflow('standard', 'Reviews'); // we get serviceManager $serviceManager = ServiceUtil::getManager(); // we get entityManager $entityManager = $serviceManager->getService('doctrine.entitymanager'); if (count($reviews) > 0) { foreach ($reviews as $key => $review) { $newReview = new Reviews_Entity_Review(); $newReview->setWorkflowState('approved'); $newReview->setTitle($review['pn_title']); $newReview->setText($review['pn_text']); if ($review['pn_reviewer'] != '') { $newReview->setReviewer($review['pn_reviewer']); } else { $newReview->setReviewer(__('Unknown', $dom)); } if ($review['pn_email'] != '') { $newReview->setEmail($review['pn_email']); } else { $adminmail = UserUtil::getVar('email', 2); $newReview->setEmail(__($adminmail)); } $newReview->setScore($review['pn_score']); $newReview->setCover($review['pn_cover']); $newReview->setUrl($review['pn_url']); $newReview->setUrl_title($review['pn_url_title']); $newReview->setHits($review['pn_hits']); $newReview->setZlanguage($review['pn_language']); $createdDate = new Datetime($review['pn_cr_date']); $newReview->setCreatedDate($createdDate); $updatedDate = new DateTime($review['pn_lu_date']); $newReview->setUpdatedDate($updatedDate); $newReview->setCreatedUserId($review['pn_cr_uid']); $newReview->setUpdatedUserId($review['pn_lu_uid']); $entityManager->persist($newReview); $entityManager->flush(); } } $result2 = DBUtil::executeSQL('SELECT * FROM `reviews_review`'); $reviews2 = $result2->fetchAll(Doctrine::FETCH_ASSOC); // we set the workflow foreach ($reviews2 as $key => $review2) { $obj['__WORKFLOW__']['obj_table'] = 'review'; $obj['__WORKFLOW__']['obj_idcolumn'] = 'id'; $obj['id'] = $review2['id']; $workflowHelper->registerWorkflow($obj, 'approved'); } // move relations from categories_mapobj to reviews_category // then delete old data $connection = $this->entityManager->getConnection(); $sqls = array(); $sqls[] = "INSERT INTO reviews_review_category (entityId, registryId, categoryId) SELECT obj_id, reg_id, category_id FROM categories_mapobj WHERE modname = 'Reviews' AND tablename = 'reviews'"; $sqls[] = "DELETE FROM categories_mapobj WHERE modname = 'Reviews' AND tablename = 'reviews'"; // update category registry data to change tablename to EntityName $sqls[] = "UPDATE categories_registry SET tablename = 'Review' WHERE tablename = 'reviews'"; // do changes foreach ($sqls as $sql) { $stmt = $connection->prepare($sql); try { $stmt->execute(); } catch (Exception $e) { LogUtil::registerError($e->getMessage()); } } $pagesize = $this->getVar('itemsperpage'); $this->setVar('pagesize', $pagesize); $this->delVar('itemsperpage'); $this->setVar('scoreForUsers', false); $addcategorytitletopermalink = $this->getVar('addcategorytitletopermalink'); $this->setVar('addcategorytitletopermalink'); // register persistent event handlers $this->registerPersistentEventHandlers(); // register hook subscriber bundles HookUtil::registerSubscriberBundles($this->version->getHookSubscriberBundles()); DBUtil::dropTable('reviews'); case '2.5.0': // later upgrades } // upgrade successful return true; }
/** * delete the Admin module * This function is only ever called once during the lifetime of a particular * module instance * @return bool true if deletetion succcesful, false otherwise */ public function uninstall() { // drop tables try { DoctrineHelper::dropSchema($this->entityManager, array('Admin_Entity_AdminCategory', 'Admin_Entity_AdminModule')); } catch (Exception $e) { return false; } $this->delVars(); // Deletion successful return true; }
private function countExistingUsers($username) { $user = $this->doctrineHelper->entityManager->getRepository($this->doctrineHelper->entityFullName('User'))->findOneBy(array('username' => $username)); /** @var $user array */ return count($user); }
/** * @param string $entityClass * * @return string */ protected function getEntityIdFieldName($entityClass) { return $this->doctrineHelper->getEntityMetadata($entityClass)->getSingleIdentifierFieldName(); }
/** * Uninstall MUBoard. * * @return boolean True on success, false otherwise. */ public function uninstall() { // delete stored object workflows $result = Zikula_Workflow_Util::deleteWorkflowsForModule($this->getName()); if ($result === false) { return LogUtil::registerError($this->__f('An error was encountered while removing stored object workflows for the %s module.', array($this->getName()))); } try { DoctrineHelper::dropSchema($this->entityManager, $this->listEntityClasses()); } catch (Exception $e) { if (System::isDevelopmentMode()) { LogUtil::registerError($this->__('Doctrine Exception: ') . $e->getMessage()); } return LogUtil::registerError($this->__f('An error was encountered while dropping the tables for the %s module.', array($this->getName()))); } // unregister persistent event handlers EventUtil::unregisterPersistentModuleHandlers('MUBoard'); // unregister hook subscriber bundles HookUtil::unregisterSubscriberBundles($this->version->getHookSubscriberBundles()); // remove all module vars $this->delVars(); // deletion successful return true; }