サむトの䜜成䟋に関するeZ Publishの抂芁

オヌプン゜ヌスのコンテンツ管理システムeZ Publishで簡単なサむトを䜜成する小さな䟋を挙げたいず思いたす。 キャンペヌンに長所、短所、そしおもちろんそれがなぜ必芁なのかを䌝えようず思いたす。



はじめに



eZ Publish-゚ンタヌプラむズオヌプン゜ヌスCMSずしお䜍眮付けられおいたす。 GNU General Public Licenseの䞋で、eZ Systemsによっお開発されたした。

PHPで曞かれおいたす。

eZ Publishの䞻な機胜は、オヌプン性、高いスケヌラビリティ、および䜿甚の柔軟性です。この堎合、通垞、䌁業の顧客を匕き付け、他の人を怖がらせたす。



システムの利点




欠点




ただ興味がありたすか 次に説明に進みたす。 しかし、極端な初心者は、実際のタスクに盎接行くこずをお勧めしたす。



非垞に短い説明



䞀般に、eZ Publishは、組み蟌みラむブラリに基づくサむト開発環境であり、その䞊に盞互接続された倚数の機胜が線成されおいたす。

技術的な詳现なしで、システムの䞻芁な芁玠に぀いお話しおみたしょう。



コンテンツモデル


このようなシステムを䜿甚する基瀎は、サむト芁玠が䜕らかのタむプたたはクラスのオブゞェクトであるオブゞェクト指向コンテンツモデルの理解に基づいおいたす。

クラスは、䞀連のフィヌルドたたは属性から圢成されたす。 各属性は、そのデヌタ型に責任がありたす。 たずえば、線、画像、たたは単なるファむル。



各倉曎は、オブゞェクトのバヌゞョンにコミットされたす。 必芁に応じお、公開および倉曎したデヌタをより早く返すこずができたす。 将来の公開のために䞋曞きを保存するこずもできたす。



クラスのようなオブゞェクトは、異なる蚀語ぞの翻蚳を持぀こずができたす。



テンプレヌト゚ンゞン


デヌタを衚すために、自己蚘述型テンプレヌト゚ンゞンeZ Templateが䜿甚されたす。

テンプレヌトは、ほずんどの堎合、ナヌザヌにデヌタを衚瀺するずきに䜿甚されたす。 たずえば、メヌルレタヌを送信するフォヌムや、クラスの属性の線集がどのように芋えるかなどです。



eZテンプレヌトは、単なるデヌタを提瀺する手段ずいうよりも、コヌディング蚀語です。 Smartyに䌌た独自のそれほど単玔ではない構文を持っおいるか、Smartyがそれに䌌おいたすeZテンプレヌトは前䞖玀から開発されたため。

テンプレヌト蚀語には、独自の制埡構造、挔算子たたは関数、コメント機胜、倉数の操䜜などがありたす。 この機胜のほずんどは、独自の挔算子、関数を远加するこずで拡匵でき、サむトでの䜜業が倧幅に簡玠化されたす。



テンプレヌトのオヌバヌラむド


デヌタに独自のテンプレヌトがない堎合、それに応じおデヌタは衚瀺されたせん。

基本的な配信では、eZ Publishには衚瀺するデヌタに必芁なすべおのテンプレヌトがありたす。

デヌタの独自のプレれンテヌションを䜜成し、ugい暙準テンプレヌトを䜿甚しないようにするには、独自のテンプレヌトでオヌバヌラむドする必芁がありたす。

テンプレヌトはすべおのデヌタに䜿甚されるため、これにより、基本的なむンストヌルファむルを線集しなくおも、奜みに合わせおすべおのデザむンを䜜成できたす。



キャッシング


テンプレヌトをこのように密に䜿甚するには、キャッシュツヌルを䜿甚するこずが䞍可欠です。そうしないず、サむトは単に非垞に遅くなりたす。

キャッシングにはいく぀かのタむプがありたす。



キャッシュの操䜜は、手動のキャッシュクリヌニングができるだけ少なくなるように蚭蚈されおいたす。 それでも、倚くの堎合、手動でクリヌニングする必芁がありたす。



りェブサむト


このシステムにより、䞀床に1぀のむンストヌルで耇数のサむトをホストできたす。

このために、サむトぞのアクセスが考案されたした。

サむトアクセスは、次のような特定のサむトの蚭定を瀺したす。



蚭定


システム蚭定はiniファむルに保存されたす。 構成可胜なほずんどすべおが蚭定ファむルに取り出されたす。

したがっお、それらを䞊曞きするシステムも実装されたした。

぀たり、蚭定を䞊曞きしたり、独自の蚭定を䜜成したりできたす。



䞀般に、蚭定にはいく぀かのレベルがありたす。



拡匵機胜


拡匵機胜では、既存の機胜を再定矩するか、独自の機胜を远加できたす。 サむトのコヌドを保存する必芁があるのは拡匵機胜です。

eZ Publishは、倚くの暙準的な䟿利な拡匵機胜も䜿甚したす。



モゞュヌルず「良い」* URL


モゞュヌルず*玠敵なURLに぀いおも蚀及する䟡倀がありたす。

各ノヌドには独自の䞀意のURLがありたす。 2皮類ありたす

1.コンテンツツリヌ内のノヌドの名前ず䜍眮に基づいお圢成されるnice url。 たずえば、Folderオブゞェクトの䞋にArticleオブゞェクトがある堎合、支払いURLは/ Folder / Articleになりたす

2.オブゞェクトにアクセスするための基本モゞュヌル-/ content / view / full / [NodeId]

どこで





実甚的なタスク



目的非垞に単玔化されたhabrahabr.ruホヌムペヌゞを䜜成しお、Easy Publishingでの䜜業を実挔したす。

぀たり、正の評䟡を持぀メむンぞの投皿の結論。



私たちは単玔な人ではないため、暙準のむンストヌラヌは䜿甚したせんが、Easy Publishの喜びの党䜓的な負担をよりよく感じるために、すべおを手動で実行しようずしたす。



  1. ここで、 ez.no / eZPublish / Requirementsシステム芁件を芋぀けるこずができたす 。 䞀般的に、> = PHP 5.2、Apache 2、MySQL 5です。
  2. eZ Publish 4.4.0をダりンロヌド

    $ wget share.ez.no/content/download/103518/477729/version/1/file/ezpublishcommunity-4.4.0-with_ezc-gpl.tar.gz





  3. ファむルを解凍したす

    $ tar xfz ezpublishcommunity-4.4.0-with_ezc-gpl.tar.gz



  4. 新しいデヌタベヌスを䜜成する

    mysql> create database habr default character set utf8;



  5. ベヌスを初期化する

    $ cd ezpublishcommunity-4.4.0-with_ezc-gpl





    mysql -uroot habr < kernel/sql/mysql/kernel_schema.sql





    mysql -uroot habr < kernel/sql/common/cleandata.sql



  6. ダりンロヌド拡匵機胜 narod.ru/disk/5898167001/habr-example-ezpublish.tar.gz.html

    Easy Publishのルヌトフォルダヌにむンストヌルしたす

    $ tar xfz habr-example-ezpublish.tar.gz



  7. VirtualHostを初期化する

     <VirtualHost habr80>
         ServerName habr80
         ServerAdmin root @ localhost
         DocumentRoot PATH
         <ディレクトリパス>
           オプションFollowSymLinksむンデックスExecCGI
            AllowOverrideなし
           泚文蚱可、拒吊
           すべおから蚱可
         </ Directory>
         Rewriteengine on
         RewriteRule ^ / var / [^ /] + / cache / public /.*-[L]
         既知のすべおのデヌタディレクトリに぀いお、Apacheに盎接提䟛させたす
         RewriteRule ^ / var / storage /.*-[L]
         RewriteRule ^ / var / [^ /] + /ストレヌゞ/.*-[L]
         RewriteRule ^ / var / cache / texttoimage /.*-[L]
         RewriteRule ^ / var / [^ /] + / cache / texttoimage /.*-[L]
         RewriteRule ^ /デザむン/ [^ /] + /スタむルシヌト|画像| javascript/.*-[L]
         RewriteRule ^ / share /アむコン/.*-[L]
         RewriteRule ^ /拡匵子/.*-[L]
         RewriteRule。* /Index.php
     </ VirtualHost> 


  8. 管理パネルに入り、ロシア語を远加したす

    habr / habr_admin / content / translationsに移動しお远加したす。

    User: admin

    Password: publish





  9. クラスを䜜成する

    レヌティングが0を超える投皿のメむンリストに䜜成したす。

    䟿宜䞊、Habrクラスのグルヌプを䜜成したす。

    ここにhabr / habr_admin / class / grouplistを远加したす

    • Frontpage識別子ず1぀のテキストフィヌルドを䜿甚しお、 Frontpageクラスを䜜成する必芁がありたす。

      - Name [ ]





      このクラスのオブゞェクトは、 habrメむンペヌゞで利甚できたす。

      このオブゞェクトでは、必芁な投皿が遞択されたす。

      これを行うには、䜜成されたHabrグルヌプに移動し、「新しいクラス」をクリックしたす。

      属性を远加したす。

    • たた、ブログのリストをどこかに保存する必芁がありたす。そのために、次のフィヌルドを持぀ブログ識別子ずBlogsクラスを䜜成したす。

      - Name [ ]

      - Description [ ]

      - [ ]





    • 同じフィヌルドに加えお、それぞれにブログのBlogクラスidblogを䜜成したす。

      - Index [. ] —

      - [ ]





    • 各ブログには投皿がありたす。そのために、クラスPost idpostを䜜成したす

      マヌゞンあり

      - Name [ ]

      - Content [ ]

      - Tags [ ]

      - Raiting [ ]





    これにより、クラスのリストが衚瀺されたす。





    すべおのクラスの準備ができたした。コンテンツツリヌの敎理を開始できたす。
  10. メむンオブゞェクトを䜜成する

    • 「サむト構造」に移動habr / habr_admin / content / view / full / 2

      クラスFrontpageのオブゞェクトを䜜成したす

    • ロシア語を遞択しおください。
    • 次に、「名前」フィヌルドにテキスト「投皿」を入力しお公開したす。
  11. カスタマむズ

    そのため、新しく䜜成されたオブゞェクトはメむンペヌゞに衚瀺され、デフォルトノヌド2では衚瀺されたせん

    ファむルextension/habr/settings/siteaccess/rus/site.ini.append.php



    を線集する必芁がありたすextension/habr/settings/siteaccess/rus/site.ini.append.php





    [SiteSettings]

    IndexPage=/content/view/full/62

    DefaultPage=/content/view/full/62





    62は、このオブゞェクトのノヌドノヌドコヌドです。

    このyadiが䜜成したオブゞェクトず䞀臎するこずを確認しおください。
  12. ブログのリポゞトリを䜜成する

    したがっお、同じペヌゞでBlogsクラスのオブゞェクトも䜜成したす。

  13. ブログを䜜成したす

    Blogsに移動しお、 Blogタむプのオブゞェクトを䜜成したす。

  14. テスト投皿を䜜成する

    これらのブログでは、タむプPostのオブゞェクトを䜜成したす。

    お客様の裁量でコンテンツを蚘入したす。

    ただし、投皿の䞀郚は負の評䟡を持たなければならず、䞀郚はメむンの評䟡でフィルタリングする必芁がありたす。
  15. さお、 habrのメむンペヌゞに移動するず 、以䞋が衚瀺されたす。





仕組みの説明


  1. 蚭定では、デフォルトでロシアのデフォルトサむトが蚭定されおいたす

    settings/override/site.ini.append[SiteSettings]:DefaultAccess=rus



  2. 私たちは、habrデザむンがsaitaxas rusに䜿甚されるこずを決定したした

    extension/habr/settings/siteaccess/rus/site.ini.append.php[DesignSettings]:SiteDesign=habr





    extension/habr/design



    フォルダヌには、 extension/habr/design



    フォルダヌがありたす。この堎合、 habrデザむンが䜿甚されたす。

    ここでは、䜿甚される蚀語、぀たり rus-RU 

     [RegionalSettings]
    ロケヌル= rus-RU
     ContentObjectLocale = rus-RU
     ShowUntranslatedObjects =無効
     SiteLanguageList [] = rus-RU
     SiteLanguageList [] = eng-GB
     TextTranslation =有効
    
  3. 最初に解析される最も重芁なテンプレヌトを䜜成したした。

    extension/habr/design/habr/templates/pagelayout.tpl



  4. サむトのロシア語郚分ず英語郚分に぀いおは、 frontpageおよびpostクラスのオブゞェクトのデフォルトテンプレヌトを再定矩したした。

    extension/habr/settings/siteaccess/rus/override.ini.append.php:





     [full_blog_section]
    ゜ヌス=ノヌド/ビュヌ/ full.tpl
     オヌバヌラむドされたテンプレヌト
     MatchFile = full / frontpage.tpl
    サブディレクトリ=テンプレヌト
     フロントペヌゞクラスの堎合
    䞀臎[class_identifier] = frontpage
    
     [full_post]
    ゜ヌス=ノヌド/ビュヌ/ full.tpl
     MatchFile = full / post.tpl
    サブディレクトリ=テンプレヌト
    䞀臎[class_identifier] = post
    
     [line_post]
    ゜ヌス=ノヌド/ビュヌ/ line.tpl
     MatchFile = line / post.tpl
    サブディレクトリ=テンプレヌト
    䞀臎[class_identifier] = post 
  5. さらに、 フロントペヌゞ extension/habr/design/habr/override/templates/full/frontpage.tpl



    の再定矩されたテンプレヌトでは、次のように蚘述できたす。

     {def $ node_array = fetchcontent、list、 
                              ハッシュparent_node_id、2、
                                    深さ3、 
                                    オフセット、$ view_parameters.offset、
                                    制限、10
                                     sort_by、配列 'published'、false、
                                     class_filter_type、 'include'、
                                     class_filter_array、配列 'post'、
                                     attribute_filter、 
                                     arrayarray 'post / raiting'、 '>'、 '0'}
     {for node $ node_array as $ node_item}
         {node_view_gui view = line content_node = $ node_item}
     {/ foreach}
    


    $ node_arrayには、評䟡が0を超える最初の10件の投皿が含たれたす。

    {node_view_gui view=line content_node=$node_item}



    -ビュヌビュヌ行のノヌドのテンプレヌトを衚瀺するこずを決定したす。

    この堎合、テンプレヌトが衚瀺されたす。

    extension/habr/design/habr/override/templates/line/post.tpl





    新しい投皿のみを衚瀺するには、filter属性を䜿甚できたす。

     attribute_filter、配列「および」、
                             配列 'published'、 '> ='、subcurrentdate、86400、
                             配列 'post / raiting'、 '>'、 '0' 


    評䟡が0を超える新しい投皿のみが登録されたす。

  6. メむンから投皿のリンクをクリックするず、テンプレヌトが䜿甚されたす

    extension/habr/design/habr/override/templates/full/post.tpl







    そしお、次のようになりたす。





  7. 小さな远加テンプレヌトは文字列を翻蚳する機胜を䜿甚したす

    {"New"|i18n( "habr" )}





    ロシア語ぞの翻蚳はこちらです

    extension/habr/translations/rus-RU/translation.ts





    ぀たり、サむトを別の蚀語に切り替える堎合、ファむルに翻蚳を远加するだけで枈みたす。





たずめ



もちろん、このサむトは劣悪なものであるこずが刀明したした。コンテンツを远加するためのテンプレヌトの远加、その他倚くの倉曎が必芁になりたす。 この䟋の意味は、どこから始めればよいかを瀺すこずです。そしお、マニュアルを吞う、バグレポヌトを読む、壁に頭を叩く、䞀般に、私たちがやりたいこずすべおをしなければなりたせん。



ez.no -eZ Publishを開発しおいる䌚瀟のりェブサむト

doc.ez.no-オンラむンドキュメント

issues.ez.no-バグトラッカヌ

projects.ez.no-コミュニティの既成゜リュヌション

share.ez.no-コミュニティサむト



All Articles