0, 'folders' => 0 ); $this->useJemConfig = true; $this->getHeader(); ?>
".Text::_('COM_JEM_INSTALL_INFO').": ". Text::sprintf('COM_JEM_INSTALL_DIRECTORY_NOT_EXISTS', $createDirs[0])."
"; echo "".Text::_('COM_JEM_INSTALL_DIRECTORY_TRY_CREATE').":
"; echo "".Text::_('COM_JEM_INSTALL_DIRECTORY_CHECK_EXISTANCE')."
"; } echo "".Text::_('COM_JEM_INSTALL_SUCCESS').": ". Text::_('COM_JEM_INSTALL_FOUND_SETTINGS')."
"; } echo "
"0", "event_comunsolution"=>"0", "event_show_attendeenames"=>"2", "event_show_more_attendeedetails"=>"0", "event_show_author"=>"1", "event_lg"=>"", "event_link_author"=>"1", "event_show_contact"=>"1", "event_link_contact"=>"1", "event_show_description"=>"1", "event_show_detailsadress"=>"1", "event_show_detailstitle"=>"1", "event_show_detlinkvenue"=>"1", "event_show_hits"=>"0", "event_show_locdescription"=>"1", "event_show_mapserv"=>"0", "event_show_print_icon"=>"1", "event_show_email_icon"=>"1", "event_show_ical_icon"=>"1", "event_tld"=>"", "editevent_show_meta_option"=>"0", "editevent_show_attachment_tab"=>"0", "editevent_show_other_tab"=>"0", "global_display"=>"1", "global_regname"=>"1", "global_show_archive_icon"=>"1", "global_show_filter"=>"1", "global_show_email_icon"=>"1", "global_show_ical_icon"=>"1", "global_show_icons"=>"1", "global_show_locdescription"=>"1", "global_show_print_icon"=>"1", "global_show_timedetails"=>"1", "global_show_detailsadress"=>"1", "global_show_detlinkvenue"=>"1", "global_show_listevents"=>"1", "global_show_mapserv"=>"0", "global_tld"=>"", "global_lg"=>"", "global_cleanup_db_on_uninstall"=>"0" ); $this->setGlobalAttribs($param_array); } /** * method to uninstall the component * * @return void */ function uninstall($parent) { $this->getHeader(); ?>
getManifest()->version); ?>
; newRelease = (string) $parent->manifest->version; if (version_compare(JVERSION, '6.0.0', 'ge') || // J! 6.x NOT supported, but allow alpha/beta !(($current_version >= '4.3' && $devLevel >= '0') || ($current_version >= '4.2' && $devLevel >= '9') || ($current_version == '4.1' && $devLevel >= '5') || ($current_version == '4.0' && $devLevel >= '6') )) { $app->enqueueMessage(Text::_('COM_JEM_PREFLIGHT_WRONG_JOOMLA_VERSION'), 'warning'); return false; } // Minimum required PHP version $minPhpVersion = "8.0.0"; // Abort if PHP release is older than required version if(version_compare(PHP_VERSION, $minPhpVersion, '<')) { $app->enqueueMessage(Text::sprintf('COM_JEM_PREFLIGHT_WRONG_PHP_VERSION', $minPhpVersion, PHP_VERSION), 'warning'); return false; } // abort if the release being installed is not newer than the currently installed version if (strtolower($type) == 'update') { // Installed component version $this->oldRelease = $this->getParam('version'); // Installing component version as per Manifest file // $this->newRelease = $parent->get('manifest')->version; if (version_compare($this->newRelease, $this->oldRelease, 'lt')) { $app->enqueueMessage(Text::sprintf('COM_JEM_PREFLIGHT_INCORRECT_VERSION_SEQUENCE', $this->oldRelease, $this->newRelease), 'warning'); return false; } // Remove obsolete files and folder $this->deleteObsoleteFiles(); // Check columns in database $this->checkColumnsIntoDatabase(); // Verify the data type of 'unregistra_until' in the database if($this->oldRelease < '4.3.1'){ $this->checkUnregistraUntil(); } // Ensure css files are (over)writable $this->makeFilesWritable(); // Initialize schema table if necessary $this->initializeSchema($this->oldRelease); } // $type is the type of change (install, update or discover_install) echo '' . Text::_('COM_JEM_PREFLIGHT_' . strtoupper($type) . '_TEXT') . '
'; } /** * Method to run after an install/update/uninstall method * (it seams method is not called on uninstall) * * @return void */ function postflight($type, $parent) { // $type is the type of change (install, update or discover_install) echo '' . Text::_('COM_JEM_POSTFLIGHT_' . strtoupper($type) . '_TEXT') . '
'; if (strtolower($type) == 'update') { // Changes between 2.3.5 -> 4.0 if (version_compare($this->oldRelease, '4.0', 'lt') && version_compare($this->newRelease, '2.3.5', 'gt')) { // change categoriesdetailed view name in menu items $this->updateJem2315(); } } elseif (strtolower($type) == 'install') { $this->fixJemMenuItems(); } } /** * Get a parameter from the manifest file (actually, from the manifest cache). * * @param $name The name of the parameter * * @return The parameter */ public function getParam($name) { $db = Factory::getContainer()->get('DatabaseDriver'); $query = $db->getQuery(true); $query->select('manifest_cache')->from('#__extensions')->where(array("type = 'component'", "element = 'com_jem'")); $db->setQuery($query); $manifest = json_decode($db->loadResult(), true); return $manifest[$name]; } /** * Sets parameter values in the component's row of the extension table * * @param $param_array An array holding the params to store */ private function setParams($param_array) { if (is_array($param_array) && (count($param_array) > 0)) { // read the existing component value(s) $db = Factory::getContainer()->get('DatabaseDriver'); $query = $db->getQuery(true); $query->select('params')->from('#__extensions')->where(array("type = 'component'", "element = 'com_jem'")); $db->setQuery($query); $params = json_decode($db->loadResult(), true); // add the new variable(s) to the existing one(s) foreach ($param_array as $name => $value) { $params[(string) $name] = (string) $value; } // store the combined new and existing values back as a JSON string $paramsString = json_encode($params); $query = $db->getQuery(true); $query->update('#__extensions') ->set('params = '.$db->quote($paramsString)) ->where(array("type = 'component'", "element = 'com_jem'")); $db->setQuery($query); $db->execute(); } } /** * Gets globalattrib values from the settings table * * @return JRegistry object */ private function getGlobalParams() { $registry = new Registry(); try { $db = Factory::getContainer()->get('DatabaseDriver'); $query = $db->getQuery(true); if ($this->useJemConfig) { $query->select('value')->from('#__jem_config') ->where($db->quoteName('keyname') . ' = ' . $db->quote('globalattribs')); } else { $query->select('globalattribs')->from('#__jem_settings')->where('id=1'); } $db->setQuery($query); $registry->loadString($db->loadResult()); } catch (Exception $ex) { } return $registry; } /** * Sets globalattrib values in the settings table * * @param $param_array An array holding the params to store */ private function setGlobalAttribs($param_array) { if (is_array($param_array) && (count($param_array) > 0)) { // read the existing component value(s) $db = Factory::getContainer()->get('DatabaseDriver'); $query = $db->getQuery(true); if ($this->useJemConfig) { $query->select('value')->from('#__jem_config') ->where($db->quoteName('keyname') . ' = ' . $db->quote('globalattribs')); } else { $query->select('globalattribs')->from('#__jem_settings'); } $db->setQuery($query); $params = json_decode($db->loadResult(), true); // add the new variable(s) to the existing one(s) foreach ($param_array as $name => $value) { $params[(string) $name] = (string) $value; } // store the combined new and existing values back as a JSON string $paramsString = json_encode($params); $query = $db->getQuery(true); if ($this->useJemConfig) { $query->update('#__jem_config') ->where($db->quoteName('keyname') . ' = ' . $db->quote('globalattribs')) ->set($db->quoteName('value') . ' = '. $db->quote($paramsString)); } else { $query->update('#__jem_settings') ->set('globalattribs = '.$db->quote($paramsString)); } $db->setQuery($query); $db->execute(); } } /** * Helper method that outputs a short JEM header with logo and text */ private function getHeader() { ?> get('DatabaseDriver');
        // Get extension ID of JEM
        $query = $db->getQuery(true);
        $query->select('extension_id')->from('#__extensions')->where(array("type='component'", "element='com_jem'"));
        $db->setQuery($query);
        $extensionId = $db->loadResult();
        if (!$extensionId) {
            // This is a fresh installation, return
            return;
        }
        // Check if an entry already exists in schemas table
        $query = $db->getQuery(true);
        $query->select('version_id')->from('#__schemas')->where('extension_id = '.$extensionId);
        $db->setQuery($query);
        if ($db->loadResult()) {
            // Entry exists, return
            return;
        }
        // Insert extension ID and old release version number into schemas table
        $query = $db->getQuery(true);
        $query->insert('#__schemas')
            ->columns($db->quoteName(array('extension_id', 'version_id')))
            ->values(implode(',', array($extensionId, $db->quote($versionId))));
        $db->setQuery($query);
        $db->execute();
    }
    /**
     * Remove all JEM menu items.
     *
     * @return void
     */
    private function removeJemMenuItems()
    {
        // remove all "com_jem..." frontend entries
        $db = Factory::getContainer()->get('DatabaseDriver');
        $query = $db->getQuery(true);
        $query->delete('#__menu');
        $query->where(array('client_id = 0', 'link LIKE "index.php?option=com_jem%"'));
        $db->setQuery($query);
        $db->execute();
    }
    /**
     * Disable all JEM menu items.
     * (usefull on uninstall to prevent dead links)
     *
     * @return void
     */
    private function disableJemMenuItems()
    {
        // unpublish all "com_jem..." frontend entries
        $db = Factory::getContainer()->get('DatabaseDriver');
        $query = $db->getQuery(true);
        $query->update('#__menu');
        $query->set('published = 0');
        $query->where(array('client_id = 0', 'published > 0', 'link LIKE "index.php?option=com_jem%"'));
        $db->setQuery($query);
        $db->execute();
    }
    /**
     * Fix all JEM menu items by setting new extension id.
     * (usefull on install to let menu items from older installation refer new extension id)
     *
     * @return void
     */
    private function fixJemMenuItems()
    {
        // Get (new) extension ID of JEM
        $db = Factory::getContainer()->get('DatabaseDriver');
        $query = $db->getQuery(true);
        $query->select('extension_id')->from('#__extensions')->where(array("type='component'", "element='com_jem'"));
        $db->setQuery($query);
        $newId = $db->loadResult();
        if ($newId) {
            // set compponent id on all "com_jem..." frontend entries
            $query = $db->getQuery(true);
            $query->update('#__menu');
            $query->set('component_id = ' . $db->quote($newId));
            $query->where(array('client_id = 0', 'link LIKE "index.php?option=com_jem%"'));
            $db->setQuery($query);
            $db->execute();
        }
    }
    /**
     * Remove all obsolete files and folders of previous versions.
     *
     * Todo: Enhance the lists on each new version.
     *
     * @return void
     */
    private function deleteObsoleteFiles()
    {
        $files = array(
            // obsolete since JEM 4.0.0
			'/administrator/components/com_jem/sql/updates/1.9.1.sql',
			'/administrator/components/com_jem/sql/updates/1.9.2.sql',
			'/administrator/components/com_jem/sql/updates/1.9.3.sql',
			'/administrator/components/com_jem/sql/updates/1.9.4.sql',
			'/administrator/components/com_jem/sql/updates/1.9.5.sql',
			'/administrator/components/com_jem/sql/updates/1.9.6.sql',
			'/administrator/components/com_jem/sql/updates/1.9.7.sql',
			'/administrator/components/com_jem/sql/updates/1.9.8.sql',
			'/administrator/components/com_jem/sql/updates/1.9.sql',
			'/administrator/components/com_jem/sql/updates/2.0.0.sql',
			'/administrator/components/com_jem/sql/updates/2.0.1.sql',
			'/administrator/components/com_jem/sql/updates/2.0.2.sql',
			'/administrator/components/com_jem/sql/updates/2.0.3.sql',
			'/administrator/components/com_jem/sql/updates/2.1.0.sql',
			'/administrator/components/com_jem/sql/updates/2.1.1.sql',
			'/administrator/components/com_jem/sql/updates/2.1.2.sql',
			'/administrator/components/com_jem/sql/updates/2.1.3.sql',
			'/administrator/components/com_jem/sql/updates/2.1.4.1.sql',
			'/administrator/components/com_jem/sql/updates/2.1.4.2.sql',
			'/administrator/components/com_jem/sql/updates/2.1.4.sql',
			'/administrator/components/com_jem/sql/updates/2.1.5.sql',
			'/administrator/components/com_jem/sql/updates/2.1.6-dev3.sql',
			'/administrator/components/com_jem/sql/updates/2.1.6-dev5.sql',
			'/administrator/components/com_jem/sql/updates/2.1.7-dev1.sql',
			'/administrator/components/com_jem/sql/updates/2.1.7-dev5.sql',
			'/administrator/components/com_jem/sql/updates/2.2.0-p1.sql',
			'/administrator/components/com_jem/sql/updates/2.2.1-dev2.sql',
			'/administrator/components/com_jem/sql/updates/2.2.3-dev3.sql',
			'/administrator/components/com_jem/sql/updates/2.3.0-beta2.sql',
			'/administrator/components/com_jem/sql/updates/2.3.0-dev1.sql',
			'/administrator/components/com_jem/sql/updates/2.3.1.sql',
            // remove old langage files with lang prefix
			'/language/en-GB/en-GB.pkg_jem.sys.ini',
			'/administrator/components/com_jem/language/en-GB/en-GB.com_jem.ini',
			'/administrator/components/com_jem/language/en-GB/en-GB.com_jem.sys.ini',
			'/components/com_jem/language/en-GB/en-GB.com_jem.ini',
			'/modules/mod_jem_banner/language/en-GB/en-GB.mod_jem_banner.ini',
			'/modules/mod_jem_banner/language/en-GB/en-GB.mod_jem_banner.sys.ini',
			'/modules/mod_jem_cal/language/en-GB/en-GB.mod_jem_cal.ini',
			'/modules/mod_jem_cal/language/en-GB/en-GB.mod_jem_cal.sys.ini',
			'/modules/mod_jem_jubilee/language/en-GB/en-GB.mod_jem_jubilee.ini',
			'/modules/mod_jem_jubilee/language/en-GB/en-GB.mod_jem_jubilee.sys.ini',
			'/modules/mod_jem_teaser/language/en-GB/en-GB.mod_jem_teaser.ini',
			'/modules/mod_jem_teaser/language/en-GB/en-GB.mod_jem_teaser.sys.ini',
			'/modules/mod_jem_wide/language/en-GB/en-GB.mod_jem_wide.ini',
			'/modules/mod_jem_wide/language/en-GB/en-GB.mod_jem_wide.sys.ini',
			'/modules/mod_jem/language/en-GB/en-GB.mod_jem.ini',
			'/modules/mod_jem/language/en-GB/en-GB.mod_jem.sys.ini',
			'/plugins/content/jem/language/en-GB/en-GB.plg_content_jem.ini',
			'/plugins/content/jem/language/en-GB/en-GB.plg_content_jem.sys.ini',
			'/plugins/content/jemlistevents/language/en-GB/en-GB.plg_content_jemlistevents.ini',
			'/plugins/content/jemlistevents/language/en-GB/en-GB.plg_content_jemlistevents.sys.ini',
			'/plugins/finder/jem/language/en-GB/en-GB.plg_finder_jem.ini',
			'/plugins/finder/jem/language/en-GB/en-GB.plg_finder_jem.sys.ini',
			'/plugins/jem/comments/language/en-GB/en-GB.plg_jem_comments.ini',
			'/plugins/jem/comments/language/en-GB/en-GB.plg_jem_comments.sys.ini',
			'/plugins/jem/mailer/language/en-GB/en-GB.plg_jem_mailer.ini',
			'/plugins/jem/mailer/language/en-GB/en-GB.plg_jem_mailer.sys.ini',
			'/plugins/search/jem/language/en-GB/en-GB.plg_search_jem.ini',
			'/plugins/search/jem/language/en-GB/en-GB.plg_search_jem.sys.ini',	
			'/administrator/language/en-GB/en-GB.plg_content_jem.ini',
			'/administrator/language/en-GB/en-GB.plg_content_jem.sys.ini',
			'/administrator/language/en-GB/en-GB.plg_finder_jem.ini',		
        );
        // TODO There is an issue while deleting folders using the ftp mode
        $folders = array(            
            '/media/com_jem/FontAwesome',
            '/plugins/quickicon/jemquickicon',
        );
        foreach ($files as $file) {
            if (File::exists(JPATH_ROOT . $file) && !File::delete(JPATH_ROOT . $file)) {
                echo Text::sprintf('FILES_JOOMLA_ERROR_FILE_FOLDER', $file).'
        
        
        get('DatabaseDriver');
        // Get extension ID of JEM
        $query = $db->getQuery(true);
        $query->select('extension_id')->from('#__extensions')->where(array("type='component'", "element='com_jem'"));
        $db->setQuery($query);
        $extensionId = $db->loadResult();
        if (!$extensionId) {
            // This is a fresh installation, return
            return;
        }
        // Check if an entry already exists in schemas table
        $query = $db->getQuery(true);
        $query->select('version_id')->from('#__schemas')->where('extension_id = '.$extensionId);
        $db->setQuery($query);
        if ($db->loadResult()) {
            // Entry exists, return
            return;
        }
        // Insert extension ID and old release version number into schemas table
        $query = $db->getQuery(true);
        $query->insert('#__schemas')
            ->columns($db->quoteName(array('extension_id', 'version_id')))
            ->values(implode(',', array($extensionId, $db->quote($versionId))));
        $db->setQuery($query);
        $db->execute();
    }
    /**
     * Remove all JEM menu items.
     *
     * @return void
     */
    private function removeJemMenuItems()
    {
        // remove all "com_jem..." frontend entries
        $db = Factory::getContainer()->get('DatabaseDriver');
        $query = $db->getQuery(true);
        $query->delete('#__menu');
        $query->where(array('client_id = 0', 'link LIKE "index.php?option=com_jem%"'));
        $db->setQuery($query);
        $db->execute();
    }
    /**
     * Disable all JEM menu items.
     * (usefull on uninstall to prevent dead links)
     *
     * @return void
     */
    private function disableJemMenuItems()
    {
        // unpublish all "com_jem..." frontend entries
        $db = Factory::getContainer()->get('DatabaseDriver');
        $query = $db->getQuery(true);
        $query->update('#__menu');
        $query->set('published = 0');
        $query->where(array('client_id = 0', 'published > 0', 'link LIKE "index.php?option=com_jem%"'));
        $db->setQuery($query);
        $db->execute();
    }
    /**
     * Fix all JEM menu items by setting new extension id.
     * (usefull on install to let menu items from older installation refer new extension id)
     *
     * @return void
     */
    private function fixJemMenuItems()
    {
        // Get (new) extension ID of JEM
        $db = Factory::getContainer()->get('DatabaseDriver');
        $query = $db->getQuery(true);
        $query->select('extension_id')->from('#__extensions')->where(array("type='component'", "element='com_jem'"));
        $db->setQuery($query);
        $newId = $db->loadResult();
        if ($newId) {
            // set compponent id on all "com_jem..." frontend entries
            $query = $db->getQuery(true);
            $query->update('#__menu');
            $query->set('component_id = ' . $db->quote($newId));
            $query->where(array('client_id = 0', 'link LIKE "index.php?option=com_jem%"'));
            $db->setQuery($query);
            $db->execute();
        }
    }
    /**
     * Remove all obsolete files and folders of previous versions.
     *
     * Todo: Enhance the lists on each new version.
     *
     * @return void
     */
    private function deleteObsoleteFiles()
    {
        $files = array(
            // obsolete since JEM 4.0.0
			'/administrator/components/com_jem/sql/updates/1.9.1.sql',
			'/administrator/components/com_jem/sql/updates/1.9.2.sql',
			'/administrator/components/com_jem/sql/updates/1.9.3.sql',
			'/administrator/components/com_jem/sql/updates/1.9.4.sql',
			'/administrator/components/com_jem/sql/updates/1.9.5.sql',
			'/administrator/components/com_jem/sql/updates/1.9.6.sql',
			'/administrator/components/com_jem/sql/updates/1.9.7.sql',
			'/administrator/components/com_jem/sql/updates/1.9.8.sql',
			'/administrator/components/com_jem/sql/updates/1.9.sql',
			'/administrator/components/com_jem/sql/updates/2.0.0.sql',
			'/administrator/components/com_jem/sql/updates/2.0.1.sql',
			'/administrator/components/com_jem/sql/updates/2.0.2.sql',
			'/administrator/components/com_jem/sql/updates/2.0.3.sql',
			'/administrator/components/com_jem/sql/updates/2.1.0.sql',
			'/administrator/components/com_jem/sql/updates/2.1.1.sql',
			'/administrator/components/com_jem/sql/updates/2.1.2.sql',
			'/administrator/components/com_jem/sql/updates/2.1.3.sql',
			'/administrator/components/com_jem/sql/updates/2.1.4.1.sql',
			'/administrator/components/com_jem/sql/updates/2.1.4.2.sql',
			'/administrator/components/com_jem/sql/updates/2.1.4.sql',
			'/administrator/components/com_jem/sql/updates/2.1.5.sql',
			'/administrator/components/com_jem/sql/updates/2.1.6-dev3.sql',
			'/administrator/components/com_jem/sql/updates/2.1.6-dev5.sql',
			'/administrator/components/com_jem/sql/updates/2.1.7-dev1.sql',
			'/administrator/components/com_jem/sql/updates/2.1.7-dev5.sql',
			'/administrator/components/com_jem/sql/updates/2.2.0-p1.sql',
			'/administrator/components/com_jem/sql/updates/2.2.1-dev2.sql',
			'/administrator/components/com_jem/sql/updates/2.2.3-dev3.sql',
			'/administrator/components/com_jem/sql/updates/2.3.0-beta2.sql',
			'/administrator/components/com_jem/sql/updates/2.3.0-dev1.sql',
			'/administrator/components/com_jem/sql/updates/2.3.1.sql',
            // remove old langage files with lang prefix
			'/language/en-GB/en-GB.pkg_jem.sys.ini',
			'/administrator/components/com_jem/language/en-GB/en-GB.com_jem.ini',
			'/administrator/components/com_jem/language/en-GB/en-GB.com_jem.sys.ini',
			'/components/com_jem/language/en-GB/en-GB.com_jem.ini',
			'/modules/mod_jem_banner/language/en-GB/en-GB.mod_jem_banner.ini',
			'/modules/mod_jem_banner/language/en-GB/en-GB.mod_jem_banner.sys.ini',
			'/modules/mod_jem_cal/language/en-GB/en-GB.mod_jem_cal.ini',
			'/modules/mod_jem_cal/language/en-GB/en-GB.mod_jem_cal.sys.ini',
			'/modules/mod_jem_jubilee/language/en-GB/en-GB.mod_jem_jubilee.ini',
			'/modules/mod_jem_jubilee/language/en-GB/en-GB.mod_jem_jubilee.sys.ini',
			'/modules/mod_jem_teaser/language/en-GB/en-GB.mod_jem_teaser.ini',
			'/modules/mod_jem_teaser/language/en-GB/en-GB.mod_jem_teaser.sys.ini',
			'/modules/mod_jem_wide/language/en-GB/en-GB.mod_jem_wide.ini',
			'/modules/mod_jem_wide/language/en-GB/en-GB.mod_jem_wide.sys.ini',
			'/modules/mod_jem/language/en-GB/en-GB.mod_jem.ini',
			'/modules/mod_jem/language/en-GB/en-GB.mod_jem.sys.ini',
			'/plugins/content/jem/language/en-GB/en-GB.plg_content_jem.ini',
			'/plugins/content/jem/language/en-GB/en-GB.plg_content_jem.sys.ini',
			'/plugins/content/jemlistevents/language/en-GB/en-GB.plg_content_jemlistevents.ini',
			'/plugins/content/jemlistevents/language/en-GB/en-GB.plg_content_jemlistevents.sys.ini',
			'/plugins/finder/jem/language/en-GB/en-GB.plg_finder_jem.ini',
			'/plugins/finder/jem/language/en-GB/en-GB.plg_finder_jem.sys.ini',
			'/plugins/jem/comments/language/en-GB/en-GB.plg_jem_comments.ini',
			'/plugins/jem/comments/language/en-GB/en-GB.plg_jem_comments.sys.ini',
			'/plugins/jem/mailer/language/en-GB/en-GB.plg_jem_mailer.ini',
			'/plugins/jem/mailer/language/en-GB/en-GB.plg_jem_mailer.sys.ini',
			'/plugins/search/jem/language/en-GB/en-GB.plg_search_jem.ini',
			'/plugins/search/jem/language/en-GB/en-GB.plg_search_jem.sys.ini',	
			'/administrator/language/en-GB/en-GB.plg_content_jem.ini',
			'/administrator/language/en-GB/en-GB.plg_content_jem.sys.ini',
			'/administrator/language/en-GB/en-GB.plg_finder_jem.ini',		
        );
        // TODO There is an issue while deleting folders using the ftp mode
        $folders = array(            
            '/media/com_jem/FontAwesome',
            '/plugins/quickicon/jemquickicon',
        );
        foreach ($files as $file) {
            if (File::exists(JPATH_ROOT . $file) && !File::delete(JPATH_ROOT . $file)) {
                echo Text::sprintf('FILES_JOOMLA_ERROR_FILE_FOLDER', $file).'