Шаблонный подход для приложения PHP - PullRequest
1 голос
/ 24 мая 2010

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

ЧтоМы хотели бы предложить нашим клиентам возможность загрузки / изменения шаблонов в соответствии с профилем их компании.Первоначально мы думали, что мы не будем изобретать велосипед, поэтому вместо того, чтобы позволить нашим клиентам загружать свои шаблоны с помощью FTP, необходимы базовые навыки работы с HTML.Для тех клиентов, которые хотят изменить / настроить шаблон и не обладают знаниями, мы также предлагаем эту услугу.

Я знаю, что есть ряд проблем, которые необходимо решить, прежде чем это можно будет считать безопасными, например, предотвращение XSS инаписание скриптов, которые проверяют каждый загруженный файл на наличие потенциальных угроз безопасности и так далее.Конечно, есть некоторая часть, которую клиент, вероятно, будет слишком сложно модифицировать самостоятельно, поэтому, возможно, этот подход не будет применяться ко >> всем << файлам шаблонов в приложении внешнего интерфейса. </p>

Но кроме тогочто, что будет хорошим способом справиться с этим?

Ответы [ 3 ]

2 голосов
/ 24 мая 2010

Вы действительно должны запретить своим клиентам включать любой php или javascript на свой веб-сайт. Все загружаемые изображения должны быть преобразованы в формат во что-то другое, а затем снова загружены.

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

Другой подход заключается в предоставлении набора фрагментов HTML (которые должны содержать совпавшие теги и никакой информации о местоположении / шрифте, кроме классов), и чтобы клиент предоставил HTML-страницу с набором заполнителей, куда вы вставляете свой контент, например заказчик предоставляет:

<html>
<title>{%PAGE_TITLE%}</title>
<link rel="stylesheet" href="{%STANDARD_CSS%}">
<link rel="stylesheet" href="{%CUSTOMER_CSS%}">
<script src="{%STANDARD_JS%}"></script>
....

Другой подход заключается в предоставлении клиенту интерактивного сквозного веб-редактора. Возможно, вы захотите взглянуть на некоторые из доступных инструментов смешивания, например, Radria .

НТН

С

1 голос
/ 24 мая 2010

Может оказаться полезным взглянуть на шаблонизатор TinyButStrong .TBS отличается от большинства других шаблонизаторов тем, что он не пытается реализовать дополнительный язык сценариев внутри шаблона, но использует систему заполнителей и атрибутов, которые четко отделены от кода HTML в квадратных скобках, например * 1003.*

[blk.myfieldname;block=tr]

Это делает систему чрезвычайно простой в использовании с инструментами WYSIWYG, такими как Dreamweaver, так как дизайнеру очень легко увидеть, где в шаблоне находится PHP-зависимый код - в основном 'не трогайтечто-нибудь внутри квадратных скобок '

Хотя это не совсем так, как у васшаблоны (+ css) дизайнеру, который впоследствии изменил их для финального сайта.Из-за четкого разделения кода и переменных-заполнителей, которые предлагает TBS, с этим подходом мало что можно сбить с толку.Отсутствие какого-либо языка сценариев шаблонов также означает, что ваши проблемы безопасности гораздо более контролируемы.

1 голос
/ 24 мая 2010

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

...