Усы - Как построить Навигацию / Ссылка

0

Прошу прощения за этот глупый вопрос, но я не понимаю!

Я хочу создать простой интерфейс веб-сайта, подобный этому примеру с помощью Усы: http://detector.dmolsen.com/demo/mustache/

Если у меня есть сайт с одной страницей - все в порядке: я создаю свой объект Усы... и так далее

// use .html instead of .mustache for default template extension
$options =  array('extension' => '.html');

// Template and Partial - Filesystem Loader
$mustache = new Mustache_Engine(array(
    'loader' => new Mustache_Loader_FilesystemLoader(__DIR__.'/views', $options),
    'partials_loader' => new Mustache_Loader_FilesystemLoader(__DIR__.'/views/partials/'.$GLOBALS['comparedDeviceInformation']['Device Class'], $options),
));

после этого я делаю свой индексный шаблон:

// render index.html template
echo $mustache->render('index', $data);

Это прекрасно работает! И теперь в этом файле шаблона index.html я не хочу ссылаться на другой шаблон, например home.html

<a href="?????">home</a>
как сделать такой динамический рендеринг? Это не может быть решение иметь php файл для каждого шаблона страницы?

И как я обрабатываю URL-адреса? Я не могу использовать имя шаблонов? так как я могу получить согласованную структуру URL для моего веб-сайта

Большое спасибо!

Теги:
mustache
mustache.php

1 ответ

0
Лучший ответ

Сам уст - всего лишь шаблонный движок... он не касается того, какие у вас URL-адреса, сколько у вас файлов PHP или что-то иное, кроме изменения шаблона в HTML. Для всех других вещей у вас есть несколько вариантов. Наиболее простым является наличие одного файла PHP для каждого URL-адреса, который вы хотите обработать. Как вы сказали, это не идеально :)

Я бы предложил проверить легкую фреймворк PHP. Они обрабатывают маршрутизацию (отображение URL-адресов на отображаемые страницы) и обеспечивают гораздо больше структуры для вашего бэкэнд. Вот список некоторых из них, которые Mustache.php играет хорошо. Для ваших целей Silex или Slim, вероятно, будут хорошо подходят.

  • 0
    Большое спасибо :)
  • 0
    Не проблема :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню