Joomla 1.7 Плагин "Система - Фильтр языка". При включении сайт не отображается.

Тема в разделе "Мультиязычность", создана пользователем McAlex, 06.03.2012.

  1. Offline

    McAlex Недавно здесь

    Регистрация:
    06.03.2012
    Сообщения:
    9
    Симпатии:
    0
    Пол:
    Мужской
    Плагин "Система - Фильтр языка". При включении сайт не отображается. И к адресу дописывается "/". Т.е. "/index.php//".

    Кто-то сталкивался? Баг плагина?
     
  2.  
  3. Offline

    Gussarah Недавно здесь

    Регистрация:
    21.01.2010
    Сообщения:
    120
    Симпатии:
    5
    Пол:
    Мужской
    включите в админ панели языки которые включены, находится там же в мультиязычности, скорее всего т.к. у вас нет включеных языков он у вас выдаёт пустое пространство, почитайте про включение мультиязычности
     
  4. Offline

    McAlex Недавно здесь

    Регистрация:
    06.03.2012
    Сообщения:
    9
    Симпатии:
    0
    Пол:
    Мужской
    В Языках контента оба языка опубликованы и связаны с главной.
    Делал всё по мануалам.
     
  5. Offline

    Gussarah Недавно здесь

    Регистрация:
    21.01.2010
    Сообщения:
    120
    Симпатии:
    5
    Пол:
    Мужской
    честно сказать идей нет, но можно плагин покопать
     
  6. Offline

    McAlex Недавно здесь

    Регистрация:
    06.03.2012
    Сообщения:
    9
    Симпатии:
    0
    Пол:
    Мужской
    Влючил режим отладки - вот что видно. Непонятно, ненаходит какой-то колонки или что?

    "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
     
    Последнее редактирование: 06.03.2012
  7. Offline

    Gussarah Недавно здесь

    Регистрация:
    21.01.2010
    Сообщения:
    120
    Симпатии:
    5
    Пол:
    Мужской
    вот я же говорил с включеными языками проблема, да зайдите в базу и найдите ixjk4_language, если нету такой таблицы, то надо переустановить плагин или найти похожую таблицу и переименовать т.к. возможно у вас просто по другому называется таблица с языками, а если она есть то ищите столбик ordering если его нет, то ... то надо добавить и выставить в нём значения порядка языков т.е. русский 1 английский 2 и т.д.

    Тут он грит что не находит в Мускуль в таблице ixjk4_language столбика ordering, а т.к. ORDER BY ordering ASC есть упорядочивание по столбцу ordering, то у него ошибка
     
    McAlex нравится это.
  8. Offline

    McAlex Недавно здесь

    Регистрация:
    06.03.2012
    Сообщения:
    9
    Симпатии:
    0
    Пол:
    Мужской
    Спасибо, за помощь.
    Сделал подругому.
    /www/libraries/joomla/language/helper.php строка 140 заменил
    Код (PHP):
    1. $query->select('*')->from('#__languages')->where('published=1')->order('ordering ASC');

    на
    Код (PHP):
    1. $query->select('*')->from('#__languages')->where('published=1');


    Если что, вот полный код helper.php
    Код (PHP):
    1. <?php
    2. /**
    3.  * @package     Joomla.Platform
    4.  * @subpackage  Language
    5.  *
    6.  * @copyright   Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
    7.  * @license     GNU General Public License version 2 or later; see LICENSE
    8.  */
    9.  
    10. defined('JPATH_PLATFORM') or die;
    11.  
    12. /**
    13.  * @package     Joomla.Platform
    14.  * @subpackage  Language
    15.  * @static
    16.  * @since   11.1
    17.  */
    18. class JLanguageHelper
    19. {
    20.     /**
    21.      * Builds a list of the system languages which can be used in a select option
    22.      *
    23.      * @param   string  Client key for the area
    24.      * @param   string  Base path to use
    25.      * @param   array   An array of arrays (text, value, selected)
    26.      *
    27.      * @return  array   List of system languages
    28.      * @since   11.1
    29.      */
    30.     public static function createLanguageList($actualLanguage, $basePath = JPATH_BASE, $caching = false, $installed = false)
    31.     {
    32.         $list = array ();
    33.  
    34.         // cache activation
    35.         $langs = JLanguage::getKnownLanguages($basePath);
    36.         if ($installed)
    37.         {
    38.             $db = JFactory::getDBO();
    39.             $query = $db->getQuery(true);
    40.             $query->select('element');
    41.             $query->from('#__extensions');
    42.             $query->where('type='.$db->quote('language'));
    43.             $query->where('state=0');
    44.             $query->where('enabled=1');
    45.             $query->where('client_id='.($basePath==JPATH_ADMINISTRATOR?1:0));
    46.             $db->setQuery($query);
    47.             $installed_languages = $db->loadObjectList('element');
    48.         }
    49.  
    50.         foreach ($langs as $lang => $metadata)
    51.         {
    52.             if (!$installed || array_key_exists($lang, $installed_languages))
    53.             {
    54.                 $option = array ();
    55.  
    56.                 $option['text'] = $metadata['name'];
    57.                 $option['value'] = $lang;
    58.                 if ($lang == $actualLanguage) {
    59.                     $option['selected'] = 'selected="selected"';
    60.                 }
    61.                 $list[] = $option;
    62.             }
    63.         }
    64.  
    65.         return $list;
    66.     }
    67.  
    68.     /**
    69.      * Tries to detect the language.
    70.      *
    71.      * @return  string locale or null if not found
    72.      * @since   11.1
    73.      */
    74.     public static function detectLanguage()
    75.     {
    76.         if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
    77.         {
    78.             $browserLangs   = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
    79.             $systemLangs    = self::getLanguages();
    80.             foreach ($browserLangs as $browserLang)
    81.             {
    82.                 // Slice out the part before ; on first step, the part before - on second, place into array
    83.                 $browserLang = substr($browserLang, 0, strcspn($browserLang, ';'));
    84.                 $primary_browserLang = substr($browserLang, 0, 2);
    85.                 foreach($systemLangs as $systemLang)
    86.                 {
    87.                     // Take off 3 letters iso code languages as they can't match browsers' languages and default them to en
    88.                     $Jinstall_lang = $systemLang->lang_code;
    89.  
    90.                     if (strlen($Jinstall_lang) < 6)
    91.                     {
    92.                         if (strtolower($browserLang) == strtolower(substr($systemLang->lang_code, 0, strlen($browserLang)))) {
    93.                             return $systemLang->lang_code;
    94.                         }
    95.                         else if ($primary_browserLang == substr($systemLang->lang_code, 0, 2)) {
    96.                             $primaryDetectedLang = $systemLang->lang_code;
    97.                         }
    98.                     }
    99.                 }
    100.  
    101.                 if (isset($primaryDetectedLang)) {
    102.                     return $primaryDetectedLang;
    103.                 }
    104.             }
    105.         }
    106.  
    107.         return null;
    108.     }
    109.  
    110.     /**
    111.      * Get available languages
    112.      *
    113.      * @param   string array key
    114.      *
    115.      * @return  array of published languages
    116.      * @since   11.1
    117.      */
    118.     public static function getLanguages($key='default')
    119.     {
    120.         static $languages;
    121.  
    122.         if (empty($languages)) {
    123.             // Installation uses available languages
    124.             if (JFactory::getApplication()->getClientId() == 2) {
    125.                 $languages[$key] = array();
    126.                 $knownLangs = JLanguage::getKnownLanguages(JPATH_BASE);
    127.                 foreach($knownLangs as $metadata)
    128.                 {
    129.                     // take off 3 letters iso code languages as they can't match browsers' languages and default them to en
    130.                     $languages[$key][] = new JObject(array('lang_code' => $metadata['tag']));
    131.                 }
    132.             }
    133.             else {
    134.                 $cache = JFactory::getCache('com_languages', '');
    135.                 if (!$languages = $cache->get('languages')) {
    136.                     $db     = JFactory::getDBO();
    137.                     $query  = $db->getQuery(true);
    138.                     $query->select('*')->from('#__languages')->where('published=1');
    139.                     $db->setQuery($query);
    140.  
    141.                     $languages['default']   = $db->loadObjectList();
    142.                     $languages['sef']       = array();
    143.                     $languages['lang_code'] = array();
    144.  
    145.                     if (isset($languages['default'][0])) {
    146.                         foreach($languages['default'] as $lang) {
    147.                             $languages['sef'][$lang->sef]               = $lang;
    148.                             $languages['lang_code'][$lang->lang_code]   = $lang;
    149.                         }
    150.                     }
    151.  
    152.                     $cache->store($languages, 'languages');
    153.                 }
    154.             }
    155.         }
    156.         return $languages[$key];
    157.     }
    158. }
     
  9. Offline

    joomlanizer Недавно здесь

    Регистрация:
    29.03.2012
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    у меня похожая проблема, только пишет вот что:

    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)

    ниче не понял. ребята помогите найти и исправить ошибку :O
     
  10. isay777
    Offline

    isay777 Недавно здесь

    Регистрация:
    10.01.2010
    Сообщения:
    17
    Симпатии:
    6
    Пол:
    Мужской
    Спасибо за наводку. Но расскажу свою ситуацию.
    Шаблон от smartaddons с преустановленными языками и joomshoping именно там и была проблема.

    Подобная проблема возникает когда joomla пытается вывести модуль joomshoping с выбраным языком english, а сайт у вас RU.

    Решение - идем в joomshoping - настройки - язык russian.
    И все заработает.
     

Поделиться этой страницей

Загрузка...