Ответить Новая тема Новый опрос 
 Редактирование файла шаблона (не втыкаю, как так?)
dudilona
Новичок
Сообщений: 28
Регистрация: 03-11-2015


03-11-2015 12:58
Всем доброго времени суток!
Неделю назад начал изучать движок PrestaShop.
Хочу видоизменить дизайн стандартного шаблона.

Насколько я понял основные для этого действия связаны с настройками в админке и редактированием файлов *.tpl и *.css

С *.css разобрался, все меняется - получается.

А вот с *.tpl не получается подружиться, видимо не хватает мне информации.

Например, возьмем файл 404.tpl который лежит в корне темы, вот его содержимое:
Код:
<div class="pagenotfound">
    <h1>{l s='This page is not available'}</h1>

    <p>
        {l s='We\'re sorry, but the Web address you\'ve entered is no longer available.'}
    </p>

    <h3>{l s='To find a product, please type its name in the field below.'}</h3>
    <form action="{$link->getPageLink('search')|escape:'html':'UTF-8'}" method="post" class="std">
        <fieldset>
            <div>
                <label for="search_query">{l s='Search our product catalog:'}</label>
                <input id="search_query" name="search_query" type="text" class="form-control grey" />
                <button type="submit" name="Submit" value="OK" class="btn btn-default button button-small"><span>{l s='Ok'}</span></button>
            </div>
        </fieldset>
    </form>

    <div class="buttons"><a class="btn btn-default button button-medium" href="{if isset($force_ssl) && $force_ssl}{$base_dir_ssl}{else}{$base_dir}{/if}" title="{l s='Home'}"><span><i class="icon-chevron-left left"></i>{l s='Home page'}</span></a></div>
</div>


Во первых, интересно, каким образом работает, вот это {l s='This page is not available'} ?
This page is not available - это название переменной или что? Каким образом сюда подставляется потом переведенный текст, который можно найти тут: /lang/ru.php?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
dudilona
Новичок
Сообщений: 28
Регистрация: 03-11-2015


03-11-2015 13:21
Если посмотреть файл lang/ru.php

то увидем там:
Код:
$_LANG['404_44b1d05764b093cb00c25b8228cb87d3'] = 'Страница недоступна';


Можно обратить внимание, что тут есть идентификатор:
404_44b1d05764b093cb00c25b8228cb87d3, природа которого мне тоже пока не известна.
Где-то он описывается еще?

Именно этот текст подставляется в заголовок который описан в файле 404.tpl:
Код:
<h1>{l s='This page is not available'}</h1>


Но каким образом?
Как система определяет, что вот именно сюда надо подставить?

А второй вопрос который меня интересует, каким образом можно добиться изменений которые я хочу внести в файл шаблона?
Например хочу добавить еще один абзац под заголовком в файле 404.tpl
Т.е. по логике после заголовка можно добавить для примера:
Код:
<h1>{l s='This page is not available'}</h1>
<p>И не будет доступна!</p>
<p>{l s='We\'re sorry, but the Web address you\'ve entered is no longer available.'}</p>


Но после сохранения такого файла 404.tpl и замены его на FTP, после обновления страницы никаких изменений не происходит!

Мало того, если удалить все содержимое файла 404.tpl, все равно ничего не произойдет, все будет также отображаться как и изначально.

Поломать удалось только удалением самого файла 404.tpl с сервера, в этом случае на несуществующей странице вообще ничего не появляется - пустой экран.

Как же все таки происходит редактирование шаблонов? Помогите пожалуйста, видимо я не владею этой информацией и никак сообразить не могу (
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
dudilona
Новичок
Сообщений: 28
Регистрация: 03-11-2015


03-11-2015 13:49
Ура!
Со вторым вопросом удалось разобраться!

Для того, чтобы изменения совершенные в файле шаблона .tpl вступили в силу, необходимо очистить smarty кеш.
Это можно сделать следующим образом (для версии 1.6.1.1):
Зайти в админку, далее: конфигурация - результат

В разделе smarty - компиляция шаблонов, выбрать принудительная перекомпиляция.

Также можно в этом же разделе отключить кеш, но я решил его не отключать а выбрал подстройку: Очищать кеш при каждом изменении чего-либо

Зачем нужен smarty кеш, я честно говоря не знаю, надеюсь мне это и не пригодится. В данный момент меня интересует лишь работа над дизайном сайта и надеюсь вникать в программирование придется крайне редко, надеюсь... )))

Ну а что касается первого вопроса, он все еще актуальный, буду рад услышать ответ ;)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


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


03-11-2015 14:03
Цитата:( dudilona @ 03-11-2015 13:58 Смотреть сообщение )
Во первых, интересно, каким образом работает, вот это {l s='This page is not available'} ?
This page is not available - это название переменной или что? Каким образом сюда подставляется потом переведенный текст, который можно найти тут: /lang/ru.php?


{l s='This page is not available'}
{метод параметры}

В файле /config/smarty.config.inc.php регистрируется метод:
smartyTranslate
Код:
smartyRegisterFunction($smarty, 'function', 'l', 'smartyTranslate', false);


Smarty встречает в шаблоне код: {l s='This page is not available'} и выполняет метод smartyTranslate, код данного метода находится в файле: /config/smartyfront.config.inc.php

Если в ИМ используется один язык: переводите конструкции вида:
Код:
{l s='This page is not available'}
в
Код:
Страница недоступна.

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


03-11-2015 14:32
Алекс, ты крутой! Спасибо тебе от души ;)
Не ожидал так быстро получить ответ, тем более такой качественный!

Я конечно в программировании нуб, но просмотрев бегло код файла где описан метод smartyTranslate понял общий принцип:

Smarty берет закавыченную фразу {l s='This page is not available'} и кодирует ее в хэш по md5 получая 44b1d05764b093cb00c25b8228cb87d3 и название файла этого шаблона, т.е. 404. Потом берет и склеивает ключ из этих данных в такой вид: 404_44b1d05764b093cb00c25b8228cb87d3.
Потом открывает файл с переводом и ищет там этот ключ и если он есть вставляет перевод, а если нет то оставляет то, что было написано на исходном языке.
 
Репутация: 3 | Поставил: Алекс
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
dudilona
Новичок
Сообщений: 28
Регистрация: 03-11-2015


03-11-2015 14:58
Цитата:
Если в ИМ используется один язык: переводите конструкции вида:
Код:
{l s='This page is not available'} в
Код:
Страница недоступна.
Подобные изменения по всему коду улучшат скорость работы ИМ.


Спасибо за совет.
Он меня сразу навел на следующую мысль.

Также почитал, что можно свой шаблон загрузить потом в addons prestashop и получать 70% с продаж.
Стоит ли целиться на это и стараться делать все по правилам аналогично шаблону по умолчанию.
Каким еще требованиям придерживаться, чтобы воплотить задуманное?

Кто-нибудь продает свои шаблоны через официальный сайт, хорошо покупаются, что скажете по этой теме?
Или это того не стоит и не нужно на это время тратить?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


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


03-11-2015 15:08
Цитата:
Если в ИМ используется один язык: переводите конструкции вида:
Код:
{l s='This page is not available'}
в
Код:
Страница недоступна.

Подобные изменения по всему коду улучшат скорость работы ИМ.
Если будете продавать шаблоны использовать подобное не нужно!


Цитата:( dudilona @ 03-11-2015 15:58 Смотреть сообщение )
Также почитал, что можно свой шаблон загрузить потом в addons prestashop и получать 70% с продаж.
Стоит ли целиться на это и стараться делать все по правилам аналогично шаблону по умолчанию.

Или это того не стоит и не нужно на это время тратить?
Если уровень работ хорош, и шаблоны получаются легкими и красивыми - стоит. Если и не будет продаж поднимите свой уровень мастерства.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
dudilona
Новичок
Сообщений: 28
Регистрация: 03-11-2015


03-11-2015 15:19
Цитата:
Если будете продавать шаблоны использовать подобное не нужно!

Ну да, я так и понял, иначе аудитория потенциальных покупателей сильно сужается )

И лучше работать с .sass чем с .css в случае если продавать шаблоны? Или это не особо принципиально?

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


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


03-11-2015 15:25
Цитата:( dudilona @ 03-11-2015 16:19 Смотреть сообщение )
И лучше работать с .sass чем с .css в случае если продавать шаблоны?

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


03-11-2015 15:49
Спасибо, Вам, Алексей!

Фактически Вы сделали мой день ;)

Неделю я вникал в различные документации и вот наконец-то сегодня надеюсь начну работу )))

Я думаю в процессе, еще появятся новые задачки для ума, так что до будущих встреч.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос