Archive for the ‘Python’ Category
collective.xdv でコンテンツタイプごとのテーマテンプレート切り替え
collective.xdv
今まで、テーマテンプレートとルールを切り替えるのは、「コントロールパネルでできる、URLの正規表現マッチだけ。」と思っていた。
でも、こいつは、diazo(xdv)サーバーを使っている。だから、diazo(xdv)の書き方にそって、ルール内に<theme />タグで書いてあげれば、コンテンツタイプごとに切り替えだってできるのだ。
たとえば、ドキュメントコンテンツタイプでテンプレートを切り替えるには、 <theme href=”sample.html” css:if-content=”body.portaltype-document”/> てな感じで簡単に切り替えができる。
これができたので、ルールのネストなんかもできるに違いない!後日テストしよう。
ロゴとフッターを変えるプロダクト
Plone4のデザインは、素敵だけど、ロゴとフッターの変更が面倒だと常々感じる。TTTWで変更できるけど、ZMIにアクセスして、base_propertiesをいじったり、Page templateファイルをいじったりしないといけない。
Ploneには、サイト設定という場所がある。なぜ、ロゴとフッターを変更するというサイト作成において、重要なものがないのだろうか?と思っていた。
そこで、今回、さくっと作ってみた。Plone4でしかテストしていないけど、とりあえず、動いている感じ。
ngi.theme.simple
http://pypi.python.org/pypi/ngi.theme.simple/1.0b3
override.zcmlを使ったりとちょっと?というところもあるけど、それは、これから直していきます。
MeeGoでGAE SDK for Pythonで開発する時のポイント1
MeeGoは、Python2.6が標準で入っています。しかし、GAEは、Python2.5を必要とするため2.5を自前でインストールする必要があります。
Pythonをコンパイルする前に、「ソフトウェアの追加・削除」もしくはYumで下記のパッケージを導入します。
- openssl-devel
- sqlite-devel
これらを導入後、Pythonをコンパイルします。
Thunderbirdでメールが消えてしまったときの対処
Thunderbirdは,定期的に最適化していないとカタログが壊れてメールボックスから消えてしまうことがあります.また,Thunderbirdは,最適化するまでは,メールは何も削除せず,削除フラグがついているだけですので,スクリプトを書いてそのフラグを変更してあげるだけで修正できます.
# -*- coding: utf-8 -*-
from __future__ import with_statement
writer = open('Inbox_new.txt','a')
with open("Inbox") as f:
for i, x in enumerate(f):
x = x.replace('X-Mozilla-Status: 0009', 'X-Mozilla-Status: 0011')
writer.write(x)
if (i % 10000) == 0:
print i
writer.close()
print 'end'
Plone 4 でZMIのルートが文字化けする
Plone4で新規サイトを作成する際、タイトルに日本語を入れるとZopeインスタンスのルート画面が文字化けします。これを回避するには、Root Folderのプロパティに、management_page_charsetプロパティを追加して、値にutf-8を入れます。
1.Propertiesタブをクリックします。
2.新規追加する部分に、Name に management_page_charset を Value に utf-8 を入力します。Typeは、Stringを選択しておきます。Addボタンを押します。
以上で設定は完了です。
参考サイト
- wiki.zope.jp: 管理画面の文字コードをEUCに固定
自前のテンプレートエンジン
いま、自作のテンプレートエンジンを作ってみてたりしている。
きっかけは、ZPTなどがどうやっているのかを知りたくて始めた。結構、地道な作業なんだ。手軽に利用できるようにしてくれているのはありがたい。
自分のも出来たらそのうち公開する(予定。。。)
3.eduCommonsのサイトを日本語にする
インストールしたばかりのユーザインターフェイスは英語ですが、ボランティアにより、日本語化[1]が進められています。
今回は、ユーザインターフェイスを日本語へ変更を行います。
1.管理画面(Site Setup)へアクセス
ユーザインターフェイスの言語切り替えは、管理画面(Site Setup)内の言語(Language)項目で行います。
サイトへ管理者でログインし、画面右上の「Site Setup」リンクをクリックして管理画面へアクセスします。
言語設定ページへ移動します。言語(Language)リンクをクリックします。
2.日本語へ変更
サイトのユーザインターフェイス言語を日本語へ変更します。
- Default site language項目のドロップダウンボックスから「Japanese」を選択します。
- Available languagesの項目のドロップダウンボックスから「Japanese」を選択します。
※複数指定することにより、複数言語のUIを提供することができます。 - 最後にSaveボタンをクリックします。
fig 3. 言語設定(Langage Settings)ページ ![]()
ブラウザでリロードを行えば、サイトが日本語に切り替わっていることがわかります。
リファレンス
[1] eduCommons Japan : http://groups.google.co.jp/group/educommons-japan
2.eduCommonsへのログインとログアウト
前回は、eduCommons[1]をWindowsへインストールしました。
今回は、eduCommonsへのログインとログアウトをします。
1.ユーザ名とパスワードはどこ?
WindowsインストーラでインストールをしたeduCommonsですが、インストール時にユーザ名やパスワードを指定することがありませんでした。
では、どうやってログインするのでしょうか?答えは、eduCommonsをインストールしたフォルダにあります。adminPassword.txtファイルに管理者のユーザ名とパスワードが記入されています。
1.eduCommonsのインストールと起動・停止
eduCommons[1]は、オープンコースウェアを構築するためのWebアプリケーションです。eduCommonsは、オープンソースプロジェクトであり、CMS(Content Management System)のZope, Plone[2,3]をベースに作られています。
先日、バージョン3.2.1-finalがリリースされたので、Windows版を自宅のWindowsXPマシンへインストールをしてみました。
IIS + WSGI Part-1
サーバーがWindows Server 2008になる可能性があるので,IIS からDjangoやZope3を使うための方法を探してみた.
pyisapie
http://apps.sourceforge.net/trac/pyisapie/
isapi-wsgi
http://code.google.com/p/isapi-wsgi/
いろいろあった.
これから,VM上にWindows Server 2008環境を作ってテストしてみる.
続く
easy_installでMinGWをコンパイラとして指定する方法
Windowsでeasy_installを行うとコンパイルが必要なものの場合,コンパイラが無いからコンパイルできないと言われて先に進まない.
そのときは,Python2.5の場合,VisualStudio2003が必要となるのだけれど,これだけのためにVisualStudio2003を入れるのはHDDがもったいない.
なので,MinGWを利用する.
でも,ただインストールしてパスを通しただけでは,easy_installでMinGWをコンパイラとして利用することはできない.
PythonのLibフォルダにdistutilsというフォルダあり,この中にdistutils.cfgというファイルがある(無いときは作成する).
そして,下記の行を追加する.
[build] compiler=mingw32
このあと,easy_installを実行すると,MinGWでコンパイルされる.
Grok : Zope3をベースとしたWeb Framework
Grokをまじめに始めました.GrokはZope3をベースとしたWeb Frameworkです.とっても扱いやすいです.zcmlをほとんど意識しないのが新鮮.
これから,簡易CMSの作成をしていくつもり.
以下,機能など.
- 追加・変更・削除ができる
- フォルダ
- ドキュメント
- ファイル(画像など)
- コンテンツの階層管理
- メールフォーム
- アクセス制限
- ユーザ認証
- ワークフローによる公開プロセス
- リッチなドキュメントエディタ
PyS60のコアがPython2.5.1になっている。
久しぶりにE51でプロトタイピングしようと思いPyS60のサイトに行ってみたら、バージョンが1.9.2となっていてコアが2.5.1になっていた。
Python2.5,2.6のスタイルでコーディングすることが多くなっていたので大変うれしいバージョンアップです。
difflib
PloneのDiffツールは、これを基にしているのだね。


