Описание zcmlinstall :

  Автор -- Sergey Shilov, Andrey Orlov
  
  Версия -- $Id: zcmlinstall.txt 35334 2008-01-25 14:33:40Z cray $

  URL -- $URL: https://code.keysolutions.ru/svn/ks.installtool/tags/installtool-1.0.2/src/ks/installtool/zcmlinstall/zcmlinstall.txt $

  Утверждаю -- Andrey Orlov, 2007-02-13 12:02

  Аннотация:
    
    Директива, выполняющая регистрацию реестра установочных скриптов.

  Идея реализации:
    
    При помощи этой директивы регистрируется с указанным именем процедура
    установки и настройки (installer).
    
    Директива получает в качестве параметров:
        
        name -- имя, под которым регистрируется процедура установки и настройки

        for -- Интерфейс контекстного обьекта, в котором появляется процедура
            установки и настроки;
            
        schema -- схема формы, открываемой инсталлером;
        
    Директива имеет под-директиву parameter, которая позволяет задать
    параметры установки (или умолчания для формы).

    Обработчик директивы создает и регистрирует фабрику с указанным именем
    и для указанного интерфейса;
    
  Способ реализации:
  
    Фактически, директива реализует обвязку вокруг директивы 
    
        <utility
            provides="zope.component.interfaces.IFactory"
            component="some.factory.class"
            name="factoryName"
        />
     
     Генерируя специальным образом some.factory.class, (см. например,
     генерацию контент-класса в zcml-reference).
     
     При этом классу утилиты присваивается интерфейс формы (см. напр.
     addform,  zope.app.form.browser.metaconfigure.add.AddViewFactory).  

     При вызове утилиты, утилита производит сортировку записей, зарегестрированных
     как хендлеры, при помощи библиотеки ks.lib.topolsort (см.code.keysoolutions.ru). 
     
     Получение хендлеров для утилиты:
     
        zope.component.subscribers(IInstallScript, name)
        
        где name - имя, указанное при регистрации утилиты;
     
     Будут проблемы - обртится к Орлову, написав обвязку.

