Язык отображения:   ru  en

Различия

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

ru:base:services 2006/11/20 11:39 ru:base:services 2006/11/20 12:00 текущий
Строка 8: Строка 8:
Также в меню //actions// можно видеть раздел //filegens//. //Filegens// это темплейты всех файлов, которые заливаются на сервер.\\ Также в меню //actions// можно видеть раздел //filegens//. //Filegens// это темплейты всех файлов, которые заливаются на сервер.\\
== Filegens == == Filegens ==
-//Filegens// (генераторы) представляют из себя простой способ генерации любых конфигов прямо из базы, без написания лишнего кода. Для этого используется специально подготовленный //perl-hash//, называемый //datasource//. Его структура аналогична структуре базы.\\+//Filegens// (генераторы) представляют из себя простой способ генерации любых конфигов прямо из базы, без написания лишнего кода. \\
Рассмотрим самый простой пример, генерация конфига //vhosts.conf// для веб-сервера apache.\\ Рассмотрим самый простой пример, генерация конфига //vhosts.conf// для веб-сервера apache.\\
-Для этого мы используем datasource //hosts_accounts//, в котором содержиться вся необходимая информация.\\ +Идем в //base/services//, добавляем к сервису webserver новый генератор test. \\
-Идем в //base/filegens/add//\\+
//**Name**// - это имя //filegen//. При перестройке сервисов порядок вызова генератора определяется им.\\ //**Name**// - это имя //filegen//. При перестройке сервисов порядок вызова генератора определяется им.\\
Строка 54: Строка 53:
== Использование нескольких одинаковых циклов. === == Использование нескольких одинаковых циклов. ===
-Пример: \\ +В случае, если нужно использовать в одном уровне вложенности несколько одинаковых циклов применяется следующий путь: \\ 
-Accounts: <TMPL_LOOP accounts_loop><TMPL_VAR login> </TMPL_LOOP> \\ +Пример (два цикла accounts_loop рядом): \\ 
-Hosts: <TMPL_LOOP accounts_loop><TMPL_LOOP hosts_loop><TMPL_VAR name> </TMPL_LOOP></TMPL_LOOP> \\+<code> 
 +Accounts: <TMPL_LOOP accounts_loop><TMPL_VAR login> </TMPL_LOOP> 
 +Hosts: <TMPL_LOOP accounts_loop><TMPL_LOOP hosts_loop><TMPL_VAR name> </TMPL_LOOP></TMPL_LOOP> 
 +</code>
работать **НЕ БУДЕТ**, так как в темплейте два одинаковых внешних цикла accounts_loop и система будет пытаться присвоить переменные от одного цикла другому, что будет вызывать ошибку. \\ работать **НЕ БУДЕТ**, так как в темплейте два одинаковых внешних цикла accounts_loop и система будет пытаться присвоить переменные от одного цикла другому, что будет вызывать ошибку. \\
Обходной путь - использовать номера в имени цикла. \\ Обходной путь - использовать номера в имени цикла. \\
Правильный пример: \\ Правильный пример: \\
-Accounts: <TMPL_LOOP accounts_loop><TMPL_VAR login> </TMPL_LOOP> \\ +<code> 
-Hosts: <TMPL_LOOP **2_accounts_loop**><TMPL_LOOP hosts_loop><TMPL_VAR name> </TMPL_LOOP></TMPL_LOOP> \\ +Accounts: <TMPL_LOOP accounts_loop><TMPL_VAR login> </TMPL_LOOP> 
-2_accounts_loop - будет браться цикл accounts_loop, но не возникнет коллизии имен. \\+Hosts: <TMPL_LOOP 2_accounts_loop><TMPL_LOOP hosts_loop><TMPL_VAR name> </TMPL_LOOP></TMPL_LOOP> 
 +</code> 
 +Обратите внимание, что во втором случае вместо accounts_loop стоит 2_accounts_loop - будет браться цикл accounts_loop, но не возникнет коллизии имен. \\
== Генерация нескольких файлов из одного темплейта. == == Генерация нескольких файлов из одного темплейта. ==
Иногда необходимо сделать группу конфигурационных файлов. Как пример можно привести файлы зон //named// или виртуальных хостов //apache//. Самый простой способ деления - вставлять в темплейт метки начала деления //DK_NEW_FILE//. Пример: создаем файлы вирутальных хостов //apache//, по файлу на виртхост:\\ Иногда необходимо сделать группу конфигурационных файлов. Как пример можно привести файлы зон //named// или виртуальных хостов //apache//. Самый простой способ деления - вставлять в темплейт метки начала деления //DK_NEW_FILE//. Пример: создаем файлы вирутальных хостов //apache//, по файлу на виртхост:\\
<code> <code>
-DK_NEW_FILE /usr/local/apache/conf.d/+DK_NEW_FILE /usr/local/apache/conf.d/<TMPL_VAR name>.conf
  ServerName <TMPL_VAR name>   ServerName <TMPL_VAR name>
Строка 75: Строка 79:
</code> </code>
-//DK_NEW_FILE// дает команду системе обработки темплейтов создать файл с именем, идущим после //DK_NEW_FILE// (/usr/local/apache/conf.d/ в данном случае) и с содержимым от текущей метки до следующей или конца темплейта.+//DK_NEW_FILE// дает команду системе обработки темплейтов создать файл с именем, идущим после //DK_NEW_FILE// (/usr/local/apache/conf.d/<TMPL_VAR name> в данном случае) и с содержимым от текущей метки до следующей или конца темплейта.
метка //DK_NEW_FILE// должна находится в начале строки.\\ метка //DK_NEW_FILE// должна находится в начале строки.\\

Personal Tools