Exemple #1
0
 /**
  * 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;
 }
Exemple #2
0
 /**
  * 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;
 }
Exemple #4
0
 /**
  * @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;
 }
Exemple #5
0
 /**
  * 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;
 }
Exemple #6
0
 /**
  * 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;
 }
Exemple #7
0
 /**
  * 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;
 }
Exemple #8
0
 /**
  * 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;
 }
Exemple #9
0
 /**
  * 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;
 }
Exemple #10
0
 /**
  * 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;
 }
Exemple #12
0
 /**
  * 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;
 }
Exemple #13
0
 /**
  * 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;
 }
Exemple #15
0
 /**
  * @AfterScenario
  */
 public function dropSchema()
 {
     $this->doctrineHelper->dropSchema();
 }
Exemple #16
0
 /**
  * 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;
 }
Exemple #17
0
    /**
     * 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;
    }
Exemple #18
0
 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();
 }
Exemple #20
0
 /**
  * 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;
 }