当前位置: 首页>>代码示例>>PHP>>正文


PHP JInstaller::getInstance方法代码示例

本文整理汇总了PHP中JInstaller::getInstance方法的典型用法代码示例。如果您正苦于以下问题:PHP JInstaller::getInstance方法的具体用法?PHP JInstaller::getInstance怎么用?PHP JInstaller::getInstance使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在JInstaller的用法示例。


在下文中一共展示了JInstaller::getInstance方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: uninstall

 function uninstall($parent)
 {
     // Post Install Log
     self::_postInstallMessage('uninstall', $parent);
     $db = JFactory::getDbo();
     $db->setQuery('SELECT extension_id FROM #__extensions WHERE type = "package" AND element = "pkg_cck"');
     $eid = $db->loadResult();
     $db->setQuery('SELECT extension_id FROM #__extensions WHERE type = "plugin" AND element = "cck" AND folder="system"');
     $cck = $db->loadResult();
     // Uninstall FULL PACKAGE only if package exists && system plugin exists..
     if ($eid && $cck) {
         $manifest = JPATH_ADMINISTRATOR . '/manifests/packages/pkg_cck.xml';
         if (JFile::exists($manifest)) {
             $xml = JFactory::getXML($manifest);
             // Keep it this way until platform 13.x
         }
         if (isset($xml->files)) {
             unset($xml->files->file[3]);
             $xml->asXML($manifest);
         }
         jimport('joomla.installer.installer');
         $installer = JInstaller::getInstance();
         $installer->uninstall('package', $eid);
     }
 }
开发者ID:kenyonjohnston,项目名称:hott_theater,代码行数:25,代码来源:script.php

示例2: preflight

 /**
  * method to run before an install/update/uninstall method
  *
  * @return void
  */
 public function preflight($type, $parent)
 {
     // $parent is the class calling this method
     //$parent->getParent()->setRedirectURL('index.php?option=com_ckeditor');
     jimport('joomla.filesystem.folder');
     jimport('joomla.filesystem.file');
     jimport('joomla.installer.installer');
     $installer = JInstaller::getInstance();
     $source = $installer->getPath('source');
     $packages = $source . DS . 'packages';
     // Get editor package
     if (is_dir($packages)) {
         $editor = JFolder::files($packages, 'plg_ckeditor.zip', false, true);
     }
     if (!empty($editor) && is_file($editor[0])) {
         $confObject = JFactory::getApplication();
         $packagePath = dirname($editor[0]) . DS . 'ckeditor';
         if (!JArchive::extract($editor[0], $packagePath)) {
             $editor_result = JText::_('EDITOR EXTRACT ERROR');
         } else {
             $installer = JInstaller::getInstance();
             $c_manifest = $installer->getManifest();
             $c_root =& $c_manifest->document;
             if (JFolder::copy($packagePath, dirname($installer->getPath('extension_site')) . DS . '..' . DS . 'plugins' . DS . 'editors', '', true)) {
                 $editor_result = JText::_('Success');
             } else {
                 $editor_result = JText::_('Error');
             }
         }
     } else {
         $editor_result = JText::_('Error');
     }
     echo '<p>' . $editor_result . '</p>';
 }
开发者ID:neoandrew1000,项目名称:crao_journal,代码行数:39,代码来源:install_ckeditor.php

示例3: _actionDelete

 /**
  * Generic uninstall function
  *
  * @param	KCommandContext	A command context object
  * @return 	KDatabaseRowset	A rowset object containing the deleted rows
  */
 protected function _actionDelete(KCommandContext $context)
 {
     $request = $this->getRequest();
     $type = $this->getIdentifier()->name;
     // Initialize variables
     $failed = array();
     // Get an installer object for the extension type
     $installer = JInstaller::getInstance();
     foreach ($request->id as $composite) {
         $parts = explode('-', $composite);
         $id = $parts[0];
         $appid = isset($parts[1]) ? $parts[1] : 0;
         $result = $installer->uninstall($type, $id, $appid);
         // Build an array of extensions that failed to uninstall
         if ($result === false) {
             $failed[] = $id;
         }
     }
     if (count($failed)) {
         // There was an error in uninstalling the package
         $msg = JText::sprintf('UNINSTALLEXT', JText::_($this->_type), JText::_('Error'));
         $result = false;
     } else {
         // Package uninstalled sucessfully
         $msg = JText::sprintf('UNINSTALLEXT', JText::_($this->_type), JText::_('Success'));
         $result = true;
     }
     $controller = $this->getService('com://admin/installer.controller.install');
     $controller->name($installer->get('name'));
     $controller->message($installer->message);
     $controller->extension_message($installer->get('extension.message'));
     JFactory::getApplication()->enqueueMessage($msg);
     return $controller->get();
 }
开发者ID:JSWebdesign,项目名称:intranet-platform,代码行数:40,代码来源:default.php

示例4: installPlugin

 /**
  * Installation of plugins on the site
  *
  * @since   1.0
  * @access  public
  */
 public function installPlugin($element, $group, $absolutePath)
 {
     if ($this->isDevelopment()) {
         $this->setInfo('ok', true);
         return $this->output();
     }
     // Get Joomla's installer instance
     $installer = JInstaller::getInstance();
     // Allow overwriting of existing plugins
     $installer->setOverwrite(true);
     // Install the plugin now
     $state = $installer->install($absolutePath);
     // Ensure that the plugins are published
     if ($state) {
         $group = strtolower($group);
         $element = strtolower($element);
         $options = array('folder' => $group, 'element' => $element);
         $plugin = JTable::getInstance('Extension');
         $plugin->load($options);
         $plugin->state = true;
         $plugin->enabled = $group == 'easyblog' && $element == 'autoarticle' ? false : true;
         $plugin->store();
     }
     return $state;
 }
开发者ID:BetterBetterBetter,项目名称:B3App,代码行数:31,代码来源:addons.installplugin.php

示例5: install

 /**
  *
  */
 function install()
 {
     $package = $this->_getPackageFromUpload();
     $config =& JFactory::getConfig();
     if (!$package) {
         $userfile = JRequest::getVar('userfile', '', 'files', 'array');
         $script = $config->getValue('config.tmp_path') . DS . $userfile['name'];
         $installer =& JInstaller::getInstance();
         $ar = explode(".", $script);
         $ext = array_pop($ar);
         switch (strtolower($ext)) {
             case 'rtf':
                 $this->importRTF($script);
                 break;
             case 'txt':
                 $this->importTxt($script);
                 break;
             case 'fdr':
                 $this->importFdr($script);
                 break;
         }
         $adaptor = new JInstallerFabrikPlugin($installer);
     } else {
         //TODO: J1.5 deal with zipped packages
         echo "a zip file - to do - deal with zipped pacakges";
     }
 }
开发者ID:nikshade,项目名称:fabrik21,代码行数:30,代码来源:import.php

示例6: getTemplates

 public function getTemplates()
 {
     $items = array();
     $tpl_path = COM_TZ_PORTFOLIO_PLUS_PATH_SITE . DIRECTORY_SEPARATOR . 'templates';
     if (!JFolder::exists($tpl_path)) {
         return false;
     }
     if ($folders = JFolder::folders($tpl_path)) {
         if (count($folders)) {
             foreach ($folders as $i => $folder) {
                 $xmlFile = $tpl_path . DIRECTORY_SEPARATOR . $folder . DIRECTORY_SEPARATOR . 'template.xml';
                 if (JFile::exists($xmlFile)) {
                     $installer = JInstaller::getInstance($tpl_path . DIRECTORY_SEPARATOR . $folder);
                     if ($manifest = $installer->isManifest($xmlFile)) {
                         $lang = JFactory::getLanguage();
                         $lang->load('tpl_' . (string) $manifest->name, $tpl_path . DIRECTORY_SEPARATOR . $folder);
                         $item = new stdClass();
                         $item->id = $i;
                         $item->name = (string) $manifest->name;
                         $item->type = (string) $manifest->type;
                         $item->version = (string) $manifest->version;
                         $item->creationDate = (string) $manifest->creationDate;
                         $item->author = (string) $manifest->author;
                         $item->authorEmail = (string) $manifest->authorEmail;
                         $item->description = JText::_((string) $manifest->description);
                         $items[] = $item;
                     }
                 }
             }
         }
     }
     return $items;
     //        var_dump(JFolder::folders($tpl_path)); die();
 }
开发者ID:templaza,项目名称:tz_portfolio_plus,代码行数:34,代码来源:templates.php

示例7: install

 /**
  * Download and install
  */
 function install($id, $url)
 {
     if (!is_string($url)) {
         return JText::_('NNEM_ERROR_NO_VALID_URL');
     }
     $url = 'http://' . str_replace('http://', '', $url);
     if (!($target = JInstallerHelper::downloadPackage($url))) {
         return JText::_('NNEM_ERROR_CANNOT_DOWNLOAD_FILE');
     }
     $target = JFactory::getConfig()->get('tmp_path') . '/' . $target;
     NNFrameworkFunctions::loadLanguage('com_installer', JPATH_ADMINISTRATOR);
     jimport('joomla.installer.installer');
     jimport('joomla.installer.helper');
     // Get an installer instance
     $installer = JInstaller::getInstance();
     // Unpack the package
     $package = JInstallerHelper::unpack($target);
     // Cleanup the install files
     if (!is_file($package['packagefile'])) {
         $config = JFactory::getConfig();
         $package['packagefile'] = $config->get('tmp_path') . '/' . $package['packagefile'];
     }
     JInstallerHelper::cleanupInstall($package['packagefile'], $package['packagefile']);
     // Install the package
     if (!$installer->install($package['dir'])) {
         // There was an error installing the package
         return JText::sprintf('COM_INSTALLER_INSTALL_ERROR', JText::_('COM_INSTALLER_TYPE_TYPE_' . strtoupper($package['type'])));
     }
     return true;
 }
开发者ID:kenyonjohnston,项目名称:hott_theater,代码行数:33,代码来源:process.php

示例8: preflight

 function preflight($type, $parent)
 {
     //check if php version is supported before proceed with installation.
     $phpVersion = floatval(phpversion());
     if ($phpVersion < 5) {
         $mainframe = JFactory::getApplication();
         $mainframe->enqueueMessage('Installation was unsuccessful because you are using an unsupported version of PHP. Komento supports only PHP5 and above. Please kindly upgrade your PHP version and try again.', 'error');
         return false;
     }
     //get source path and version number from manifest file.
     $installer = JInstaller::getInstance();
     $manifest = $installer->getManifest();
     $sourcePath = $installer->getPath('source');
     $this->message = array();
     $this->status = true;
     $this->sourcePath = $sourcePath;
     $file = $this->sourcePath . DIRECTORY_SEPARATOR . 'admin' . DIRECTORY_SEPARATOR . 'install.default.php';
     if (JFile::exists($file)) {
         require_once $file;
     }
     //this is needed as joomla failed to remove it themselve during uninstallation or failed attempt of installation
     if (class_exists('KomentoMenuMaintenance')) {
         KomentoMenuMaintenance::removeAdminMenu();
     }
     return true;
 }
开发者ID:kosmosby,项目名称:medicine-prof,代码行数:26,代码来源:script.php

示例9: getPluginTemplate

 public function getPluginTemplate($id)
 {
     $db = JFactory::getDbo();
     $query = $db->getQuery(true);
     $query->select('folder');
     $query->from('#__judownload_plugins');
     $query->where('id = ' . $id);
     $query->where('type = ' . $db->quote('plugin'));
     $db->setQuery($query);
     $folder = $db->loadResult();
     if ($folder) {
         $pluginFolderPath = JPATH_SITE . '/components/com_judownload/plugins/' . $folder;
         $installer = JInstaller::getInstance();
         $installer->setPath("source", $pluginFolderPath);
         $installer->findManifest();
         $xml = $installer->getManifest();
         $templateFolder = null;
         if (isset($xml->templateFolder)) {
             $templateFolder = $xml->templateFolder->__toString();
         } else {
             $templateFolder = 'tmpl';
         }
         if (JFolder::exists($pluginFolderPath . '/' . $templateFolder . '/')) {
             $asset_file = $pluginFolderPath . '/load_assets.php';
             if (JFILE::exists($asset_file)) {
                 include $asset_file;
             }
             return $pluginFolderPath . '/' . $templateFolder . '/';
         } else {
             return false;
         }
     }
     return false;
 }
开发者ID:kosmosby,项目名称:medicine-prof,代码行数:34,代码来源:pluginviewer.php

示例10: getAutoInstance

 /**
  * Get a model instance.
  *
  * @param   string  $name    Model name
  * @param   mixed   $client  Client. null = auto, 1 = admin, 0 = frontend
  * @param   array   $config  An optional array of configuration
  * @param   string  $option  Component name, use for call model from modules
  *
  * @return  RModel  The model
  *
  * @throws  InvalidArgumentException
  */
 public static function getAutoInstance($name, $client = null, array $config = array(), $option = 'auto')
 {
     if ($option === 'auto') {
         $option = JFactory::getApplication()->input->getString('option', '');
         // Add com_ to the element name if not exist
         $option = (strpos($option, 'com_') === 0 ? '' : 'com_') . $option;
         if ($option == 'com_installer') {
             $installer = JInstaller::getInstance();
             $option = $installer->manifestClass->getElement($installer);
         }
     }
     $componentName = ucfirst(strtolower(substr($option, 4)));
     $prefix = $componentName . 'Model';
     if (is_null($client)) {
         $client = (int) JFactory::getApplication()->isAdmin();
     }
     // Admin
     if ($client === 1) {
         self::addIncludePath(JPATH_ADMINISTRATOR . '/components/' . $option . '/models');
         JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/' . $option . '/tables');
     } elseif ($client === 0) {
         self::addIncludePath(JPATH_SITE . '/components/' . $option . '/models');
         JTable::addIncludePath(JPATH_SITE . '/components/' . $option . '/tables');
     } else {
         throw new InvalidArgumentException(sprintf('Cannot instanciate the model %s in component %s. Invalid client %s.', $name, $option, $client));
     }
     $model = self::getInstance($name, $prefix, $config);
     if (!$model instanceof JModel && !$model instanceof JModelLegacy) {
         throw new InvalidArgumentException(sprintf('Cannot instanciate the model %s in component %s. Invalid client %s.', $name, $option, $client));
     }
     return $model;
 }
开发者ID:thangredweb,项目名称:redCORE,代码行数:44,代码来源:model.php

示例11: install

 public function install()
 {
     $session = JFactory::getSession();
     $tempdir = $session->get('tempdir', '', 'liveupdate');
     jimport('joomla.installer.installer');
     jimport('joomla.installer.helper');
     $installer = JInstaller::getInstance();
     $packageType = JInstallerHelper::detectType($tempdir);
     if (!$packageType) {
         $msg = JText::_('LIVEUPDATE_INVALID_PACKAGE_TYPE');
         $result = false;
     } elseif (!$installer->install($tempdir)) {
         // There was an error installing the package
         $msg = JText::sprintf('LIVEUPDATE_INSTALLEXT', JText::_($packageType), JText::_('LIVEUPDATE_Error'));
         $result = false;
     } else {
         // Package installed sucessfully
         $msg = JText::sprintf('LIVEUPDATE_INSTALLEXT', JText::_($packageType), JText::_('LIVEUPDATE_Success'));
         $result = true;
     }
     $app = JFactory::getApplication();
     $app->enqueueMessage($msg);
     $this->setState('result', $result);
     $this->setState('packageType', $packageType);
     if ($packageType) {
         $this->setState('name', $installer->get('name'));
         $this->setState('message', $installer->message);
         if (version_compare(JVERSION, '1.6.0', 'ge')) {
             $this->setState('extmessage', $installer->get('extension_message'));
         } else {
             $this->setState('extmessage', $installer->get('extension.message'));
         }
     }
     return $result;
 }
开发者ID:srbsnkr,项目名称:sellingonlinemadesimple,代码行数:35,代码来源:model.php

示例12: install

 /**
  * install plugin
  */
 function install()
 {
     require_once dirname(__FILE__) . DS . "adapter" . DS . "fabrikplugin.php";
     $package = $this->_getPackageFromUpload();
     // Was the package unpacked?
     if (!$package) {
         $this->setState('message', JText::_('UNABLE TO INSTALL PACKAGE FILE'));
         return false;
     }
     $installer =& JInstaller::getInstance();
     $this->setState('action', 'install');
     $adaptor = new JInstallerFabrikPlugin($installer);
     //test fro php 4.x??? seems to work
     $adaptor->parent->setPath('source', $package['dir']);
     //end test
     $installer->setAdapter("fabrikplugin", $adaptor);
     // 	Install the package
     if (!$installer->install($package['dir'])) {
         // There was an error installing the package
         $msg = JText::sprintf('INSTALLEXT', JText::_($package['type']), JText::_('Error'));
         $result = false;
     } else {
         // Package installed sucessfully
         $msg = JText::sprintf('INSTALLEXT', JText::_($package['type']), JText::_('Success'));
         $result = true;
     }
     // Cleanup the install files
     if (!is_file($package['packagefile'])) {
         $config =& JFactory::getConfig();
         $package['packagefile'] = $config->getValue('config.tmp_path') . DS . $package['packagefile'];
     }
     JInstallerHelper::cleanupInstall($package['packagefile'], $package['extractdir']);
     return $result;
 }
开发者ID:nikshade,项目名称:fabrik21,代码行数:37,代码来源:plugininstaller.php

示例13: com_uninstall

function com_uninstall()
{
    // Initialize the Joomla! installer
    jimport('joomla.installer.installer');
    $installer = JInstaller::getInstance();
    // Select all MageBridge modules and remove them
    $db = JFactory::getDBO();
    $query = "SELECT `id`,`client_id` FROM #__modules WHERE `module` LIKE 'mod_magebridge%'";
    $db->setQuery($query);
    $rows = $db->loadObjectList();
    if (!empty($rows)) {
        foreach ($rows as $row) {
            $installer->uninstall('module', $row->id, $row->client_id);
        }
    }
    // Select all MageBridge plugins and remove them
    $db = JFactory::getDBO();
    $query = "SELECT `id`,`client_id` FROM #__plugins WHERE `element` LIKE 'magebridge%' OR `folder` = 'magento'";
    $db->setQuery($query);
    $rows = $db->loadObjectList();
    if (!empty($rows)) {
        foreach ($rows as $row) {
            $installer->uninstall('plugin', $row->id, $row->client_id);
        }
    }
    // Done
    return true;
}
开发者ID:traveladviser,项目名称:magebridge-mirror,代码行数:28,代码来源:uninstall.magebridge.php

示例14: postflight

 public function postflight($type, $parent, $results)
 {
     $db = JFactory::getDbo();
     $query = $db->getQuery(true);
     $adm_path = str_replace(array('/administrator', '\\administrator'), '', JPATH_BASE);
     $installer = JInstaller::getInstance();
     $manifest = $installer->getManifest();
     $sourcePath = $installer->getPath('source');
     $db->setQuery("DELETE FROM `#__extensions` WHERE `element` = 'pkg_ukUA'");
     $db->query();
     $jun = $db->getQuery(true);
     $jun = "UPDATE `#__modules` SET `position` = 'cpanel', `published` = 1, `showtitle` = 0, `ordering` = 99 WHERE `module` = 'mod_junews' AND `client_id` = 1";
     $db->setQuery($jun);
     $db->query();
     $jun1 = $db->getQuery(true);
     $jun1 = "INSERT INTO #__modules_menu (moduleid, menuid) SELECT #__modules.id, 0 FROM #__modules WHERE #__modules.module = 'mod_junews' AND #__modules.position = 'cpanel' AND NOT EXISTS (SELECT 1 FROM #__modules_menu WHERE moduleid = #__modules.id) ORDER BY id DESC LIMIT 1";
     $db->setQuery($jun1);
     $db->query();
     $jum = $db->getQuery(true);
     $jum = "UPDATE `#__modules` SET `position` = 'menu', `published` = 1, `showtitle` = 0, `ordering` = 99 WHERE `module` = 'mod_jumenu' AND `client_id` = 1";
     $db->setQuery($jum);
     $db->query();
     $jum1 = $db->getQuery(true);
     $jum1 = "INSERT INTO #__modules_menu (moduleid, menuid) SELECT #__modules.id, 0 FROM #__modules WHERE #__modules.module = 'mod_jumenu' AND #__modules.position = 'menu' AND NOT EXISTS (SELECT 1 FROM #__modules_menu WHERE moduleid = #__modules.id) ORDER BY id DESC LIMIT 1";
     $db->setQuery($jum1);
     $db->query();
     $manifestua = $adm_path . '/administrator/manifests/packages/pkg_ukUA.xml';
     if (file_exists($manifestua)) {
         unlink($manifestua);
     }
     if (is_dir(JPATH_BASE . '/manifests/packages/ukUA')) {
         Pkg_ukUAInstallerScript::unlinkRecursive(JPATH_BASE . '/manifests/packages/ukUA/', 0);
     }
     return true;
 }
开发者ID:petroborys,项目名称:strans,代码行数:35,代码来源:script.php

示例15: display

 public function display($tpl = null)
 {
     $paths = new stdClass();
     $paths->first = '';
     $this->assignRef('paths', $paths);
     $this->state = $this->get('State');
     $this->items = $this->get('Items');
     $this->pagination = $this->get('Pagination');
     $this->form = $this->get('Form');
     if ($this->getLayout() == 'distribution') {
         jimport('joomla.installer.installer');
         // Extract the list and return it
         $installer = JInstaller::getInstance();
         $installer->setPath('source', $this->state->get('install.directory'));
         $manifest = $installer->getManifest();
         $result = false;
         if ($manifest) {
             $result->extensions = isset($manifest->extensions) ? $manifest->extensions : false;
             $result->sql = isset($manifest->install->sql->file) ? $installer->getPath('source') . '/' . $manifest->install->sql->file : false;
             $result->script = isset($manifest->scriptfile) ? $installer->getPath('source') . '/' . $manifest->scriptfile : false;
             if ($result->script) {
                 include $installer->getPath('source') . '/' . $manifest->scriptfile;
                 $class = JRequest::$manifest->name . 'InstallerScript';
                 $script = new $class();
                 $result->scriptclass = $class;
                 $result->preflight = method_exists($script, 'preflight') ? $installer->getPath('source') . '/' . $manifest->scriptfile : false;
                 $result->postflight = method_exists($script, 'postflight') ? $installer->getPath('source') . '/' . $manifest->scriptfile : false;
             }
         }
         $this->source = base64_encode($installer->getPath('source'));
         $this->result = $result;
     }
     parent::display($tpl);
 }
开发者ID:networksoft,项目名称:seekerplus2.com,代码行数:34,代码来源:view.html.php


注:本文中的JInstaller::getInstance方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。