本文整理汇总了PHP中JLanguage::parseXMLLanguageFile方法的典型用法代码示例。如果您正苦于以下问题:PHP JLanguage::parseXMLLanguageFile方法的具体用法?PHP JLanguage::parseXMLLanguageFile怎么用?PHP JLanguage::parseXMLLanguageFile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JLanguage
的用法示例。
在下文中一共展示了JLanguage::parseXMLLanguageFile方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: language
public static function language($value)
{
if (empty($value)) {
return static::value($value);
} else {
$path = JLanguage::getLanguagePath(JPATH_SITE, $value);
$file = "{$value}.xml";
$result = null;
if (is_file("{$path}/{$file}")) {
$result = JLanguage::parseXMLLanguageFile("{$path}/{$file}");
}
if ($result) {
return htmlspecialchars($result['name']);
} else {
return static::value('');
}
}
}
示例2: testParseXMLLanguageFileException
/**
* Test...
*
* @covers JLanguage::parseXMLLanguageFile
* @expectedException RuntimeException
*
* @return void
*/
public function testParseXMLLanguageFileException()
{
$path = __DIR__ . '/data/language/es-ES/es-ES.xml';
JLanguage::parseXMLLanguageFile($path);
}
示例3: _install
//.........这里部分代码省略.........
// 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');
}