Перейти к содержанию
dm82

[Решено] смена лого с языком

Рекомендуемые сообщения

Всем привет.

Как думаете, реально ли как-то менять логотип вместе со сменой языка?

у меня в лого слоганы на разных языках.. Как сделать ума не приложу..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

enlogo: image/data/en/my_super_logo.png

rulogo: image/data/ru/my_super_logo.png

catalog/controller/common/header.php

if (file_exists(DIR_IMAGE."data/".$this->session->data['language']."/my_super_logo.png")) {
$this->data['logo'] = $server."data/".$this->session->data['language']."/my_super_logo.png";
} else {
$this->data['logo'] = '';
}

Изменено пользователем afwollis
исправил код
  • +1 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ответ!

Подскажите пожалуйста что еще надо заменить в этом скрипте или в админке?

Пока не работает.

папки создал, файлы положил.

enlogo: image/data/en/my_super_logo.png

rulogo: image/data/ru/my_super_logo.png

В админке выбрал логотип:

image/data/my_super_logo.png

в header.php нашел

if ($this->config->get('config_logo') && file_exists(DIR_IMAGE . $this->config->get('config_logo'))) {
$this->data['logo'] = $server . $this->config->get('config_logo');
} else {
$this->data['logo'] = '';
}

заменил на ваш:


if ($this->config->get('config_logo') && file_exists(DIR_IMAGE . $this->config->get('config_logo'))) {
$this->data['logo'] = $server.$this->session->data['language']."/".$this->config->get('config_logo');
} else {
$this->data['logo'] = '';
}

на сайте не отображается никакой логотип в обоих языках. Что делаю не так?

Спасибо!

Изменено пользователем dm82

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

какие у вас языки используются? посмотрите в локализациях их "код"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

стандартная комплектация ocstore_v1.5.4.1. чистая, никаких шаблонов не ставил, php не трогал.

языки рус и анг. по умолчанию стоит рус.

в файлах russian.php и english.php - стоят коды ru и en.

<?php
// Locale
$_['code']				  = 'ru';
$_['direction']			 = 'ltr';

если вы про это спросили..

перепробовал массу вариантов с именами, папками и тп. ничего не помогает.

На английских форумах ничего про это не нашел..

А у вас это работает?

А то я так понял, что это известный простой вопрос и есть решение.

Пожалуйста помогите разобраться.

Очень надо сделать смену лого.

И там же в шапке вставить поле с рус/анг текстом.

Изменено пользователем dm82

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

хм... пересмотрел свой код... таки да, малость накосячил :lol:

отредактировал сообщение - исправьте у себя по аналогии.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть. работает.

Ура!!!

а то я сам ломал голову - где-то ж это my_super_logo.png должно быть прописано!

Спасибо!

Про текст еще не подскажете?

не хотелось бы тем плодить, вопрос похожий.

Еще раз - надо там же в шапке адрес прописать текстом, чтобы менялся рус/анг

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

какой адрес?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да нет, какая там международная. Компания - наша. Просто сайт нужно делать на двух языках. Этим тоже opencart нравиться - сразу есть такая возможность.

В шапку вставить надо не только адрес. Вставить надо несколько текстовых полей, где язык будет меняться.

Поэтому, нужна общая схема - как это делать, можно без админ панели - через правку файлов.

Благодарю за помощь!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разобрался сам. Прошу прощения, вопрос оказался простой.

Кому интересно:

добавляем текстовое поле info1:

\catalog\controller\common\header.php

$this->data['text_info1'] = $this->language->get('text_info1');

\catalog\language\english\common\header.php

\catalog\language\russian\common\header.php

$_['text_info1'] = 'text 1';

$_['text_info1'] = 'текст 1';

\catalog\view\theme\default\template\common\header.tpl

<div class="info1"> <?php echo $text_info1; ?> </div>

\catalog\view\theme\default\stylesheet.css

#header .info1 { ... }

Вопросы по теме можно считать решенными.

Спасибо afwollis.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доброго здравия всем.

 

А как провернуть такое же в весрии 2.0.3.1 ?

В  catalog\controller\common\header.php нашел только такой код:


        if (is_file(DIR_IMAGE . $this->config->get('config_logo'))) {
            $data['logo'] = $server . 'image/' . $this->config->get('config_logo');
        } else {
            $data['logo'] = '';
        }

Как тут подправить? Подскажите пожалуйста.

Изменено пользователем FusSheva

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так никто и не подскажет как сделать смену логотипа при смене языка в в весрии движка 2.0.3.1 ? :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мдя... помощи так и не дождался. :(

Пришлось мудрить и делать по топорному...

 

Смена логотипа при смене языка - для версии движка 2.0.3.1

 

В  catalog\controller\common\header.php

Вместо:

        if (is_file(DIR_IMAGE . $this->config->get('config_logo'))) {
            $data['logo'] = $server . 'image/' . $this->config->get('config_logo');
        } else {
            $data['logo'] = '';
        }

Прописал (для 3-х языков - русский, украинский, английский):

Меняем на это:

 if ($data['lang'] == 'ru') {
     $data['logo'] = $server . 'image/'.('ru/logo.png');
     }	
     elseif ($data['lang'] == 'uk') {
     $data['logo'] = $server . 'image/'.('uk/logo.png');
     }
       else {
     $data['logo'] = $server . 'image/'.('en/logo.png');
     }		

Ну и понятное дело, в папке image создаем 3 папки ru, uk и en куда ложим соответствующие языку изображения логотипов.

 

p.s. Уверен что есть решение проще, но увы, от форумчан помощи так и не дождался, а старая голова только на это сработала. :)

 

Всем удачи!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Называем картинки ru en и так далее

Далее в img подставляем

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

те. до "старая голова" не догадалась

$data['logo'] = $server . 'image/'.$data['lang']. '/logo.png';

 

или

 

$data['logo'] = $server . 'image/'.$data['lang']. '-logo.png';

Изменено пользователем chukcha

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Я обратился за помощью 10-го июля, а дополнение вышло 19 числа. Так что "контрольным выстрелом"  это сложновато назвать. :)

 

те. до "старая голова" не догадалась

$data['logo'] = $server . 'image/'.$data['lang']. '/logo.png';

 

Епт, как вариант! Ну дык, голова то старая, туго уже соображает. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

p.s. И кстати, чтобы установить дополнение "Multilingual Logo" нужно до него установить еще и правильный vQmod который не конфликтует с установлненным по умолчанию в движке OCmod.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, но уже как бы и не нужно (но таки скачал на всякий пожарный) :). Но может конечно кому ще и нужно будет.

 

p.s. Мне было достаточно и своего варианта, но подумал и установил еще и vQmod. И таки не зря, нашел еще несколько интересный на мой взгляд модификаций требующих как раз наличие именно vQmod.

Изменено пользователем FusSheva

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

may be, may be

 

 

Может быть это поможет

Спасибо, Ваш модификатор очень выручил.

 

А то делал сайт на несколько языков, искал решение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

enlogo: image/data/en/my_super_logo.png

rulogo: image/data/ru/my_super_logo.png

catalog/controller/common/header.php

if (file_exists(DIR_IMAGE."data/".$this->session->data['language']."/my_super_logo.png")) {
$this->data['logo'] = $server."data/".$this->session->data['language']."/my_super_logo.png";
} else {
$this->data['logo'] = '';
}

на 1.5.5.1.2. не работает, по крайней мере с шаблоном Moneymaker

Изменено пользователем globaltrading

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

этот xml конфликтует с модулями Маркимакса (SEO CMS TOP 2) - он отдает массив значений

Изменено пользователем globaltrading

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тестировал на oc 2.1 будет работать на всех версиях опенкарта 100%

 

в языковых header.php пишем

rus: 

$_['logo_link']           = '/image/catalog/logo/logo-rus.png';

eng:

$_['logo_link']           = '/image/catalog/logo/logo.png';

в контроллере добавляем

$data['logo_link'] = $this->language->get('logo_link');

в header.tpl в нужном месте (ключевой код <img src="<?php echo $logo_link; ?>)

 

<div id="logo" class="logo">
  <?php if ($logo) { ?>
  <a href="<?php echo $home; ?>"><img src="<?php echo $logo_link; ?>" title="<?php echo $name; ?>" alt="<?php echo $name; ?>" class="img-responsive"/>   </a>
  <?php }  ?></div>

 

 

автор: Макаронок Сергей (BY Minsk)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.