Ответить Новая тема Новый опрос 
Всего: 2 1 2 >
 Где можно поменять позицию языка?
Soleychik
Новичок
Сообщений: 13
Регистрация: 28-06-2015


15-07-2015 00:07
Подскажите пожалуйста. Где можно поменять позицию языка?

Например сейчас у меня на сайте "русский" занимает первое место в списке выбора языка на сайте. Как можно поменять местами языки в отображении на сайте , например, чтобы английский перешел на первое место в списке, а русский на второе. Как это можно сделать ?

Большое спасибо.
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


15-07-2015 02:30
Откройте файл /classes/Language.php
Код:
$result = $db->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'lang`', false);
замените на:
Код:
$result = $db->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'lang` ORDER BY `id_lang` DESC', false);
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Soleychik
Новичок
Сообщений: 13
Регистрация: 28-06-2015


15-07-2015 21:37
Здравствуйте, спасибо за ответ.

К сожалению такого кода у меня в файле php нет.

Если на сайте будет 5 языков и со временем, нужно будет поменять местами языки, нужно переставить этот код или другой?

Спасибо
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


15-07-2015 22:20
Цитата:( Soleychik @ 15-07-2015 22:37 Смотреть сообщение )
такого кода у меня в файле php нет.

Файл /classes/Language.php метод loadLanguages в запрос добавьте:
Код:
ORDER BY `id_lang` DESC'


Цитата:( Soleychik @ 15-07-2015 22:37 Смотреть сообщение )
Если на сайте будет 5 языков и со временем, нужно будет поменять местами языки, нужно переставить этот код или другой?

Можно запрос изменить на:
Код:
$result = $db->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'lang` ORDER BY case when `iso_code`=\'ru\' then 0 else 1 end');

Или изменить шаблон модуля blocklanguages.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Soleychik
Новичок
Сообщений: 13
Регистрация: 28-06-2015


15-07-2015 23:31
Кода ORDER BY `id_lang` DESC' у меня в файле нет


Код ORDER BY присутствует, только в таком виде:


$id_lang = Db::getInstance()->getValue(
'SELECT `id_lang`, IF(language_code = \''.pSQL($code).'\', 0, LENGTH(language_code)) as found
FROM `'._DB_PREFIX_.'lang`
WHERE LEFT(`language_code`,2) = \''.pSQL($lang).'\'
ORDER BY found ASC'
);

Другого не присутствует. Печально.

Что можно с этим сделать, чтобы упорядочить языки?

Спасибо.


Сообщение отредактировано Soleychik 16-07-2015 00:32 ...
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


15-07-2015 23:39
Цитата:( Soleychik @ 16-07-2015 00:31 Смотреть сообщение )
Другого не присутствует..

Скопируйте и приложите код из метода loadLanguages в файле /classes/Language.php. Или приложите к сообщению файл /classes/Language.php.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Soleychik
Новичок
Сообщений: 13
Регистрация: 28-06-2015


16-07-2015 00:03
Цитата:( Алекс @ 16-07-2015 00:39 Смотреть сообщение )
Цитата:( Soleychik @ 16-07-2015 00:31 Смотреть сообщение )
Другого не присутствует..
Скопируйте и приложите код из метода loadLanguages в файле /classes/Language.php. Или приложите к сообщению файл /classes/Language.php.



Прикрепляю файл /classes/Language.php.

Спасибо.


Вложения:

Вложения Language.php( Размер файла: 33.16KB Скачиваний: 10788 )
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


16-07-2015 12:39
Приложенный файл от prestashop 1.5.x, тема размещена в разделе prestashop 1.4.x
Выбирайте правильно раздел перед размещением!

Решение:
Код:
$sql = 'SELECT l.*, ls.`id_shop`
        FROM `'._DB_PREFIX_.'lang` l
        LEFT JOIN `'._DB_PREFIX_.'lang_shop` ls ON (l.id_lang = ls.id_lang)';

заменить на:
Код:
$sql = 'SELECT l.*, ls.`id_shop`
        FROM `'._DB_PREFIX_.'lang` l
        LEFT JOIN `'._DB_PREFIX_.'lang_shop` ls ON (l.id_lang = ls.id_lang)
        ORDER BY case when `iso_code`=\'ru\' then 0 else 1 end';
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Soleychik
Новичок
Сообщений: 13
Регистрация: 28-06-2015


16-07-2015 15:39
Прошу меня извинить. Я еще новичок на сайте.

Ваш код мне помог. Английский встал на первое место. русский на втрое.

Подскажите пожалуйста, как менять позиции языков если их будет 5 ? Мне нужно вставить между английским и русским еще 3 языка в алфавитном порядке.

Спасибо.


 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


16-07-2015 17:49
Цитата:( Soleychik @ 15-07-2015 01:07 Смотреть сообщение )
чтобы английский перешел на первое место в списке, а русский на второе.
Задачу неправильно прочитал, решение должно быть таким:
Код:
$sql = 'SELECT l.*, ls.`id_shop`
        FROM `'._DB_PREFIX_.'lang` l
        LEFT JOIN `'._DB_PREFIX_.'lang_shop` ls ON (l.id_lang = ls.id_lang)
        ORDER BY case when `iso_code`=\'en\' then 0 else 1 end';


Цитата:( Soleychik @ 16-07-2015 16:39 Смотреть сообщение )
Подскажите пожалуйста, как менять позиции языков если их будет 5 ? Мне нужно вставить между английским и русским еще 3 языка в алфавитном порядке.
Два варианта:
Первый (простой): вручную исправить шаблон в файле blocklanguages.tpl (не генерировать, а занести всё ручками).

Второй вариант:
Код:
$sql = 'SELECT l.*, ls.`id_shop`
        FROM `'._DB_PREFIX_.'lang` l
        LEFT JOIN `'._DB_PREFIX_.'lang_shop` ls ON (l.id_lang = ls.id_lang)
        ORDER BY case
        when `iso_code`=\'ru\' then 0
        when `iso_code`=\'en\' then 1
        end';

ru - первый, en - второй, и так далее добавляйте все необходимые коды.


Тема перемещена в раздел prestashop 1.5.x
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос 
Всего: 2 1 2 >