独立した調査によると、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エンジンに追加し、ブログをフォーラムに追加し、名刺サイトのオンラインストアの機能などを追加します。 しばしば別売りです。