public static function checkPatches($type) { jimport('joomla.filesystem.file'); $file = RSMembershipPatchesHelper::getPatchFile($type); $buffer = JFile::read($file); if (strpos($buffer, 'RSMembershipHelper') !== false || strpos($buffer, 'RSMembershipPatchesHelper') !== false) { return true; } return false; }
public function getInput() { $types = array('module', 'menu'); $return = '<table class="table table-hover">'; foreach ($types as $type) { $element_helper = RSMembershipPatchesHelper::getPatchFile($type); $element_writable = is_writable($element_helper); $element_patched = RSMembershipPatchesHelper::checkPatches($type); $return .= '<tr class="row ' . ($element_patched ? 'success' : 'error') . '"> <td>' . JText::_('COM_RSMEMBERSHIP_' . strtoupper($type) . '_PATCH') . '</td> <td>' . $element_helper . '</td> <td>' . ($element_writable ? '<span class="success">' . JText::_('COM_RSMEMBERSHIP_WRITABLE') . '</span>' : '<span class="error">' . JText::_('COM_RSMEMBERSHIP_UNWRITABLE') . '</span>') . '</td> <td><strong>' . ($element_patched ? JText::_('COM_RSMEMBERSHIP_PATCH_APPLIED') : JText::_('COM_RSMEMBERSHIP_PATCH_NOT_APPLIED')) . '</strong></td> <td> <button type="button" class="btn btn-small btn-' . ($element_patched ? 'danger' : 'success') . '" onclick="submitbutton(\'configuration.' . ($element_patched ? 'unpatch' . $type : 'patch' . $type) . '\');" ' . (!$element_writable ? 'disabled="disabled"' : '') . '>' . ($element_patched ? JText::_('COM_RSMEMBERSHIP_REMOVE_PATCH') : JText::_('COM_RSMEMBERSHIP_APPLY_PATCH')) . '</button> </td> </tr>'; } $return .= '</table>'; return $return; }
public function postflight($type, $parent) { $source = $parent->getParent()->getPath('source'); $installer = new JInstaller(); $db = JFactory::getDBO(); $query = $db->getQuery(true); if ($type == 'install') { JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_rsmembership/tables'); // insert default data in Fields, RSMembershipTable $new_fields = array(array('name' => 'address', 'label' => 'Address', 'type' => 'textbox', 'values' => ''), array('name' => 'city', 'label' => 'City', 'type' => 'textbox', 'values' => ''), array('name' => 'state', 'label' => 'State', 'type' => 'textbox', 'values' => ''), array('name' => 'zip', 'label' => 'ZIP', 'type' => 'textbox', 'values' => ''), array('name' => 'country', 'label' => 'Country', 'type' => 'select', 'values' => "//<code>\r\n\$db = JFactory::getDBO();\r\n\$db->setQuery(\"SELECT name FROM #__rsmembership_countries\");\r\nreturn implode(\"\\n\", \$db->loadColumn());\r\n//</code>")); foreach ($new_fields as $new_field) { $field = JTable::getInstance('Field', 'RSMembershipTable'); $field->bind($new_field); $field->required = 1; $field->published = 1; $field->ordering = $field->getNextOrder(); if ($field->store()) { $db->setQuery("SHOW COLUMNS FROM #__rsmembership_subscribers WHERE `Field` = 'f" . $field->id . "'"); if (!$db->loadResult()) { $db->setQuery("ALTER TABLE `#__rsmembership_subscribers` ADD `f" . $field->id . "` VARCHAR( 255 ) NOT NULL"); $db->query(); } } } // insert default Wire Payment $values = array($db->qn('name') => $db->q('Wire Transfer'), $db->qn('details') => $db->q('<p>Please enter your transfer details here.</p>'), $db->qn('tax_type') => $db->q(0), $db->qn('tax_value') => $db->q(0), $db->qn('published') => $db->q(1)); $query->clear(); $query->insert($db->qn('#__rsmembership_payments'))->columns(array_keys($values))->values(implode(', ', $values)); $db->setQuery($query); $db->execute(); } if ($type == 'update') { $tables = $db->getTableList(); if (in_array($db->getPrefix() . 'rsmembership_users', $tables)) { $db->setQuery('RENAME TABLE ' . $db->qn('#__rsmembership_users') . ' TO ' . $db->qn('#__rsmembership_subscribers')); $db->execute(); } if (in_array($db->getPrefix() . 'rsmembership_membership_users', $tables)) { $query->clear(); $db->setQuery('RENAME TABLE ' . $db->qn('#__rsmembership_membership_users') . ' TO ' . $db->qn('#__rsmembership_membership_subscribers')); $db->execute(); } // delete the old Module patch require_once JPATH_ADMINISTRATOR . '/components/com_rsmembership/helpers/patches.php'; jimport('joomla.filesystem.file'); $module = RSMembershipPatchesHelper::getPatchFile('module'); $module_buffer = JFile::read($module); if (strpos($module_buffer, 'RSMembershipHelper') !== false) { $with = "\$query->where('m.published = 1');"; $replace = $with . "\n" . "\t\t" . "if (file_exists(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_rsmembership'.DS.'helpers'.DS.'rsmembership.php')) {" . "\n" . "\t\t\t" . "include_once(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_rsmembership'.DS.'helpers'.DS.'rsmembership.php');" . "\n" . "\t\t\t" . "\$rsm_where = RSMembershipHelper::getModulesWhere();" . "\n" . "\t\t\t" . "if (\$rsm_where) \$query->where(\$rsm_where);" . "\n" . "\t\t" . "}" . "\n"; $module_buffer = str_replace($replace, $with, $module_buffer); $replace = "\$db->setQuery(\$query);"; // add the new patch $with = "\n" . "\t\t" . "if (file_exists(JPATH_ADMINISTRATOR.'/components/com_rsmembership/helpers/patches.php')) {" . "\n" . "\t\t\t" . "include_once JPATH_ADMINISTRATOR.'/components/com_rsmembership/helpers/patches.php';" . "\n" . "\t\t\t" . "\$rsm_where = RSMembershipPatchesHelper::getModulesWhere();" . "\n" . "\t\t\t" . "if (\$rsm_where) \$query->where(\$rsm_where);" . "\n" . "\t\t" . "}" . "\n" . "\n" . "\t\t" . $replace; $module_buffer = str_replace($replace, $with, $module_buffer); if (!JFile::write($module, $module_buffer)) { JError::raiseWarning(1, JText::_('COM_RSMEMBERSHIP_REMOVE_OLD_MODULE_PATCHES_ERROR')); } } // delete the old Menu patch $menu = RSMembershipPatchesHelper::getPatchFile('menu'); $menu_buffer = JFile::read($menu); if (strpos($menu_buffer, 'RSMembershipHelper') !== false) { $with = "\$items \t\t= \$menu->getItems('menutype', \$params->get('menutype'));"; $replace = $with . "\n" . "\t\t" . "if (file_exists(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_rsmembership'.DS.'helpers'.DS.'rsmembership.php')) {" . "\n" . "\t\t\t" . "include_once(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_rsmembership'.DS.'helpers'.DS.'rsmembership.php');" . "\n" . "\t\t\t" . "RSMembershipHelper::checkMenuShared(\$items);" . "\n" . "\t\t" . "}" . "\n"; $menu_buffer = str_replace($replace, $with, $menu_buffer); // add new Menu patch $replace = "\$menu->getItems('menutype', \$params->get('menutype'));"; $with = $replace . "\n\n" . "\t\t\t" . "if (file_exists(JPATH_ADMINISTRATOR.'/components/com_rsmembership/helpers/patches.php')) {" . "\n" . "\t\t\t\t" . "include_once JPATH_ADMINISTRATOR.'/components/com_rsmembership/helpers/patches.php';" . "\n" . "\t\t\t\t" . "RSMembershipPatchesHelper::checkMenuShared(\$items);" . "\n" . "\t\t\t" . "}" . "\n"; $menu_buffer = str_replace($replace, $with, $menu_buffer); if (!JFile::write($menu, $menu_buffer)) { JError::raiseWarning(1, JText::_('COM_RSMEMBERSHIP_REMOVE_OLD_MENU_PATCHES_ERROR')); } } // parsing sql $sqlfile = JPATH_ADMINISTRATOR . '/components/com_rsmembership/sql/mysql/install.mysql.sql'; $buffer = file_get_contents($sqlfile); if ($buffer === false) { JError::raiseWarning(1, JText::_('JLIB_INSTALLER_ERROR_SQL_READBUFFER')); return false; } jimport('joomla.installer.helper'); $queries = JInstallerHelper::splitSql($buffer); if (count($queries) == 0) { // No queries to process return 0; } // Process each query in the $queries array (split out of sql file). foreach ($queries as $sqlquery) { $sqlquery = trim($sqlquery); if ($sqlquery != '' && $sqlquery[0] != '#') { $db->setQuery($sqlquery); if (!$db->query()) { JError::raiseWarning(1, JText::sprintf('JLIB_INSTALLER_ERROR_SQL_ERROR', $db->stderr(true))); return false; } } } // converting date from int(11) to datetime // transaction $transactions_columns = $db->getTableColumns('#__rsmembership_transactions'); if ($transactions_columns['date'] == 'int') { $query->clear(); $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_transactions') . " CHANGE " . $db->qn('date') . " " . $db->qn('date') . " VARCHAR(255) NOT NULL"); $db->execute(); // convert the date $query->clear(); $query->update('#__rsmembership_transactions')->set($db->qn('date') . " = IFNULL(CONVERT_TZ(FROM_UNIXTIME(" . $db->qn('date') . "), @@session.time_zone, 'UTC'), FROM_UNIXTIME(" . $db->qn('date') . "))"); $db->setQuery($query); $db->execute(); $query->clear(); $query->update($db->qn('#__rsmembership_transactions'))->set($db->qn('date') . ' = ' . $db->q('0000-00-00 00:00:00'))->where($db->qn('date') . ' LIKE ' . $db->q('1970-01-01%')); $db->setQuery($query); $db->execute(); $query->clear(); $query->update($db->qn('#__rsmembership_transactions'))->set($db->qn('date') . ' = ' . $db->q('0000-00-00 00:00:00'))->where($db->qn('date') . ' LIKE ' . $db->q('1969-12-31%')); $db->setQuery($query); $db->execute(); // change the column type $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_transactions') . " CHANGE " . $db->qn('date') . " " . $db->qn('date') . " DATETIME NOT NULL"); $db->execute(); } // index on coupon name $transactions_columns = $db->getTableColumns('#__rsmembership_transactions', false); if ($transactions_columns['coupon']->Key != 'MUL') { $db->setQuery('ALTER TABLE ' . $db->qn('#__rsmembership_transactions') . ' ADD INDEX ( ' . $db->qn('coupon') . ' )'); $db->execute(); } // subscribers $subscribers_columns = $db->getTableColumns('#__rsmembership_membership_subscribers'); if ($subscribers_columns['notified'] == 'tinyint') { $query->clear(); $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_membership_subscribers') . " CHANGE " . $db->qn('notified') . " " . $db->qn('notified') . " DATETIME NOT NULL"); $db->execute(); } // fields $fields_columns = $db->getTableColumns('#__rsmembership_fields'); if (!isset($fields_columns['showinsubscribers'])) { $query->clear(); $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_fields') . " ADD " . $db->qn('showinsubscribers') . " TINYINT(1) NOT NULL"); $db->execute(); } // memberships $memberships_columns = $db->getTableColumns('#__rsmembership_memberships'); if (!isset($memberships_columns['admin_email_from_addr'])) { $query->clear(); $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_memberships') . " ADD " . $db->qn('admin_email_from_addr') . " varchar(255) NOT NULL"); $db->execute(); } // coupons $coupons_columns = $db->getTableColumns('#__rsmembership_coupons'); if ($coupons_columns['date_added'] == 'int') { $query->clear(); $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_coupons') . " CHANGE " . $db->qn('date_added') . " " . $db->qn('date_added') . " VARCHAR(255) NOT NULL"); $db->execute(); // convert the date $query->update('#__rsmembership_coupons')->set($db->qn('date_added') . " = IFNULL(CONVERT_TZ(FROM_UNIXTIME(" . $db->qn('date_added') . "), @@session.time_zone, 'UTC'), FROM_UNIXTIME(" . $db->qn('date_added') . "))"); $db->setQuery($query); $db->execute(); $query->clear(); $query->update($db->qn('#__rsmembership_coupons'))->set($db->qn('date_added') . ' = ' . $db->q('0000-00-00 00:00:00'))->where($db->qn('date_added') . ' LIKE ' . $db->q('1970-01-01%')); $db->setQuery($query); $db->execute(); $query->clear(); $query->update($db->qn('#__rsmembership_coupons'))->set($db->qn('date_added') . ' = ' . $db->q('0000-00-00 00:00:00'))->where($db->qn('date_added') . ' LIKE ' . $db->q('1969-12-31%')); $db->setQuery($query); $db->execute(); // change the column type $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_coupons') . " CHANGE " . $db->qn('date_added') . " " . $db->qn('date_added') . " DATETIME NOT NULL"); $db->execute(); } if ($coupons_columns['date_start'] == 'int') { $query->clear(); $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_coupons') . " CHANGE " . $db->qn('date_start') . " " . $db->qn('date_start') . " VARCHAR(255) NOT NULL"); $db->execute(); // convert the date $query->update('#__rsmembership_coupons')->set($db->qn('date_start') . " = IFNULL(CONVERT_TZ(FROM_UNIXTIME(" . $db->qn('date_start') . "), @@session.time_zone, 'UTC'), FROM_UNIXTIME(" . $db->qn('date_start') . "))"); $db->setQuery($query); $db->execute(); $query->clear(); $query->update($db->qn('#__rsmembership_coupons'))->set($db->qn('date_start') . ' = ' . $db->q('0000-00-00 00:00:00'))->where($db->qn('date_start') . ' LIKE ' . $db->q('1970-01-01%')); $db->setQuery($query); $db->execute(); $query->clear(); $query->update($db->qn('#__rsmembership_coupons'))->set($db->qn('date_start') . ' = ' . $db->q('0000-00-00 00:00:00'))->where($db->qn('date_start') . ' LIKE ' . $db->q('1969-12-31%')); $db->setQuery($query); $db->execute(); // change the column type $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_coupons') . " CHANGE " . $db->qn('date_start') . " " . $db->qn('date_start') . " DATETIME NOT NULL"); $db->execute(); } if ($coupons_columns['date_end'] == 'int') { $query->clear(); $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_coupons') . " CHANGE " . $db->qn('date_end') . " " . $db->qn('date_end') . " VARCHAR(255) NOT NULL"); $db->execute(); // convert the date $query->update('#__rsmembership_coupons')->set($db->qn('date_end') . " = IFNULL(CONVERT_TZ(FROM_UNIXTIME(" . $db->qn('date_end') . "), @@session.time_zone, 'UTC'), FROM_UNIXTIME(" . $db->qn('date_end') . "))"); $db->setQuery($query); $db->execute(); $query->clear(); $query->update($db->qn('#__rsmembership_coupons'))->set($db->qn('date_end') . ' = ' . $db->q('0000-00-00 00:00:00'))->where($db->qn('date_end') . ' LIKE ' . $db->q('1970-01-01%')); $db->setQuery($query); $db->execute(); $query->clear(); $query->update($db->qn('#__rsmembership_coupons'))->set($db->qn('date_end') . ' = ' . $db->q('0000-00-00 00:00:00'))->where($db->qn('date_end') . ' LIKE ' . $db->q('1969-12-31%')); $db->setQuery($query); $db->execute(); // change the column type $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_coupons') . " CHANGE " . $db->qn('date_end') . " " . $db->qn('date_end') . " DATETIME NOT NULL"); $db->execute(); } // index on coupon name $coupons_columns = $db->getTableColumns('#__rsmembership_coupons', false); if ($coupons_columns['name']->Key != 'MUL') { $db->setQuery('ALTER TABLE ' . $db->qn('#__rsmembership_coupons') . ' ADD INDEX ( ' . $db->qn('name') . ' )'); $db->execute(); } // logs $logs_columns = $db->getTableColumns('#__rsmembership_logs'); if ($logs_columns['date'] == 'int') { $query->clear(); $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_logs') . " CHANGE " . $db->qn('date') . " " . $db->qn('date') . " VARCHAR(255) NOT NULL"); $db->execute(); // convert the date $query->update('#__rsmembership_logs')->set($db->qn('date') . " = IFNULL(CONVERT_TZ(FROM_UNIXTIME(" . $db->qn('date') . "), @@session.time_zone, 'UTC'), FROM_UNIXTIME(" . $db->qn('date') . "))"); $db->setQuery($query); $db->execute(); $query->clear(); $query->update($db->qn('#__rsmembership_logs'))->set($db->qn('date') . ' = ' . $db->q('0000-00-00 00:00:00'))->where($db->qn('date') . ' LIKE ' . $db->q('1970-01-01%')); $db->setQuery($query); $db->execute(); $query->clear(); $query->update($db->qn('#__rsmembership_logs'))->set($db->qn('date') . ' = ' . $db->q('0000-00-00 00:00:00'))->where($db->qn('date') . ' LIKE ' . $db->q('1969-12-31%')); $db->setQuery($query); $db->execute(); // change the column type $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_logs') . " CHANGE " . $db->qn('date') . " " . $db->qn('date') . " DATETIME NOT NULL"); $db->execute(); } // fields $memberships_columns = $db->getTableColumns('#__rsmembership_memberships'); if (!isset($memberships_columns['recurring_times'])) { $query->clear(); $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_memberships') . " ADD " . $db->qn('recurring_times') . " INT(11) NOT NULL"); $db->execute(); } // membership_subscribers $membership_subscribers_columns = $db->getTableColumns('#__rsmembership_membership_subscribers'); if ($membership_subscribers_columns['membership_start'] == 'int') { $query->clear(); $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_membership_subscribers') . " CHANGE " . $db->qn('membership_start') . " " . $db->qn('membership_start') . " VARCHAR(255) NOT NULL"); $db->execute(); // convert the date $query->update('#__rsmembership_membership_subscribers')->set($db->qn('membership_start') . " = IFNULL(CONVERT_TZ(FROM_UNIXTIME(" . $db->qn('membership_start') . "), @@session.time_zone, 'UTC'), FROM_UNIXTIME(" . $db->qn('membership_start') . "))"); $db->setQuery($query); $db->execute(); $query->clear(); $query->update($db->qn('#__rsmembership_membership_subscribers'))->set($db->qn('membership_start') . ' = ' . $db->q('0000-00-00 00:00:00'))->where($db->qn('membership_start') . ' LIKE ' . $db->q('1970-01-01%')); $db->setQuery($query); $db->execute(); $query->clear(); $query->update($db->qn('#__rsmembership_membership_subscribers'))->set($db->qn('membership_start') . ' = ' . $db->q('0000-00-00 00:00:00'))->where($db->qn('membership_start') . ' LIKE ' . $db->q('1969-12-31%')); $db->setQuery($query); $db->execute(); // change the column type $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_membership_subscribers') . " CHANGE " . $db->qn('membership_start') . " " . $db->qn('membership_start') . " DATETIME NOT NULL"); $db->execute(); } if ($membership_subscribers_columns['membership_end'] == 'int') { $query->clear(); $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_membership_subscribers') . " CHANGE " . $db->qn('membership_end') . " " . $db->qn('membership_end') . " VARCHAR(255) NOT NULL"); $db->execute(); // convert the date $query->update('#__rsmembership_membership_subscribers')->set($db->qn('membership_end') . " = IFNULL(CONVERT_TZ(FROM_UNIXTIME(" . $db->qn('membership_end') . "), @@session.time_zone, 'UTC'), FROM_UNIXTIME(" . $db->qn('membership_end') . "))"); $db->setQuery($query); $db->execute(); $query->clear(); $query->update($db->qn('#__rsmembership_membership_subscribers'))->set($db->qn('membership_end') . ' = ' . $db->q('0000-00-00 00:00:00'))->where($db->qn('membership_end') . ' LIKE ' . $db->q('1970-01-01%')); $db->setQuery($query); $db->execute(); $query->clear(); $query->update($db->qn('#__rsmembership_membership_subscribers'))->set($db->qn('membership_end') . ' = ' . $db->q('0000-00-00 00:00:00'))->where($db->qn('membership_end') . ' LIKE ' . $db->q('1969-12-31%')); $db->setQuery($query); $db->execute(); // change the column type $db->setQuery("ALTER TABLE " . $db->qn('#__rsmembership_membership_subscribers') . " CHANGE " . $db->qn('membership_end') . " " . $db->qn('membership_end') . " DATETIME NOT NULL"); $db->execute(); } // end converting date from int(11) to datetime // Logs $query = $db->getQuery(true); $query->update($db->qn('#__rsmembership_logs'))->set($db->qn('path') . ' = CONCAT(' . $db->q('[DWN] ') . ', ' . $db->qn('path') . ')')->where($db->qn('path') . ' NOT LIKE ' . $db->q('[DWN] %'))->where($db->qn('path') . ' NOT LIKE ' . $db->q('[URL] %')); $db->setQuery($query); $db->execute(); } $messages = array('plg_rsmembershipwire' => false, 'plg_rsmembership' => false); // Install the Wire Payment Plugin if ($installer->install($source . '/other/plg_rsmembershipwire')) { $query->clear(); $query->update('#__extensions')->set($db->qn('enabled') . '=' . $db->q(1))->where($db->qn('element') . '=' . $db->q('rsmembershipwire'))->where($db->qn('type') . '=' . $db->q('plugin'))->where($db->qn('folder') . '=' . $db->q('system')); $db->setQuery($query); $db->execute(); $messages['plg_rsmembershipwire'] = true; } // Install the System Plugin if ($installer->install($source . '/other/plg_rsmembership')) { $query->clear(); $query->update('#__extensions')->set($db->qn('enabled') . '=' . $db->q(1))->where($db->qn('element') . '=' . $db->q('rsmembership'))->where($db->qn('type') . '=' . $db->q('plugin'))->where($db->qn('folder') . '=' . $db->q('system')); $db->setQuery($query); $db->execute(); $messages['plg_rsmembership'] = true; } $this->showInstallMessage($messages); }
function unpatchmenu() { // Check for request forgeries JRequest::checkToken() or jexit('Invalid Token'); jimport('joomla.filesystem.file'); $menu = RSMembershipPatchesHelper::getPatchFile('menu'); $buffer = JFile::read($menu); if (strpos($buffer, 'RSMembershipPatchesHelper') === false && strpos($buffer, 'RSMembershipHelper') === false) { return $this->setRedirect('index.php?option=com_rsmembership&view=configuration&tabposition=1', JText::_('COM_RSMEMBERSHIP_PATCH_NOT_APPLIED')); } if (!is_writable($menu)) { JError::raiseWarning(500, JText::_('COM_RSMEMBERSHIP_PATCH_NOT_WRITABLE')); return $this->setRedirect('index.php?option=com_rsmembership&view=configuration&tabposition=1'); } // delete the old patch just in case the update couldn't do it if (strpos($buffer, 'RSMembershipHelper') !== false) { $with = "\$items \t\t= \$menu->getItems('menutype', \$params->get('menutype'));"; $replace = $with . "\n" . "\t\t" . "if (file_exists(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_rsmembership'.DS.'helpers'.DS.'rsmembership.php')) {" . "\n" . "\t\t\t" . "include_once(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_rsmembership'.DS.'helpers'.DS.'rsmembership.php');" . "\n" . "\t\t\t" . "RSMembershipHelper::checkMenuShared(\$items);" . "\n" . "\t\t" . "}" . "\n"; $buffer = str_replace($replace, $with, $buffer); } $with = "\$menu->getItems('menutype', \$params->get('menutype'));"; $replace = $with . "\n\n" . "\t\t\t" . "if (file_exists(JPATH_ADMINISTRATOR.'/components/com_rsmembership/helpers/patches.php')) {" . "\n" . "\t\t\t\t" . "include_once JPATH_ADMINISTRATOR.'/components/com_rsmembership/helpers/patches.php';" . "\n" . "\t\t\t\t" . "RSMembershipPatchesHelper::checkMenuShared(\$items);" . "\n" . "\t\t\t" . "}" . "\n"; $buffer = str_replace($replace, $with, $buffer); if (JFile::write($menu, $buffer)) { return $this->setRedirect('index.php?option=com_rsmembership&view=configuration', JText::_('COM_RSMEMBERSHIP_PATCH_REMOVED_SUCCESS')); } JError::raiseWarning(500, JText::_('COM_RSMEMBERSHIP_PATCH_NOT_WRITABLE')); $this->setRedirect('index.php?option=com_rsmembership&view=configuration&tabposition=1'); }