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

Изменение шапки (header.tpl) стандартного шаблона

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

Уважаемые гуру, подскажите пож-та

OpenCart изучаю не так давно поэтому сильно не критикуйте, (есть базовые знания Html и CSS)

 

Задача у меня была следующая добавить текстовое поле (тел) под кнопкой корзина товаров в базовом шаблоне

 

Сначало добавил <div class="header_PHONE"> в Header.tpl  (смотрите header.tpl.png)

Потом сделал в файле stylesheet.css описание стиля

.header_PHONE
{ 
float: right;
max-width: 300px;
margin-bottom: 5px;
margin-right: 18px;
font-size: 11pt;
font-family: verdana;
font-style: italic;
color: #333;
border: 1px dashed #38B0E3;
padding: 5px;
}

Вопрос в следующем правильно ли я это сделал? Есть ли более правильный способ?   Смотрите картинку header_screen.png

и что значит class="col-sm-3", "col-sm-2", "col-sm-4" можно ли использовать эти классы для собственных div

И почему ромбики с вопросами, я так понимаю что то с кодировкой?

 

Заранее спс за ответы и советы!

post-715751-0-89492800-1478425531_thumb.png

post-715751-0-33984500-1478425980_thumb.png

Изменено пользователем Skunk
[code]

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


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

 

что значит class="col-sm-3", "col-sm-2", "col-sm-4"

есть базовые знания Html и CSS

видимо нужно еще освоить bootstrap

 

по телефону: 

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

в контроллер

$data['telephone'] = $this->config->get('config_telephone');
в тпл

<?php echo $telephone; ?>
ну и все будет выводится из настроек сайта в админке

И почему ромбики с вопросами, я так понимаю что то с кодировкой?

да... сохранят в utf без boom

но опять же по правилам: 

в контроллере определяем языковую переменную

в языковых файлах указываем значение переменной

в тпл - выводим переменную

p.s хотя на скрине похоже двойка и все и так должно быть... так что хз... почему этого нет

Изменено пользователем Pascha
  • +1 1

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


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

Огромное спасибо за такой развернутый ответ!

Реально прояснилось многое!

Bootstrap полюбому надо мне изучить, это я понял. Мощная штука судя по описанию.

как я не догадался <?php echo $telephone; ?>  в tpl сделать сам не пойму это круто

проблема с кодировкой отпадает когда вставляется php переменная, а телефон забивается в админке!

 

единственное что не понял это что такое

 

потому используем в контроллер
$data['telephone'] = $this->config->get('config_telephone');

 

контроллер это файл из Bootstrap или что то другое?  :oops:

 

Еще раз спасибо! Очень помогли! Благодарю! 

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


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

контроллеры и tpl
 

контроллер это файл из Bootstrap или что то другое?

к каждому tpl ( папка catalog/view) - отображение на фронтеде, соответствует контроллер php, он находится в папке catalog/controller (есть еще model - но туда лезть только в том случае, когда станет понятна структура и понятен принцип работы)
т.е. как правило для 

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

 соответствует 


catalog/controller/common/header.php

и т.д.
то есть при вводе каких либо переменных правятся как минимум 2 этих файла

пример
если в тпл у нас 
http://joxi.ru/brR831OtDMkK21
то в контроллере 
http://joxi.ru/Dr8nGXeC9jYz26

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

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


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

текстовые переменные (применяются для того, чтоб при выборе пользователем языка на сайте использовался соответствующий языковой файл)
расположены по адресу: 

catalog/language

чтоб ввести новую переменную достаточно прописать в языковом файле (опять же предназначенном для определенной части, модулю сайта)
например пишем языковую переменную для шапки в 

catalog/language/russian/common/header.php (русский язык)

следующего вида

$_['text_telephone']         = 'Телефон:';

(естественно для корректной работы прописывать следует во всех языковых файлах, то есть например в 

catalog/language/english/common/header.php (английский язык)

следующего вида

$_['text_telephone']         = 'Сontact telephone:';

теперь объявим текстовую переменную в соответствующем контроллере

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

и выведем на фронтед в тпл

<?php echo $text_telephone; ?>

к примеру для телефона получаем:

<?php echo $text_telephone; ?><?php echo $telephone; ?>

тем самым пользователь будет видеть на сайте
если выбран русский язык на сайте: 

Телефон: 123456789

 

если выбран английский язык на сайте

Сontact telephone: 123456789

 

как видите, несложные правки довольно просты )))

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

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


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

Спасибо большое! теперь все понятно на 100%, думаю вопрос закрыт )

Второе сообщение вообще все объясняет )

теперь без проблем можно все исправить! еще раз спасибо! сейчас найду где плюсануть рейтинг )))))

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

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


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

Ушло в FAQ

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


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

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

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

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

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

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

Войти

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

Войти

  • Похожий контент

    • От siomio
      хочу себе на сайт установить таймер обратного отсчёта.
      НА сайте megatimer.ru   настроил необходимый мне таймер и система выдала мне вот такой код <script src="http://megatimer.ru/s/ce896280934af1e2a98bde9e9f70c92a.js"></script>
      этот код мне нужно вставить на свой сайт туда где я хочу  видеть отображение этого дополнения.
      Я думаю вы меня понимаете - таймер обратного отсчёта что бы клиенты видели что акция на все товары скоро закончится.
      на скринах я показал где хочу видеть отображение таймера.
      я так понимаю, мне нужно править два файла :
      catalog/view/theme/oct_luxury/template/common/header.tpl  что бы он появился в верхней строчке.  (тут нужно что бы перед этим таймером была фраза "до конца акции" и после этой фразы был таймер).
      и catalog/view/theme/oct_luxury/template/product/product.tpl для отображения его в карточке товара. 
      Подскажите пожалуйста куда именно в этих файлах нужно вставить код <script src="http://megatimer.ru/s/ce896280934af1e2a98bde9e9f70c92a.js"></script>
      Буду благодарен за любую инфу.
       


    • От Kalwin
      Здравствуйте, прошу помощи.
      Интересует такая инфа, как можно от дублировать шапку и изменить её. То есть, я хочу полностью изменить стр. регистрации и входа, к примеру как на али. Но стандартный вид не устраивает. Где то как то понимаю что нужно от копировать с изменениями header.tpl и header.php. Но как это всё дело связать что бы потом открывало по виду <?php echo $header-login; ?> к примеру.
    • От vecheslav
      С OpenCart знаком пару дней)), есть опыт в Wordpress
      У меня OpenCar 2.3
      Стоит тема из коробки пытаюсь внести в неё правки
      Пробовал менять код в файле /catalog/view/theme/default/template/common/header.tpl
      Ничего не меняется(((, может где-то что-то кешируется?
      или...
       
       
    • От Ramis05rus
      Здравствуйте!
      Имеется магазин на OpenCart 2.0.1.1, необходимо в header.tpl задать проверку, находимся мы на странице товара или же какой-то другой.
      <?php if (<проверка, товар ли мы показываем или нет>){ оператор; }else{ оператор 2; }; ?> Как можно провести такую проверку? Используется ЧПУ, так что из url парсить не удастся. Может, можно через тип используемого шаблона? Для товаров используется product.tpl, в нём и вызывается header.tpl
    • От Dimal88
      Доброе время суток!
       
      Ребята подскажите пожалуйста как вывести значение поля в header.tpl из карточки товара?
      Есть поле sellunit в админке забивается, сохраняется, и выводится. В product.tpl выводится хорошо. А в header.tpl выдаёт ошибку  Notice: Undefined variable: sellunit in C:\OPSERV\domains\opencart.loc\catalog\view\theme\default\template\common\header.tpl on line 44 ...
       
      Где нужно определить эту переменную чтобы если открыта карточка товара то поле этого товара выводилось в header?
       
      Шаблон дефолтный, opencart 2.0.1.1 чистый. Поставил для знакомства с системой.
  • Последние посетители   0 пользователей онлайн

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

×