Xaraya CMS-第1章「はじめに」

Xaraya (「Zaraya」と読みます)は、単なる別のCMSではありません。 それは、アーキテクチャを習得して内部構造、実際には、何でもできる既製のフレームワークを理解するのに時間をかける準備ができている思慮深いサイト管理者を提供します。

Xarayaに入るためのしきい値は、私が知っている他のCMSよりもわずかに高いですが、第一に、それほどではなく、第二に、私を信じて、それは価値があります。

この記事では、Xarayaでの作業の開始を可能な限り簡素化すると同時に、あらゆる種類のライブラリとチェスをサイトに結び付ける方法について説明します。 以下はすべてブランチ1に適用されます。*(現時点での最新バージョンは1.2.3です。モジュールを追加で検索しないように、すぐにfull



にダウンロードすることは理にかなっています)。 ブランチ2 *どういうわけか、私は感心しませんでした。多くがやり直され、後方互換性がなく、多くのモジュールがまだ適応されていません-一般に、安定した動作のために湿っています。

Xarayaロゴ



設置



Xarayaのインストールは非常に簡単です-配布パッケージをダウンロードし、 html



フォルダーのコンテンツをサイトのルート(またはルートではなく)にXARAYA_HOME/install.php



し、空のデータベースを準備し、ブラウザーでXARAYA_HOME/install.php



移動する必要があります。 インストーラーがプロセス全体をガイドし、すぐに作業サイトになりupgrade.php



その後、 install.php



およびupgrade.php



を削除することを忘れないでください。

主要な建築上のポイント



XarayaはモジュラーMVCアプリケーションです。 基本パッケージには、通常のサイトを展開するために必要なすべてが含まれています。 Xarayaの情報の単位は「パブリケーション」です。 パブリケーションは、一連の「フィールド」で構成されます(「タイトル」、「はじめに」、「テキスト」、「画像」など)。 パブリケーションの各タイプには、いくつかの出力テンプレートがあります(たとえば、「フィード内」、「個別のページ上」)。 事前定義されたタイプの出版物を見ることができます(以下: XARAYA_HOME



mybestsite.ru



mybestsite.ru



XARAYA_HOME/index.php?module=articles&type=admin&func=pubtypes





出力テンプレートのセット-テーマ(「テーマ」)と呼ばれ、 themes



フォルダーにあります。 管理はXARAYA_HOME/index.php?module=themes&type=admin&func=list



を介してXARAYA_HOME/index.php?module=themes&type=admin&func=list



RSSと「印刷可能バージョン」もテーマを介して作成されているため、さまざまな「デバイス」の出力を簡単に編集できます。

Xarayaテーマ



独自のテーマの作成は、最初は簡単ではありませんが、エキサイティングです。

テンプレート言語は、追加のホイッスルを含むXMLです(それらについては後で説明します)。 Xarayaは、最初にテーマの適切なディレクトリでテンプレートを検索し、次に(存在しない場合)対応するモジュールのxartemplates



フォルダーでxartemplates



ます。 検索はテンプレートの名前で実行されます。 たとえば、ブログエントリ( articles



module、publication type news



、display type- display



)を表示しようとすると、Xarayaは最初に/themes/YOUR_THEME/modules/ articles



フォルダーを見て、 user-display-news.xt



ファイルを探します。 見つからない場合は、配信から標準のものを取得します( /modules/articles/xartemplates/user-display-news.xd



)。 これにより、 カスケードが保証されます-標準表現では自分に合わないテンプレートのみを書き換える必要があります。

メインテンプレート-ページテンプレート-は、フォルダ/themes/YOUR_THEME/pages



。 主なものは3つです。

default.xt



ファイルのほぼ標準的なビューは次のとおりです。

 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE blocklayout PUBLIC "-//XAR//DTD BL 1.0 Strict//EN" "http://xaraya.com/bl1/DTD/bl1-strict.dtd"> <?xar type="page" ?> <xar:blocklayout version="1.0" content="text/html" xmlns:xar="http://xaraya.com/2004/blocklayout" dtd="xhtml1-strict"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <xar:set name="topnavblocksgroup"><xar:blockgroup name="topnav" id="topnav" /></xar:set> <xar:set name="rightblocksgroup"><xar:blockgroup name="right" id="right" /></xar:set> <xar:set name="leftblocksgroup"><xar:blockgroup name="left" id="left" /></xar:set> <xar:set name="centerblocksgroup"><xar:blockgroup name="center" id="center" /></xar:set> <xar:set name="themedir">#xarTplGetThemeDir()#</xar:set> <xar:set name="sitename"><xar:var scope="module" module="themes" name="SiteName" /></xar:set> <xar:template file="headtagcontent" type="theme" /> </head> <body> <div id="xc-outer-wrapper"> <xar:if condition="!empty($topnavblocksgroup)"> <xar:var name="topnavblocksgroup" /> </xar:if> <xar:template file="pageheader" type="theme" /> <xar:template file="pageblockgroups" type="theme" /> <xar:template file="pagefooter" type="theme" /> </div> <xar:base-render-javascript position="body" /> </body> </html> </xar:blocklayout>
      
      





ブロックはグループ化できます( xar:blockgroup name="*" id="*"



参照)。 #PHP_CODE#



構築を通じて、コントローラーの変数と関数にアクセスできます。 変数は/modules/MODULE_NAME/xaruser



あるコントローラーから渡され/modules/MODULE_NAME/xaruser



。 モデルは/modules/MODULE_NAME/xaruserapi



ます。 Xarayaでは、ほとんどすべてが命名規則によって編成されています。 たとえば、別のパブリケーションの出力コントローラーは、 /modules/articles/xaruser/display.php



articles_user_display($args)



/modules/articles/xaruser/display.php



articles_user_display($args)



関数にあり、次のようにデータをテンプレートに渡します(もちろん、 $data



$template



は関数コード自体で準備されます):

 return xarTplModule('articles', 'user', 'display', $data, $template);
      
      





テンプレートの作成およびデバッグ時には、管理⇒テーマ⇒設定の変更XARAYA_HOME/index.php?module=themes&type=admin&func=modifyconfig



XARAYA_HOME/index.php?module=themes&type=admin&func=modifyconfig



)で「HTMLコメントでテンプレートファイル名を表示」オプションを有効にすることをお勧めします。 ちなみに、CNCは設定の各モジュールで個別に有効にでき、ロシア語のローカライズ版をダウンロードして/var/locales/



フォルダーに解凍できます。

練習する



実際、何らかのテンプレートを作成するときが来ました。 テンプレートのデバッグを容易にするために、「ニュース」タイプの新しいパブリケーションを作成することをお勧めします。 これが私のブログのテーマのコードです。

 <xar:template file="user-display-title" type="module"/> <xar:if condition="!empty($data['summary'])"> <div class="summary">#$data['summary']#</div> </xar:if> <xar:if condition="!empty($data['body'])"> <div class="body">#$data['body']#</div> </xar:if> <xar:if condition="!empty($data['notes'])"> <div class="notes"><p><em>#$data['notes']#</em></p></div> </xar:if> <xar:block module="base" type="html" instance="disqus" /> <xar:if condition="!empty($data['hooks'])"> <xar:foreach in="$data['hooks']" key="$hookmodule"> <xar:if condition="!empty($data['hooks'][$hookmodule])"> <xar:template file="schild" type="module" subdata="array( 'contentfile'=>'prevart-hooks', 'hookmodule'=>$hookmodule, 'data'=>$data )" /> </xar:if> </xar:foreach> </xar:if>
      
      





最初に、ヘッダー出力テンプレートを「プラグイン」します。すべての種類のパブリケーションで同じものを使用していますが、コードを複製するのは好きではありません。 次に、記録フィールドを表示します(空でない場合)。 次に、コメントブロックを出力します(これには、呼び出されたブロックでDISQUSを使用します-提供されたスニペットのみです)。 次に、変換フックを呼び出します(フックについては別に記述する必要がありますが、今のところは、それらを自分自身に制限します。たとえば、 articles



モジュールはタグについて何も知らないため、タグは対応するフックを介してここに表示されます)。 その結果、次のようになります。

Xarayaレンダリング

注:コメントはテンプレートを使用して表示され、タグは独自のタグを使用して表示されますが、すべて異なる場合があります。

まとめ



はじめに、私には十分なようです。 ちょっとした厄介なメモのようなものが判明しましたが、私は正直に、メインアーキテクチャについて説明したり、紹介をしたりしました。

トピックが興味深いものであることがわかった場合は、続行できます(たとえば、トピックの作成について最初から「作業バージョン」まで、または「モジュールの作成」の手順で話します)。 そのモジュールは、Xarayaをフレームワークにするものです。 さて、独自のテーマ-細部まで簡単にカスタマイズできるため、多くの場合、エンジンを「見つける」ことは不可能です。

このCMSの動作メカニズムを理解するために重要な何かを見逃した場合は、コメントで必ず確認してください。 記事の更新は引き続き許可されています。



UPD :私は軽いショックを受けています。 Xarayaについて知っていること話すように頼まれましたが、 22のマイナスがカルマに陥ったため、リンクを投稿できません。

さて、リンクなしで座ってください;-)



All Articles