Beispiel #1
0
 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;
 }
Beispiel #2
0
    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;
    }
Beispiel #3
0
 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);
 }
Beispiel #4
0
 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');
 }