/** * Return an instance of a model that loaded base on configuration * @param mixed $config * @param object $state * @param string $coverage * @return JModelList */ private function getItemModel($config, $state, $coverage) { $path = ''; // Load model file if (!$config['path']) { $path = JPATH_ADMINISTRATOR . '/'; } else { $path = $config['path'] . '/'; } require_once $path . $config['modelfile']; // Load component language $this->language->load($config['language'], JPATH_ADMINISTRATOR); // Create model instance $model = new $config['modelname'](array('state' => $state)); $model->getState('filter.search'); $currentCoverage = $this->app->getUserStateFromRequest('components.selected', 'tab'); if ($currentCoverage == $coverage) { $order = $this->app->getUserStateFromRequest("{$currentCoverage}.{$config['modelname']}.order", 'filter_order', $config['order']); $orderDir = $this->app->getUserStateFromRequest("{$currentCoverage}.{$config['modelname']}.orderDir", 'filter_order_Dir', 'asc'); $state->set('list.ordering', $order); $state->set('list.direction', $orderDir); } $state->set('filter.search', $this->keyword); $state->set('filter.published', 'all'); $state->set('filter.state', 'all'); if (isset($config['filters']) && is_array($config['filters'])) { foreach ($config['filters'] as $key => $value) { $state->set($key, $value); } } return $model; }
/** * Constructor method for widget base object */ public function __construct() { $this->app = JFactory::getApplication(); $this->session = JFactory::getSession(); $this->request = $this->app->input; $this->dbo = JFactory::getDBO(); $this->queryMethod = version_compare(JSNTplHelper::getJoomlaVersion(), '3.0', '>=') ? 'execute' : 'query'; $this->language = JFactory::getLanguage(); $this->language->load('tpl_' . $this->request->getCmd('template'), JPATH_ROOT); $this->language->load('lib_joomla'); $this->_parseTemplateInfo($this->request->getCmd('template')); }
/** * @todo Implement testLoad(). */ public function testLoad() { // This method loads an extension language $extension1 = 'com_admin'; $extension2 = 'com_sobi2'; $basePath = '../../administrator/'; $l1 = 'en-GB'; $l2 = 'es-ES'; $reloaded1 = false; $reloaded2 = true; $lang = new JLanguage(''); // com_admin (exist), OK $this->assertTrue($lang->load($extension1, $basePath, $l1, $reloaded1)); $this->assertTrue($lang->load($extension1, $basePath, $l2, $reloaded1)); // com_sobi2 (not exist), KO $this->assertFalse($lang->load($extension2, $basePath, $l1, $reloaded1)); $this->assertFalse($lang->load($extension2, $basePath, $l2, $reloaded1)); // com_admin (exist), OK $this->assertTrue($lang->load($extension1, $basePath, $l1, $reloaded2)); $this->assertTrue($lang->load($extension1, $basePath, $l2, $reloaded2)); // com_sobi2 (not exist), KO $this->assertFalse($lang->load($extension2, $basePath, $l1, $reloaded2)); $this->assertFalse($lang->load($extension2, $basePath, $l2, $reloaded2)); }
function com_install() { $result = true; $app = JFactory::getApplication(); if (version_compare(JVERSION, "1.6", "lt")) { $lang = new JLanguage(); $lang->load("com_sro", JPATH_ROOT . "/administrator/components/com_sro"); } $required_php = "5.3.0"; if (version_compare(PHP_VERSION, $required_php, "lt")) { $app->enqueueMessage(JText::sprintf("COM_SRO_INSTALL_INCOMPATIBLE_PHP_VERSION", PHP_VERSION, $required_php), "error"); return false; } $adminpath = JPATH_ROOT . "/administrator/components/com_sro/"; $adminlangpath = JPATH_ROOT . "/administrator/language/ru-RU/"; $config = "config.xml"; $config15 = "cnf15.xml"; transfer(); JFile::move($adminpath . "javascriptdisabled.html", JPATH_ROOT); if (version_compare(JVERSION, "1.6", "lt")) { $result = JFile::move($config15, $config, $adminpath); $result = $result && JFile::move($adminpath . "language/ru-RU/ru-RU.com_sro.sys.ini", $adminlangpath . "ru-RU.com_sro.menu.ini"); $result = $result && JFile::move($adminpath . "language/ru-RU/ru-RU.com_sro.ini", $adminlangpath . "ru-RU.com_sro.ini"); alterdb(); } else { JFile::delete($adminpath . $config15); $oldlangfile = JPATH_ROOT . "/language/ru-RU/ru-RU.com_sro.ini"; if (JFile::exists($oldlangfile)) { JFile::delete($oldlangfile); } $oldlangfile = JPATH_ROOT . "/administrator/language/ru-RU/ru-RU.com_sro.ini"; if (JFile::exists($oldlangfile)) { JFile::delete($oldlangfile); } } return $result; }
/** * Create an article in a specific language * * @param stdClass $itemLanguage Language Object * @param int $categoryId The id of the category where we want to add the article * * @return JTable Category Object * * @since 3.2 */ public function addArticle($itemLanguage, $categoryId) { $db = JFactory::getDbo(); $newlanguage = new JLanguage($itemLanguage->language, false); $newlanguage->load('plg_editors-xtd_article', JPATH_ADMINISTRATOR, $itemLanguage->language, true); $title = $newlanguage->_('PLG_ARTICLE_BUTTON_ARTICLE'); $article = JTable::getInstance('Content'); $article->title = $title . ' (' . strtolower($itemLanguage->language) . ')'; $article->introtext = '<p>Lorem ipsum ad his scripta blandit partiendo, eum fastidii accumsan euripidis' . ' in, eum liber hendrerit an. Qui ut wisi vocibus suscipiantur, quo dicit' . ' ridens inciderint id. Quo mundi lobortis reformidans eu, legimus senserit' . 'definiebas an eos. Eu sit tincidunt incorrupte definitionem, vis mutat' . ' affert percipit cu, eirmod consectetuer signiferumque eu per. In usu latine' . 'equidem dolores. Quo no falli viris intellegam, ut fugit veritus placerat' . 'per. Ius id vidit volumus mandamus, vide veritus democritum te nec, ei eos' . 'debet libris consulatu.</p>'; $article->state = 1; $article->created = JFactory::getDate()->toSql(); $article->created_by = $this->getAdminId(); $article->created_by_alias = 'Joomla'; $article->publish_up = JFactory::getDate()->toSql(); $article->publish_down = $db->getNullDate(); $article->version = 1; $article->catid = $categoryId; $article->metadata = '{"robots":"","author":"","rights":"","xreference":"","tags":null}'; $article->language = $itemLanguage->language; $article->featured = 1; // Check to make sure our data is valid if (!$article->check()) { return false; } // Now store the category if (!$article->store(true)) { return false; } // Get the new item ID $newId = $article->get('id'); $query = $db->getQuery(true)->insert($db->quoteName('#__content_frontpage'))->values($newId . ', 0'); $db->setQuery($query); if (!$db->execute()) { return false; } return true; }
defined('_JEXEC') or die('Restricted access'); $plans = $this->plans; $guruModelguruEditplans = new guruModelguruEditplans(); $config = $guruModelguruEditplans->getConfigs(); $currency = $config["0"]["currency"]; $character = JTExt::_("GURU_CURRENCY_" . $currency); $course_id = intval(JRequest::getVar("course_id", "0")); $action = JRequest::getVar("action", ""); $my = JFactory::getUser(); $user_id = $my->id; $db = JFactory::getDBO(); $document = JFactory::getDocument(); jimport('joomla.language.helper'); $lang_value = JLanguageHelper::detectLanguage(); $lang = new JLanguage(); $lang->load('com_guru', JPATH_BASE, $lang_value); $Itemid = JRequest::getVar("Itemid", "0"); ?> <link rel="stylesheet" href="<?php echo JURI::root() . 'components/com_guru/css/uikit.almost-flat.min.css'; ?> "/> <div id="g_content" class="gru-content"> <?php if ($action == "") { ?> <form action="<?php echo JRoute::_('index.php?option=com_guru&view=guruEditplans&task=buy&Itemid=' . intval($Itemid)); ?>
/** * Create an article in a specific language. * * @param stdClass $itemLanguage Language Object. * @param int $categoryId The id of the category where we want to add the article. * * @return JTable Category Object * * @since 3.2 */ public function addArticle($itemLanguage, $categoryId) { $db = JFactory::getDbo(); $newlanguage = new JLanguage($itemLanguage->language, false); $newlanguage->load('com_content.sys', JPATH_ADMINISTRATOR, $itemLanguage->language, true); $title = $newlanguage->_('COM_CONTENT_CONTENT_TYPE_ARTICLE'); $article = JTable::getInstance('Content'); $data = array('title' => $title . ' (' . strtolower($itemLanguage->language) . ')', 'introtext' => '<p>Lorem ipsum ad his scripta blandit partiendo, eum fastidii accumsan euripidis' . ' in, eum liber hendrerit an. Qui ut wisi vocibus suscipiantur, quo dicit' . ' ridens inciderint id. Quo mundi lobortis reformidans eu, legimus senserit' . 'definiebas an eos. Eu sit tincidunt incorrupte definitionem, vis mutat' . ' affert percipit cu, eirmod consectetuer signiferumque eu per. In usu latine' . 'equidem dolores. Quo no falli viris intellegam, ut fugit veritus placerat' . 'per. Ius id vidit volumus mandamus, vide veritus democritum te nec, ei eos' . 'debet libris consulatu.</p>', 'images' => json_encode(array()), 'urls' => json_encode(array()), 'state' => 1, 'created' => JFactory::getDate()->toSql(), 'created_by' => $this->getAdminId(), 'created_by_alias' => 'Joomla', 'publish_up' => JFactory::getDate()->toSql(), 'publish_down' => $db->getNullDate(), 'version' => 1, 'catid' => $categoryId, 'metadata' => '{"robots":"","author":"","rights":"","xreference":"","tags":null}', 'metakey' => '', 'metadesc' => '', 'language' => $itemLanguage->language, 'featured' => 1, 'attribs' => array(), 'rules' => array()); // Bind the data to the table if (!$article->bind($data)) { return false; } // Check to make sure our data is valid. if (!$article->check()) { return false; } // Now store the category. if (!$article->store(true)) { return false; } // Get the new item ID. $newId = $article->get('id'); $query = $db->getQuery(true)->insert($db->qn('#__content_frontpage'))->values($newId . ', 0'); $db->setQuery($query); if (!$db->execute()) { return false; } return true; }
static function send_confirmation_email($username, $email, $course_id, $state) { $app = JFactory::getApplication(); $comp_params = JComponentHelper::getParams('com_joomdle'); $linkstarget = $comp_params->get('linkstarget'); $moodle_url = $comp_params->get('MOODLE_URL'); $user_id = JUserHelper::getUserId($username); $user = JFactory::getUser($user_id); if ($linkstarget == 'wrapper') { /* XXX After and hour tryng and searching I could not find the GOOD way to do this, so I do this kludge and it seems to work ;) */ $url = JURI::base(); $pos = strpos($url, '/administrator/'); if ($pos) { $url = substr($url, 0, $pos); } $url = $url . '/index.php?option=com_joomdle&view=wrapper&moodle_page_type=course&id=' . $course_id; } else { $url = $moodle_url . '/course/view.php?id=' . $course_id; } $course_info = JoomdleHelperContent::getCourseInfo((int) $course_id); $name = $course_info['fullname']; /* Set language for email to the one chosen by user */ $user_lang = $user->getParam('language', ''); $default_language = JComponentHelper::getParams('com_languages')->get('administrator'); if ($user_lang) { $lang = new JLanguage($user_lang); $lang->load('com_joomdle', JPATH_ADMINISTRATOR, $user_lang, true); } else { $lang = JLanguage::getInstance($default_language); } // Set the e-mail parameters $from = $app->getCfg('mailfrom'); $fromname = $app->getCfg('fromname'); switch ($state) { case JOOMDLE_APPLICATION_STATE_APPROVED: $subject = JText::sprintf('COM_JOOMDLE_APPLICATION_ACCEPTED_MESSAGE_SUBJECT', $name); $body = JText::sprintf($lang->_('COM_JOOMDLE_APPLICATION_ACCEPTED_MESSAGE_BODY'), $user->name, $name); break; case JOOMDLE_APPLICATION_STATE_REJECTED: $subject = JText::sprintf('COM_JOOMDLE_APPLICATION_REJECTED_MESSAGE_SUBJECT', $name); $body = JText::sprintf($lang->_('COM_JOOMDLE_APPLICATION_REJECTED_MESSAGE_BODY'), $user->name, $name); break; } // Send the e-mail if (!JFactory::getMailer()->sendMail($from, $fromname, $email, $subject, $body)) { $this->setError('ERROR_SENDING_CONFIRMATION_EMAIL'); return false; } return true; }
/** * Install function that is designed to handle individual clients * * @param string $cname Cname @todo: not used * @param string $basePath The base name. * @param integer $clientId The client id. * @param object &$element The XML element. * * @return boolean * * @since 3.1 */ protected function _install($cname, $basePath, $clientId, &$element) { $this->setManifest($this->parent->getManifest()); // Get the language name // Set the extensions name $name = JFilterInput::getInstance()->clean((string) $this->getManifest()->name, 'cmd'); $this->set('name', $name); // Get the Language tag [ISO tag, eg. en-GB] $tag = (string) $this->getManifest()->tag; // Check if we found the tag - if we didn't, we may be trying to install from an older language package if (!$tag) { $this->parent->abort(JText::sprintf('JLIB_INSTALLER_ABORT', JText::_('JLIB_INSTALLER_ERROR_NO_LANGUAGE_TAG'))); return false; } $this->set('tag', $tag); // Set the language installation path $this->parent->setPath('extension_site', $basePath . '/language/' . $tag); // Do we have a meta file in the file list? In other words... is this a core language pack? if ($element && count($element->children())) { $files = $element->children(); foreach ($files as $file) { if ((string) $file->attributes()->file == 'meta') { $this->core = true; break; } } } // If the language directory does not exist, let's create it $created = false; if (!file_exists($this->parent->getPath('extension_site'))) { if (!($created = JFolder::create($this->parent->getPath('extension_site')))) { $this->parent->abort(JText::sprintf('JLIB_INSTALLER_ABORT', JText::sprintf('JLIB_INSTALLER_ERROR_CREATE_FOLDER_FAILED', $this->parent->getPath('extension_site')))); return false; } } else { // Look for an update function or update tag $updateElement = $this->getManifest()->update; // Upgrade manually set or update tag detected if ($this->parent->isUpgrade() || $updateElement) { // Transfer control to the update function return $this->update(); } elseif (!$this->parent->isOverwrite()) { // Overwrite is set // We didn't have overwrite set, find an update function or find an update tag so lets call it safe if (file_exists($this->parent->getPath('extension_site'))) { // If the site exists say so. JLog::add(JText::sprintf('JLIB_INSTALLER_ABORT', JText::sprintf('JLIB_INSTALLER_ERROR_FOLDER_IN_USE', $this->parent->getPath('extension_site'))), JLog::WARNING, 'jerror'); } else { // If the admin exists say so. JLog::add(JText::sprintf('JLIB_INSTALLER_ABORT', JText::sprintf('JLIB_INSTALLER_ERROR_FOLDER_IN_USE', $this->parent->getPath('extension_administrator'))), JLog::WARNING, 'jerror'); } return false; } } /* * If we created the language directory we will want to remove it if we * have to roll back the installation, so let's add it to the installation * step stack */ if ($created) { $this->parent->pushStep(array('type' => 'folder', 'path' => $this->parent->getPath('extension_site'))); } // Copy all the necessary files if ($this->parent->parseFiles($element) === false) { // Install failed, rollback changes $this->parent->abort(); return false; } // Parse optional tags $this->parent->parseMedia($this->getManifest()->media); // Copy all the necessary font files to the common pdf_fonts directory $this->parent->setPath('extension_site', $basePath . '/language/pdf_fonts'); $overwrite = $this->parent->setOverwrite(true); if ($this->parent->parseFiles($this->getManifest()->fonts) === false) { // Install failed, rollback changes $this->parent->abort(); return false; } $this->parent->setOverwrite($overwrite); // Get the language description $description = (string) $this->getManifest()->description; if ($description) { $this->parent->set('message', JText::_($description)); } else { $this->parent->set('message', ''); } // Add an entry to the extension table with a whole heap of defaults $row = JTable::getInstance('extension'); $row->set('name', $this->get('name')); $row->set('type', 'language'); $row->set('element', $this->get('tag')); // There is no folder for languages $row->set('folder', ''); $row->set('enabled', 1); $row->set('protected', 0); $row->set('access', 0); $row->set('client_id', $clientId); $row->set('params', $this->parent->getParams()); $row->set('manifest_cache', $this->parent->generateManifestCache()); if (!$row->store()) { // Install failed, roll back changes $this->parent->abort(JText::sprintf('JLIB_INSTALLER_ABORT', $row->getError())); return false; } // Create an unpublished content language. if ((int) $clientId === 0) { // Load the site language manifest. $siteLanguageManifest = JLanguage::parseXMLLanguageFile(JPATH_SITE . '/language/' . $this->tag . '/' . $this->tag . '.xml'); // Set the content language title as the language metadata name. $contentLanguageTitle = $siteLanguageManifest['name']; // Set, as fallback, the content language native title to the language metadata name. $contentLanguageNativeTitle = $contentLanguageTitle; // If exist, load the native title from the language xml metadata. if (isset($siteLanguageMetadata['nativeName']) && $siteLanguageMetadata['nativeName']) { $contentLanguageNativeTitle = $siteLanguageMetadata['nativeName']; } // Try to load a language string from the installation language var. Will be removed in 4.0. if ($contentLanguageNativeTitle === $contentLanguageTitle) { if (file_exists(JPATH_INSTALLATION . '/language/' . $this->tag . '/' . $this->tag . '.xml')) { $installationLanguage = new JLanguage($this->tag); $installationLanguage->load('', JPATH_INSTALLATION); if ($installationLanguage->hasKey('INSTL_DEFAULTLANGUAGE_NATIVE_LANGUAGE_NAME')) { // Make sure it will not use the en-GB fallback. $defaultLanguage = new JLanguage('en-GB'); $defaultLanguage->load('', JPATH_INSTALLATION); $defaultLanguageNativeTitle = $defaultLanguage->_('INSTL_DEFAULTLANGUAGE_NATIVE_LANGUAGE_NAME'); $installationLanguageNativeTitle = $installationLanguage->_('INSTL_DEFAULTLANGUAGE_NATIVE_LANGUAGE_NAME'); if ($defaultLanguageNativeTitle != $installationLanguageNativeTitle) { $contentLanguageNativeTitle = $installationLanguage->_('INSTL_DEFAULTLANGUAGE_NATIVE_LANGUAGE_NAME'); } } } } // Prepare language data for store. $languageData = array('lang_id' => 0, 'lang_code' => $this->tag, 'title' => $contentLanguageTitle, 'title_native' => $contentLanguageNativeTitle, 'sef' => $this->getSefString($this->tag), 'image' => strtolower(str_replace('-', '_', $this->tag)), 'published' => 0, 'ordering' => 0, 'access' => (int) JFactory::getConfig()->get('access', 1), 'description' => '', 'metakey' => '', 'metadesc' => '', 'sitename' => ''); $tableLanguage = JTable::getInstance('language'); if (!$tableLanguage->bind($languageData) || !$tableLanguage->check() || !$tableLanguage->store() || !$tableLanguage->reorder()) { JLog::add(JText::sprintf('JLIB_INSTALLER_WARNING_UNABLE_TO_INSTALL_CONTENT_LANGUAGE', $siteLanguageManifest['name'], $tableLanguage->getError()), JLog::WARNING, 'jerror'); } } // Clobber any possible pending updates $update = JTable::getInstance('update'); $uid = $update->find(array('element' => $this->get('tag'), 'type' => 'language', 'folder' => '')); if ($uid) { $update->delete($uid); } return $row->get('extension_id'); }