<?xml version="1.0" encoding="utf-8" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns="http://purl.org/rss/1.0/">




    



<channel rdf:about="http://plone.jp/search_rss">
  <title>Plone - エンタープライズ・オープンソースCMS　 Plone Users Group Japan</title>
  <link>http://plone.jp</link>

  <description>
    
            These are the search results for the query, showing results 31 to 39.
        
  </description>

  

  

  <image rdf:resource="http://plone.jp/logo.png"/>

  <items>
    <rdf:Seq>
      
        <rdf:li rdf:resource="http://plone.jp/documentation/documents-top"/>
      
      
        <rdf:li rdf:resource="http://plone.jp/event-report/wpd2008/wpd2008-lt2"/>
      
      
        <rdf:li rdf:resource="http://plone.jp/event-report/wpd2008/wpd2008-lt1"/>
      
      
        <rdf:li rdf:resource="http://plone.jp/event-report/wpd2008/wpd2008-session5"/>
      
      
        <rdf:li rdf:resource="http://plone.jp/event-report/wpd2008/wpd2008-session3"/>
      
      
        <rdf:li rdf:resource="http://plone.jp/event-report/wpd2008/wpd2008-session1"/>
      
      
        <rdf:li rdf:resource="http://plone.jp/support/mailinglist"/>
      
      
        <rdf:li rdf:resource="http://plone.jp/documentation/buildout-tutorial-jp"/>
      
      
        <rdf:li rdf:resource="http://plone.jp/front-page"/>
      
    </rdf:Seq>
  </items>

</channel>


  <item rdf:about="http://plone.jp/documentation/documents-top">
    <title>Ploneに関するドキュメントについて</title>
    <link>http://plone.jp/documentation/documents-top</link>
    <description>現在参考になる代表的なドキュメントについてご紹介します。</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>Plone関連・日本語（翻訳）ドキュメント</h2>
<ul>
<li><a href="http://plone.jp/documentation/plone4-user-manual" class="internal-link" title="Plone 4ユーザーマニュアル">Plone4ユーザーズマニュアル</a><br />英語版のPlone4 User's Manualを翻訳した日本語版。Ploneの概要からコンテンツの入力と公開処理、ワークフロー、フォルダやコンテンツの共有といった基本操作を理解できます。Plone4で採用になったビジュアルエディタTinyMCEについてもカバーしています。</li>
<li><a href="http://plone.jp/documentation/090228-unified-installer" class="external-link">Plone 3.2.1: Unified Installer README.txt</a><br />Unified Installer 3.2.1のパッケージに付属のREADME.txtの日本語翻訳です。このインストーラーの使い方、オプションの指定の方法などについて解説しています。</li>
<li><a href="http://plone.jp/documentation/buildout-tutorial-jp" class="external-link">buildoutチュートリアル</a><br />zc.buildoutを使ってプロジェクトの管理とeggs、setuptoolsの依存管理、そして開発環境のセットアップにzc.buildoutを使う方法を紹介します。</li>
<li><a href="http://plone.jp/documentation/unit-testing" class="external-link">ユニットテスト</a><br />Ploneでプロダクトを開発する際にその信頼性を客観的に評価する手法であるユニットテストについ解説しています。</li>
<li><a href="http://plone.jp/documentation/choosing-the-appropriate-theming-approach" class="external-link">テーマ適用アプローチの選択肢</a><br />Plone3の外観テーマを独自デザインに変更するためのアプローチ方法について説明しています。</li>
</ul>
<div>
<ul style="list-style-type: none; ">
<li><a href="http://plone.jp/documentation/Members/retsu/opendocs/NASAScienceCaseStudy" class="internal-link" title="NASA Science 事例研究"></a></li>
</ul>
</div>
<h2>Plone全般・英文ドキュメント</h2>
<ul style="list-style-type: none; ">
<li><a class="external-link" href="http://plone.org/documentation">Plone.orgのドキュメント（英語）</a><br />Ploneの利用・開発・運用についての豊富なドキュメントがあります。</li>
<li><a class="external-link" href="http://plone.org/documentation/manual">Plone関連各種マニュアル（英語）</a><br />Ploneの利用者向けマニュアル、開発者向けマニュアル一覧。</li>
<li><a class="external-link" href="http://plone.org/documentation/faq">FAQ（英語）</a><br />よくある質問への回答がまとめられています。</li>
<li><a class="external-link" href="http://plone.org/documentation/manual/plone-4-user-manual">Plone 4 Users Manual（英語）</a><br />英語版のユーザーズマニュアル</li>
<li><a class="external-link" href="http://plone.org/documentation/manual/plone-3-user-manual">Plone 3 User Manual（英語）</a><br />英語版のユーザーズマニュアル。</li>
</ul>
<div><span class="Apple-style-span"><span class="Apple-style-span"> 
<ul style="list-style-type: none; ">
<li><a class="external-link" href="http://www.plonebook.info/books">A user's guide to  Plone（英語）</a><br />gocept社が公開したユーザー向けPloneガイドPDF版。同名の書籍のPDF版です。</li>
</ul>
</span></span></div>
<h2>Plone2.xシリーズ関連</h2>
<ul>
<li><a class="external-link" href="http://plone.org/documentation/manual/plone-2.5-user-manual">Plone2.5 User's Manual（英語）</a><br />Plone2.5のユーザーズマニュアル</li>
<li><a class="external-link" href="http://plone.org/documentation/manual/definitive-guide">Andy McKay's Definitive Guide to Plone（英語）</a><br />日本語訳も出版された同書籍のPDFデータ版。巻末の運用に関する情報は今でも参考になります。</li>
</ul>
<p> </p>
<h2>Plone関連イベント・セミナー資料</h2>
<ul>
<li><a href="http://plone.jp/documentation/wpd2011-tokyo" class="internal-link"><span class="internal-link">Wold Plone Day 2011 Tokyo セミナー資料</span></a><br />2011年のWold Plone Day 2011 Tokyoは、4月27日に東京西新宿のアスキーメディアワークスの会議室で開催されました。</li>
<li><a href="http://plone.jp/documentation/wpd2010-report" class="internal-link" title="World Plone Day 2010 Tokyo レポート">Wold Plone Day 2010 Tokyo レポート</a><br />2010年のWold Plone Day 2010 Tokyoは、Part 1が4月22日に一橋大学で、Part 2が4月25日にジェトロで開催されました。</li>
<li><a href="http://plone.jp/documentation/wpd2009" class="internal-link"><span class="internal-link">Wold Plone Day 2009 Tokyo Part 1 &amp; 2 セミナー資料</span></a><br />2009年のWold Plone Day 2009 Tokyoは、Part 1が4月22日に一橋大学で、Part 2が4月25日にジェトロで開催されました。</li>
<li><a href="http://plone.jp/documentation/wpd2008" class="internal-link"><span class="external-link">Wold Plone Day 2008 Tokyo セミナー資料</span></a><br />2008年11月08日に一橋大学で開催されたWold Plone Day 2008/Tokyoの各種セミナーの資料となります。</li>
</ul>
<p> </p>
<h2>Zope関連</h2>
<ul>
<li><a class="external-link" href="http://www.plope.com/Books/2_7Edition">The Zope Book 2.7 Edition（英語）</a><br />上記の2.7対応版の情報をWebで読むことができます。</li>
<li><a class="external-link" href="http://wiki.zope.org/zope3/Zope3Wiki">Zope3 WiKi</a>（英語）<br />最新のZope3の情報がまとまっています。Plone3はZope3技術を多用しています。</li>
<li><a href="http://plone.jp/Members/retsu/opendocs/zope3introOSC090220tokyo/view" class="external-link">プログラマでなくてもわかるZope 3紹介（日本語）</a><br />オープンソースカンファレンス 2009 Tokyo/Spring での講演の資料です。</li>
<li><a href="http://plone.jp/documentation/opendocs/zope3note" class="internal-link" title="なぜ Zope 3 ?">なぜ Zope 3 ？（日本語）</a><br />2010年7月14日の月例会でのプレゼンテーションの資料です。Zope 3発展篇の発刊を記念して行なわれました。</li>
</ul>
<p> </p>
<h2>Python関連</h2>
<ul>
<li><a class="external-link" href="http://www.python.jp/Zope/links/python_documents.1">チュートリアル（日本語）</a><br />pythonの基礎を学ぶことができます。</li>
<li><a class="external-link" href="http://www.python.org/doc/">python関連ドキュメント（英語）</a><br />各種ドキュメントが豊富に用意されています。</li>
</ul>
<p> </p>
<h2>Plone 関連書籍について</h2>
<ul>
<li><a class="external-link" href="http://www.amazon.co.jp/Plone-完全活用ガイド-Gihyo-Expert-Books/dp/4774135011/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1232344492&amp;sr=1-1">Plone 完全活用ガイド</a><br />柴田 淳 (著), 鈴木 たかのり (著), 木下 文史 (著), 他 (著), ウェブコア(株) (監修) <br />Plone3をカバーした書籍。Ploneの活用とカスタマイズのポイントが紹介されています。</li>
<li><a class="external-link" href="http://www.amazon.co.jp/オープンソース徹底活用-Ploneによる簡単Webコンテンツ管理-寺田-学/dp/4798012696/ref=sr_1_3?ie=UTF8&amp;s=books&amp;qid=1232344551&amp;sr=1-3">オープンソース徹底活用 Ploneによる簡単Webコンテンツ管理</a><br />寺田 学 (著), 伏見 潤 (著), 永井 孝 (著), CMSコミュニケーションズ(監修)<br />Plone2.5をベースにインストールからコンテンツ入力、サイトのカスタマイズを具体的なステップ単位で説明しています。Ploneの基礎を学べます。</li>
<li><a class="external-link" href="http://www.amazon.co.jp/開発のプロが教える標準Plone完全解説-デベロッパー・ツール・シリーズ-アンディ-マッケイ/dp/4756146090/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1232344590&amp;sr=1-2">開発のプロが教える標準Plone完全解説</a><br />アンディ マッケイ (著), Andy McKay (原著), クイープ (翻訳), システムサポート (翻訳)<br />Andy McKay著の「Definitive Guide to Plone」の日本語翻訳本。Plone2.0.5をベースに執筆されている。日本版は加筆されており、サーバー運用のポイントなどについても触れられています。</li>
</ul>]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Shigeo Honda</dc:creator>
    <dc:rights></dc:rights>
    <dc:date>2009-01-18T15:00:00Z</dc:date>
    <dc:type>ページ</dc:type>
  </item>


  <item rdf:about="http://plone.jp/event-report/wpd2008/wpd2008-lt2">
    <title>LT. ZOPE(Plone) での開発事例</title>
    <link>http://plone.jp/event-report/wpd2008/wpd2008-lt2</link>
    <description>by 原伸太郎・プロスパーク株式会社 （当日発表はなし。資料のみアップロード）</description>
    
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>admin</dc:creator>
    <dc:rights></dc:rights>
    <dc:date>2008-11-09T15:00:00Z</dc:date>
    <dc:type>ファイル</dc:type>
  </item>


  <item rdf:about="http://plone.jp/event-report/wpd2008/wpd2008-lt1">
    <title>LT. Plone3の設定カスタマイズがXMLで簡単になった</title>
    <link>http://plone.jp/event-report/wpd2008/wpd2008-lt1</link>
    <description>by 寺田学・Plone研究会</description>
    
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>admin</dc:creator>
    <dc:rights></dc:rights>
    <dc:date>2008-11-09T15:00:00Z</dc:date>
    <dc:type>ファイル</dc:type>
  </item>


  <item rdf:about="http://plone.jp/event-report/wpd2008/wpd2008-session5">
    <title>5. Plone Conference 2008 報告</title>
    <link>http://plone.jp/event-report/wpd2008/wpd2008-session5</link>
    <description>by 堀田直孝・単なる主夫１号</description>
    
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>admin</dc:creator>
    <dc:rights></dc:rights>
    <dc:date>2008-11-09T15:00:00Z</dc:date>
    <dc:type>ファイル</dc:type>
  </item>


  <item rdf:about="http://plone.jp/event-report/wpd2008/wpd2008-session3">
    <title>3. Ploneを使う人のPython入門</title>
    <link>http://plone.jp/event-report/wpd2008/wpd2008-session3</link>
    <description>by かとうまさや・a.k.a. jack</description>
    
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>admin</dc:creator>
    <dc:rights></dc:rights>
    <dc:date>2008-11-09T15:00:00Z</dc:date>
    <dc:type>ファイル</dc:type>
  </item>


  <item rdf:about="http://plone.jp/event-report/wpd2008/wpd2008-session1">
    <title>1. Ploneを知らない人のためのPlone紹介</title>
    <link>http://plone.jp/event-report/wpd2008/wpd2008-session1</link>
    <description>by 本多重夫・Plone研究会</description>
    
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>admin</dc:creator>
    <dc:rights></dc:rights>
    <dc:date>2008-11-09T15:00:00Z</dc:date>
    <dc:type>ファイル</dc:type>
  </item>


  <item rdf:about="http://plone.jp/support/mailinglist">
    <title>Plone日本語メーリングリスト申し込み登録方法</title>
    <link>http://plone.jp/support/mailinglist</link>
    <description>Ploneの導入、使い方などに関しての質問や情報の共有には、Plone Users Group Japanのメーリングリストもご利用になれます。</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<ul>
</ul>
<h2>Plone Users Group Japanのメーリングリストについて</h2>
<p>Plone Users Group Japanのメーリングリストは、オープンソースプロジェクトを多数ホスティングしている <a class="external-link" href="http://sourceforge.net/about">sourceforge.net</a> のサービスを利用しています。ですのでメーリングリストに参加登録するメールアドレスやメーリングリストでのやりとは全て sourceforge.net が運用されているサーバーに保存され、公開されます。</p>
<h2>メーリングリストへの参加方法</h2>
<p>メーリングリストに参加するには、以下のURLから申し込みを行います。</p>
<p><a class="external-link" href="https://lists.sourceforge.net/lists/listinfo/plone-jp-users">https://lists.sourceforge.net/lists/listinfo/plone-jp-users</a></p>
<p>次の画面が表示されますので、メールアドレスなど必要な情報を入力してください。</p>
<p style="text-align: center; "><img src="http://plone.jp/images-various/ml-1" alt="メーリングリスト申し込み登録画面" class="image-inline" title="メーリングリスト申し込み登録画面" /></p>
<p> </p>
<p>申し込みが完了すると、登録したメールアドレスに以下の登録確認メールが自動送付されてきます。</p>
<p style="text-align: center; "><img src="http://plone.jp/images-various/ml-2" alt="メーリングリスト申し込み確認メール" class="image-inline" title="メーリングリスト申し込み確認メール" /></p>
<p>メール本文を編集することなく、単純にそのままメールに返信してください。そうすると、登録が完了した旨の次のメールが届きます。</p>
<p style="text-align: center; "><img src="http://plone.jp/images-various/ml-3" alt="メーリングリスト登録完了" class="image-inline" title="メーリングリスト登録完了" /></p>
<p>これで登録は完了しました。質問等を以下のメールアドレスに送信してください。</p>
<p><b>plone-jp-users@lists.sourceforge.net</b></p>
<p>これまでのメーリングリストのアーカイブは以下から見ることができます。</p>
<p><a class="external-link" href="http://sourceforge.net/mailarchive/forum.php?forum_name=plone-jp-users">http://sourceforge.net/mailarchive/forum.php?forum_name=plone-jp-users</a></p>
<h2>メーリングリスト利用上の注意点</h2>
<ul>
<li>同じ内容を何度も投稿するような行為や広告・営利目的の投稿はご遠慮ください。</li>
</ul>
<ul>
<li>質問をする時は，使っている環境の情報も添えてください。Plone 4.2.1とか，Plone 3.0.5とかの情報です．またZope、Python、OS、バージョンについての情報も重要です。</li>
<li>メーリングリストはサポートセンターではありません。皆さんボランティアで答えてくれています。直接的な答でなくても，何かヒントになるようなことがわかるかもしれません。また答えがなかったとしても、しばらくして質問の仕方や問題の表現方法を変えて試してみてください。</li>
<li>メーリングリストにどのようなメールアドレスを使うかは各人で判断してください。一般的に本名で質問したほうが回答率は高くなります。ですが，ここは公開された場所なのでメールアドレスも公開されることになります。</li>
<li>常識的なことですが，Ploneに関係のない話題は投稿しないでください。</li>
<li>運営管理者は予告なくサービスを停止したり、不適切な発言を削除したり、管理者から警告されても改善されない場合はメーリングリストのアカウントを取り消すことがありますことを事前にご了承ください。</li>
</ul>]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>admin</dc:creator>
    <dc:rights></dc:rights>
    <dc:date>2008-10-19T15:00:00Z</dc:date>
    <dc:type>ページ</dc:type>
  </item>


  <item rdf:about="http://plone.jp/documentation/buildout-tutorial-jp">
    <title>zc.buildoutを使ってプロジェクトを管理する</title>
    <link>http://plone.jp/documentation/buildout-tutorial-jp</link>
    <description>eggs、setuptoolsと依存管理、そして開発環境のセットアップにzc.buildoutを使う方法を学びます。</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>本文書は、<a href="http://plone.org/documentation/tutorial/buildout/tutorial-all-pages">Managing projects with zc.buildout</a>を日本語に翻訳したものです。</p>
<p>日本語版更新履歴：</p>
<ul>
<li>2009年02月09日・日本語対応注意事項、Plone3.2.1導入時の注意事項追加</li>
<li>2009年02月08日・英語版の最新に合わせて内容を調整。翻訳文の修正。</li>
</ul>
<h2>はじめに</h2>
<h3>あるいは、通常の方法でのZopeインスタンスの何が問題なのか？</h3>
<p>このチュートリアルはどのようにPlone3を「buildout」を使ってインストールするか、そして、Ploneの機能を拡張するプロダクトを加えるときにbuildoutをどう使用するかを紹介します。buildoutは（ZopeとPloneといくらかのサードパーティプロダクツあるいは必要なライブラリを含む）依存関係とあなたのプロジェクトのための作成したコードの管理ができる環境となります。自分で開発してコードを書く予定がなくても、しっかりとよくテストされた方法であるbuildoutを利用して簡単にPloneをインストールできます。</p>
<p>Plone3.0以前、GUIインストーラーを使わなかった多くの開発者とユーザーは、いくつかのプロダクトをProductsフォルダにドロップすることでZopeインスタンスをセットアップしていました。残念ながらこのアプローチはいくつかの問題を抱えています。</p>
<ul>
<li>従来の方法でインストールされたZopeインスタンスはPython eggとして配布されるかsetuptools名前空間を持つパッケージを使用することができません。Plone3の多くの新しいパッケージはこの方法で作られていて、今後ますます沢山のサードパーティモジュールもそうなるでしょう。</li>
<li>eggが保有するメタデータにアクセスすることなしに、Zopeの外では再利用できないモノシリックなプロダクトを指向すると、開発者たちは彼らの仕事をより再利用出来る複数のパッケージを考慮に入れることがあまりに時間がかかるか混乱させるとわかるかもしれません。</li>
<li>いくつかの進んだツールなしに、異なる環境をまたがってセットアップを繰り返すのは面倒です。</li>
</ul>
<p>今後eggはより重要になってくるので、開発者は自らののコードを管理するのにもっと適切なツールを使うことを検討すべきです。zc.buildoutはこのあと「buildout」としてだけ言及するそういったツールの一つです。このチュートリアルではデプロイメントと同様に日々の開発のためにbuildoutを使う方法を紹介します。</p>
<h2>パッケージ、プロダクトとエッグ</h2>
<p>さらに詳細な中核のコンセプトを見てみましょう。</p>
<h3>専門用語</h3>
<p>先に進む前にいくつかの専門用語を正しく理解しましょう。</p>
<dl></dl> 
<ul>
<li><b>ソフトウェアホーム</b><br />全てのPythonコードを含む（ファイルシステム上の）Zopeをインストールしたディレクトリの中にZopeアプリケーションサーバーのコアができます。様々な種類のZopeパッケージはここに入ります。また$SOFTWARE_HOME環境変数の値の参照先となります。それはシステムによって異なり、パッケージあるいは自分でどこにZopeをインストールしたかによって変わります。この値は ZMI &gt; Control Panelで見つけることができます。</li>
</ul>
<ul>
<li><b>Zopeインスタンス</b><br />HTTPとZopeのデータベース（ZODB）との通信はOS処理しています。言い換えれば、Zopeのサーバープロセス。Pythonコードであり設定ファイルがこのプロセスを実行するのに必要です。Zopeインストーラーにある「mkzopeinstance.py」スクリプトは、新たにインスタンスを設けるのに使います。ひとつひとつのインスタンスは中にはサーバーを開始、停止するスクリプトがあり、zope.confの設定ファイルがあり、プロダクトを入れるProductフォルダがあり、ZODBを含むData.fsファイルがあります。バックエンドに複数のZEOサーバーを立ててることになります</li>
<li><b>Python path</b><br />Pyhthonインタプリタがモジュールを探すフォルダの順位と場所のことです。sys.pathを記述することで有効にできます。Zopeが稼働しているときは、標準ライブラリとなるインクルードされたグローバルPythonモジュールは、インタプリタのサイトパッケージのディレクトリ、インストールされているサードパーティーの「グローバル」モジュールとegg、Zopeのソフトウェアホーム、インスタンスホームのlib/pythonディレクトリを生成します。ランタイムを実行中、Pythonスクリプトに追加のパスをインクルードすることがでます。</li>
<li><b>Pythonパッケージ</b><br />一般的には再配布可能なPythonモジュールを指します。最も基本的なパッケージの要素は__init__.pyファイルとPythonで書かれたプログラムコードがあるディレクトリになります。</li>
<li><b>Zopeプロダクト</b><br />特別な種類のPythonパッケージは以前はZopeを拡張していました。Zopeの古いバージョンでは、すべてのプロダクツはZopeインスタンスのProductsディレクトリの中にディレクトリがあり、そして"Products"という名前で呼ばれ始めたPythonモジュールをもちます。例えば、PloneのコアはProducts.CMFPloneとしてPythonに知られているCMFPloneと呼ばれるプロダクトになります。</li>
<li><b>Python egg</b><br />Pythonパッケージのパッケージ方法と配布手段です。それぞれのeggは依存関係についての情報同様に、著者名、電子メールアドレス、ライセンス情報などのメタデータとsetup.pyファイルを含んでいます。setuptoolsは、eggの仕組みを実際に動かしているPythonライブラリで、インストールするeggのために依存関係を自動的に見つけてダウンロードを実行します。これは二つの異なるeggに同じ依存関係の異なるバージョンを同時に使用することを可能にします。eggはまた、一般的なプラグイン機能の一つであるエントリーポイントと呼ばれる機能をサポートします。またeggはエントリーポイントと呼ばれる機能をサポートしています。詳細はPEAKウェブサイト（http://peak.telecommunity.com/DevCenter/setuptools）でもっと読む事ができます。</li>
<li><b>Pythonパッケージ・インデックス</b><br />Pythonコミュニティに存在する何千ものダウンロード可能なパッケージのインデックスです。特定パッケージを検索する機能のあるWEBサイトで提供されています。さらに重要なことは、setuptoolsに基づいたパッケージングツール（特にbuildoutやeasy_install）は、このインデックスを検索してパッケージのダウンロードとeggのインストールを自動で行います。「Cheese Shop」や「PyPI」としても知られます。</li>
<li><b>easy_install</b><br />Pythonパッケージを見つけ出してPython環境下にインストールするコマンドラインのツールです。easy_installスクリプトはsetuptoolsパッケージの一部で、Pythonパッケージ・インデックスを使用します。</li>
<li>
<p>Namespace package<br />同一のトップレベルの名前空間を共有する別々のパッケージを多数配布することを可能するsetuptoolsの機能の一つです。例えば、plone.themaとplone.portletsパッケージはともにトップレベルの「plone」名前空間を共有しますが、それらは別々のeggとして配布されます。インストールした時、それぞれのeggは自分自身のディレクトリ（あるいはそのディレクトリの圧縮されたアーカイブかも知れない）に存在します。名前空間パッケージがなければ、私たちは例えば、plone/themeとplone/portletsのような全ての子パッケージを含んだトップレベルのPloneディレクトリで、1個の巨大なPloneパッケージを配布しなければならなかったでしょう。</p>
</li>
</ul>
<h2>魔法のProducts  namespace（名前空間）</h2>
<p>Zopeがある「プロダクト」を見つけた時、それはZMIのルートにある「Control_Panel/Products」にエントリを作り、「initialize()」メソッドを実行し、Zopeを起動するたびにプロダクツのルートの「__init__.py」ファイルを見つけます。どのパッケージもPloneコンテキストの中で使われるパッケージになる必要はありませんが、プロダクト的な以下のものが求められます。</p>
<ul>
<li>GenericSetupプロファイル</li>
<li>スキンディレクトリは（Zope3スタイルのbrowser viewsでなく）portal_skinsツールにレイヤーとしてインストールされます。</li>
</ul>
<p>プロダクトを作る最も簡単な方法はProducts以下にegg-readyパッケージを作るのにPaster/ZopeSkelを使うことです。名前空間は「basic_namespace」テンプレートを使用します。</p>
<pre>  $ paster create -t basic_namespace Products.myproduct
  Selected and implied templates:
    ZopeSkel#basic_namespace  A project with a namespace package

  Variables:
    egg:      Products.myproduct
    package:  productsmyproduct
    project:  Products.myproduct
  Enter namespace_package (Namespace package (like plone)) ['plone']: Products
  Enter package (The package contained namespace package (like example)) ['example']:
  myproduct
  ... accept defaults to end</pre>
<p>buildoutを使用しているなら、「src」ディレクトリに自分のパッケージを作成して、buildout.cfgの「develop」と「instance/eggs」セクションにその参照の記載を追加します。</p>
<pre>  develop =
      src/Products.myproduct
  ...
  [instance]
  ...
  eggs =
      ${buildout:eggs}
      ${plone:eggs}
      Products.myproduct</pre>
<p>「bin/buildout」を実行し、「src」ディレクトリにある自分のegg-readyプロダクトの開発をセットアップをします。完成したら、これを配布用のeggにします。Zope2プロダクトとして「namespace/directory」プロダクツの外でパッケージ（eggで配布されたものを含む）を使用することが可能です。多くの開発者は、フラットな名前空間に全てを保持するのは不自然であると感じて、このアプローチを好みます。</p>
<p><br />これを行うには追加の作業が必要です。Zope 2.10.4より前では、プロダクト名前空間のプロダクトが必要になります。そのパッケージの「configure.zcml」に以下のように追加しなければなりません。</p>
<pre>&lt;configure 
    xmlns="http://namespaces.zope.org/zope"
    xmlns:five="http://namespaces.zope.org/five"&gt;

    &lt;five:registerPackage package="." initialize=".initialize" /&gt;

&lt;/configure&gt;</pre>
<p>二番目に重要なことは、プロダクト名前空間の外のパッケージはZope起動時に自動的に検出されないことを理解してください。。もし（大半のパッケージのように）「configure.zcml」ファイルを含んでいるなら、それをどこからか明示的に含まなければいけません。以下のようなものです。</p>
<ul>
<li>他のパッケージのconfigure.zcmlファイル</li>
<li>Zopeのsite.zcml、全てのZCMLファイルのルート、インスタンスホームの中の「etc」ディレクトリの中で見つかる場所</li>
<li>ZCMLのスラグは、zopeインスタンスの「etc/package-includes」ディレクトリの中に「my.package-configure.zcml」のような名前で1行で作られます。</li>
</ul>
<p>全てのケースでシンタックスは同じです。</p>
<pre>&lt;include package="my.package" file="configure.zcml" /&gt;</pre>
<p>もし、「meta.zcml」または「overrides.zcml」ファイルがあるなら、これらのための「&lt;include /&gt;」ディレクティブを加えることができます。スラグを使用しているなら、それに従って、例えば「my.package-meta.zcml」または「my.package-overrides.zcml」と命名しなければなりません。スラグは1つ以上の行を含むことができません。<br />このチュートリアルの後半で、どうやってbuildoutは自動的にslugの管理が可能なのかに触れます。</p>
<h2>前提条件</h2>
<h3>開始する前にあなたに必要ないくつかのこと</h3>
<p>ZopeとPloneを管理することができるbuildoutを作る前に、気をつけるべき前提条件があります。</p>
<p>最初に、もし既にインストールされていなければ、適切なPythonインタープリターが必要でしょう。</p>
<ul>
<li>自分のプラットフォームに<a class="external-link" href="http://www.python.org/download/releases/">Python2.4</a>をインストールし、システムのPATHにそれを追加します。コマンドラインで「python -v」とタイプしたときに「Python2.4」と表示されればOKです。</li>
<li>もしRPMのようなOSのパッケージを使ってPythonをインストールしていたなら、python-develといった開発パッケージを必ず手に入れておいてください。これに含まれるPythonヘッダファイルをももに後でZopeをコンパイルします。もしあなたがソースからコンパイルした、あるいはPython Windowsインストーラーを使ってインストールしていたら、既にヘッダファイルは入っていいます。。</li>
<li>Pythonインタープリタの中に「<a class="external-link" href="http://www.pythonware.com/products/pil/">Python Imaging Library（PIL）</a>」をインストール。</li>
</ul>
<p>そして「<a class="external-link" href="http://peak.telecommunity.com/dist/ez_setup.py">ez_setup.py</a>」をダウンロードして下記のように実行します。</p>
<pre>  $ python ez_setup.py</pre>
<p>これはsetuptoolsと「easy_install」スクリプトをダウンロードしインストールします。コンソールの出力を見るとeasy_installがどこにインストールされたかがわかります。もし自分のシステム「PATH」に記述がなければ、このディレクトリを追加するべきです。</p>
<p>最後に「easy_install」を使ってZopeとPloneの開発のためのスケルトンのテンプレート集の「ZopeSkel」をインストールします。</p>
<pre>  $ easy_install -U ZopeSkel</pre>
<p>これは「Pasteスクリプト」と様々なその他の依存関係を取得します。もし自分のシステムのパスにPythonコンソールスクリプトディレクトリ(easy_installの場所)を追加したなら、「paster」コマンドを実行できるでしょう。以下のようにテストします。</p>
<pre>  $ paster create --list-templates
  Available templates:
    basic_namespace:          A project with a namespace package
    basic_package:            A basic setuptools-enabled package
    basic_zope:               A Zope project
    nested_namespace:         A project with two nested namespaces.
    plone:                    A Plone project
    plone2.5_theme:           A Theme for Plone 2.5
    plone2_theme:             A Theme for Plone 2.1 &amp; Plone 2.5
    plone3_buildout:          A buildout for Plone 3 projects
    plone3_theme:             A Theme for Plone 3.0
    plone_app:                A Plone App project</pre>
<p>出力は少し異なっているかもしれません、しかし少なくとも「plone3_buildout」と「plone」テンプレートがあるはずです。</p>
<h2>Windowsのための追加のインストールステップ</h2>
<p>Windows環境を使っているなら、いくつか追加の作業が必要になります。</p>
<p>最初に、Python2.4のために「<a class="external-link" href="http://downloads.sourceforge.net/pywin32/pywin32-210.win32-py2.4.exe?modtime=1159009237&amp;big_mirror=0">Python Win32 エクステンション</a>」をインストールします。</p>
<p>もしバイナリのインストーラを使うより自分でZopeをコンパイルするつもり、またはCエクステンションでeggをコンパイルする必要があるなら、「<a class="external-link" href="http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe?modtime=1168794334&amp;big_mirror=1">mingw32コンパイラ</a>」が必要です。</p>
<p>インストーラが尋ねた時最小限の「base」と「make」モジュールの選択を確実にしてください。デフォルトではこれは「C:\MingW32」にインストールされます。インストールディレクトリの内側に、例えば「C:\MingW32\bin」のようなbinディレクトリがあるでしょう。システムPATHにこれを追加します。</p>
<p>最後に、「mingw32コンパイラ」を使ってPythonのdistutilsパッケージを設定する必要があります。（デフォルトのC:\Python24にpythonがインストールされていると仮定して）「C:\Python24\Lib\distutils」ディレクトリの中に「distutils.cfg」というファイルを作成します。これをノートパッドなどで編集して、以下を追加します。</p>
<pre>  [build]
  compiler=mingw32</pre>
<h2>プロジェクトのためにbuildoutを作成する</h2>
<h3>依存関係の通りにPloneとその他のサードパーティ・プロダクトを追加して、プロジェクトのために新しいbuildoutを作成する方法</h3>
<p>新しいbuildoutを作成する準備をします。「buildout」とはプロジェクトを作る全てのパーツ、Zopeインスタンス、Ploneソース、カスタムコンフィギュレーションオプションとあなたのプロジェクトのソースコードを含むディレクトリです。<br /><br />以下のようにして作ります</p>
<pre>  $ paster create -t plone3_buildout myproject</pre>
<p>このあといくつかの質問に答えていきます。もし「buildout」をダウンロードしてコンパイルするより既存のインストールされているZopeを使いたいなら「zope2_install」に絶対パスで指定します。</p>
<p>同様に、もし「buildout」にコアのPloneプロダクツのダウンロードしてほしくないなら、全てのプロダクツを含む既存のディレクトリを指定できます（Plone3のeggをダウンロードするでしょうが、後で見るように複数のbuildout間でeggのディレクトリを共有可能です）。Zope管理者権限のユーザー名とパスワードを入力する必要があるかもしれません。また必要があれば開発の間は「verboseセキュリティ」と「デバッグモード」をオンにします。</p>
<p><br />新しい自分のプロジェクト用ディレクトリを作成し、buildout bootstrapスクリプトを実行します。</p>
<pre>  $ cd myproject
  $ python bootstrap.py</pre>
<p>これはディレクトリとスクリプトを幾つか作成し、「zc.buildout egg」の最新バージョンをダウンロードします。このステップは最初に一度行います。<br />開始するには以下のコマンドを実行します。</p>
<pre>  $ ./bin/buildout</pre>
<p>これは生成された「buildout.cfg」ファイルを読み込み、記載されているなパートを実行します。Zopeのセットアップ、Zopeインスタンスの作成、Ploneのダウンロードとインストールを行います。すぐ後でこのファイルについて詳細に説明します。</p>
<p><br />「buildout.cfg」を変更する度に「./bin/buildout」コマンドを実行する必要があります。もし自分のbuildoutにオンラインでeggのアップデートバージョンを探したりその他のアーカイブをダウンロードしたりしたくないならbuildoutをオフラインモードとしてアップデートせずに実行することができます。</p>
<pre>  $ ./bin/buildout -No</pre>
<p>Zopeを起動します。</p>
<pre>  $ ./bin/instance fg</pre>
<p>「instance」スクリプトは標準のZopeインスタンスにある「zopectl」と類似のものです。「./bin/instance」を使ってZopeをデーモンモードで起動することができます。またテストを実行するのに下記を使えます。</p>
<pre>  $ ./bin/instance test -s plone.portlets</pre>
<h2>buildoutのディレクトリ</h2>
<p>「buildout.cfg」の中に入る前に、「buildout」で生成されるディレクトリを少し見てみましょう。</p>
<p><b>bin/</b><br />各種の実行可能な「buildout」コマンドとZopeコントロールスクリプトの「instance」を含んでいます。</p>
<p><b>eggs/</b><br />buildoutによってダウンロードされたeggが入ります。これらは「bin」ディレクトリのコントロールスクリプトによって明示的に起動されます。</p>
<p><b>downloads/</b><br /> Zopeのソースコードアーカイブのようなeggでないダウンロードを含みます。</p>
<p><b>var/</b><br />ログファイル（var/logの中）とファイルストレージのZODBデータ（var/filestorage/Data.fsの中）を含んでいます。Buildoutはこれらを決して上書きしません、</p>
<p><b>src/</b><br />最初は空です。自分で開発したeggと「buildout.cfg」の中で参照する場所として記載できます。詳細は後ほど。</p>
<p><b>products/</b><br />これはZopeインスタンスのProductsディレクトリ（大文字で始まっている違いに注意）に似ています。もしいくつかの古いZope2形式のプロダクトを開発するなら、この場所で行います。ここにbuildoutは自動的にダウンロードしプロダクツのアーカイブを管理します。しかし、自分でプロダクトの依存関係を手動で行いたい、あるいはSubversionからチェックするときもこの場所で行います。</p>
<p><b>parts/</b><br />buildoutによって管理されるデータとコードを含みます。ここでは、ローカルにインストールされたZope、buildoutで管理されるZopeインスタンスとPloneのソースコードを含みます。通常は、buiodoutがあなたの変更を上書きしてしまうかもしれないので、このディレクトリは何も修正しないほうがよいでしょう。</p>
<p class="callout">開発者間で共有しているソースコードリポジトリをbuildoutディレクトリの中でチェックできます。この場合、「bin/」,「eggs/」,「downloads/」,「var/」と「parts/」ディレクトリを無視した方がいいでしょう。各開発者はこれを戻すのに「bootstrap.py」を実行でき、また通常はローカルへのコピーが必要となるでしょう。全てのコンフィグレーションは「buildout.cfg」ファイルの中にあり、そして全てのカスタムコードは「src」あるいは「products」ディレクトリに配置します。</p>
<p> </p>
<h2>buildout.cfgを理解する</h2>
<h3>メインの buildout コンフィグレーションファイルの管理方法</h3>
<p>「buildout.cfg」は新しいbuildout環境のなかのもっとも重要なファイルです。以下のようになります。</p>
<pre>  [buildout]
  parts =
      plone
      zope2
      productdistros
      instance
      zopepy

  # Add additional egg download sources here. dist.plone.org contains archives
  # of Plone packages.
  # ここで追加のeggのダウンロードソースを加えます。dist.plone.orgは
  # Ploneパッケージのアーカイブを含みます
  find-links =
      http://dist.plone.org
      http://download.zope.org/ppix/
      http://download.zope.org/distribution/
      http://effbot.org/downloads
 
  # Add additional eggs here
  # elementtree is required by Plone
  # ここで追加のeggを加えます。elementtreeはPloneに必要とされています。
  eggs =
      elementtree
    
  # Reference any eggs you are developing here, one per line
  # e.g.: develop = src/my.package
  # あなたがここで開発するあらゆるeggの参照で、1行に一つです。
  # 例えば：develop = src/my.package
  develop =

  [plone]
  recipe = plone.recipe.plone

  [zope2]
  recipe = plone.recipe.zope2install
  url = ${plone:zope2-url}

  # Use this section to download additional old-style products.
  # List any number of URLs for product tarballs under URLs (separate
  # with whitespace, or break over several lines, with subsequent lines
  # indented). If any archives contain several products inside a top-level
  # directory, list the archive file name (i.e. the last part of the URL, 
  # normally with a .tar.gz suffix or similar) under 'nested-packages'.
  # If any archives extract to a product directory with a version suffix, list
  # the archive name under 'version-suffix-packages'.
  # このセクションを使って追加となる古いスタイルのプロダクトをダウンロードします。
  # urlsの下にプロダクトtarballの全てのURLを記載してください（空白で分離するか、
  # 字下げされた次の行とでいくつかの行に改行)。
  # アーカイブがトップレベルディレクトリの中にいくつかのプロダクトを含むなら、
  # nested-packagesの下にアーカイブファイル名（すなわち、URLの最後の部分、
  # 通常、tar.gz接尾語あるいは類似のもの）を記載します。
  # バージョン情報からプロダクトディレクトリにどれかのアーカイブを抽出するなら、
  # 'version-suffix-packages'下にアーカイブ名を記載します。
  [productdistros]
  recipe = plone.recipe.distros
  urls =
  nested-packages =
  version-suffix-packages = 

  [instance]
  recipe = plone.recipe.zope2instance
  zope2-location = ${zope2:location}
  user = admin:admin
  http-address = 8080
  debug-mode = on
  verbose-security = on

  # If you want Zope to know about any additional eggs, list them here.
  # This should include any development eggs you listed in develop-eggs above,
  # e.g. eggs = ${buildout:eggs} ${plone:eggs} my.package
  # 追加のあらゆるeggについてZopeに知らせたい時、ここに記載します。
  # これは上のdevelop-eggsに記載した開発中のeggを含んだ方がいいでしょう。
  # 例： eggs = ${buildout:eggs} ${plone:eggs} my.package
  eggs =
      ${buildout:eggs}
      ${plone:eggs}

  # If you want to register ZCML slugs for any packages, list them here.
  # e.g. zcml = my.package my.other.package
  # もしいくつかのパッケージの為にZCMLスラグを登録したいなら、ここに記載します。
  # 例： zcml = my.package my.other.package
  zcml = 

  products =
      ${buildout:directory}/products
      ${productdistros:location}
      ${plone:products}

  [zopepy]
  recipe = zc.recipe.egg
  eggs = ${instance:eggs}
  interpreter = zopepy
  extra-paths = ${zope2:location}/lib/python
  scripts = zopepy</pre>
<p>ブロック単位でこのファイルを通しで見てみましょう。</p>
<h3>メインのbuildoutセクション</h3>
<p>[buildout]セクションはファイルの出発点です。</p>
<p>このファイルの後半で別々のセクションに設定されるパートの名称を記載します。各パートには、例えば、Zopeをビルドする、あるいはZopeインスタンスを作成するなどの特定のタスクを実行する方法を知っているeggの名前の「recipe」と関連づけられます。通常「recipe」にはいくつかの設定オプションがあります。</p>
<p>グローバルセッティングは次のようになっています。</p>
<pre>  [buildout]
  parts =
      plone
      zope2
      productdistros
      instance
      zopepy

  find-links =
      http://dist.plone.org
      http://download.zope.org/ppix/
      http://download.zope.org/distribution/
      http://effbot.org/downloads

  eggs =
      elementtree
    
  develop =</pre>
<p>これは、「parts」の「plone」、「zope2」、「productdistros」、「instance」、および「zopepy」が順番で実行されるよう指定しています。そして、ダウンロードのためにeggを探すとき、buildoutいくつかのURLの1つが検索可能なことを伝えます。それは常にCheese Shopを探すことになります。</p>
<p>次に、buildoutでダウンロードしてインストールしたい、あらゆるeggを記載できます。バージョンの指定が必要かもしれません。例えば、SQLAlchemy0.3が欲しくて0.4ではない場合、次のように記載できます。</p>
<pre>  eggs = 
      elementtree
      sqlalchemy&gt;=0.3,&lt;0.4dev</pre>
<p>最後に、eggがソース形式で抽出されるディレクトリを指定する事によって開発用eggを記載できます。<br />例えば::</p>
<pre>  eggs =
      elementtree
      my.package

  develop = 
      src/my.package</pre>
<p>これは「my.package」と呼ばれるeggが「src」ディレクトリ以下にあることを前提とします。このチュートリアルの少し後で、このようなeggを作る方法を学びます。開発用eggはZopeのためにインストールされたeggの「動作セット」に自動的に追加されないため、実際のeggの依存関係について「my.package」を記載しなければならない点に注意して下さい。</p>
<h3>[plone]セクション</h3>
<p>これはとてもシンプルです。Ploneのプロダクツとeggをダウンロードするのに<a class="external-link" href="http://cheeseshop.python.org/pypi/plone.recipe.plone">plone.recipe.plone</a>を使うだけです。</p>
<pre>  [plone]
  recipe = plone.recipe.plone</pre>
<p>これは有効な最新リリースを対象にします。plone.recipe.ploneのためのバージョン番号はPlone自身のためのバージョン番号に一致します。従って、3.1でなく確実3.0.xリリースを得るにはこうします。</p>
<pre>  [plone]
  recipe = plone.recipe.plone&gt;=3.0,&lt;3.1dev</pre>
<p>recipeが実行される時、Ploneのプロダクトは「parts/plone」にインストールされます。eggは後の[instance]セクションで参照されるbuildoutの変数 ${plone:eggs} を通して有効にされ、そしてZope推奨バージョンのURLは変数 ${plone:zope2-url} で有効です。</p>
<h3>[zope2]セクション</h3>
<p>このパートでは<a class="external-link" href="http://cheeseshop.python.org/pypi/plone.recipe.zope2install">plone.recipe.zope2install</a>を使ってZope2をビルドします。もし、既にインストールされているZopeを指定するなら、この部分は必要ありません。そうでなければ、このようになります。</p>
<pre>  [zope2]
  recipe = plone.recipe.zope2install
  url = ${plone:zope2-url}</pre>
<p>ここで、[plone]部分によって外に送られているようにZopeのためのダウンロード位置を参照します。これいつもZopeの推奨バージョンを得る事を確実にします。Zopeの異なるバージョンを使用したいなら、代わりに手動でダウンロードURLを指定できます。</p>
<p>recipeが実行されると、Zope2は「parts/zope2」にインストールされます。Zopeソフトウェアホームは「parts/zope2/lib/python」になります。</p>
<h3>[productdistros]セクション</h3>
<p>これはZope2スタイルの配布（アーカイブ）のダウンロードを可能にし、Zopeで利用可能にするrecipe、plone.recipe.distros を使います。<br />これは最初は空です。</p>
<pre>  [productdistros]
  recipe = plone.recipe.distros
  urls =
  nested-packages =
  version-suffix-packages =</pre>
<p>しかし、いろいろなダウンロードを記載できます。recipeは実際のプロダクトディレクトリ（入れ子にされたペッケージ）のバンドルを含む一つのトップレベルディレクトリを含むアーカイブ、あるいはディレクトリ名のバージョン番号を持ち、実際のプロダクトディレクト（バージョン記載のパッケージ）を手に入れるためにリネームされる必要があるパッケージに対処できます。</p>
<p>以下の配布ケースを例にすると：</p>
<pre># A typical distribution 
ExampleProduct-1.0.tgz
 |
 |- ExampleProduct
     |
     |- __init__.py
     |- (product code)

# A version suffix distribution
AnotherExampleProduct-2.0.tgz
 |
 |- AnotherExampleProduct-2.0
     |
     |- __init__.py
     |- (product code)

# A nested package distribution
ExampleProductBundle-1.0.tgz
 |
 |- ExampleProductBundle
     |
     |- ProductOne
     |   |- __init__.py
     |   |- (product code)
     | 
     |- ProductTwo
         |- __init__.py
         |- (product code)</pre>
<p>上記の3つのディトリビューションをインストールするとき、パーツへの記載は以下のようになります。</p>
<pre>[productdistros]
recipe = plone.recipe.distros
urls =
    http://example.com/dist/ExampleProduct-1.0.tgz
    http://example.com/dist/AnotherExampleProduct-2.0.tgz
    http://example.com/dist/ExampleProductBundle-1.0.tgz
nested-packages = ExampleProductBundle-1.0.tgz
version-suffix-packages = AnotherExampleProduct-2.0.tgz</pre>
<p>行を分ける事で多数のダウンロードを指定できます。recipeが実行される時、ダウンロードしたプロダクトのためのプロダクトディレクトリは「parts/productdistros」にあります。</p>
<h3>[instance]セクション</h3>
<p>インスタンスセクションは全部まとめて引きだします。<a class="external-link" href="http://cheeseshop.python.org/pypi/plone.recipe.zope2instance">plone.recipe.zope2instance</a>のスクリプトを使ってZopeインスタンスを設定します。以下のようになります。</p>
<pre>  [instance]
  recipe = plone.recipe.zope2instance
  zope2-location = ${zope2:location}
  user = admin:admin
  http-address = 8080
  debug-mode = on
  verbose-security = on
  eggs =
      ${buildout:eggs}
      ${plone:eggs}
  zcml = 
  products =
      ${buildout:directory}/products
      ${productdistros:location}
      ${plone:products}</pre>
<p>ここで[zope2]部分からZope2インストールを参照します。もしbuildoutを作成した時に自分で場所を指定したなら、ここに記載されます。そして、初期の管理者ユーザーとパスワード、そしてZope使用するポートを特定します。「debug-mode」と「verbose security」も「on」にします。これらのオプションはこのインスタンスに適した「zope.conf」ファイルを生成するのに使われます。使用できるオプションの詳細は<a class="external-link" href="http://cheeseshop.python.org/pypi/plone.recipe.zope2instance">「Cheese Shop」のrecipeページ</a>を参照ください。</p>
<p>次に、どのeggがZopeに利用できるようにするかを指定します。これはPloneによって明示されたeggだけでなく[buildout]セクションからのグローバルeggを参照します。ファイルの先頭でこれらを指定するのが一般的に簡単ですが、${buildout:eggs}ワーキングセットのなかに含まれているように、ここに追加のeggを加えることができます。</p>
<p>前に説明したように、Zope3の「configure.zcml」ファイルはeggやプロダクトの名前空間でないパッケージでは自動ではロードされません。通常のパッケージのためにZCMLファイルをロードするには、「zcml」オプションの下にパッケージを記載することでZCMLスラッグを生成するbuildoutを作ることができます。</p>
<pre>  zcml =
      my.package
      my.package-overrides</pre>
<p>これはmy.packageがbuildoutの中で以前参照されたと仮定します。このパッケージからメインの「configure.zcml」と「overrides.zcml」の二つを読み込みます。</p>
<p>最後に、私たちは伝統的なインスタンスの中の「Products」ディレクトリと同種のZope2スタイルのプロダクトを含むあらゆるディレクトリを表示します。メインのbuildoutディレクトリの「products/」ディレクトリがどのように最初に来て、［productdistros］部分でダウンロードされるプロダクトが次に、これに［plone］部分によってダウンロードされたプロダクトが続くようになるかについて注意してください。これはPloneがプロダクトとして出荷しても、トップレベルのproductsディレクトリに同じ名前でプロダクツを置く事によって、（例えばより新しいプロダクトで）それを上書きすることができることを意味します。</p>
<p>recipeが実行される時、Zopeインスタンスホームは「parts/instance」にあり、そしてコントロールスクリプトは「./bin/instance」に作成されています。</p>
<h3>[zopepy]セクション</h3>
<p>この最後のセクションは全てのeggとZopeが起動中に持つパッケージのPythonインタープリタを作成します。これはテスト用途にとても有効です。</p>
<pre>  [zopepy]
  recipe = zc.recipe.egg
  eggs = ${instance:eggs}
  interpreter = zopepy
  extra-paths = ${zope2:location}/lib/python
  scripts = zopepy</pre>
<p>ここでeggを[instance]セクションからコピーし、そしてZopeインスタンスホームのpythonパスにインクルードします。recipeが実行される時、スクリプトは「./bin/zopepy」に作られます。</p>
<h2>buildoutデフォルトファイルの作成</h2>
<p>複数のbuildoutをまたがって設定を共有することを可能にし、時間とディスクスペースを節約するができます。</p>
<p>すべてのbuildoutに影響を与える「グローバル」オプションをセットするには「.buildout」ディレクトリ（先頭のドットに注意）をあなたのホームディレクトリに作成し、「default.cfg」というファイルを追加します。ここでセットしたいくつかのオプションは「buildout.cfg」ファイル自体に特別に記載したいくつかのオプションによって上書きされない限り、あなたが実行する他のいくつかの「buildout.cfg」の同一のセクションに反映されます。</p>
<p>一般的なオプションは</p>
<p><b>executable</b><br />システムのデフォルトより他のpythonインタープリタを指定する。これは、もしPython2.5をインストールしているが、Python2.4の他のインストールを使うのにあなたのbuildoutを使いたいなら有効です。</p>
<p><b>eggs-directory</b><br />eggがダウンロードされるディレクトリを指定します。これは複数のbuildoutで同じeggを共有することを許可し、ディスクスペースとダウンロード時間を節約します。特定のbuildoutによって明示的に要求されるそれらのeggだけが起動することに注意します。eggディレクトリはいつも使用されるよりもっと沢山のegg（あるいは同パッケージの沢山の異なったバージョン）を含んでいるかもしれません。</p>
<p><b>download-directory</b><br />ダウンロードアーカイブのための共有ディレクトリを指定します。これもまたディスクスペースとダウンロード時間を節約できます。</p>
<p>これは3つ全てを設定した「~/.buildout/default.cfg」の例です。</p>
<pre>  [buildout]
  executable = /opt/python24/bin/python
  eggs-directory = /home/username/.buildout/eggs
  download-cache = /home/username/.buildout/downloads</pre>
<p>これはPthon2.4が「/opt/python2.4に」インストールされていると仮定しています。最後の2つのオプションが動作するには、「~/.buildout」ディレクトリの中にeggsディレクトリとダウンロードディレクトリを作る必要があります。</p>
<h2>サードパーティプロダクトのインストール</h2>
<p>これらのツールを使って新しいパッケージをインストールする方法</p>
<p>新しいサードパーティプロダクツのインストール方法はそれがeggのパッケージなのか伝統的なZope2プロダクトなのかどうかに依存します。</p>
<h3>伝統的なZope2プロダクトのインストール</h3>
<p>伝統的なZope2プロダクトを試す最も簡単な方法はbuildoutの内側で「products」フォルダの中にそれを配置することです。もしZopeインスタンスの中の「Products」フォルダにドキュメント参照があれば、これは同じことです。</p>
<p>しかし、このアプローチでは自分のプロジェクトを再配布し、他の開発者と共有することを難しくします。buildoutをダウンロードし、あなたのためにパッケージをインストールさせることがしばしば予測されます。「buildout.cfg」の[productdistros]セクションでこうできます。例えば、プロダクト名「ExampleProduct」とプロダクト一式「ExampleProductBundle」をインストールするなら次のようになります。</p>
<pre>[productdistros]
recipe = plone.recipe.distros
urls =
    http://example.com/dist/ExampleProduct-1.0.tgz
    http://example.com/dist/ExampleProductBundle-1.0.tgz
nested-packages =
    ExampleProductBundle-1.0.tgz
version-suffix-packages =</pre>
<p>架空の「ExampleProductBundle」はサブディレクトリに多数のプロダクトを含んで配布されます。ですので、「nested-packages」の指定があります。</p>
<p>いつものように、「buildout.cfg」を変更したら、「buildout」コマンドを再度実行しなければなりません。</p>
<pre>  $ ./bin/buildout</pre>
<h3>eggのインストール</h3>
<p>eggが<a class="external-link" href="http://cheeseshop.python.org/pypi">Cheese Shop</a>あるいはどこか他でリリースされる限り、buildoutは明示的に指定された依存関係を含んでダウンロードしてインストールできます。単にeggのオプションでは、eggと任意のバージョン（そうでなければ利用可能な最新のもの）を記載します。</p>
<pre>  [buildout]
  ...
  eggs = 
      elementtree
      borg.project&gt;=1.0b1,&lt;2.0dev</pre>
<p>もしbuildoutにCheese Shop以外のインデックスを検索して欲しいなら、eggのためにダウンロード先を含むリンクのURLを追加することができます。実際、この例のように「elementtree」はCheese Shopディレクトリでなく、「http://effbot.org/downloads」に含まれます。要するに以下のようになります。</p>
<pre>  [buildout]
  ...

  find-links =
      http://dist.plone.org
      http://download.zope.org/ppix/
      http://download.zope.org/distribution/
      http://effbot.org/downloads

  eggs =
      elementtree</pre>
<p>ZopeとPlone eggのためのダウンロード先を幾つか記載しています。<br />変更の効果が現れるようもう一度、buildoutを再実行します。</p>
<pre>  $ ./bin/buildout</pre>
<h4>開発用egg</h4>
<p>もし、自分のegg用のリリースでない、あるいはSubversionの中でeggをトラッキングをしたいなら「src」ディレクトリ以下をチェックしてください。トップレベルの「setup.py」ファイルを含む全てのeggを得ることを確実にします。例えば、plone.portletsの開発trunkを得るために、eggが実行します。</p>
<pre>  $ cd src
  $ svn co https://svn.plone.org/svn/plone/plone.portlets/trunk plone.portlets</pre>
<p>そして、「buildout.cfg」に次のように追加します。</p>
<pre>  [buildout]
  ...
  eggs =
      ...
      plone.portlets

  develop =
      src/plone.portlets</pre>
<p>【注意】</p>
<ul>
<li>開発オプションはインストールされたeggソースの相対パスを含みます。buildoutは適した「setup.py」をこのディレクトリの中に見つけることを期待しています。</li>
<li>開発用eggはいつも通常のeggより優先されます。</li>
<li>インストールされるためにeggの名前をeggオプションに記載する必要があります。</li>
<li>もし自分でPloneに含まれるeggを上書きしているなら、代わりにそれを[Plone]部分のeggセクションに記載する必要があるかもしれません。</li>
</ul>
<pre>  [buildout]
  ...
  develop =
      src/plone.portlets
  ...

  [plone]
  recipe = plone.recipe.plone
  eggs = 
      plone.portlets</pre>
<p>これはなぜなら「plone.recipe.plone」は様々なeggのどのバージョンを使用したらよいかに関して非常に明白で、リリースされたPloneと同様に稼働し続けるのを確実にします。</p>
<p class="callout">（plone.recipe.ploneのような）buildout recipeはeggとして配布されてます。あなたは開発オプションの下にあるその記載によってrecipeの開発用eggを使用できます。関係のある部分のrecipeオプションによって参照されて以後、eggオプションの下に明示的に記載される必要がありません。</p>
<h4>ZCMLファイル管理</h4>
<p>ZopeはProducts.* 名前空間の中でないパッケージのために自動的に「configure.zcml」ファイルをロードしないことを認識してください。代わりに、明示的にパッケージに参照をつけなければなりません。buildoutは[instance]パートの箇所でzcmlオプション（ZCMLスラグとして知られる）を作ることができます。以下は「borg.project」をZopeで利用可能にする確実な方法です。</p>
<pre>  [buildout]
  ...
  eggs =
      elementtree
      borg.project
  ...

  [instance]
  ...
  zcml = 
      borg.project</pre>
<p>「overrides.zcml」か「meta.zcml」を読み込む必要があるなら、以下のように記述します。</p>
<pre>  zcml =
      some.package
      some.package-overrides
      some.package-meta</pre>
<h4>ポリシープロダクト</h4>
<p>多くの開発者たちは様々な依存関係を調整する単一のポリシープロダクト（またデプロイメントプロダクトとして知られています）を作ることを好みます。もし自身のプロダクトをあるなら、ポリシープロダクトの「configure.zcml」ファイルに様々な依存関係のディレクトリを含みたいかもしれません。このように記載します。</p>
<pre>&lt;configure xmlns="http://namespace.zope.org/zope"&gt;

    &lt;include package="borg.project" /&gt;

&lt;/configure&gt;</pre>
<p>このケースでは、まだポリシープロダクトのために（上のzcmlオプションを使用する）一つのスラグを必要とするかもしれません。</p>
<h2>新しいパッケージを作る</h2>
<p>あなたのbuildoutに新しいeggベースパッケージを加える方法</p>
<p>新しいカスタムパッケージを追加することはサードパーティのものをインストールするのと大きな違いはありません。</p>
<h3>伝統的なZope2プロダクトを作る</h3>
<p>伝統的なZope2プロダクトの作成はトップレベルの「products」ディレクトリにそれを置きZopeを再起動します。他に必要なことはありません。前に説明したように、この場所のプロダクトは起動時に自動的に見つけられ、そして「configure.zcml」ファイルは自動的に実行されます。</p>
<h3>eggを作る</h3>
<p>もちろん、プロダクトを使用しているならば、Cheese Shopの名前空間により配布される自動依存管理を含むeggの付加的な特徴から恩恵を受けることはできません。</p>
<p>新しいeggを作るもっとも簡単な方法は既にbuildoutを作るのに使った「paster」コマンドを使用することです。トップレベルの名前空間（例：あなたの会社）と固有の名前で新しい基本パッケージを作成しに「src」ディレクトリに行き実行します。</p>
<pre>  $ cd src
  $ paster create -t plone myorg.mypackage</pre>
<p>一連の質問に応える必要があります。名前空間パッケージとパッケージ名がeggの名前に一致することを確認してください。この場合、名前空間パッケージは「myorg」でパッケージ名は「mypackage」です。通常自分のパッケージが「zip safe」かどうかという問いに「False」と答えます。要求された通り、他のメタデータを入力して下さい。</p>
<p>すると以下のものが用意されます。</p>
<p>あなたが入力したメタデータを含んだsetup.py</p>
<ul>
<li>「myorg.mypackage/myorg/mypackage」の中のパッケージ。あなたのソースコードはここにあります。</li>
<li>「configure.zcml」のスケルトン、「tests.py」及びいくつかの役に立つ出発点</li>
<li>「myorg.mypackage/docs」の中の一般的な文書</li>
</ul>
<p>もちろんあなたはbuildoutにこのパッケージも追加する必要があります。「buildout.cfg」に以下を含みます。</p>
<pre>  [buildout]
  ...
  eggs =
      ...
      myorg.mypackage

  develop =
      src/myorg.mypackage</pre>
<p>他のパッケージからこのパッケージを含む予定でない限り、多分ZCMLスラグが必要です。</p>
<pre>  [instance]
  ...
  zcml =
      myorg.mypackage</pre>
<p>変更した後にbuildoutを再度実行するのを忘れないように。</p>
<pre>  $ ./bin/buildout</pre>
<h4>依存関係の指定</h4>
<p>もし自分の新しいパッケージが明快な依存関係を持つなら、setup.pyにそれを記載できます。同様にbuildoutはそれらをダウンロードしてインストールできるようになります。依存関係は「setup()」メソッドの「install_requires 」の中に記載されていて、デフォルトで「setuptools」は名前空間パッケージをサポートするのに必要なのでここに記載されています。「sqlalchemy0.3(しかし、0.4でなく)」と「MySQL-Python」ドライバーを追加するには以下のように修正できます。</p>
<pre>  install_requires=[
            'setuptools',
            'sqlalchemy&gt;=0.3,&lt;0.4dev',
            'MySQL-Python',
        ],</pre>
<h4>自分のeggをCheese Shopにアップロードする</h4>
<p>もし自分のパッケージをその他のPythonコミュニティと共有して、buildoutと「easy_install」のようなツールを使って簡単にインストールしたいなら自分のパッケージをCheese Shopにアップロードできます。</p>
<p>そうする前にやるべきこと</p>
<ul>
<li>できるならば、あなたの最新の変更をコミットして、Subversionでリリースにタグを付けてください。</li>
<li>「setup.cfg」ファイルを（一時的に）取り外してください: これはパッケージを開発リリースにします。</li>
<li>「setup.py」の中のバージョン番号を確実に正しくなるようにします。バージョン1.0の第2ベータのための"1.0b2"あるいはバージョン2.1.3の最初のリリースキャンディデートのための"2.1.3rc1"のような一般的な慣習を使います。</li>
<li>もしあなたがMac OS X を使っているなら最初にシェル上で「<span class="visualHighlight">export COPY_EXTENDED_ATTRIBUTES_DISABLE=true</span>」を実行します。さもなければeggはMac OS Xのリソースフォークを含んでしまい、あなたのeggをWindows上で使う時に問題の原因となるでしょう。</li>
</ul>
<p>準備ができたら、あなたのパッケージのディレクトリ(例えばsrc/myorg.mypackage)から次のコマンドを実行します。</p>
<pre>  $ python setup.py egg_info -RDb "" sdist bdist_egg register upload</pre>
<p>もしまだCheese Shopアカウントを持っていなければ、作成するか尋ねられます。新しいバージョン（おそらく新しいバージョン番号で）をリリースしたい度にこのコマンドを実行します。</p>
<h2>デプロイメントコンフィグレーション</h2>
<p>デプロイメント・コンフィグレーションのためにbuildoutを使う方法</p>
<p>最後によりデプロイメントに適している、もっと高度な設定を見てみましょう。メインの「buildout.cfg」ファイルに次いで、buildoutのルートにこのファイルを「deployment.cfg」として保存して下さい。</p>
<pre>  [buildout]
  extends =
      buildout.cfg

  parts =
      plone
      zope2
      productdistros
      deploymentproducts
      zeoserver
      primary
      secondary
      varnish-build
      varnish-instance

  [deploymentproducts]
  recipe = plone.recipe.distros
  urls =
      http://plone.org/products/cachefu/releases/1.1/CacheFu-1.1.tgz
  nested-packages =
      CacheFu-1.1.tgz
  version-suffix-packages = 

  [zeoserver]
  recipe = plone.recipe.zope2zeoserver

  zope2-location = ${zope2:location}
  zeo-address = 8100

  [primary]
  recipe = plone.recipe.zope2instance
  zope2-location = ${zope2:location}
  zeo-client = true
  zeo-address = 8100
  zodb-cache-size = 5000
  zeo-client-cache-size = 300MB
  user = admin:admin
  http-address = 8080
  debug-mode = off
  verbose-security = off
  eggs =
      ${plone:eggs}
      ${buildout:eggs}
  zcml = 
    
  products =
      ${buildout:directory}/products
      ${productdistros:location}
      ${deploymentproducts:location}
      ${plone:products}

  [secondary]
  recipe = plone.recipe.zope2instance
  zope2-location = ${zope2:location}
  zeo-client = true
  zeo-address = 8100
  zodb-cache-size = 5000
  zeo-client-cache-size = 300MB
  user = ${primary:user}
  http-address = 8081
  debug-mode = on
  verbose-security = on
  eggs = ${primary:eggs}
  zcml = ${primary:zcml}
  products = ${primary:products}
  zope-conf-additional =
      zserver-threads 1
    
  [varnish-build]
  recipe = plone.recipe.varnish:build
  url = http://puzzle.dl.sourceforge.net/sourceforge/varnish/varnish-1.0.4.tar.gz

  [varnish-instance]
  recipe = plone.recipe.varnish:instance
  bind = 127.0.0.1:8082
  backends = 127.0.0.1:8080
  cache-size = 1G</pre>
<p>これは以下の通りです。</p>
<p>メインの「buildout.cfg」ファイルを参照、拡張し、そしてデプロイメントにもっと適した設定を優先させます。</p>
<ul>
<li>ZEOサーバーと2つのクライアントインスタンスとセットアップする（詳細はplone.recipe.zope2zeoserverとplone.recipe.zope2instanceを参照)。</li>
<li>Varnish cache server（詳細はplone.recipe.varnishを参照）をコンパイルする</li>
<li>このようにbuildoutの構成ファイルを結合することによって、異なるデプロイメントシナリオに合わせたコンフィグレーションを独自に作成できます。buildoutの高度な特徴についてもっと学ぶにはドキュメントを参照して下さい。</li>
</ul>
<p>この環境を作るには、あなたは設定ファイルを明示的に指定しなければなりません。</p>
<pre>  $ ./bin/buildout -c deployment.cfg</pre>
<p>ZopeとPloneを起動するには、、ZEOサーバーとVarnishサーバーをスタートする必要があるでしょう。</p>
<pre>  $ ./bin/zeoserver start
  $ ./bin/primary start
  $ ./bin/secondary start
  $ ./bin/varnish-instance</pre>
<p>インスタンスをデバッグモードとする必要があるときは、デバックするインスタンスをフォアグラウンドで起動します。</p>
<pre>$ ./bin/debug-instance fg</pre>
<p>recipeは（./bin/repozoの中の）ZODBバックアップと（./bin/zeopackの中の）データベースのパックのスクリプトも作成します。</p>
<h2>さらなるオプション</h2>
<p>zc.buildoutはとても柔軟性のあるシステムです。新しいrecipeを作るのが比較的簡単で、既存のrecipeを強力な方法で結合できます。<a class="external-link" href="http://cheeseshop.python.org/pypi?%3Aaction=search&amp;term=buildout&amp;submit=search">Cheese Shopの"buildout"</a>でより多くのrecipeを見つける、あるいはrecipeがどのように作成されたかを理解するには<a class="external-link" href="http://dev.plone.org/collective/browser/buildout">Plone自身のrecipeのいくつかのソースコード</a>を見てください。</p>
<p> </p>
<h2>日本語環境での注意事項</h2>
<p>Python2.4.xの環境化で日本語を適切に扱うことができるように、 「sitecustomize.py」 ファイルを 「 usr/local/lib/python2.4/ 」以下に置きます。内容は次のようになります。</p>
<pre>import sys
sys.setdefaultencoding("utf-8")</pre>
<h2>Plone 3.2.1 インストール時の注意事項</h2>
<p>ここに記載されている手順でPlone 3.2.1をインストールすると、</p>
<pre>/bin/buildout</pre>
<p>を実行後にPloneのインストール部分で以下のようなエラーメッセージが大量に表示されます。</p>
<pre>Compiling python modules
Creating fake eggs
Installing productdistros.
Installing instance.
Getting distribution for 'Plone==3.2.1'.
  File "build/bdist.linux-x86_64/egg/Products/
CMFPlone/skins/cmf_legacy/TitleOrId.py", line 11
    return title
SyntaxError: 'return' outside function
  File "build/bdist.linux-x86_64/egg/Products/
CMFPlone/skins/plone_scripts/getPopupScript.py", line 3
    return r"""
SyntaxError: 'return' outside function
  File "build/bdist.linux-x86_64/egg/Products/
CMFPlone/skins/plone_scripts/canSelectDefaultPage.py", line 15
    return False
SyntaxError: 'return' outside function
  File "build/bdist.linux-x86_64/egg/Products/
CMFPlone/skins/plone_scripts/my_worklist.py", line 4
    return []
SyntaxError: 'return' outside function
  File "build/bdist.linux-x86_64/egg/Products/
CMFPlone/skins/plone_scripts/selectedTabs.py", line 39
    return {'portal':valid_actions[-1][1]}
SyntaxError: 'return' outside function
  File "build/bdist.linux-x86_64/egg/Products/
CMFPlone/skins/plone_scripts/getGlobalPortalRoles.py", line 11
    return [r for r in context.portal_membership
.getPortalRoles() if r != 'Owner']</pre>
<p>このエラーは、PythonがZopeのPython Scriptをコンパイルしようとして発生しているものです。わずらわしい感じがしますが、インストールへの影響はありませんし、インストールされたPloneの信頼性に問題はありません。</p>
<p>以上</p>]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>tacaco</dc:creator>
    <dc:rights></dc:rights>
    <dc:date>2008-09-21T15:00:00Z</dc:date>
    <dc:type>ページ</dc:type>
  </item>


  <item rdf:about="http://plone.jp/front-page">
    <title>ようこそ Plone へ</title>
    <link>http://plone.jp/front-page</link>
    <description>おめでとうございます！ Plone のインストールに成功しました。</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p class="discreet">もしあなたの予想に反してこのページが見えているのだとしたら、このサイトの管理者が Plone をインストールしたばかりでまだ何もしていないことが原因です。このことについて、Plone チームや Plone メーリングリストに問い合わせないでください。</p><h2>まず最初に…</h2><p>新規 Plone サイトの中身を探っていく前に、まず次の作業を行ってください。</p><ol>    <li>管理者としてログインする        <span class="discreet">(サイト設定用のリンクが右上にあらわれるはずです)</span>。</li>    <li><a href="http://plone.jp/@@mail-controlpanel">メールサーバの設定を行う</a> <span class="discreet">(ユーザ登録時の確認やパスワード通知のために、SMTPサーバを登録しておく必要があります)</span>。</li>    <li><a href="http://plone.jp/@@security-controlpanel">あなたのサイトのセキュリティについての方針を決める</a> <span class="discreet">(だれが参加できるのか、パスワードに関する条件など)</span>。</li></ol><h2>より深く知るために…</h2><p>以上の作業が完了したら、さらに以下の作業を行うことをお勧めします。</p><ul>    <li><a class="link-plain" href="http://plone.org/documentation/whatsnew">Plone で何が変わったのか</a>を確認する。</li>    <li><a class="link-plain" href="http://plone.org/documentation">ドキュメント</a>を読む。特に        <a class="link-plain" href="http://plone.org/documentation/phc_topic_area?topic=Basic+Use">「どのドキュメントを読むべきなのか」</a>        と        <a class="link-plain" href="http://plone.org/documentation/faq/server-recommendations">「お勧めのサーバ設定法」</a> は読んでおきましょう。    </li>    <li>Plone で使える<a class="link-plain" href="http://plone.org/products">アドオンプロダクト</a>を調べてみる。</li>    <li><a class="link-plain" href="http://plone.org/support">サポート掲示板</a>に参加する。</li></ul><h2>あなた色に染める</h2><p>Plone にはさまざまな設定項目があり、好みに応じて自由に変更することができます。たとえば、</p><ul>    <li>    別のテーマを試してみる。    <a href="http://plone.jp/@@skins-controlpanel">組み込みのテーマ</a> から選んでもいいですし、あるいは    <a class="link-plain" href="http://plone.org/products/by-category/themes">plone.org       で公開されているテーマ</a> を探してみてもいいでしょう <span class="discreet">(その場合、       現在使用中の Plone のバージョンと互換性のあるテーマを選択するように注意しましょう)</span>。    </li>    <li>    <a href="http://plone.jp/@@types-controlpanel">    サイト内で使用するワークフローの種類を決める</a>    <span class="discreet">(デフォルトは、    インターネットに公開することを想定したワークフローとなっています。Plone    をイントラネット内で使用したい場合などは、ワークフローを適宜変更してください)</span>。    </li>    <li>    デフォルトでは、Ploneのコンテンツを編集する際にはビジュアルエディタを使うようになっています    <span class="discreet">(もしテキストベースでの記述や Wiki        構文のほうがいいなら、    <a href="http://plone.jp/@@markup-controlpanel">マークアップの設定</a> で変更することもできます)。</span>    </li>    <li>...これら以外にも、        <a href="http://plone.jp/plone_control_panel">サイトの設定</a> からさまざまな設定ができます。    </li></ul><h2>ぜひ教えてください</h2><p>Ploneでどんなものを作っていらっしゃいますか？ 大規模なサイトを構築したり、なにか面白い使い方をしていたりとかいうことはありますか？もしかして、あなたの勤務先では Plone ベースのソリューションを提供していたりしますか？</p><ul>    <li>あなたのサイトを、ぜひ <a class="link-plain" href="http://plone.net/sites">Plone サイト一覧</a> に追加してください        <span class="discreet">(もしかしたら、すでに登録されているかも！)</span>    </li>    <li>あなたの勤務先を、ぜひ <a class="link-plain" href="http://plone.net/providers">Plone プロバイダ</a> に追加してください。</li>    <li>あなたがかかわったプロジェクトについて、ぜひ <a class="link-plain" href="http://plone.net/case-studies">ケーススタディ</a>        に登録してください。</li></ul><h2>もっと詳しく知りたい？</h2><p>Plone は、Zope アプリケーションサーバ上で動作します。開発言語としては Pythonを使用しています。これらのテクノロジーについての詳細は、以下をごらんください。</p><ul><li><a class="link-plain" href="http://plone.org">Plone オープンソース    コンテンツ管理システム</a> のウェブサイト</li><li>The <a class="link-plain" href="http://zope2.zope.org">Zope    アプリケーションサーバ</a> のウェブサイト</li><li>The <a class="link-plain" href="http://www.python.org">Python    言語</a> のウェブサイト</li></ul><h2>Plone Foundation への寄付</h2><p>Plone は、数多くの個人や企業の支援のもとにできあがっています。The Plone Foundation は、</p><ul>    <li>...Plone を守り、そして Plone の普及を目指します。</li>    <li>...501(c)(3) charitable organization として登録されています。</li>    <li>...私たちへの寄付は、税金の控除対象となります。</li>    <li><a href="http://plone.org/foundation/foundation-donations">ぜひご支援を！</a></li></ul><p>Plone を選択していただいてありがとうございます。きっとお気に召されることでしょう！</p><p>— The Plone Team 一同</p>]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>admin</dc:creator>
    <dc:rights></dc:rights>
    <dc:date>2012-09-26T07:58:12Z</dc:date>
    <dc:type>ページ</dc:type>
  </item>




</rdf:RDF>
