Форум → Смена телефона в сайте из админки

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

Хотел в git hub это поместить, но не понял к какому разделу это отнести, поэтому пишу сюда.

Открыто
Виталий Уржумов
16 Марта 2013, 11:07
215 roosit:

Для этого как раз и были запланированы фразы шаблона ([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

По поводу тикетов к модулям и ядра на гитхабе.

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

245 VitUrzh:

С конфигом понятно.

Попробовал сделать так, если что упустил, поправьте.

Добавил в файл \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]

 

Все вроде работает, но мало ли где ошибка может вылезти.

249 roosit:

Этот подход противоречит общей концепции разработки платформы в том, что ядро должно быть независимо от функций сайта — т.е. оно должно быть чистым и выполнять только обслуживанием модулей.

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

Таким образом мы обеспечим порядок в структуре и идеологии платформы. В отличии от других движков, в которых в ядро пихаю все, что только возможно. А потом удивляются — «и почему это так много всякого не нужно в движке»...


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

Т.е. определил админ в шаблоне фразу «телефон сайта» и она тут же становиться доступной для редактирования в менеджере фраз админ панели.

250 roosit:

P.S. приятно радует, что вы уже разобрались в структуре платформы. Теперь для удобства можете создавать пулреквесты к исходному коду на гитхабе — этот сервис очень четко заточен под такие потребности девелоперов.