Concrete5の開発:最も単純なモジュール

このレッスンでは、例として「セパレータ」モジュールを使用して、Concrete5 CMSの最小モジュールの作成方法を検討することを提案します(システムの用語では、モジュールはブロックと呼ばれます)。



余談ですが、Concrete5の拡張機能を開発する際にはMVCスキームが広く使用されていることをお伝えします。



最も単純なモジュールでは、blocks / horizintal_lineディレクトリに3つのファイルのみが必要です。



controller.php


名前から、これがコントローラーファイルであることは既に明らかです。 MVCに精通しているすべての人は、MVCなしではできないことを理解しています。 コントローラーにはモジュールの制御コードが含まれており、モジュールによって実行されるすべてのアクションを処理します。 具体的には、このコントローラーにはBlockControllerの基本クラスから継承されたHorizintalLineBlockControllerクラスが含まれており、この場合、必要なすべてのアクション(インストール、出力など)を実行します。 クラスには、モジュール名、説明、キャッシュ設定など、クラスの必要なフィールドの定義が含まれています。



<?php defined('C5_EXECUTE') or die("Access Denied."); class HorizintalLineBlockController extends BlockController { //      protected $btName = ''; //    protected $btDescription = '   HR       '; //       protected $btCacheBlockOutput = true; //       protected $btCacheBlockOutputForRegisteredUsers = true; //    protected $btCacheBlockOutputLifetime = CACHE_LIFETIME; }
      
      







モジュールのあるディレクトリの名前とコントローラーの名前は命名規則であるため、互いに対応しなければならないことに注意してください。 コンプライアンスは次のように定義されます。

  1. ディレクトリの名前を取ります
  2. 最初の文字とアンダースコアに続くすべての最初の文字がある場合は、このHorizintal_Lineのように大文字にします
  3. アンダースコアを削除して、HorizitanLineを取得
  4. 最後に親コントローラーBlockControllerのクラス名を追加し、HoriziintalLineBlockControllerを取得します


契約を守らないと、システムは単にモジュールを見つけられず、インストールできません。



view.php


このファイルにはPHPとHTMLが含まれており、これらはデフォルトでページ上のモジュールコンテンツの出力を作成します。 この例では、ファイルは非常にシンプルで、2行しか含まれていません。



 <?php defined('C5_EXECUTE') or die("Access Denied.");?> <hr />
      
      







どのモジュールでも、モジュールのtemplatesサブディレクトリでview.phpの類似物を無制限に作成して、外観を変更できます。 これらの「マッピング」は、コードに忍び寄る必要なく、CMSインターフェースを介してモジュールに直接接続できます。



icon.png


ページに追加されたときにモジュールリストに入力されるモジュールアイコン。



注:このCMSの制御下で機能するように作成されたすべてのPHPファイルでは、最初の行に次のコードを含める必要があります。

 <?php defined('C5_EXECUTE') or die("Access Denied.");?>
      
      







最初のレッスンは終わりです。コミュニティに興味があれば、続けます。



興味のある方へのリンク


CMSウェブサイト: concrete5.org

ロシアのコミュニティ: http : //forum.c5r.ru/

ロシア語のアセンブリ: https : //c5r.ru/download/download-concrete5 。ただし、公式Webサイトからダウンロードしたディストリビューションはすでにロシア語をサポートしています。

GitHubのこのモジュール: horizintal_line



All Articles