Можно ли поместить переменные в конфигурационные файлы? - PullRequest
2 голосов
/ 05 октября 2010

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

Но есть и такие предложения:

" У вас есть 6 новых писем! ", что будет на немецком языке " Sie haben 6 neue Mails! "

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

, поэтому у меня есть это в моем "text.conf"

[en]
mail_count = "You have $NUMBER new mails!"
[de]
mail_count = "Sie haben $NUMBER neue Mails!"

, и это в моем"show_text.php"

$smarty->assign('NUMBER', 6);

Возможно ли что-то подобное?Может быть со Smarty 3.0?

Заранее спасибо, ЧД

Ответы [ 4 ]

1 голос
/ 20 октября 2010

При чтении файла конфигурации вам нужно открыть его с помощью

$cfg = $smarty->fetch('path/to/file');

После этого у вас есть все содержимое файла, включая переменную $ cfg, с заменой {$ NUMBER}.

1 голос
/ 07 октября 2010

Вы можете использовать синтаксис sprintf.Этот пример взят из пейджерной вещи:

results = "Results %s to %s of %s total"

{#results#|sprintf:$start:$end:$total}
1 голос
/ 09 октября 2010

Я только что попробовал это, и это работает, но это довольно уродливо ...

  • создать файл "number.tpl", который содержит

{$ NUMBER}

  • в вашем конфигурационном файле:

mail_count = "У вас {include file = 'number.tpl'} newmails! "

Я думаю, это потому, что переменные smarty работают только в файлах tpl.

0 голосов
/ 05 октября 2010

У меня нет Smarty для проверки этого прямо сейчас, но он должен работать, если вы правильно объявите переменную в вашей записи конфигурации, например:

ail_count = "You have {$NUMBER} new mails!"
...