Web 2.0のスタむルでコンテンツ䟝存アプリケヌションを䜜成するためのコンストラクタヌ

SAPID CMF

それは最近開かれたオヌプン゜ヌスプロゞェクトSAPID CMFに぀いおです。 SAPIDずいう名前は、それ自䜓では挠然ず銎染みのある人もいるかもしれたせん。 はい、昔々、むンラむンサむトの管理を可胜にするシンプルなCMS SAPIDがありたした。1MBのディスクスペヌスしか必芁ずせず、DBMSなしで管理できたした。 ただし、このシステムがXML Sapiensパラダむムの機胜を実蚌するために䜜成されたこずを芚えおいる人はほずんどいたせん。 CMS SAPIDは1呚幎を成功andに祝い、その埌2幎間、悲しいこずに、重芁な新しいリリヌスは芋られたせんでした。 しかし、昚幎のSAPIDコミュニティサむトでは、SAPID CMFプロゞェクトの新しいブランチでの䜜業に関する情報がずきどき欠萜しおいたした。 出来䞊がり ここにある-ブランチ、ダりンロヌド可胜  http://sapidcmf.sourceforge.net および「キャップ」デヌト http://cmfdemo.xmlsapiens.org 。



SAPID CMFはツヌむンワンセットのようなもので、SAPIDは基本的な管理むンタヌフェヌスを備えたコンテンツ管理システムであり、CMFはこのむンタヌフェヌスを独自のカスタマむズされたシステムに倉えるためのコンストラクタヌです。



CMSは、䞀方ではWebアプリケヌションの゚ンゞンであり、他方ではこれらのアプリケヌションを管理するためのむンタヌフェヌスです。 配信゚リアのアプリケヌションサむトのナヌザヌが利甚できるアプリケヌションずCMS管理パネルのアプリケヌションは1぀の゚ンゞンに基づいお動䜜し、同じロゞックに埓い、同じテンプレヌトの原則を䜿甚するず仮定するのは論理的です。 したがっお、倖郚Webアプリケヌションの䜜成を蚱可するCMSは、同じように簡単に内郚管理むンタヌフェむスを䜜成する必芁がありたす。 SAPIDの䞭栞はXML Sapiensプロセッサです。 XML Sapiensは、デヌタ構造、蚭蚈、機胜のパタヌンを蚘述するための宣蚀型蚀語です。 この蚀語を䜿甚するず、3぀のレベルデヌタ、デザむン、機胜すべおのコンポヌネントを䜜成し、デザむナヌキュヌブのように繰り返し䜿甚再利甚しお、さたざたな゜リュヌションを取埗できたす。 XML Sapiensプロセッサは、これらのコンポヌネントをアプリケヌション甚の既補のナヌザヌむンタヌフェむスにコンパむルしたす。



Webアプリケヌションの堎合、デスクトッププログラムずは異なり、GTKコントロヌルの定矩枈みセットはありたせん。 これは長所でもあり短所でもありたす。 新しいアプリケヌションたたはアプリケヌションのグルヌプを䜜成するずき、開発者は新しいGTKを䜜成する必芁がありたす。 開発者の䜜業を楜にするために、SAPID CMF管理パネルのGTKはWindowsの方法で䜜成されおいたす。 各アプリケヌションには、ワヌクスペヌス、メニュヌ、モヌダルりィンドり、メッセヌゞボックス、ダむアログ、プロセスがありたす。 䜿甚可胜なコンポヌネントは、ツリヌビュヌずリストビュヌです。 したがっお、同じスタむルの管理パネルアプリケヌションをすばやく䜜成するための䞀皮の「玳士甚セット」がありたす。



SAPID CMFのツリヌビュヌコンポヌネント



SAPID CMFのリストビュヌコンポヌネント



開発の準備





あなたは蚀うでしょう「玠晎らしい 管理パネルに独自のアプリケヌションを远加したす。 1か月以内に、フレヌムワヌクの新しいリリヌスが衚瀺されたす。 アップグレヌドしおすべおの䜜業を倱いたす。」 実際、SAPID CMFは、基本コンポヌネントのみがアップグレヌド䞭に眮き換えられるように線成されおおり、開発者が远加した远加コンポヌネントはそのたた残りたす。 「基本コンポヌネントを倉曎し、アップグレヌド䞭に倉曎コヌドが䞊曞きされないように保護する方法は」ずいう疑問が生じたす。 SAPID CMFは、 アスペクト指向プログラミングのスタむルでむベントモデルを䜿甚したす 。 システムはさたざたなむベントを定矩したす。 環境を適切に倉曎する独自のさたざたなむベントハンドラを远加できたす。 倉曎コヌドはpluginsフォルダヌに配眮されたすが、フレヌムワヌクの曎新時にはスキップされたす。 基本コンポヌネントAPIラむブラリ、コントロヌラヌなどを倉曎するためのAOPの芳点から、倉曎のいく぀かの偎面を定矩したす。



$ ModalWindowCustomization = new Aspect;



リスニング゚リアを蚭定したす。たずえば、すべおのクラスずすべおのメ゜ッド



$ pc = $ ModalWindowCustomization-> pointcut "call * :: *";



倉曎コヌドを特定のむベントに割り圓おたす



$ pc-> _ event "ModalWindowSchemasDefined"、 "customizateModalWindow\ $ obj;";



すでに述べたように、SAPID CMFの最優先目暙は、Webアプリケヌションを䜜成する際に、デヌタ構造の空癜、レむアりト、機胜を効率的に再利甚するこずです。 フレヌムワヌクには、VIEWSルヌトフォルダヌが含たれおいたす。 デフォルトの管理パネルスキンテヌマ甚のDEFAULTフォルダヌず、フレヌムワヌクに基づいお䜜成されたアプリケヌションテンプレヌト甚のDELIVERYフォルダヌが含たれおいたす。 さらにテヌマを远加するず、察応するフォルダヌがここに衚瀺されたす。 それらのいずれにも、機胜テンプレヌトDDCフォルダヌ、フィヌルドセットFIELDSETsフォルダヌ、コンテンツ芁求テンプレヌトQCsフォルダヌ、およびデザむンテンプレヌトTEMPLATESフォルダヌが含たれおいたす。



曞いたら、繰り返し䜿甚する





論理ペヌゞのレむアりトスケッチでWebアプリケヌションを䜜成するず、動的領域が定矩されたす。 たずえば、メニュヌブロック、リストブロックなどを切り取りたす。 蚭蚈コヌドを察応するDDCに転送したす。 DDCは、蚭蚈コヌドに加えお、動的ブロックロゞックも定矩したす。 ここでは、条件、芁求されたCMSアプリケヌションからのデヌタ列挙、包含、XML Sapiens匏、およびこれらの構造の無制限のネストを䜿甚できたす。 このロゞックを蚘述するためにXMLが䜿甚されたす。 XML Sapiensでは、同じDDCを䜿甚しお異なる動的ブロックを圢成できたす。 DDCが呌び出されるず、DDC環境で考慮できるパラメヌタヌを枡すこずができたす。



<sapiapply name = "ddc。submenu.value">

<sapiparam name = "root">構造</ sapiparam>

</ sapi適甚>



ダむナミックブロックのコヌドたたは論理ペヌゞのテンプレヌトのコヌドでデヌタ入力フォヌムが想定されおいる堎合、QCを䜿甚したす。 QCは、通信されたデヌタがどのように衚瀺たたは芁求されるかを決定したす。 <sapiapply name =“ qc.contentblock.value” type =“ article” title =“ Enter content” />のような呌び出しを䜿甚するず、論理ペヌゞの管理状態で、WYSIWYG゚ディタヌ蚘事タむプに察応でリク゚ストが衚瀺されたすたた、「コンテンツを入力」ずいう芋出しが付いおいたす。 ペヌゞのコンテンツ配信衚瀺の状態では、このリク゚スト䞭に管理時に入力されたcontentblockコンテナのコンテンツが衚瀺されたす。



SAPID CMFのコンテンツク゚リQC



デヌタ芁求フォヌムのフィヌルドのセットが動的に倉化する堎合環境の状態に応じお、フィヌルドのセットぞの呌び出しを䜿甚できたす。 䟋えば



<sapiinclude href = "fieldset1.xml" parse = "fieldset" state = "admin" />



この構成は、fieldset1.xmlファむルの管理状態に察応するコンテンツ芁求フィヌルドのセットを返したす。



実際の理論は䜕ですか





SAPID CMFのサンプルサむト



この堎所に目を通すこずはかなり可胜です、「これらの山はすべお恐ろしく芋える。 おもしろい、少なくずも䜕かがこのフレヌムワヌクで本圓にお金を皌ぐこずができたすか」 配垃パッケヌゞでは、既補のデモサむトがフレヌムワヌクずずもに提䟛されたす。 兞型的なものに加えお、サむトにはAJAXを䜿甚した認蚌/登録フォヌムの䟋が含たれおいたす。 フォヌムにはOpenID認蚌も含たれたす。 このサむトでは、混合タむプGIF / Flash / DHTML / RichMediaのバナヌ甚の広告スロットの䟋を提䟛しおいたす。 IntelliTXTテクノロゞヌの䜿甚䟋もありたす。 システムのシ゜ヌラスに入力された甚語は、サむトのペヌゞのテキストでツヌルチップリンク二重䞋線付きリンクに自動的に倉換されたす。 リンクにカヌ゜ルを合わせるず、ヒントのあるりィンドりがポップアップしたす。 システムはリンクりィンドりに関連するむンプレッションの統蚈を保持するため、このメカニズムはコンテキスト広告に䜿甚できたす。

デモサむトには、写真にコメントする機胜を備えたマルチレベルギャラリヌの䟋が含たれおいたす。 投祚は、写真ずコメントの䞡方で受け入れられたす。 サむト䞊のカタログの䟋は、タグ類䌌の補品、タグクラりドで補品をグルヌプ化する可胜性を瀺しおいたす。 䞀般に、䜜業するものがあり、さらに、プロゞェクトで安党に䜿甚できるいく぀かの基本的な゜リュヌションがありたす。




All Articles