С тех пор как я поднял уровень абстракции в версии 0.3 встала проблема как организовывать общение между модулями. Конечно же правильно было бы на яваскрипте организовать какие-то подписки и аяксы, но как научил меня один, не будем показывать пальцем, человек - похуй на правильно, главное удобно.
И я вот думаю как организовать общение между модулями.
Вот 2 окна, нужно писать в инпат одного и выводить в параграф второго.
Конечно, мы можем создать новый модуль stream и обернуть оба окна в него
,
НО, у меня есть идея по круче:
Модули декларируются так
module
Виджеты так
module:widget
Модули идентифицируются так
module#ololo
Виджеты так
module#ololo:widget
так вот идея заключается в том чтобы создать ПСЕВДОМОДУЛИ, которые по умолчанию задекларированы в глобальной области на уровне body О_О а если быть точнее то псевдомодуль с кучей встроенных виджетов
и если например описывать виджет без указания модуля, к которому он относится, то подразумевается что этот виджет относится к глобальному псевдомодулю, например вот так
:in или
:out аналог
pseudo:in и
pseudo:out который как бы создается на глобальном уровне автоматически.
Есть еще кое что, дело в том что мы можем инициировать один и тот же модуль на одном html элементе несколько раз через запятую
ui="window, window"
то есть по сути будет что то вроде pseudo, pseudo на глобальном body
ок а вот тут вступает фишка с идентефикаторами ))
мы декларируем виджеты псевдомодуля с идентефикатором
pseudo#ololo:in и
pseudo#ololo:out и это создаст
pseudo#ololo на уровне body, и тут БАБАХ, если не указать модуль то используется pseudo по умолчанию))
по этому можно писать на всей странице просто так
#ololo:in #ololo:out таким образом мы создадим поток, норм идея?
и таких виджетов в псевдомодуль можно напихать туеву хучу полезных ))
И да, разумеется виджеты такого уровня, как и думаю вообще все виджеты, не воздействуют на элемент напрямую, они просто создают область видимости для шаблонизатора)) это дает просто астрономически неебические свободы для извращений
п.с. ну разумеется по скольку модуль глобальный то и создавать область для него не обязательно, по этому можно просто писать вы поняли как)