Форум → Смена телефона в сайте из админки
Магазин предполагает телефон для связи, слоган. Я могу поставить их в любое место в шаблоне, но вот хочется, чтобы эти данные можно было бы менять из админки.
Хотел в git hub это поместить, но не понял к какому разделу это отнести, поэтому пишу сюда.
Открыто
Виталий Уржумов | |
16 Марта 2013, 11:07 |
Для этого как раз и были запланированы фразы шаблона ([ph=имя_модуля: идент_фразы][/ph]). Смысл их в том, что эти фразы инициализируются в шаблоне, создаются в базе и в процессе данные уже берутся из базы. Но вот руки пока так и не дошли чтобы сделать небольшой редактор этих фраз.
А ведь очень часто возникает необходимость использовать один шаблон, на разных сайтах и при этом с разными данными уникальных для этого сайта. Править каждый раз один и тот же шаблон на многие сайты мучительно, поэтому в новой версии ядра появилась возможность брать значение фраз из конфига.
Например, сайт http://belkamebel.ru/. Телефон используется во многих местах шаблона, а так же есть емайл, который уникален для этого сайта, поэтому эти данные берутся из фраз, которые в свою очередь имеют возможность настройки в конфиге.
Строка в конфиге:
$config['phrase']['sys'] = array(
«phone» => "+7 (843) 259 47 16",
«pubemail» => «info@belkamebel.ru»
);
Строка определяющая фразы в шаблоне:
[ph=sys:phone][/ph]
[ph=sys:pubemail][/ph]
Данную версию ядра можно скачать с гитхаба из dev бранчеса.
Для удобства можно использовать скрипт выгрузки (пример в линукс):
./export eshop dev
По поводу тикетов к модулям и ядра на гитхабе.
Если непонятно к какому репо отнести тот или иной тикет, то смело можно кидать его в ядро, а я уже дальше сам при необходимости переброшу его в нужный модуль.
С конфигом понятно.
Попробовал сделать так, если что упустил, поправьте.
Добавил в файл \modules\sys\includes\manager.php блок:
public function SetSitePhone($value){
if (!$this->IsAdminRole()){ return; }
$this->SetConfig('site_phone', $value);
}
public function GetSitePhone(){
return $this->GetConfig('site_phone');
}
Затем в файл \modules\sys\js\cp_config.htm добавил:
<p>
<label id="{i#site_phone}-lbl">Телефон:</label><br />
<input type=«text» id="{i#site_phone}" value="" style=«width: 400px» />
</p>
И в сам шаблон соответственно:
[ph=sys:site_phone][/ph]
[ph]sys:site_phone[/ph]
Все вроде работает, но мало ли где ошибка может вылезти.
Этот подход противоречит общей концепции разработки платформы в том, что ядро должно быть независимо от функций сайта — т.е. оно должно быть чистым и выполнять только обслуживанием модулей.
Т.е. если функция не нужна большинству модулей, то ее не должно быть в ядре. Например, телефон сайта нужен не для всех случаях, где используется платформа, значит эта функция должна быть в отдельном модуле.
Таким образом мы обеспечим порядок в структуре и идеологии платформы. В отличии от других движков, в которых в ядро пихаю все, что только возможно. А потом удивляются — «и почему это так много всякого не нужно в движке»...
Касательно данной необходимости — я планирую сделать функцию-менеджер по работе с этим языковыми фразами. Этого менеджера будет достаточно, чтобы иметь возможность редактировать администратору сайта все встречающиеся (определенные в шаблонах) фразы.
Т.е. определил админ в шаблоне фразу «телефон сайта» и она тут же становиться доступной для редактирования в менеджере фраз админ панели.
P.S. приятно радует, что вы уже разобрались в структуре платформы. Теперь для удобства можете создавать пулреквесты к исходному коду на гитхабе — этот сервис очень четко заточен под такие потребности девелоперов.