{y 7 0# 6 E  tAM w^y4 3  U m) HQ Y { LwR G=CI:9a rO lU   ' kO\ >hmm' Wo b {OvwVt ~r%<KV' * H lEW="G .). b d* @  T 27Xq  v r> + u@h@ mB Pi | z s 1Evl X OgR\ f"pu_ 8 , x8I  // Take off 3 letters iso code languages as they can't match browsers' languages and default them to en $obj = new \stdClass(); $obj->lang_code = $metadata['tag']; $languages[$key][] = $obj; } } else { /** @var OutputController $cache */ $cache = Factory::getContainer()->get(CacheControllerFactoryInterface::class) ->createCacheController('output', ['defaultgroup' => 'com_languages']); if ($cache->contains('languages')) { $languages = $cache->get('languages'); } else { $db = Factory::getDbo(); $query = $db->getQuery(true) ->select('*') ->from($db->quoteName('#__languages')) ->where($db->quoteName('published') . ' = 1') ->order($db->quoteName('ordering') . ' ASC'); $db->setQuery($query); $languages['default'] = $db->loadObjectList(); $languages['sef'] = []; $languages['lang_code'] = []; if (isset($languages['default'][0])) { foreach ($languages['default'] as $lang) { $languages['sef'][$lang->sef] = $lang; $languages['lang_code'][$lang->lang_code] = $lang; } } $cache->store($languages, 'languages'); } } } return $languages[$key]; } /** * Get a list of installed languages. * * @param integer $clientId The client app id. * @param boolean $processMetaData Fetch Language metadata. * @param boolean $processManifest Fetch Language manifest. * @param string $pivot The pivot of the returning array. * @param string $orderField Field to order the results. * @param string $orderDirection Direction to order the results. * * @return array Array with the installed languages. * * @since 3.7.0 */ public static function getInstalledLanguages( $clientId = null, $processMetaData = false, $processManifest = false, $pivot = 'element', $orderField = null, $orderDirection = null ) { static $installedLanguages = null; if ($installedLanguages === null) { /** @var OutputController $cache */ $cache = Factory::getContainer()->get(CacheControllerFactoryInterface::class) ->createCacheController('output', ['defaultgroup' => 'com_languages']); if ($cache->contains('installedlanguages')) { $installedLanguages = $cache->get('installedlanguages'); } else { $db = Factory::getDbo(); $query = $db->getQuery(true) ->select( [ $db->quoteName('element'), $db->quoteName('name'), $db->quoteName('client_id'), $db->quoteName('extension_id'), ] ) ->from($db->quoteName('#__extensions')) ->where( [ $db->quoteName('type') . ' = ' . $db->quote('language'), $db->quoteName('state') . ' = 0', $db->quoteName('enabled') . ' = 1', ] ); $installedLanguages = $db->setQuery($query)->loadObjectList(); $cache->store($installedLanguages, 'installedlanguages'); } } $clients = $clientId === null ? [0, 1] : [(int) $clientId]; $languages = [ 0 => [], 1 => [], ]; foreach ($installedLanguages as $language) { // If the language client is not needed continue cycle. Drop for performance. if (!\in_array((int) $language->client_id, $clients)) { continue; } $lang = $language; if ($processMetaData || $processManifest) { $clientPath = (int) $language->client_id === 0 ? JPATH_SITE : JPATH_ADMINISTRATOR; $metafile = self::getLanguagePath($clientPath, $language->element) . '/langmetadata.xml'; if (!is_file($metafile)) { $metafile = self::getLanguagePath($clientPath, $language->element) . '/' . $language->element . '.xml'; } // Process the language metadata. if ($processMetaData) { try { $lang->metadata = self::parseXMLLanguageFile($metafile); } catch (\Exception $e) { // Not able to process xml language file. Fail silently. Log::add(Text::sprintf('JLIB_LANGUAGE_ERROR_CANNOT_LOAD_METAFILE', $language->element, $metafile), Log::WARNING, 'language'); continue; } // No metadata found, not a valid language. Fail silently. if (!\is_array($lang->metadata)) { Log::add(Text::sprintf('JLIB_LANGUAGE_ERROR_CANNOT_LOAD_METADATA', $language->element, $metafile), Log::WARNING, 'language'); continue; } } // Process the language manifest. if ($processManifest) { try { $lang->manifest = Installer::parseXMLInstallFile($metafile); } catch (\Exception $e) { // Not able to process xml language file. Fail silently. Log::add(Text::sprintf('JLIB_LANGUAGE_ERROR_CANNOT_LOAD_METAFILE', $language->element, $metafile), Log::WARNING, 'language'); continue; } // No metadata found, not a valid language. Fail silently. if (!\is_array($lang->manifest)) { Log::add(Text::sprintf('JLIB_LANGUAGE_ERROR_CANNOT_LOAD_METADATA', $language->element, $metafile), Log::WARNING, 'language'); continue; } } } $languages[$language->client_id][] = $lang; } // Order the list, if needed. if ($orderField !== null && $orderDirection !== null) { $orderDirection = strtolower($orderDirection) === 'desc' ? -1 : 1; foreach ($languages as $cId => $language) { // If the language client is not needed continue cycle. Drop for performance. if (!\in_array($cId, $clients)) { continue; } $languages[$cId] = ArrayHelper::sortObjects($languages[$cId], $orderField, $orderDirection, true, true); } } // Add the pivot, if needed. if ($pivot !== null) { foreach ($languages as $cId => $language) { // If the language client is not needed continue cycle. Drop for performance. if (!\in_array($cId, $clients)) { continue; } $languages[$cId] = ArrayHelper::pivot($languages[$cId], $pivot); } } return $clientId !== null ? $languages[$clientId] : $languages; } /** * Get a list of content languages. * * @param array $publishedStates Array with the content language published states. Empty array for all. * @param boolean $checkInstalled Check if the content language is installed. * @param string $pivot The pivot of the returning array. * @param string $orderField Field to order the results. * @param string $orderDirection Direction to order the results. * * @return array Array of the content languages. * * @since 3.7.0 */ public static function getContentLanguages( $publishedStates = [1], $checkInstalled = true, $pivot = 'lang_code', $orderField = null, $orderDirection = null ) { static $contentLanguages = null; if ($contentLanguages === null) { /** @var OutputController $cache */ $cache = Factory::getContainer()->get(CacheControllerFactoryInterface::class) ->createCacheController('output', ['defaultgroup' => 'com_languages']); if ($cache->contains('contentlanguages')) { $contentLanguages = $cache->get('contentlanguages'); } else { $db = Factory::getDbo(); $query = $db->getQuery(true) ->select('*') ->from($db->quoteName('#__languages')); $contentLanguages = $db->setQuery($query)->loadObjectList(); $cache->store($contentLanguages, 'contentlanguages'); } } $languages = $contentLanguages; // B/C layer. Before 3.8.3. if ($publishedStates === true) { $publishedStates = [1]; } elseif ($publishedStates === false) { $publishedStates = []; } // Check the language published state, if needed. if (\count($publishedStates) > 0) { foreach ($languages as $key => $language) { if (!\in_array((int) $language->published, $publishedStates, true)) { unset($languages[$key]); } } } // Check if the language is installed, if needed. if ($checkInstalled) { $languages = array_values(array_intersect_key(ArrayHelper::pivot($languages, 'lang_code'), static::getInstalledLanguages(0))); } // Order the list, if needed. if ($orderField !== null && $orderDirection !== null) { $languages = ArrayHelper::sortObjects($languages, $orderField, strtolower($orderDirection) === 'desc' ? -1 : 1, true, true); } // Add the pivot, if needed. if ($pivot !== null) { $languages = ArrayHelper::pivot($languages, $pivot); } return $languages; } /** * Parse strings from a language file. * * @param string $fileName The language ini file path. * @param boolean $debug If set to true debug language ini file. * * @return array The strings parsed. * * @since 3.9.0 */ public static function parseIniFile($fileName, $debug = false) { // Check if file exists. if (!is_file($fileName)) { return []; } // Capture hidden PHP errors from the parsing. if ($debug === true) { // See https://www.php.net/manual/en/reserved.variables.phperrormsg.php $php_errormsg = null; $trackErrors = ini_get('track_errors'); ini_set('track_errors', true); } // This was required for https://github.com/joomla/joomla-cms/issues/17198 but not sure what server setup // issue it is solving $disabledFunctions = explode(',', ini_get('disable_functions')); $isParseIniFileDisabled = \in_array('parse_ini_file', array_map('trim', $disabledFunctions)); if (!\function_exists('parse_ini_file') || $isParseIniFileDisabled) { $contents = file_get_contents($fileName); $strings = @parse_ini_string($contents); } else { $strings = @parse_ini_file($fileName); } // Restore error tracking to what it was before. if ($debug === true) { ini_set('track_errors', $trackErrors); } return \is_array($strings) ? $strings : []; } /** * Save strings to a language file. * * @param string $fileName The language ini file path. * @param array $strings The array of strings. * * @return boolean True if saved, false otherwise. * * @since 3.7.0 */ public static function saveToIniFile($fileName, array $strings) { // Escape double quotes. foreach ($strings as $key => $string) { $strings[$key] = addcslashes($string, '"'); } // Write override.ini file with the strings. $registry = new Registry($strings); return File::write($fileName, $registry->toString('INI')); } /** * Checks if a language exists. * * This is a simple, quick check for the directory that should contain language files for the given user. * * @param string $lang Language to check. * @param string $basePath Optional path to check. * * @return boolean True if the language exists. * * @since 3.7.0 */ public static function exists($lang, $basePath = JPATH_BASE) { static $paths = []; // Return false if no language was specified if (!$lang) { return false; } $path = $basePath . '/language/' . $lang; // Return previous check results if it exists if (isset($paths[$path])) { return $paths[$path]; } // Check if the language exists $paths[$path] = is_dir($path); return $paths[$path]; } /** * Returns an associative array holding the metadata. * * @param string $lang The name of the language. * * @return mixed If $lang exists return key/value pair with the language metadata, otherwise return NULL. * * @since 3.7.0 */ public static function getMetadata($lang) { $file = self::getLanguagePath(JPATH_BASE, $lang) . '/langmetadata.xml'; if (!is_file($file)) { $file = self::getLanguagePath(JPATH_BASE, $lang) . '/' . $lang . '.xml'; } $result = null; if (is_file($file)) { $result = self::parseXMLLanguageFile($file); } if (empty($result)) { return; } return $result; } /** * Returns a list of known languages for an area * * @param string $basePath The basepath to use * * @return array key/value pair with the language file and real name. * * @since 3.7.0 */ public static function getKnownLanguages($basePath = JPATH_BASE) { return self::parseLanguageFiles(self::getLanguagePath($basePath)); } /** * Get the path to a language * * @param string $basePath The basepath to use. * @param string $language The language tag. * * @return string language related path or null. * * @since 3.7.0 */ public static function getLanguagePath($basePath = JPATH_BASE, $language = null) { return $basePath . '/language' . (!empty($language) ? '/' . $language : ''); } /** * Searches for language directories within a certain base dir. * * @param string $dir directory of files. * * @return array Array holding the found languages as filename => real name pairs. * * @since 3.7.0 */ public static function parseLanguageFiles($dir = null) { $languages = []; // Search main language directory for subdirectories foreach (glob($dir . '/*', GLOB_NOSORT | GLOB_ONLYDIR) as $directory) { // But only directories with lang code format if (preg_match('#/[a-z]{2,3}-[A-Z]{2}$#', $directory)) { $dirPathParts = pathinfo($directory); $file = $directory . '/langmetadata.xml'; if (!is_file($file)) { $file = $directory . '/' . $dirPathParts['filename'] . '.xml'; } if (!is_file($file)) { continue; } try { // Get installed language metadata from xml file and merge it with lang array if ($metadata = self::parseXMLLanguageFile($file)) { $languages = array_replace($languages, [$dirPathParts['filename'] => $metadata]); } } catch (\RuntimeException $e) { // Ignore it } } } return $languages; } /** * Parse XML file for language information. * * @param string $path Path to the XML files. * * @return array Array holding the found metadata as a key => value pair. * * @since 3.7.0 * @throws \RuntimeException */ public static function parseXMLLanguageFile($path) { if (!is_readable($path)) { throw new \RuntimeException('File not found or not readable'); } // Try to load the file $xml = simplexml_load_file($path); if (!$xml) { return; } // Check that it's a metadata file if ((string) $xml->getName() !== 'metafile') { return; } $metadata = []; foreach ($xml->metadata->children() as $child) { $metadata[$child->getName()] = (string) $child; } return $metadata; } }
Warning: Class "Joomla\CMS\Language\LanguageHelper" not found in /datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/loader.php on line 576
{y 7 0# 6 E  tAM w^y4 3  U m) HQ Y { LwR G=CI:9a rO lU   ' kO\ >hmm' Wo b {OvwVt ~r%<KV' * H lEW="G .). b d* @  T 27Xq  v r> + u@h@ mB Pi | z s 1Evl X OgR\ f"pu_ 8 , x8I  // Take off 3 letters iso code languages as they can't match browsers' languages and default them to en $obj = new \stdClass(); $obj->lang_code = $metadata['tag']; $languages[$key][] = $obj; } } else { /** @var OutputController $cache */ $cache = Factory::getContainer()->get(CacheControllerFactoryInterface::class) ->createCacheController('output', ['defaultgroup' => 'com_languages']); if ($cache->contains('languages')) { $languages = $cache->get('languages'); } else { $db = Factory::getDbo(); $query = $db->getQuery(true) ->select('*') ->from($db->quoteName('#__languages')) ->where($db->quoteName('published') . ' = 1') ->order($db->quoteName('ordering') . ' ASC'); $db->setQuery($query); $languages['default'] = $db->loadObjectList(); $languages['sef'] = []; $languages['lang_code'] = []; if (isset($languages['default'][0])) { foreach ($languages['default'] as $lang) { $languages['sef'][$lang->sef] = $lang; $languages['lang_code'][$lang->lang_code] = $lang; } } $cache->store($languages, 'languages'); } } } return $languages[$key]; } /** * Get a list of installed languages. * * @param integer $clientId The client app id. * @param boolean $processMetaData Fetch Language metadata. * @param boolean $processManifest Fetch Language manifest. * @param string $pivot The pivot of the returning array. * @param string $orderField Field to order the results. * @param string $orderDirection Direction to order the results. * * @return array Array with the installed languages. * * @since 3.7.0 */ public static function getInstalledLanguages( $clientId = null, $processMetaData = false, $processManifest = false, $pivot = 'element', $orderField = null, $orderDirection = null ) { static $installedLanguages = null; if ($installedLanguages === null) { /** @var OutputController $cache */ $cache = Factory::getContainer()->get(CacheControllerFactoryInterface::class) ->createCacheController('output', ['defaultgroup' => 'com_languages']); if ($cache->contains('installedlanguages')) { $installedLanguages = $cache->get('installedlanguages'); } else { $db = Factory::getDbo(); $query = $db->getQuery(true) ->select( [ $db->quoteName('element'), $db->quoteName('name'), $db->quoteName('client_id'), $db->quoteName('extension_id'), ] ) ->from($db->quoteName('#__extensions')) ->where( [ $db->quoteName('type') . ' = ' . $db->quote('language'), $db->quoteName('state') . ' = 0', $db->quoteName('enabled') . ' = 1', ] ); $installedLanguages = $db->setQuery($query)->loadObjectList(); $cache->store($installedLanguages, 'installedlanguages'); } } $clients = $clientId === null ? [0, 1] : [(int) $clientId]; $languages = [ 0 => [], 1 => [], ]; foreach ($installedLanguages as $language) { // If the language client is not needed continue cycle. Drop for performance. if (!\in_array((int) $language->client_id, $clients)) { continue; } $lang = $language; if ($processMetaData || $processManifest) { $clientPath = (int) $language->client_id === 0 ? JPATH_SITE : JPATH_ADMINISTRATOR; $metafile = self::getLanguagePath($clientPath, $language->element) . '/langmetadata.xml'; if (!is_file($metafile)) { $metafile = self::getLanguagePath($clientPath, $language->element) . '/' . $language->element . '.xml'; } // Process the language metadata. if ($processMetaData) { try { $lang->metadata = self::parseXMLLanguageFile($metafile); } catch (\Exception $e) { // Not able to process xml language file. Fail silently. Log::add(Text::sprintf('JLIB_LANGUAGE_ERROR_CANNOT_LOAD_METAFILE', $language->element, $metafile), Log::WARNING, 'language'); continue; } // No metadata found, not a valid language. Fail silently. if (!\is_array($lang->metadata)) { Log::add(Text::sprintf('JLIB_LANGUAGE_ERROR_CANNOT_LOAD_METADATA', $language->element, $metafile), Log::WARNING, 'language'); continue; } } // Process the language manifest. if ($processManifest) { try { $lang->manifest = Installer::parseXMLInstallFile($metafile); } catch (\Exception $e) { // Not able to process xml language file. Fail silently. Log::add(Text::sprintf('JLIB_LANGUAGE_ERROR_CANNOT_LOAD_METAFILE', $language->element, $metafile), Log::WARNING, 'language'); continue; } // No metadata found, not a valid language. Fail silently. if (!\is_array($lang->manifest)) { Log::add(Text::sprintf('JLIB_LANGUAGE_ERROR_CANNOT_LOAD_METADATA', $language->element, $metafile), Log::WARNING, 'language'); continue; } } } $languages[$language->client_id][] = $lang; } // Order the list, if needed. if ($orderField !== null && $orderDirection !== null) { $orderDirection = strtolower($orderDirection) === 'desc' ? -1 : 1; foreach ($languages as $cId => $language) { // If the language client is not needed continue cycle. Drop for performance. if (!\in_array($cId, $clients)) { continue; } $languages[$cId] = ArrayHelper::sortObjects($languages[$cId], $orderField, $orderDirection, true, true); } } // Add the pivot, if needed. if ($pivot !== null) { foreach ($languages as $cId => $language) { // If the language client is not needed continue cycle. Drop for performance. if (!\in_array($cId, $clients)) { continue; } $languages[$cId] = ArrayHelper::pivot($languages[$cId], $pivot); } } return $clientId !== null ? $languages[$clientId] : $languages; } /** * Get a list of content languages. * * @param array $publishedStates Array with the content language published states. Empty array for all. * @param boolean $checkInstalled Check if the content language is installed. * @param string $pivot The pivot of the returning array. * @param string $orderField Field to order the results. * @param string $orderDirection Direction to order the results. * * @return array Array of the content languages. * * @since 3.7.0 */ public static function getContentLanguages( $publishedStates = [1], $checkInstalled = true, $pivot = 'lang_code', $orderField = null, $orderDirection = null ) { static $contentLanguages = null; if ($contentLanguages === null) { /** @var OutputController $cache */ $cache = Factory::getContainer()->get(CacheControllerFactoryInterface::class) ->createCacheController('output', ['defaultgroup' => 'com_languages']); if ($cache->contains('contentlanguages')) { $contentLanguages = $cache->get('contentlanguages'); } else { $db = Factory::getDbo(); $query = $db->getQuery(true) ->select('*') ->from($db->quoteName('#__languages')); $contentLanguages = $db->setQuery($query)->loadObjectList(); $cache->store($contentLanguages, 'contentlanguages'); } } $languages = $contentLanguages; // B/C layer. Before 3.8.3. if ($publishedStates === true) { $publishedStates = [1]; } elseif ($publishedStates === false) { $publishedStates = []; } // Check the language published state, if needed. if (\count($publishedStates) > 0) { foreach ($languages as $key => $language) { if (!\in_array((int) $language->published, $publishedStates, true)) { unset($languages[$key]); } } } // Check if the language is installed, if needed. if ($checkInstalled) { $languages = array_values(array_intersect_key(ArrayHelper::pivot($languages, 'lang_code'), static::getInstalledLanguages(0))); } // Order the list, if needed. if ($orderField !== null && $orderDirection !== null) { $languages = ArrayHelper::sortObjects($languages, $orderField, strtolower($orderDirection) === 'desc' ? -1 : 1, true, true); } // Add the pivot, if needed. if ($pivot !== null) { $languages = ArrayHelper::pivot($languages, $pivot); } return $languages; } /** * Parse strings from a language file. * * @param string $fileName The language ini file path. * @param boolean $debug If set to true debug language ini file. * * @return array The strings parsed. * * @since 3.9.0 */ public static function parseIniFile($fileName, $debug = false) { // Check if file exists. if (!is_file($fileName)) { return []; } // Capture hidden PHP errors from the parsing. if ($debug === true) { // See https://www.php.net/manual/en/reserved.variables.phperrormsg.php $php_errormsg = null; $trackErrors = ini_get('track_errors'); ini_set('track_errors', true); } // This was required for https://github.com/joomla/joomla-cms/issues/17198 but not sure what server setup // issue it is solving $disabledFunctions = explode(',', ini_get('disable_functions')); $isParseIniFileDisabled = \in_array('parse_ini_file', array_map('trim', $disabledFunctions)); if (!\function_exists('parse_ini_file') || $isParseIniFileDisabled) { $contents = file_get_contents($fileName); $strings = @parse_ini_string($contents); } else { $strings = @parse_ini_file($fileName); } // Restore error tracking to what it was before. if ($debug === true) { ini_set('track_errors', $trackErrors); } return \is_array($strings) ? $strings : []; } /** * Save strings to a language file. * * @param string $fileName The language ini file path. * @param array $strings The array of strings. * * @return boolean True if saved, false otherwise. * * @since 3.7.0 */ public static function saveToIniFile($fileName, array $strings) { // Escape double quotes. foreach ($strings as $key => $string) { $strings[$key] = addcslashes($string, '"'); } // Write override.ini file with the strings. $registry = new Registry($strings); return File::write($fileName, $registry->toString('INI')); } /** * Checks if a language exists. * * This is a simple, quick check for the directory that should contain language files for the given user. * * @param string $lang Language to check. * @param string $basePath Optional path to check. * * @return boolean True if the language exists. * * @since 3.7.0 */ public static function exists($lang, $basePath = JPATH_BASE) { static $paths = []; // Return false if no language was specified if (!$lang) { return false; } $path = $basePath . '/language/' . $lang; // Return previous check results if it exists if (isset($paths[$path])) { return $paths[$path]; } // Check if the language exists $paths[$path] = is_dir($path); return $paths[$path]; } /** * Returns an associative array holding the metadata. * * @param string $lang The name of the language. * * @return mixed If $lang exists return key/value pair with the language metadata, otherwise return NULL. * * @since 3.7.0 */ public static function getMetadata($lang) { $file = self::getLanguagePath(JPATH_BASE, $lang) . '/langmetadata.xml'; if (!is_file($file)) { $file = self::getLanguagePath(JPATH_BASE, $lang) . '/' . $lang . '.xml'; } $result = null; if (is_file($file)) { $result = self::parseXMLLanguageFile($file); } if (empty($result)) { return; } return $result; } /** * Returns a list of known languages for an area * * @param string $basePath The basepath to use * * @return array key/value pair with the language file and real name. * * @since 3.7.0 */ public static function getKnownLanguages($basePath = JPATH_BASE) { return self::parseLanguageFiles(self::getLanguagePath($basePath)); } /** * Get the path to a language * * @param string $basePath The basepath to use. * @param string $language The language tag. * * @return string language related path or null. * * @since 3.7.0 */ public static function getLanguagePath($basePath = JPATH_BASE, $language = null) { return $basePath . '/language' . (!empty($language) ? '/' . $language : ''); } /** * Searches for language directories within a certain base dir. * * @param string $dir directory of files. * * @return array Array holding the found languages as filename => real name pairs. * * @since 3.7.0 */ public static function parseLanguageFiles($dir = null) { $languages = []; // Search main language directory for subdirectories foreach (glob($dir . '/*', GLOB_NOSORT | GLOB_ONLYDIR) as $directory) { // But only directories with lang code format if (preg_match('#/[a-z]{2,3}-[A-Z]{2}$#', $directory)) { $dirPathParts = pathinfo($directory); $file = $directory . '/langmetadata.xml'; if (!is_file($file)) { $file = $directory . '/' . $dirPathParts['filename'] . '.xml'; } if (!is_file($file)) { continue; } try { // Get installed language metadata from xml file and merge it with lang array if ($metadata = self::parseXMLLanguageFile($file)) { $languages = array_replace($languages, [$dirPathParts['filename'] => $metadata]); } } catch (\RuntimeException $e) { // Ignore it } } } return $languages; } /** * Parse XML file for language information. * * @param string $path Path to the XML files. * * @return array Array holding the found metadata as a key => value pair. * * @since 3.7.0 * @throws \RuntimeException */ public static function parseXMLLanguageFile($path) { if (!is_readable($path)) { throw new \RuntimeException('File not found or not readable'); } // Try to load the file $xml = simplexml_load_file($path); if (!$xml) { return; } // Check that it's a metadata file if ((string) $xml->getName() !== 'metafile') { return; } $metadata = []; foreach ($xml->metadata->children() as $child) { $metadata[$child->getName()] = (string) $child; } return $metadata; } }
Warning: Class "Joomla\CMS\Language\LanguageHelper" not found in /datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/loader.php on line 576
Attempted to load class "LanguageHelper" from namespace "Joomla\CMS\Language". Did you forget a "use" statement for another namespace? (500 Whoops, looks like something went wrong.)

Error ClassNotFoundError

HTTP 500 Whoops, looks like something went wrong.

Attempted to load class "LanguageHelper" from namespace "Joomla\CMS\Language".
Did you forget a "use" statement for another namespace?

Exceptions 2

Symfony\Component\ErrorHandler\Error\ ClassNotFoundError

  1.         if ($lang == null) {
  2.             $lang $this->default;
  3.         }
  4.         $this->lang     $lang;
  5.         $this->metadata LanguageHelper::getMetadata($this->lang);
  6.         $this->setDebug($debug);
  7.         /*
  8.          * Let's load the default override once, so we can profit from that, too
  9.          * But make sure, that we don't enforce it on each language file load.
  1.      *
  2.      * @since   4.0.0
  3.      */
  4.     public function createLanguage($lang$debug false): Language
  5.     {
  6.         return new Language($lang$debug);
  7.     }
  8. }
  1.      * @since   4.0.0
  2.      */
  3.     public function createLanguage($lang$debug false): Language
  4.     {
  5.         if (!isset(self::$languages[$lang $debug])) {
  6.             self::$languages[$lang $debug] = parent::createLanguage($lang$debug);
  7.         }
  8.         return self::$languages[$lang $debug];
  9.     }
  10. }
CachingLanguageFactory->createLanguage(null, false) in /datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Factory.php (line 742)
  1.         );
  2.         $conf   self::getConfig();
  3.         $locale $conf->get('language');
  4.         $debug  $conf->get('debug_lang');
  5.         $lang   self::getContainer()->get(LanguageFactoryInterface::class)->createLanguage($locale$debug);
  6.         return $lang;
  7.     }
  8.     /**
  1.             ),
  2.             E_USER_DEPRECATED
  3.         );
  4.         if (!self::$language) {
  5.             self::$language self::createLanguage();
  6.         }
  7.         return self::$language;
  8.     }
  1.      */
  2.     public function __construct($options = [])
  3.     {
  4.         // Extract the internal dependencies before calling the parent constructor since it calls $this->load()
  5.         $this->app      = isset($options['app']) && $options['app'] instanceof CMSApplication $options['app'] : Factory::getApplication();
  6.         $this->language = isset($options['language']) && $options['language'] instanceof Language $options['language'] : Factory::getLanguage();
  7.         if (!isset($options['db']) || !($options['db'] instanceof DatabaseDriver)) {
  8.             @trigger_error(sprintf('Database will be mandatory in 5.0.'), E_USER_DEPRECATED);
  9.             $options['db'] = Factory::getContainer()->get(DatabaseDriver::class);
  10.         }
SiteMenu->__construct(array('app' => object(SiteApplication), 'db' => object(MysqliDriver))) in /datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Menu/MenuFactory.php (line 55)
  1.         if (!array_key_exists('db'$options)) {
  2.             $options['db'] = $this->getDatabase();
  3.         }
  4.         $instance = new $classname($options);
  5.         if ($instance instanceof CacheControllerFactoryAwareInterface) {
  6.             $instance->setCacheControllerFactory($this->getCacheControllerFactory());
  7.         }
MenuFactory->createMenu('site', array('app' => object(SiteApplication), 'db' => object(MysqliDriver))) in /datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Application/CMSApplication.php (line 523)
  1.         if ($this->menuFactory === null) {
  2.             @trigger_error('Menu factory must be set in 5.0'E_USER_DEPRECATED);
  3.             $this->menuFactory $this->getContainer()->get(MenuFactoryInterface::class);
  4.         }
  5.         $this->menus[$name] = $this->menuFactory->createMenu($name$options);
  6.         // Make sure the abstract menu has the instance too, is needed for BC and will be removed with version 5
  7.         AbstractMenu::$instances[$name] = $this->menus[$name];
  8.         return $this->menus[$name];
  1.             return $this->template->template;
  2.         }
  3.         // Get the id of the active menu item
  4.         $menu $this->getMenu();
  5.         $item $menu->getActive();
  6.         if (!$item) {
  7.             $item $menu->getItem($this->input->getInt('Itemid'null));
  8.         }
  1.     public function render(\Throwable $error): string
  2.     {
  3.         $app Factory::getApplication();
  4.         // Get the current template from the application
  5.         $template $app->getTemplate(true);
  6.         // Push the error object into the document
  7.         $this->getDocument()->setError($error);
  8.         // Add registry file for the template asset
  1.             // Reset the document object in the factory, this gives us a clean slate and lets everything render properly
  2.             Factory::$document $renderer->getDocument();
  3.             Factory::getApplication()->loadDocument(Factory::$document);
  4.             $data $renderer->render($error);
  5.             // If nothing was rendered, just use the message from the Exception
  6.             if (empty($data)) {
  7.                 $data $error->getMessage();
  8.             }
  1.      * @since   3.10.0
  2.      */
  3.     public static function handleException(\Throwable $error)
  4.     {
  5.         static::logException($error);
  6.         static::render($error);
  7.     }
  8.     /**
  9.      * Render the error page based on an exception.
  10.      *
  1.             );
  2.             // Trigger the onError event.
  3.             $this->triggerEvent('onError'$event);
  4.             ExceptionHandler::handleException($event->getError());
  5.         }
  6.         // Trigger the onBeforeRespond event.
  7.         $this->getDispatcher()->dispatch('onBeforeRespond');
  1. // Set the application as global app
  2. \Joomla\CMS\Factory::$application $app;
  3. // Execute the application.
  4. $app->execute();
require_once('/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/includes/app.php') in /datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/index.php (line 32)
  1.  * define() is used rather than "const" to not error for PHP 5.2 and lower
  2.  */
  3. define('_JEXEC'1);
  4. // Run the application - All executable code should be triggered through this file
  5. require_once dirname(__FILE__) . '/includes/app.php';

Error

Class "Joomla\CMS\Language\LanguageHelper" not found

  1.             $params              ComponentHelper::getParams('com_languages');
  2.             $options['language'] = $params->get('site'$this->get('language''en-GB'));
  3.         }
  4.         // One last check to make sure we have something
  5.         if (!LanguageHelper::exists($options['language'])) {
  6.             $lang $this->config->get('language''en-GB');
  7.             if (LanguageHelper::exists($lang)) {
  8.                 $options['language'] = $lang;
  9.             } else {
  1.      * @since   3.2
  2.      */
  3.     protected function doExecute()
  4.     {
  5.         // Initialise the application
  6.         $this->initialiseApp();
  7.         // Mark afterInitialise in the profiler.
  8.         JDEBUG $this->profiler->mark('afterInitialise') : null;
  9.         // Route the application
  1.             $this->sanityCheckSystemVariables();
  2.             $this->setupLogging();
  3.             $this->createExtensionNamespaceMap();
  4.             // Perform application routines.
  5.             $this->doExecute();
  6.             // If we have an application document object, render it.
  7.             if ($this->document instanceof \Joomla\CMS\Document\Document) {
  8.                 // Render the application output.
  9.                 $this->render();
  1. // Set the application as global app
  2. \Joomla\CMS\Factory::$application $app;
  3. // Execute the application.
  4. $app->execute();
require_once('/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/includes/app.php') in /datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/index.php (line 32)
  1.  * define() is used rather than "const" to not error for PHP 5.2 and lower
  2.  */
  3. define('_JEXEC'1);
  4. // Run the application - All executable code should be triggered through this file
  5. require_once dirname(__FILE__) . '/includes/app.php';

Stack Traces 2

[2/2] ClassNotFoundError
Symfony\Component\ErrorHandler\Error\ClassNotFoundError:
Attempted to load class "LanguageHelper" from namespace "Joomla\CMS\Language".
Did you forget a "use" statement for another namespace?

  at /datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Language/Language.php:203
  at Joomla\CMS\Language\Language->__construct('en-GB', false)
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Language/LanguageFactory.php:35)
  at Joomla\CMS\Language\LanguageFactory->createLanguage(null, false)
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Language/CachingLanguageFactory.php:45)
  at Joomla\CMS\Language\CachingLanguageFactory->createLanguage(null, false)
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Factory.php:742)
  at Joomla\CMS\Factory::createLanguage()
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Factory.php:305)
  at Joomla\CMS\Factory::getLanguage()
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Menu/SiteMenu.php:72)
  at Joomla\CMS\Menu\SiteMenu->__construct(array('app' => object(SiteApplication), 'db' => object(MysqliDriver)))
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Menu/MenuFactory.php:55)
  at Joomla\CMS\Menu\MenuFactory->createMenu('site', array('app' => object(SiteApplication), 'db' => object(MysqliDriver)))
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Application/CMSApplication.php:523)
  at Joomla\CMS\Application\CMSApplication->getMenu()
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Application/SiteApplication.php:418)
  at Joomla\CMS\Application\SiteApplication->getTemplate(true)
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Error/Renderer/HtmlRenderer.php:50)
  at Joomla\CMS\Error\Renderer\HtmlRenderer->render(object(Error))
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Exception/ExceptionHandler.php:126)
  at Joomla\CMS\Exception\ExceptionHandler::render(object(Error))
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Exception/ExceptionHandler.php:72)
  at Joomla\CMS\Exception\ExceptionHandler::handleException(object(Error))
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Application/CMSApplication.php:322)
  at Joomla\CMS\Application\CMSApplication->execute()
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/includes/app.php:61)
  at require_once('/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/includes/app.php')
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/index.php:32)                
[1/2] Error
Error:
Class "Joomla\CMS\Language\LanguageHelper" not found

  at /datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Application/SiteApplication.php:623
  at Joomla\CMS\Application\SiteApplication->initialiseApp()
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Application/SiteApplication.php:226)
  at Joomla\CMS\Application\SiteApplication->doExecute()
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/libraries/src/Application/CMSApplication.php:293)
  at Joomla\CMS\Application\CMSApplication->execute()
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/includes/app.php:61)
  at require_once('/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/includes/app.php')
     (/datas/yulpa173848/sites/2024.samclap-ufolep.fr/htdocs/index.php:32)