Xarayaに入るためのしきい値は、私が知っている他のCMSよりもわずかに高いですが、第一に、それほどではなく、第二に、私を信じて、それは価値があります。
この記事では、Xarayaでの作業の開始を可能な限り簡素化すると同時に、あらゆる種類のライブラリとチェスをサイトに結び付ける方法について説明します。 以下はすべてブランチ1に適用されます。*(現時点での最新バージョンは1.2.3です。モジュールを追加で検索しないように、すぐに
full
にダウンロードすることは理にかなっています)。 ブランチ2 *どういうわけか、私は感心しませんでした。多くがやり直され、後方互換性がなく、多くのモジュールがまだ適応されていません-一般に、安定した動作のために湿っています。

設置
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
すべてについてのすべてのために、 -
frontpage.xt
メインページを表示し、 -
module.xt
特定のモジュールの内容を表示します(あまり一般的ではありません)。
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をフレームワークにするものです。 さて、独自のテーマ-細部まで簡単にカスタマイズできるため、多くの場合、エンジンを「見つける」ことは不可能です。
このCMSの動作メカニズムを理解するために重要な何かを見逃した場合は、コメントで必ず確認してください。 記事の更新は引き続き許可されています。
UPD :私は軽いショックを受けています。 Xarayaについて知っていることを話すように頼まれましたが、 22のマイナスがカルマに陥ったため、リンクを投稿できません。
さて、リンクなしで座ってください;-)