Plone

sendtoを出なくする

Ploneで表示される各アイテムの上部に、「このページを誰かに送る」というメールアイコンが出る。このアイコンはあまり必要とは思えないので削除したい。以下の手順で削除できる。

  1. ZMIでplone/portal_actionsを開く
  2. “Send this page to somebody”というアイテムがあるので、そこの”Visible?”のチェックを外す。

COREBlog2に移行

COREBlog2に移行してみた。Plone上からエントリを追加できて便利。いいじゃん、これ。
ついでにRSS配信が出来るようにしてみた。

文書表示時に日付を表示しない

文書表示時に作成者と更新日付が出て欲しくない場合がある。たとえばトップページがそうだ。このページはdocument_viewテンプレートをカスタマイズしている。カスタマイズ方法は以下の通り。

  1. ZMIで/ploneサイト/portal_skins/plone_content/document_viewを表示して”customize”ボタンを押す。
  2. 例によって/ploneサイト/portal_skins/custom/にコピーが出来るので、それを”document_view_nodate”にリネームする。
    名前を変えずに以下の変更をしてしまうと、全てのページで日付が出なくなってしまうので改名して、新しいテンプレートにする。
  3. で、以下のように編集する。
    作成者と日付を作っているのは以下の部分なので、この3行を削除する。

    <div metal:use-macro="here/document_byline/macros/byline">
       Get the byline - contains details about author and modification date.
    </div>
  4. ZMIで/ploneサイト/portal_types/document/に移動し、一番下の”Available view methods”に上記で追加した”document_view_nodate”を追加する。
  5. 新しいテンプレートを適用したい文書を表示して、コンテンツタブにある「表示」から”document_view_nodate”を選択する。

Ploneのアップデート

Plone2.1で運用してきたが、Plone2.1.1がリリースされた。Plone2.2まで待とうかとも思ったが、いろいろバグフィックスされているようなので、アップデートしてみる。手順は以下の通り。

  1. 何はともあれ、バックアップ
    非 常に重要なのがこの作業。万が一新しいバージョンにして作ったページが全て消えてしまっては元も子もないので、きちんとバックアップしよう。バックアップ するファイルは一つだけ。zopeのインスタンス(~/zopeinstance)/var/Data.fsをどこかにコピーするだけ。コマンドはこんな 感じ。

    % ~/zopeinstance/bin/zopectrl stop  <---- まずzopeを止めて(止めなくても良いらしいが、、)
    % cp ~/zopeinstance/var/Data.fs ~/Data.fs.1015    <-- どこかにコピー
  2. ダウンロード
    wgetで新しいバージョンのPloneを持ってくる。持ってきたら展開。

    % wget http://...../Plone-2.1.1.tar.gz
    % tar xvzf Plone-2.1.1.tar.gz
  3. 現在のPloneを上書きする。
    Ploneは各インスタンスに対して上書きインストールする。

    % cp -rf Plone-2.1.1/* ~/zopeinstance/Product/
  4. zopeを起動
    % ~/zopeinstance/bin/zopectrl start
  5. 新しいバージョンにmigrateする
    Plone は新しくってデータが古い状態なので、データを再構成する。ZMIでPloneのフォルダにアクセスすると”portal_migration”と “portal_atct”に赤い”!”マークが付いているので、それぞれ開いて、上部に出る”Migrate”タブから、”upgrade”ボタンを押 す。
  6. migrateその2
    ZMIでなく、ploneのサイトで管理者権限でログイン後、右上の”preferences”を選択し、左側に出る”site setup”から”Add/Remove Products”を選択する。
    インストール済みプロダクトの”This product has been upgraded,click here to reinstall”を全て押す。
  7. で、新しくなったサイトでコンテンツが表示できることを確認する。
    まぁ、適当にページにアクセスして、正常かどうか確認しよう。
    あれ?ポータルタブとコンテンツタブが英語になったぞ。。。→zopeを再起動して日本語が出るようになった。

folder_listingの改造

PloneでURLにフォルダを指定した場合、フォルダの内容が一覧される。これは、フォルダにはデフォルトで”folder_listing”と いうテンプレートが対応しているからである。このテンプレートを使うと、フォルダ内のアイテムをすべてリストアップしてくれる。Page中に使った画像 ファイルも一覧されてしまうので、かっこ悪い。このテンプレートを改造して、画像が出ないようにしたい。
ZMIからplone/portal_skins/plone_content/folder_listingを”customize”する。customizeフォルダにコピーされたテンプレートを以下のように改造する。
(改造前)実際にフォルダの内容を書き出すループの前に、こんなコードがある。

<metal:listingmacro define-macro="listing">
<tal:foldercontents define="contentFilter contentFilter|request/contentFilter|nothing;
                    limit_display limit_display|request/limit_display|nothing;
                    more_url more_url|request/more_url|string:folder_contents;
                    contentsMethod python:test(here.portal_type=='Topic', here.queryCatalog, here.getFolderContents);
                    folderContents folderContents|python:contentsMethod(contentFilter);
                    use_view_action site_properties/typesUseViewActionInListings;
                    over_limit python: limit_display and len(folderContents) > limit_display;
                    folderContents python: (over_limit and folderContents[:limit_display]) or folderContents;
                    show_about python:not isAnon or site_properties.allowAnonymousViewAbout">

ここでコンテンツ一覧取得しているのだが、注目するのはここでは二行目にあるcontentFilter。これに「文書とフォルダだけよ」と書ければ万事解決。なので、どう書くかというと、

<tal:foldercontents define="contentFilter python:{'portal_type':('Document','Folder')};

こんな感じ。書き換えるのは、この一行だけ。
この改造をしてしまうと、全てのfolder_listingが影響を受けてしまうので、”folder_listing_document_only”などとrenameしておいて、特定のフォルダだけテンプレートを変えればよりグッド。

(あ とがき) 今回はコード中に無理矢理フィルタにセットしてしまったが、もっとエレガントな方法があるはず。例えば、ブラウザからURLに”http: //shonan-maguro.com/homeserver?portal_type=Document”とか指定すれば、文書だけがリストアップさ れる。これをうまく使えば良いのかな。。。もう少しPloneの事が解るようになってから考えましょう。。

Zopeのアップデート

ploneが動いているのはZopeの上。2005Oct13に新しいZope2.8.2がリリースされた。なんか沢山バグフィックスが行われているみたいなので、アップデートしてみよう。

  1. zope.orgから新しいZope(Zope-2.8.2-final.tar.gz)を頂いてくる。
  2. 展開 % tar xvzf Zope-2.8.2-final.tar.gz
  3. コンフィグ。インストール先を指定する。
    % ./configure/ –prefix=/home/hogehoge/zope282
  4. ビルド % make
  5. インストール % make install
  6. インスタンス作成 % /home/hogehoge/zope282/bin/mkzopeinstance.py
  7. 起動確認 % /home/hogehoge/zopeinst282/bin/runzope
    確認が出来たら一度落として、、
  8. データを移行
    % cp /home/hogehoge/zopeinstance_old/var/Data.fs /home/hogehoge/zopeinst282/var
    % cp -rf /home/hogehoge/zopeinstance_old/Products/* /home/hogehoge/zopeinst282/Products
  9. 起動確認

更新日付表示をページの末尾に

タイトルのすぐ後に「作成者と更新日付」が出るが、これが結構じゃま。出ないようにすることも出来るが、折角なのでページの最下に出すようにする。
ページはdocument_viewテンプレートで作成されているので、

  1. ZMIで/ploneサイト/portal_skins/plone_content/document_viewを開いて”customize”ボタンを押す。
    → /ploneサイト/portal_skins/custom/document_viewが出来る。
  2. 日付を生成している行を下に移す。
    日付を生成しているのは

    <div metal:use-macro="here/document_byline/macros/byline">
     Get the byline - contains details about author and modification date.
    </div>

    なので、この3行を

    <div metal:use-macro="here/document_relateditems/macros/relatedItems">
      show related items if they exist
    </div>
    
    <div metal:use-macro="here/document_byline/macros/byline">
      Get the byline - contains details about author and modification date.
    </div>
    
    </tal:main-macro>
    </metal:main>

    このように、ページの最後に移動する。

  3. 全てのページで最下に表示されるので良いのであれば、上記で完了。
    特定のページだけ最下に表示したいのであれば、このテンプレートを改名して”document_view_datetail”などとしておこう。
  4. 更に日付表示を右寄せにすれば、plone.orgのサイト風になる。

« Prev - Next »