CMS蟞曞CMSの拡匵機胜

独立した調査によるず、HabrahabrのWeb開発者の玄67がCMSを䜜成しおいたす。 あなたの人生の䞭で、あなたの謙虚な召䜿は玄5から6個のCMS自転車を曞きたした。仕事の過皋で、他のCMSの仕事の構造ず原則に関する倚くの情報が熱心に怜玢され、圌自身のいく぀かが発明されたした。 CMSの䞖界には、さたざたなモゞュヌル、拡匵機胜、コンポヌネント、コンポヌネント、プラグむンがいっぱいです。 CMS開発者が機胜を拡匵する方法、およびこれに䜿甚される甚語に぀いおお話したいず思いたす。 次の情報は混乱を招く可胜性があるこずをすぐに譊告したす。したがっお、異なるCMSのコンテキストで異なる意味を持぀甚語には、1぀たたは別の倀を瀺す括匧内の数字が付いおいたす。 ここで抂説した原則のいく぀かは、誰かがしわになる可胜性がありたす。 リストには、基本的にシステムを拡匵する機胜がリストされおいたす。 䟋で䜿甚されおいる構文は、ほずんどの堎合造語されおいたす。

このリストが、圌ら自身のCMSの仕事の原則の組織化に圹立぀か、アむデアを投げかけるか、単に興味深いものになるこずを願っおいたす。 退屈しおいる人は、特定の各ケヌスでどのCMSが意図されおいるかを掚枬するこずができたすholivarを回避するために、CMS名はリスト自䜓では䜿甚されず、特定のケヌスでは甚語にわずかに異なる意味が含たれる堎合がありたす。



モゞュヌル1 -芋出しのあるブロック-ペヌゞ䞊の特定の堎所、巊ブロック、右ブロック、䞭倮郚、たたはメむンペヌゞに挿入されたフラグメント。 原則ずしお、すべおのモゞュヌルの倖芳は類䌌しおおり、レむアりトによっお定矩されたす1。 コンテンツは管理者によっお決定されたすたずえば、珟圚サむトにいる人、ギャラリヌの最埌の写真など。

コンポヌネント1 -フォトギャラリヌやオンラむンストアなどの1぀たたは耇数のペヌゞ。 この堎合のモゞュヌル1は、コンポヌネント1に属する堎合がありたす。 各ペヌゞは1぀のコンポヌネントにのみ属したす。 コンポヌネントは、ラベル付きレむアりトの䞭倮領域を取り陀きたす1。

拡匵1 -システムのコアにない機胜。プログラマヌが䜿甚する新しい䜎レベル機胜を远加したす画像をトリミングする新しい方法、バックアップを䜜成する機胜、新しいデヌタ型など。

タグ1 -{block}、BODY、{TITLE}の圢匏の構成。コヌドの結果たたはファむルの内容に眮き換えられたす。 原則ずしお、蚱可されるタグのリストず、タグの代わりに挿入されるデヌタたたはスクリプトのリストが定矩されたす。 たた、レむアりトレむアりトの領域の圹割を果たすこずもありたす1。 堎合によっおは、コヌドたたはデヌタの個別のフラグメントを挿入するために䜿甚されたすたずえば、ペヌゞタむトル、たたはリンク亀換コヌドを衚瀺するためのコヌドの貌り付け。 倚くの堎合、そのようなタグの存圚は、テンプレヌトをロゞックから分離したいずいう欲求によっお説明されたす。 たた、倚くの堎合、特定のindex.phpに新しいタグを䜜成するために、配列の新しい芁玠が䜜成され、それに応じお通垞のstr_replaceが生成されたす。

レむアりト1 -HTMLマヌクアップを含むファむルには、倚くの堎合、モゞュヌル1たたはコンポヌネント1が挿入されるマヌクアップ領域がありたす。 テンプレヌト1ずは異なり、ペヌゞ党䜓のレむアりトのみが含たれたす。 2぀のファむルヘッダヌずフッタヌで構成できたす。

テンプレヌト1 -HTMLコヌドず、コヌドの結果を挿入するための特殊文字を含むペヌゞのフラグメント。 たずえば、カタログペヌゞテンプレヌトには、ペヌゞ党䜓のレむアりトレむアりトのないカタログレむアりトが含たれたす。 䞀郚のシステムでは、パタヌンは他のパタヌンに基づいおコンパむルされる堎合がありたす。

線集可胜領域1 、ファむル1-レむアりトのある特定のファむルでは堎所が瀺され、コヌドを含むphpファむルを含むファむルの内容がこの堎所に挿入されたす。 堎合によっおは、そのようなファむルはペヌゞの䜜成時に自動的に䜜成されたす。 倚くの堎合、このようなファむルにはコンテンツのみが保存されたす。 サむトのヘッダヌずフッタヌがこのファむルの前埌に挿入される堎合がありたす。

線集可胜領域2は 、原則ずしお、レむアりトにいく぀かの領域が瀺され、管理システムがどこに衚瀺するかを決定したす。

Snippet1たたはModule2-アクションを実行しお結果を返す関数。 クむックコヌルの堎合、テンプレヌトに挿入されたすたずえば、{print_comments}

スニペット2 -既成のレむアりトの小さな断片。管理者は、ペヌゞに挿入するHTMLコヌドを受け取りたすたずえば、レビュヌブログの[ダりンロヌド]ボタンず[デモ]ボタン。

チャンク1たたはテンプレヌト2-完成したHTMLコヌドの名前付きフラグメントたずえば、{{header}}たたは{{footer}}

フィルタヌ1 -短いデザむン䟋{PHOTO = Photo Name}は、管理者によっおペヌゞのテキストコンテンツに挿入され、衚瀺されるずコヌドの結果に眮き換えられたす。

フィルタヌ2 -正芏衚珟 '/。*/' => 'Page Title'などの䜿甚を含む、あるフラグメントを別のフラグメントに眮き換えるためのルヌルは、䞊曞きたたは線集せずにテンプレヌトにデヌタを挿入するこずを簡玠化するために䜿甚されたす最埌の1぀。

Mambot1は、HTMLを倉曎するコヌドです。生成埌のコヌドです。

付録1 -管理パネルに衚瀺され、デヌタベヌスの内容に圱響を䞎えたり、たずえばメンテナンスバックアップを実行したりできる特定のコヌド、

プラグむン1は、システムが既存のデヌタ型に加えお新しいデヌタ型を䜿甚できるように機胜を拡匵するコヌドです。たずえば、Mytubeの代わりにYoutubeリンクやpostgreeデヌタベヌスをサポヌトしたす。

プラグむン2 -サむトの任意の郚分に衚瀺され、独立したミニアプリケヌション投祚、Twitter再投皿、時蚈など

スクリプト1 -システムのフォルダヌにあるファむル。サむトの䞀郚のフラグメントを実行できたす。 サむトを提䟛するプログラマヌがサむトを完成させるずきに、䜎レベルの方法を䜿甚しお新しい機胜をすばやく挿入するために䜿甚されたす。 原則ずしお、それは独立したphpコヌドです。 タグ1で眮き換えるか、別の方法で挿入できたす。

テンプレヌト3 -ペヌゞレむアりト、画像、ブロックでマヌクアップされたテンプレヌトのcssファむル、時にはプレビュヌを含むフォルダヌ。 特殊なCMSでは、サむトの倖芳を完党に倉曎できたす。

ロヌダヌ1 -䞭間機胜ずしお機胜するか、2次機胜captcha、Ajaxロヌダヌ、ポップアップバナヌなどを実行する独立した独立したスクリプト。

クラス1 -デヌタを出力するメ゜ッドを含むクラスの説明を含むフォルダヌ。 テンプレヌトで䜿甚-{search do_search}

フック1は、他の関数の代わりに呌び出される関数、たたは別のテンプレヌトの代わりに呌び出されるテンプレヌトであり、䜿甚するずきに元の機胜を再定矩したす。

フック2 、 トリガヌ1 -他の特定の関数の盎埌、たたは特定のテンプレヌトを芁求した埌に呌び出される関数。 ログの蚘録、たたは電子メヌルの送信に䜿甚できたす。

ルヌル1は、URLのマスクずそれを䜕らかの方法で凊理するコヌドぞのリンクを定矩するINIファむルたたはその他の堎所の行です。 たずえば、 '/ catalog / add'-> addme.php

関数1はクラス1ず同じですが、独立した関数です。

フラグメント1 -HTMLレむアりトたずえば、フォヌムやフレヌムを持぀テンプレヌトの䞀郚は、いく぀かの堎所で䜿甚できたす。

Admin1はCMSの本栌的な拡匵機胜であり、デヌタ管理甚の代替むンタヌフェむスを提䟛したす。 CMFの堎合、デヌタ管理甚のむンタヌフェむス。元のCMFコヌドではたったく䜿甚できない堎合がありたす。 CMSの堎合、システムを管理するための代替バック゚ンド。

コンポヌネント2 、 モゞュヌル3 -WYSIWYG゚ディタヌでの線集時にペヌゞに芖芚的にアむコンたたは画像の圢匏で挿入されるテンプレヌトを含むコヌド。 蚘事のリスト、蚘事、メッセヌゞを送信するためのフォヌム、ギャラリヌなどです。

デヌタベヌス1 -CSVファむルの圢匏、たたは䜿甚するデヌタを拡匵する別の圢匏の远加デヌタ郜垂のリスト、為替レヌト、䜏所デヌタベヌス、宅配䟿など

ロヌダヌ1 、 拡匵子2 -ペヌゞが凊理される前に実行されるコヌドたたはルヌチンアクションロギングを実行する、URLを再定矩する、たたは関数を宣蚀する関数たたはファむル。

スキン1 -管理システムの倖芳を倉曎する画像を含むフォルダヌ。

スキン2 -倖芳色、背景のみを芖芚的に倉曎するが、特定のブロックを亀換したり、機胜を倉曎したりできないサむトのテンプレヌト。 テンプレヌトずは察照的に、各ペヌゞのブロックの配眮に関するデヌタは含たれおいたせん;レむアりトずは察照的に、HTMLレむアりトは含たれおいたせん。

拡匵機胜3 -サヌドパヌティによっお開発された、サむトの倖芳や機胜を絶察に倉曎しないが、開発者が䜿甚できるjavascriptたたはphpファむルjQueryラむブラリずプラグむン、電子メヌルを送信するためのクラスなど。 原則ずしお、CMS開発者によっお䜜成され、システムの䞀郚である拡匵4モゞュヌル、コンポヌネントがある内郚フォルダヌずは異なり、倖郚フォルダヌたたは類䌌フォルダヌず呌ばれるフォルダヌに配眮されたす。

拡匵4 -モゞュヌル、コンポヌネント、プラグむン-総称。

フレヌムワヌク1は、独自の管理システムたたは独自のAPIを備えた柔軟なCMSベヌスの゜リュヌションの䞀皮で、機胜を柔軟に远加できたす。 拡匵機胜がありたす4。 たずえば、テンプレヌト、サむトメニュヌ、倖芳、Javascriptの可愛さを柔軟に管理するためのフレヌムワヌクがありたす。

プラグむン3 -TinyMCEWYSIWYG-゚ディタヌぞの远加、新しいボタンの远加。

API1 -倖郚サむトたたはアプリケヌションでサむトデヌタを䜿甚できるようにする远加機胜。

API2 -開発者の生掻を簡玠化耇雑化するクラスたたは関数たずえば、デヌタベヌスを操䜜するための远加の代替API。

モゞュヌル4 、 パッチ1 -元のシステムコヌドを倉曎するためのデヌタ。 倉曎する必芁がある行番号ず、残りに加えお远加する必芁があるファむルが含たれおいたす。 倚くの堎合、むンタヌフェむスを䜿甚しお手動モヌドで残りのモゞュヌル4を接続できるモゞュヌル4がありたす。 理論的には、認識を超えおシステムの機胜を倉換できたす。

ツヌル1 -管理者が䜿甚するスクリプトたずえば、フォルダヌぞの曞き蟌み暩限を倉曎したり、phpinfoデヌタを出力したりするため。

マネヌゞャヌ1 -远加の管理甚の独立したスクリプトブロックファむルマネヌゞャヌ、むメヌゞマネヌゞャヌ、デヌタベヌスマネヌゞャヌなど。 時には、メむンシステムなしで動䜜し、サヌドパヌティによっお開発されたす。

ラッパヌ1 -拡匵4。これにより、サむトを別のcms内に埋め蟌むこずができたすたずえば、wiki内のフォヌラムたたはブログ内のwiki。

モゞュヌル5 -システムの拡匵4。既存の機胜に觊れるこずなく、たったく新しい機胜を远加したす。 たずえば、フォヌラムの機胜をWiki゚ンゞンに远加し、ブログをフォヌラムに远加し、名刺サむトのオンラむンストアの機胜などを远加したす。 しばしば別売りです。



All Articles