protected function updateDatabase($step) { $db = JFactory::getDBO(); $html = ''; $status = true; $stopUpdate = false; $continue = false; // Insert configuration codes if needed $hasConfig = $this->dbhelper->_isExistDefaultConfig(); if (!$hasConfig) { $html .= '<div style="width:150px; float:left;">' . JText::_('COM_COMMUNITY_INSTALLATION_UPDATE_CONFIG') . '</div>'; $obj = new stdClass(); $obj->name = 'dbversion'; $obj->params = DBVERSION; if (!$db->insertObject('#__community_config', $obj)) { $html .= $this->failedStatus; $status = false; $errorCode = '7a'; } else { $default = JPATH_BASE . '/components/com_community/default.ini'; $registry = JRegistry::getInstance('community'); $registry->loadFile($default, 'INI', 'community'); // Set the site name $app = JFactory::getApplication(); $registry->setValue('community.sitename', $app->getCfg('sitename')); // Set the photos path $photoPath = rtrim(dirname(JPATH_BASE), '/'); $registry->setValue('community.photospath', $photoPath . '/images'); // Set the videos folder $registry->setValue('community.videofolder', 'images'); // Store the config $obj = new stdClass(); $obj->name = 'config'; $obj->params = $registry->toString('INI', 'community'); if (!$this->dbhelper->insertTableEntry('#__community_config', $obj)) { $html .= $this->failedStatus; ob_start(); ?> <div> Error when trying to create default configurations. Please proceed to the configuration and set your own configuration instead. </div> <?php $html .= ob_get_contents(); @ob_end_clean(); } else { $html .= $this->successStatus; } } } else { $dbversionConfig = $this->dbhelper->getDBVersion(); $dbversion = empty($dbversionConfig) ? 0 : $dbversionConfig; if ($dbversion < DBVERSION) { $updater = new CommunityInstallerUpdate(); $html .= '<div style="width:150px; float:left;">' . JText::_('Updating DB from version ' . $dbversion) . '</div>'; $updateResult = call_user_func(array($updater, 'update_' . $dbversion)); $stopUpdate = empty($updateResult->stopUpdate) ? false : true; if ($updateResult->status) { $html .= $this->successStatus; $status = true; $dbversion++; if ($dbversionConfig === null && $dbversionConfig !== 0) { $this->dbhelper->insertDBVersion($dbversion); } else { $this->dbhelper->updateDBVersion($dbversion); } if ($dbversion < DBVERSION) { $continue = true; } } else { $html .= $this->failedStatus; $status = false; $errorCode = $updateResult->errorCode; } $html .= $updateResult->html; } } if (!$stopUpdate) { if (!$continue) { // Need to update the menu's component id if this is a reinstall if (menuExist()) { $html .= '<div style="width:150px; float:left;">' . JText::_('COM_COMMUNITY_INSTALLATION_UPDATE_MENU_ITEMS') . '</div>'; if (!updateMenuItems()) { ob_start(); ?> <p style="font-weight: 700; color: red;"> System encountered an error while trying to update the existing menu items. You will need to update the existing menu structure manually. </p> <?php $html .= ob_get_contents(); @ob_end_clean(); $html .= $this->failedStatus; } else { $html .= $this->successStatus; } } else { $html .= '<div style="width:150px; float:left;">' . JText::_('COM_COMMUNITY_INSTALLATION_CREATE_MENU_ITEMS') . '</div>'; if (!addMenuItems()) { ob_start(); ?> <p style="font-weight: 700; color: red;"> System encountered an error while trying to create a menu item. You will need to create your menu item manually. </p> <?php $html .= ob_get_contents(); @ob_end_clean(); $html .= $this->failedStatus; } else { $html .= $this->successStatus; } } // Jomsocial menu types if (!menuTypesExist()) { $html .= '<div style="width:150px; float:left;">' . JText::_('COM_COMMUNITY_INSTALLATION_CREATE_TOOLBAR_MENU_ITEM') . '</div>'; if (!addDefaultMenuTypes()) { ob_start(); ?> <p style="font-weight: 700; color: red;"> System encountered an error while trying to create a menu type item. You will need to create your toolbar menu type item manually. </p> <?php $html .= ob_get_contents(); @ob_end_clean(); $html .= $this->failedStatus; } else { $html .= $this->successStatus; } } //clean up registration table if the table installed previously. $this->dbhelper->cleanRegistrationTable(); // Test if we are required to add default custom fields $html .= '<div style="width:150px; float:left;">' . JText::_('COM_COMMUNITY_INSTALLATION_ADD_DEFAULT_CUSTOM_FIELD') . '</div>'; if (needsDefaultCustomFields()) { addDefaultCustomFields(); $html .= $this->successStatus; } else { $html .= $this->notApplicable; } // Test if we are required to add default group categories $html .= '<div style="width:150px; float:left;">' . JText::_('COM_COMMUNITY_INSTALLATION_ADD_DEFAULT_GROUP_CATEGORIES') . '</div>'; if (needsDefaultGroupCategories()) { addDefaultGroupCategories(); $html .= $this->successStatus; } else { $html .= $this->notApplicable; } // Test if we are required to add default videos categories $html .= '<div style="width:150px; float:left;">' . JText::_('COM_COMMUNITY_INSTALLATION_ADD_DEFAULT_VIDEO_CATEGORIES') . '</div>'; if (needsDefaultVideosCategories()) { addDefaultVideosCategories(); $html .= $this->successStatus; } else { $html .= $this->notApplicable; } // Test if we are required to add default event categories $html .= '<div style="width:150px; float:left;">' . JText::_('COM_COMMUNITY_INSTALLATION_ADD_DEFAULT_EVENT_CATEGORIES') . '</div>'; if (needsDefaultEventsCategories()) { addDefaultEventsCategories(); $html .= $this->successStatus; } else { $html .= $this->notApplicable; } // Test if we are required to add default user points $html .= '<div style="width:150px; float:left;">' . JText::_('COM_COMMUNITY_INSTALLATION_ADD_DEFAULT_USERPOINTS') . '</div>'; if (needsDefaultUserPoints()) { //clean up userpoints table if the table installed from previous version of 1.0.128 $this->dbhelper->cleanUserPointsTable(); addDefaultUserPoints(); $html .= $this->successStatus; } else { //cleanup some unused action rules. $this->dbhelper->cleanUserPointsTable(array('friends.request.add', 'friends.request.reject', 'friends.request.cancel', 'friends.invite')); $html .= $this->notApplicable; } } if ($status) { if (!empty($continue)) { $step = $step - 1; } $autoSubmit = $this->getAutoSubmitFunction(); $message = $autoSubmit . $html; } else { $errorMsg = $this->getErrorMessage(7, $errorCode); $message = $html . $errorMsg; $step = $step - 1; } } else { $message = $html; } $drawdata = new stdClass(); $drawdata->message = $message; $drawdata->status = $status; $drawdata->step = $step; $drawdata->title = JText::_('COM_COMMUNITY_INSTALLATION_UPDATING_DATABASE'); $drawdata->install = 1; return $drawdata; }
function postflight($type, $parent) { $version = $this->version; $message = $this->message; $status = $this->status; // fix invalid admin menu id with Joomla 1.7 fixMenuIds(); //update or create menu item. if (menuExist()) { if (!updateMenuItems()) { $message[] = 'Warning : The system encounter an error when it tries to update the menu item. Please kindly update the menu item manually.'; } } else { if (!createMenuItems()) { $message[] = 'Warning : The system encounter an error when it tries to create a menu item. Please kindly create the menu item manually.'; } } ob_start(); ?> <style type="text/css"> /** * Messages */ #eblog-message { color: red; font-size:13px; margin-bottom: 15px; padding: 5px 10px 5px 35px; } #eblog-message.error { border-top: solid 2px #900; border-bottom: solid 2px #900; color: #900; } #eblog-message.info { border-top: solid 2px #06c; border-bottom: solid 2px #06c; color: #06c; } #eblog-message.warning { border-top: solid 2px #f90; border-bottom: solid 2px #f90; color: #c30; } </style> <table width="100%" border="0"> <tr> <td> <div><img src="http://stackideas.com/images/eblog/install_success35.png" /></div> </td> </tr> <?php foreach ($message as $msgString) { $msg = explode(":", $msgString); switch (trim($msg[0])) { case 'Fatal Error': $classname = 'error'; break; case 'Warning': $classname = 'warning'; break; case 'Success': default: $classname = 'info'; break; } ?> <tr> <td><div id="eblog-message" class="<?php echo $classname; ?> "><?php echo $msg[0] . ' : ' . $msg[1]; ?> </div></td> </tr> <?php } ?> <tr> <td><h3>Need help in starting up? Check out our <a href="http://stackideas.com/docs/easyblog/how-tos.html" target="_blank">How To</a> documentation.</h3></td> </tr> </table> <?php $html = ob_get_contents(); @ob_end_clean(); echo $html; return $status; }