/** * Delete the IWnoteboard module * @author Albert Pérez Monfort (aperezm@xtec.cat) * @return bool true if successful, false otherwise */ public function Uninstall() { // Delete module table DBUtil::dropTable('IWnoteboard'); DBUtil::dropTable('IWnoteboard_topics'); //Delete module vars $this->delVar('grups') ->delVar('permisos') ->delVar('marcat') ->delVar('verifica') ->delVar('caducitat') ->delVar('repperdefecte') ->delVar('colorrow1') ->delVar('colorrow2') ->delVar('colornewrow1') ->delVar('colornewrow2') ->delVar('attached') ->delVar('notRegisteredSeeRedactors') ->delVar('multiLanguage') ->delVar('topicsSystem') ->delVar('shipHeadersLines') ->delVar('notifyNewEntriesByMail') ->delVar('editPrintAfter') ->delVar('notifyNewCommentsByMail') ->delVar('commentCheckedByDefault') ->delVar('smallAvatar'); HookUtil::unregisterSubscriberBundles($this->version->getHookSubscriberBundles()); //Deletion successfull return true; }
/** * Delete the IWmain module * @author Albert Pérez Monfort (aperezm@xtec.cat) * @return bool true if successful, false otherwise */ public function uninstall() { // Delete module table DBUtil::dropTable('IWmain'); //Delete module vars $this->delVars; //Deletion successfull return true; }
/** * delete the Admin module * This function is only ever called once during the lifetime of a particular * module instance * @author Mark West * @return bool true if deletetion succcesful, false otherwise */ function Admin_Messages_delete() { if (!DBUtil::dropTable('message')) { return false; } ModUtil::delVar('Admin_Messages'); // Deletion successful return true; }
/** * Delete the IWmenu module * @author Albert Pï¿œrez Monfort (aperezm@xtec.cat) * @return bool true if successful, false otherwise */ public function Uninstall() { // Delete module table DBUtil::dropTable('IWmenu'); //Delete module vars ModUtil::delVar('IWmenu', 'height'); ModUtil::delVar('IWmenu', 'width'); ModUtil::delVar('IWmenu', 'imagedir'); //Deletion successfull return true; }
/** * uninstall the IWdocmanager module * @author Albert Pérez Monfort (aperezm@xtec.cat) * @return bool true if successful, false otherwise */ public function uninstall() { // Delete module table DBUtil::dropTable('IWdocmanager'); DBUtil::dropTable('IWdocmanager_categories'); //Delete module vars $this->delVar('documentsFolder') ->delVar('notifyMail') ->delVar('editTime') ->delVar('deleteTime'); //Deletion successfull return true; }
/** * Delete the IWwebbox module * @author Albert Pérez Monfort * @return bool true if successful, false otherwise */ public function uninstall() { // Delete module table DBUtil::dropTable('IWwebbox'); //Delete module vars $this->delVar('url') ->delVar('width') ->delVar('height') ->delVar('scrolls') ->delVar('widthunit'); //Deletion successfull return true; }
/** * Delete the IWqv module * @author Sara Arjona Téllez (sarjona@xtec.cat) * @return bool true if successful, false otherwise */ public function uninstall() { // Delete module table DBUtil::dropTable('IWqv'); DBUtil::dropTable('IWqv_assignments'); DBUtil::dropTable('IWqv_sections'); DBUtil::dropTable('IWqv_messages'); DBUtil::dropTable('IWqv_messages_read'); //Delete module vars //ModUtil::delVar('IWqv', 'varname'); //Deletion successfull return true; }
/** * Delete the Search module * This function is only ever called once during the lifetime of a particular * module instance */ public function uninstall() { if (DBUtil::dropTable('search_stat') != 2) { return false; } if (DBUtil::dropTable('search_result') != 2) { return false; } // Delete any module variables $this->delVars(); // unregister event handlers EventUtil::unregisterPersistentModuleHandlers('Search'); // Deletion successful return true; }
/** * delete module */ public function uninstall() { DBUtil::dropTable('categories_category'); DBUtil::dropTable('categories_mapobj'); DBUtil::dropTable('categories_mapmeta'); DBUtil::dropTable('categories_registry'); $this->delVars(); // delete other modules use of categories flag $dbtable = DBUtil::getTables(); $cols = $dbtable['module_vars_column']; $name = DataUtil::formatForStore('enablecategorization'); $where = "{$cols['name']}='{$name}'"; $res = (bool) DBUtil::deleteWhere('module_vars', $where); // Deletion successful return true; }
/** * Delete the IWforums module * @author Albert Pérez Monfort (aperezm@xtec.cat) * @return bool true if successful, false otherwise */ public function uninstall() { // Delete module table DBUtil::dropTable('IWforums_definition'); DBUtil::dropTable('IWforums_temes'); DBUtil::dropTable('IWforums_msg'); //Delete module vars $this->delVar('urladjunts') ->delVar('avatarsVisible') ->delVar('restyledTheme') ->delVar('smiliesActive'); ; // unregister hook handlers HookUtil::unregisterSubscriberBundles($this->version->getHookSubscriberBundles()); //success return true; }
/** * Delete the IWmessages module * @author Albert Pérez Monfort (aperezm@xtec.cat) * @author Jaume Fernàndez Valiente (jfern343@xtec.cat) * @return bool true if successful, false otherwise */ public function uninstall() { // Delete module table DBUtil::dropTable('IWmessages'); //Delete module vars $this->delVar('IWmessages', 'groupsCanUpdate') ->delVar('uploadFolder') ->delVar('multiMail') ->delVar('limitInBox') ->delVar('limitOutBox') ->delVar('dissableSuggest') ->delVar('smiliesActive'); //Deletion successfull HookUtil::unregisterSubscriberBundles($this->version->getHookSubscriberBundles()); return true; }
/** * Delete the IWusers module * @author Albert Pérez Monfort (aperezm@xtec.cat) * @return bool true if successful, false otherwise */ public function Uninstall() { // Delete module table DBUtil::dropTable('IWusers'); DBUtil::dropTable('IWusers_friends'); //Delete module vars $this->delVar('friendsSystemAvailable') ->delVar('invisibleGroupsInList') ->delVar('usersCanManageName') ->delVar('allowUserChangeAvatar') ->delVar('allowUserSetTheirSex') ->delVar('allowUserDescribeTheirSelves') ->delVar('avatarChangeValidationNeeded') ->delVar('usersPictureFolder'); //Deletion successfull return true; }
/** * Delete the IWbookings module * @author Albert Pérez Monfort (aperezm@xtec.cat) * @return bool true if successful, false otherwise */ function Uninstall() { // Delete module table DBUtil::dropTable('IWbookings'); DBUtil::dropTable('IWbookings_spaces'); //Delete module vars ModUtil::delVar('IWbookings', 'groups'); ModUtil::delVar('IWbookings', 'weeks'); ModUtil::delVar('IWbookings', 'month_panel'); ModUtil::delVar('IWbookings', 'weekends'); ModUtil::delVar('IWbookings', 'eraseold'); ModUtil::delVar('IWbookings', 'showcolors'); ModUtil::delVar('IWbookings', 'NTPtime'); //Deletion successfull return true; }
/** * uninstall the Files module * @author Albert Pérez Monfort (aperezm@xtec.cat) * @return bool true if successful, false otherwise */ public function uninstall() { // Delete module table DBUtil::dropTable('Files'); //Delete module vars $this->delVar('folderPath'); $this->delVar('usersFolder'); $this->delVar('showHideFiles'); $this->delVar('allowedExtensions'); $this->delVar('defaultQuota'); $this->delVar('groupsQuota'); $this->delVar('filesMaxSize'); $this->delVar('maxWidth'); $this->delVar('maxHeight'); $this->delVar('editableExtensions'); //Deletion successfull return true; }
/** * Desinstal·lació del mòdul Llicencies * * @return bool true si ha anat tot bé, false en qualsevol altre cas. */ public function uninstall() { if (!SecurityUtil::checkPermission('Llicencies::', '::', ACCESS_ADMIN)) { return LogUtil::registerPermissionError(); } // Esborrar taules del mòdul if (!DBUtil::dropTable('llicencies')|| !DBUtil::dropTable('llicencies_curs')|| !DBUtil::dropTable('llicencies_tema')|| !DBUtil::dropTable('llicencies_subtema')|| !DBUtil::dropTable('llicencies_tipus')|| !DBUtil::dropTable('llicencies_modalitat')|| !DBUtil::dropTable('llicencies_estats') ) return false; //Esborrar variables del mòdul $this->delVars(); return true; }
/** * Delete the IWTimeFrames module & update existing bookings references * @author Albert Pérez Monfort (aperezm@xtec.cat) * @author Josep Ferràndiz Farré (jferran6@xtec.cat) * @return bool true if successful, false otherwise */ public function uninstall() { // Delete module table DBUtil::dropTable('IWtimeframes'); DBUtil::dropTable('IWtimeframes_definition'); // Totes les referències als marcs s'han d'esborrar a IWbookings_spaces // 1r. mirar si existeix el mòdul i després actualitzar els registres $modid = ModUtil::getIdFromName('IWbookings'); $modinfo = ModUtil::getInfo($modid); if ($modinfo['state'] > 1) { $obj = array('mdid' => 0); DBUtil::updateObject($obj, 'IWbookings_spaces', 'mdid != 0'); } //Delete module vars $this->delVar('frames'); //Deletion successfull return true; }
/** * Migrate from version 1.13 to 2.2.0 * * @param string $oldversion The old version from which this upgrade is being processed. * * @return bool True on success; otherwise false. */ public function upgrade113XTablesTo220Tables($oldversion) { if (!DBUtil::changeTable('users_temp')) { return false; } // Get the dbinfo for the new version ModUtil::dbInfoLoad('Users', 'Users'); $nowUTC = new DateTime(null, new DateTimeZone('UTC')); $nowUTCStr = $nowUTC->format(Users_Constant::DATETIME_FORMAT); $serviceManager = ServiceUtil::getManager(); $dbinfoSystem = $serviceManager['dbtables']; $dbinfo113X = Users_tables('1.13'); $dbinfo220 = Users_tables('2.2.0'); $usersOldFields = array( 'user_theme', 'user_viewemail', 'storynum', 'counter', 'hash_method', 'validfrom', 'validuntil', ); $usersOldFieldsDB = array( $dbinfo113X['users_column']['user_theme'], $dbinfo113X['users_column']['user_viewemail'], $dbinfo113X['users_column']['storynum'], $dbinfo113X['users_column']['counter'], $dbinfo113X['users_column']['hash_method'], $dbinfo113X['users_column']['validfrom'], $dbinfo113X['users_column']['validuntil'] ); // Upgrade the tables // Update the users table with new and altered fields. No fields are removed at this point, and no fields // are getting a new data type that is incompatible, so no need to save anything off first. // Also, create the users_verifychg tables at this point. // Merge the global dbtables with the new field information. $tables['users_column'] = $dbinfo220['users_column']; $tables['users_column_def'] = $dbinfo220['users_column_def']; $tables['users_verifychg'] = $dbinfo220['users_verifychg']; $tables['users_verifychg_column'] = $dbinfo220['users_verifychg_column']; $tables['users_verifychg_column_def'] = $dbinfo220['users_verifychg_column_def']; $serviceManager['dbtables'] = array_merge($dbinfoSystem, $tables); // Now change the tables if (!DBUtil::changeTable('users')) { return false; } if (!DBUtil::createTable('users_verifychg')) { return false; } // First users_temp pending email verification records to users_verifychg. $tempColumn = $dbinfo113X['users_temp_column']; $verifyColumn = $dbinfo220['users_verifychg_column']; $usersColumn = $dbinfo220['users_column']; $legalModInfo = ModUtil::getInfoFromName('Legal'); if (($legalModInfo['state'] == ModUtil::STATE_ACTIVE) || ($legalModInfo['state'] == ModUtil::STATE_UPGRADED)) { $legalModuleActive = true; $termsOfUseActive = ModUtil::getVar('Legal', 'termsofuse', false); $privacyPolicyActive = ModUtil::getVar('Legal', 'privacypolicy', false); $agePolicyActive = ($this->getVar('minage', 0) > 0); } else { $legalModuleActive = false; } // Next, users table conversion // We need to convert some information over from the old users table fields, so merge the old field list into // the new one. The order of array_merge parameters is important here! $tables = array('users_column' => array_merge($dbinfo113X['users_column'], $dbinfo220['users_column'])); $serviceManager['dbtables'] = array_merge($dbinfoSystem, $tables); // Do the conversion in PHP we use mb_strtolower, and even if MySQL had an equivalent, there is // no guarantee that another supported DB platform would. $limitNumRows = 100; $limitOffset = 0; $updated = true; $userCount = DBUtil::selectObjectCount('users'); while ($limitOffset < $userCount) { $userArray = DBUtil::selectObjectArray('users', "{$usersColumn['uid']} != 1", '', $limitOffset, $limitNumRows, '', null, null, array('uid', 'uname', 'email', 'pass', 'hash_method', 'user_regdate', 'lastlogin', 'approved_by', 'approved_date')); if (!empty($userArray) && is_array($userArray)) { foreach ($userArray as $key => $userObj) { // force user names and emails to lower case $userArray[$key]['uname'] = mb_strtolower($userArray[$key]['uname']); $userArray[$key]['email'] = mb_strtolower($userArray[$key]['email']); if ($userArray[$key]['user_regdate'] == '1970-01-01 00:00:00') { $userArray[$key]['user_regdate'] = $nowUTCStr; $userArray[$key]['approved_date'] = $nowUTCStr; } else { $userArray[$key]['approved_date'] = $userArray[$key]['user_regdate']; } $userArray[$key]['approved_by'] = 2; // merge hash method for salted passwords, leave salt blank if (!empty($userArray[$key]['pass']) && (strpos($userArray[$key]['pass'], '$$') === false)) { $userArray[$key]['pass'] = (isset($userArray[$key]['hash_method']) ? $userArray[$key]['hash_method'] : '1') . '$$' . $userArray[$key]['pass']; } // Save some disappearing fields as attributes, just in case someone actually used them for // something. But don't overwrite if there already if (!isset($userArray[$key]['__ATTRIBUTES__']) || !is_array($userArray[$key]['__ATTRIBUTES__'])) { $userArray[$key]['__ATTRIBUTES__'] = array(); } foreach ($usersOldFields as $fieldName) { if (($fieldName != 'hash_method') && isset($userArray[$key][$fieldName]) && !empty($userArray[$key][$fieldName]) && !isset($userArray[$key]['__ATTRIBUTES__'][$fieldName])) { $userArray[$key]['__ATTRIBUTES__'][$fieldName] = $userArray[$key][$fieldName]; } } if ($legalModuleActive && ($userArray[$key]['uid'] > 2)) { $userRegDateTime = new DateTime($userArray[$key]['user_regdate'], new DateTimeZone('UTC')); $policyDateTimeStr = $userRegDateTime->format(DATE_ISO8601); if ($termsOfUseActive) { $userArray[$key]['__ATTRIBUTES__']['_Legal_termsOfUseAccepted'] = $policyDateTimeStr; } if ($privacyPolicyActive) { $userArray[$key]['__ATTRIBUTES__']['_Legal_privacyPolicyAccepted'] = $policyDateTimeStr; } if ($agePolicyActive) { $userArray[$key]['__ATTRIBUTES__']['_Legal_agePolicyConfirmed'] = $policyDateTimeStr; } } } } if (!DBUtil::updateObjectArray($userArray, 'users', 'uid', false)) { $updated = false; break; } $limitOffset += $limitNumRows; } if (!$updated) { return false; } $obaColumn = $dbinfoSystem['objectdata_attributes_column']; $limitNumRows = 100; $limitOffset = 0; $updated = true; $userCount = DBUtil::selectObjectCount('users_temp'); // Pass through the users_temp table in chunks of 100 // * ensure unames and email addresses are lower case, while ($limitOffset < $userCount) { $userTempArray = DBUtil::selectObjectArray('users_temp', '', '', $limitOffset, $limitNumRows, '', null, null, array('tid', 'type', 'uname', 'email', 'pass', 'hash_method', 'dynamics', 'comment')); $userArray = array(); if (!empty($userTempArray) && is_array($userTempArray)) { foreach ($userTempArray as $key => $userTempOpj) { // type == 1: User registration pending approval (moderation) if ($userTempArray[$key]['type'] == 1) { $userObj = array(); // Ensure uname and email are lower case $userObj['uname'] = mb_strtolower($userTempArray[$key]['uname']); $userObj['email'] = mb_strtolower($userTempArray[$key]['email']); // Convert pass to salted pass with embedded hash method, leave salt blank $userObj['pass'] = $userTempArray[$key]['hash_method'] . '$$' . $userTempArray[$key]['pass']; $userObj['approved_by'] = 0; $userObj['activated'] = Users_Constant::ACTIVATED_PENDING_REG; if (!empty($userTempArray[$key]['dynamics'])) { $userObj['__ATTRIBUTES__'] = unserialize($userTempArray[$key]['dynamics']); } else { $userObj['__ATTRIBUTES__'] = array(); } if (isset($userObj['dynamics']) && !empty($userObj['dynamics'])) { if (DataUtil::is_serialized($userObj['dynamics'])) { $dynamics = @unserialize($userObj['dynamics']); if (!empty($dynamics) && is_array($dynamics)) { foreach ($dynamics as $key => $value) { $userObj['__ATTRIBUTES__'][$key] = $value; } } } } $userObj['__ATTRIBUTES__']['_Users_isVerified'] = 0; if ($legalModuleActive) { $userRegDateTime = new DateTime($userArray[$key]['user_regdate'], new DateTimeZone('UTC')); $policyDateTimeStr = $userRegDateTime->format(DATE_ISO8601); if ($termsOfUseActive) { $userObj['__ATTRIBUTES__']['_Legal_termsOfUseAccepted'] = $policyDateTimeStr; } if ($privacyPolicyActive) { $userObj['__ATTRIBUTES__']['_Legal_privacyPolicyAccepted'] = $policyDateTimeStr; } if ($agePolicyActive) { $userObj['__ATTRIBUTES__']['_Legal_agePolicyConfirmed'] = $policyDateTimeStr; } } $userArray[] = $userObj; } else { throw new Zikula_Exception_Fatal($this->__f('Unknown users_temp record type: %1$s', array($userTempArray[$key]['type']))); } } } if (!DBUtil::insertObjectArray($userArray, 'users', 'uid', false)) { $updated = false; break; } $limitOffset += $limitNumRows; } if (!$updated) { return false; } // Done upgrading. Let's lose some old fields and tables we no longer need. DBUtil::dropColumn('users', $usersOldFieldsDB); DBUtil::dropTable('users_temp'); // Reset the system tables to the new table definitons, so the rest of the // system upgrade goes smoothly. $dbinfoSystem = $serviceManager['dbtables']; foreach ($dbinfo113X as $key => $value) { unset($dbinfoSystem[$key]); } foreach ($dbinfo220 as $key => $value) { $dbinfoSystem[$key] = $value; } $serviceManager['dbtables'] = $dbinfoSystem; // Update users table for data type change of activated field. if (!DBUtil::changeTable('users')) { return false; } return true; }
/** * Delete ephemerides module * @author The Zikula Development Team * @return true if init successful, false otherwise */ public function uninstall() { DBUtil::dropTable('ephem'); // delete module variables ModUtil::delVar('Ephemerides'); // delete entries from category registry /*ModUtil::dbInfoLoad('Categories'); DBUtil::deleteWhere('categories_registry', "modname = 'Ephemerides'"); DBUtil::deleteWhere('categories_mapobj', "modname = 'Ephemerides'");*/ // Remove hooks HookUtil::unregisterSubscriberBundles($this->version->getHookSubscriberBundles()); HookUtil::unregisterProviderBundles($this->version->getHookProviderBundles()); // deletion successful return true; }
/** * delete the theme 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 * * Since the theme module should never be deleted we'all always return false here * @return bool false */ public function uninstall() { // drop the table if (!DBUtil::dropTable('Themes')) { return false; } // delete all module variables $this->delVar('Theme'); // Deletion not allowed return false; }
/** * Esborrar el mòdul IWbooks */ public function uninstall() { // Delete tables DBUtil::dropTable('IWbooks'); DBUtil::dropTable('IWbooks_materies'); // Esborrar les variables del mòdul ModUtil::delVar('IWbooks', 'itemsperpage'); ModUtil::delVar('IWbooks', 'fpdf'); ModUtil::delVar('IWbooks', 'any'); ModUtil::delVar('IWbooks', 'encap'); ModUtil::delVar('IWbooks', 'plans'); ModUtil::delVar('IWbooks', 'darrer_nivell'); ModUtil::delVar('IWbooks', 'nivells'); ModUtil::delVar('IWbooks', 'llistar_materials'); ModUtil::delVar('IWbooks', 'mida_font'); ModUtil::delVar('IWbooks', 'marca_aigua'); // Acció d'esborrar acabada amb èxit return true; }
/** * delete the comments module * */ public function uninstall() { // drop tables $tables = array('IWstats', 'IWstats_summary'); foreach ($tables as $table) { if (!DBUtil::dropTable($table)) { return false; } } // delete config variables $this->delVars(); // delete the system init hook EventUtil::unregisterPersistentModuleHandler('IWstats', 'core.postinit', array('IWstats_Listeners', 'coreinit')); // Deletion successful return true; }
/** * Delete the IWforms module * @author Albert Pérez Monfort (aperezm@xtec.cat) * @return bool true if successful, false otherwise */ public function Uninstall() { // Delete module table DBUtil::dropTable('IWforms_definition'); DBUtil::dropTable('IWforms_cat'); DBUtil::dropTable('IWforms'); DBUtil::dropTable('IWforms_note'); DBUtil::dropTable('IWforms_note_definition'); DBUtil::dropTable('IWforms_validator'); DBUtil::dropTable('IWforms_group'); //Delete module vars $this->delVar('characters') ->delVar('resumeview') ->delVar('newsColor') ->delVar('viewedColor') ->delVar('completedColor') ->delVar('validatedColor') ->delVar('fieldsColor') ->delVar('contentColor') ->delVar('attached') ->delVar('publicFolder'); HookUtil::unregisterSubscriberBundles($this->version->getHookSubscriberBundles()); //Deletion successfull return true; }
/** * delete the module */ public function uninstall() { DBUtil::dropTable('pagelock'); return true; }
public function uninstall() { // drop table if (!DBUtil::dropTable('scribite')) { return false; } // Delete any module variables $this->delVars(); EventUtil::unregisterPersistentModuleHandler('Scribite', 'core.postinit', array('Scribite_Listeners', 'coreinit')); // Deletion successful return true; }
/** * Desinstal·lació del mòdul Cataleg * * @return bool true si ha anat tot bé, false en qualsevol altre cas. */ public function uninstall() { if (!SecurityUtil::checkPermission('Cataleg::', '::', ACCESS_ADMIN)) { return LogUtil::registerPermissionError(); } // Esborrar taules del mòdul if (!DBUtil::dropTable('cataleg')|| !DBUtil::dropTable('cataleg_eixos')|| !DBUtil::dropTable('cataleg_prioritats')|| !DBUtil::dropTable('cataleg_unitatsImplicades')|| !DBUtil::dropTable('cataleg_subprioritats')|| !DBUtil::dropTable('cataleg_activitats')|| !DBUtil::dropTable('cataleg_activitatsZona')|| !DBUtil::dropTable('cataleg_unitats')|| !DBUtil::dropTable('cataleg_responsables')|| !DBUtil::dropTable('cataleg_contactes')|| !DBUtil::dropTable('cataleg_auxiliar')|| !DBUtil::dropTable('cataleg_centresActivitat')|| !DBUtil::dropTable('cataleg_centres')|| !DBUtil::dropTable('cataleg_gestioActivitatDefaults')|| !DBUtil::dropTable('cataleg_importTaules')|| !DBUtil::dropTable('cataleg_importAssign')|| !DBUtil::dropTable('cataleg_gtafEntities')|| !DBUtil::dropTable('cataleg_gtafGroups') ) return false; //Esborrar variables del mòdul $this->delVars(); // unregister hook handlers HookUtil::unregisterSubscriberBundles($this->version->getHookSubscriberBundles()); return true; }
/** * 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; }
/** * Module delete */ function mediashare_delete() { $tables = array('albums', 'media', 'keywords', 'mediastore', 'mediadb', 'mediahandlers', 'sources', 'access', 'setup', 'invitation'); // Delete the mediashare tables foreach ($tables as $table) { if (!DBUtil::dropTable("mediashare_{$table}")) { return false; } } pnModDelVar('mediashare'); $sql = "DROP PROCEDURE mediashareUpdateNestedSetValuesRec"; DBUtil::executeSQL($sql); $sql = "DROP PROCEDURE mediashareUpdateNestedSetValues"; DBUtil::executeSQL($sql); // Deletion successful return true; }
/** * Delete the IWagendas module * * @return bool true if successful, false otherwise */ public function uninstall() { // Delete module table DBUtil::dropTable('IWagendas'); DBUtil::dropTable('IWagendas_definition'); DBUtil::dropTable('IWagendas_subs'); // Delete module vars $this->delVars(); // Deletion successfull 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() { if (!DBUtil::dropTable('admin_module')) { return false; } if (!DBUtil::dropTable('admin_category')) { return false; } $this->delVars(); // Deletion successful return true; }
public function uninstall() { // delete all database tables DBUtil::dropTable('content_page'); DBUtil::dropTable('content_content'); DBUtil::dropTable('content_pagecategory'); DBUtil::dropTable('content_searchable'); DBUtil::dropTable('content_translatedcontent'); DBUtil::dropTable('content_translatedpage'); DBUtil::dropTable('content_history'); // delete all module variables $this->delVars(); // delete entries from category registry ModUtil::dbInfoLoad('Categories'); DBUtil::deleteWhere('categories_registry', "modname='Content'"); DBUtil::deleteWhere('categories_mapobj', "modname='Content'"); // unregister event/hook handlers EventUtil::unregisterPersistentModuleHandlers('Content'); HookUtil::unregisterSubscriberBundles($this->version->getHookSubscriberBundles()); // Deletion successful return true; }