Esempio n. 1
0
 function unpatchmenu()
 {
     // Check for request forgeries
     JRequest::checkToken() or jexit('Invalid Token');
     jimport('joomla.filesystem.file');
     $menu = RSMembershipHelper::getPatchFile('menu');
     $buffer = JFile::read($menu);
     if (strpos($buffer, 'RSMembershipHelper') === false) {
         return $this->setRedirect('index.php?option=com_rsmembership&view=configuration&tabposition=1', JText::_('RSM_PATCH_NOT_APPLIED'));
     }
     if (!is_writable($menu)) {
         JError::raiseWarning(500, JText::_('RSM_PATCH_NOT_WRITABLE'));
         return $this->setRedirect('index.php?option=com_rsmembership&view=configuration&tabposition=1');
     }
     if (RSMembershipHelper::isJ16()) {
         if (RSMembershipHelper::isJ25()) {
             $with = "\$items \t\t= \$menu->getItems('menutype', \$params->get('menutype'));";
         } else {
             $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);
     } else {
         $possibles = array("\n" . "\t\t\t" . "RSMembershipHelper::checkMenuShared(&\$rows);", "\n" . "\t\t\t" . "RSMembershipHelper::checkMenuShared(\$rows);");
         foreach ($possibles as $possible) {
             $with = "\$rows = \$items->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');" . $possible . "\n" . "\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::_('RSM_PATCH_REMOVED_SUCCESS'));
     }
     JError::raiseWarning(500, JText::_('RSM_PATCH_NOT_WRITABLE'));
     $this->setRedirect('index.php?option=com_rsmembership&view=configuration&tabposition=1');
 }