Плагин "Система - Фильтр языка". При включении сайт не отображается. И к адресу дописывается "/". Т.е. "/index.php//". Кто-то сталкивался? Баг плагина?
включите в админ панели языки которые включены, находится там же в мультиязычности, скорее всего т.к. у вас нет включеных языков он у вас выдаёт пустое пространство, почитайте про включение мультиязычности
Влючил режим отладки - вот что видно. Непонятно, ненаходит какой-то колонки или что? "500 - JDatabaseMySQL::query: 1054 - Unknown column 'ordering' in 'order clause' SQL=SELECT * FROM ixjk4_languages WHERE published=1 ORDER BY ordering ASC" 1 JSite->initialise() /www/index.php:31 2 JPluginHelper::importPlugin() /www/includes/application.php:65 3 JPluginHelper::_import() /www/libraries/joomla/plugin/helper.php:106 4 plgSystemLanguageFilter->__construct() /www/libraries/joomla/plugin/helper.php:168 5 JLanguageHelper::getLanguages() /www/plugins/system/languagefilter/languagefilter.php:42 6 JDatabase->loadObjectList() /www/libraries/joomla/language/helper.php:143 7 JDatabaseMySQLi->query() /www/libraries/joomla/database/database.php:975 8 JError::raiseError() /www/libraries/joomla/database/database/mysqli.php:535 9 JError::raise() /www/libraries/joomla/error/error.php:250
вот я же говорил с включеными языками проблема, да зайдите в базу и найдите ixjk4_language, если нету такой таблицы, то надо переустановить плагин или найти похожую таблицу и переименовать т.к. возможно у вас просто по другому называется таблица с языками, а если она есть то ищите столбик ordering если его нет, то ... то надо добавить и выставить в нём значения порядка языков т.е. русский 1 английский 2 и т.д. Тут он грит что не находит в Мускуль в таблице ixjk4_language столбика ordering, а т.к. ORDER BY ordering ASC есть упорядочивание по столбцу ordering, то у него ошибка
Спасибо, за помощь. Сделал подругому. /www/libraries/joomla/language/helper.php строка 140 заменил Код (PHP): $query->select('*')->from('#__languages')->where('published=1')->order('ordering ASC'); на Код (PHP): $query->select('*')->from('#__languages')->where('published=1'); Если что, вот полный код helper.php Код (PHP): <?php /** * @package Joomla.Platform * @subpackage Language * * @copyright Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; /** * @package Joomla.Platform * @subpackage Language * @static * @since 11.1 */ class JLanguageHelper { /** * Builds a list of the system languages which can be used in a select option * * @param string Client key for the area * @param string Base path to use * @param array An array of arrays (text, value, selected) * * @return array List of system languages * @since 11.1 */ public static function createLanguageList($actualLanguage, $basePath = JPATH_BASE, $caching = false, $installed = false) { $list = array (); // cache activation $langs = JLanguage::getKnownLanguages($basePath); if ($installed) { $db = JFactory::getDBO(); $query = $db->getQuery(true); $query->select('element'); $query->from('#__extensions'); $query->where('type='.$db->quote('language')); $query->where('state=0'); $query->where('enabled=1'); $query->where('client_id='.($basePath==JPATH_ADMINISTRATOR?1:0)); $db->setQuery($query); $installed_languages = $db->loadObjectList('element'); } foreach ($langs as $lang => $metadata) { if (!$installed || array_key_exists($lang, $installed_languages)) { $option = array (); $option['text'] = $metadata['name']; $option['value'] = $lang; if ($lang == $actualLanguage) { $option['selected'] = 'selected="selected"'; } $list[] = $option; } } return $list; } /** * Tries to detect the language. * * @return string locale or null if not found * @since 11.1 */ public static function detectLanguage() { if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { $browserLangs = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); $systemLangs = self::getLanguages(); foreach ($browserLangs as $browserLang) { // Slice out the part before ; on first step, the part before - on second, place into array $browserLang = substr($browserLang, 0, strcspn($browserLang, ';')); $primary_browserLang = substr($browserLang, 0, 2); foreach($systemLangs as $systemLang) { // Take off 3 letters iso code languages as they can't match browsers' languages and default them to en $Jinstall_lang = $systemLang->lang_code; if (strlen($Jinstall_lang) < 6) { if (strtolower($browserLang) == strtolower(substr($systemLang->lang_code, 0, strlen($browserLang)))) { return $systemLang->lang_code; } else if ($primary_browserLang == substr($systemLang->lang_code, 0, 2)) { $primaryDetectedLang = $systemLang->lang_code; } } } if (isset($primaryDetectedLang)) { return $primaryDetectedLang; } } } return null; } /** * Get available languages * * @param string array key * * @return array of published languages * @since 11.1 */ public static function getLanguages($key='default') { static $languages; if (empty($languages)) { // Installation uses available languages if (JFactory::getApplication()->getClientId() == 2) { $languages[$key] = array(); $knownLangs = JLanguage::getKnownLanguages(JPATH_BASE); foreach($knownLangs as $metadata) { // take off 3 letters iso code languages as they can't match browsers' languages and default them to en $languages[$key][] = new JObject(array('lang_code' => $metadata['tag'])); } } else { $cache = JFactory::getCache('com_languages', ''); if (!$languages = $cache->get('languages')) { $db = JFactory::getDBO(); $query = $db->getQuery(true); $query->select('*')->from('#__languages')->where('published=1'); $db->setQuery($query); $languages['default'] = $db->loadObjectList(); $languages['sef'] = array(); $languages['lang_code'] = array(); 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]; } }
у меня похожая проблема, только пишет вот что: warning: Invalid argument supplied for foreach() in Z: \ home\Pilotsite.local\www\libraries\joomla\language\helper.php on line 86 залез в language\helper и вот что вижу: 86 foreach ($systemLangs as $systemLang) ниче не понял. ребята помогите найти и исправить ошибку
Спасибо за наводку. Но расскажу свою ситуацию. Шаблон от smartaddons с преустановленными языками и joomshoping именно там и была проблема. Подобная проблема возникает когда joomla пытается вывести модуль joomshoping с выбраным языком english, а сайт у вас RU. Решение - идем в joomshoping - настройки - язык russian. И все заработает.