<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ngi644の日記 &#187; Zope/Plone</title>
	<atom:link href="http://ngi644.net/blog/archives/category/zopeplone/feed" rel="self" type="application/rss+xml" />
	<link>http://ngi644.net/blog</link>
	<description>備忘録も兼ねています。</description>
	<lastBuildDate>Fri, 27 Jan 2012 07:44:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Ploneのコンテンツを公開したときTwitterにツイートする．</title>
		<link>http://ngi644.net/blog/archives/720</link>
		<comments>http://ngi644.net/blog/archives/720#comments</comments>
		<pubDate>Wed, 21 Dec 2011 14:59:14 +0000</pubDate>
		<dc:creator>ngi644</dc:creator>
				<category><![CDATA[Zope/Plone]]></category>

		<guid isPermaLink="false">http://ngi644.net/blog/?p=720</guid>
		<description><![CDATA[Plone4アドベントカレンダー2011の21日目です． ワークフローの状態が変わったらTwitterにツイートするサンプルを作成しました． ngi.site.notificationです． このサンプルでEventHa [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://connpass.com/event/163/">Plone4アドベントカレンダー2011</a>の21日目です．</p>
<p>ワークフローの状態が変わったらTwitterにツイートするサンプルを作成しました．<br />
ngi.site.notificationです．</p>
<p>このサンプルでEventHandlerとRegistryの使い方，コントロールパネルの作成方法がわかります．</p>
<p>確実にエラーが出ると思います．出たら教えてください．</p>
<h2>インストール方法</h2>
<ul>
<li>buildout.cfgに以下を追加
<pre class="wp-code-highlight prettyprint">extends =

http://good-py.appspot.com/release/dexterity/1.1?plone=4.1.3

eggs =
    ngi.site.notification</pre>
</li>
<li>./bin/buildout を実行します．</li>
<li>サイト設定のアドオンからNotificationをインストールします．</li>
</ul>
<h2>使い方</h2>
<p>インストールが終わったら，サイト設定のNotification settingsを表示します．</p>
<div id="attachment_732" class="wp-caption aligncenter" style="width: 310px"><a href="http://ngi644.net/blog/wp-content/uploads/2011/12/notification.jpg"><img class="size-medium wp-image-732" title="設定画面" src="http://ngi644.net/blog/wp-content/uploads/2011/12/notification-300x231.jpg" alt="" width="300" height="231" /></a><p class="wp-caption-text">設定画面</p></div>
<p>Action:ワークフローのアクションのidを記入します．デフォルトでpublishが入っています．</p>
<p>comment:ツイートする際のコメントを記入します．</p>
<p>Consumer key，Consumer secret，Access token，Access token secretはhttps://dev.twitter.com/でapplication登録した際のOAuth設定情報を入力します．</p>
<p>設定は以上です．</p>
<h2>試してみる</h2>
<div id="attachment_733" class="wp-caption aligncenter" style="width: 287px"><a href="http://ngi644.net/blog/wp-content/uploads/2011/12/publish.png"><img class="size-medium wp-image-733" title="公開処理" src="http://ngi644.net/blog/wp-content/uploads/2011/12/publish-277x300.png" alt="" width="277" height="300" /></a><p class="wp-caption-text">公開を選択</p></div>
<div id="attachment_734" class="wp-caption aligncenter" style="width: 310px"><a href="http://ngi644.net/blog/wp-content/uploads/2011/12/tweet.png"><img class="size-medium wp-image-734" title="ツイートされた" src="http://ngi644.net/blog/wp-content/uploads/2011/12/tweet-300x72.png" alt="" width="300" height="72" /></a><p class="wp-caption-text">ツイートされた</p></div>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://ngi644.net/blog/archives/720/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>オープンソースOCWのeduCommons</title>
		<link>http://ngi644.net/blog/archives/706</link>
		<comments>http://ngi644.net/blog/archives/706#comments</comments>
		<pubDate>Wed, 14 Dec 2011 10:58:06 +0000</pubDate>
		<dc:creator>ngi644</dc:creator>
				<category><![CDATA[Zope/Plone]]></category>

		<guid isPermaLink="false">http://ngi644.net/blog/?p=706</guid>
		<description><![CDATA[みなさん、こんにちは。 本日は、私がPlone4 アドベントカレンダー2011の担当します。 オープンコースウェア オープンコースウェア（OCW）を皆さんご存知でしょうか？ これは、大学の講義をインターネットを使って無償 [...]]]></description>
			<content:encoded><![CDATA[<p>みなさん、こんにちは。 本日は、私が<a href="https://connpass.com/event/163/" target="_blank">Plone4 アドベントカレンダー2011</a>の担当します。</p>
<h2>オープンコースウェア</h2>
<p>オープンコースウェア（OCW）を皆さんご存知でしょうか？ これは、大学の講義をインターネットを使って無償で提供するという活動です。 代表例は、<a href="http://mit.edu/" target="_blank">MIT</a>の<a href="http://ocw.mit.edu/" target="_blank">OCWサイト</a>でしょう。私もたまに利用しています。</p>
<h2>eduCommons</h2>
<p><a href="http://educommons.com/" target="_blank">eduCommons</a>は、教育機関がOCWを簡単に導入するためのアプリケーションです。OCWの担当者は、一番重要な、コンテンツに集中することができます。このeduCommonsは、Ploneをベースに作られています。今年、Plone4をベースとしたeduCommons4がリリースされました。ベースのPlone4のパフォーマンスが上がっているので、eduCommons4の性能も上がっていることが期待できます。</p>
<p>まず、どんなものかを見てみたい人は、educomonns.comにデモサイト(<a href="http://demo.educommons.com/">http://demo.educommons.com/</a>)があるので使ってみるといいでしょう。</p>
<p><a href="http://ngi644.net/blog/wp-content/uploads/2011/12/Screenshot-2011-12-14-195522.png"><img class="aligncenter size-medium wp-image-711" title="デモサイト" src="http://ngi644.net/blog/wp-content/uploads/2011/12/Screenshot-2011-12-14-195522-300x199.png" alt="http://demo.educommons.com/" width="300" height="199" /></a></p>
<p>日本にもeduCommonsを使って活動している大学を紹介します。どれも、貴重な講義が掲載されていて一見の価値があります。</p>
<ul>
<li><a href="http://ocw.kyoto-u.ac.jp/" target="_blank">京都大学OCW</a></li>
<li><a href="http://ocw.osaka-u.ac.jp/" target="_blank">大阪大学オープンコースウェア</a></li>
<li><a href="http://ocw.tsukuba.ac.jp/" target="_blank">筑波大学オープンコースウェア</a></li>
</ul>
<h2>おわりに</h2>
<p>Plone4を使って作られた教育向けアプリケーションの紹介をしました。もう一回、担当があるので、次回は、Plone4を使った開発のことについて書きたいと思います。</p>
<h2>リンク</h2>
<ul>
<li>日本オープンコースウェア・コンソーシアム <a href="http://www.jocw.jp/">http://www.jocw.jp/</a></li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://ngi644.net/blog/archives/706/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSO利用時のlogoutスクリプト</title>
		<link>http://ngi644.net/blog/archives/666</link>
		<comments>http://ngi644.net/blog/archives/666#comments</comments>
		<pubDate>Tue, 31 May 2011 03:17:09 +0000</pubDate>
		<dc:creator>ngi644</dc:creator>
				<category><![CDATA[Zope/Plone]]></category>

		<guid isPermaLink="false">http://ngi644.net/blog/?p=666</guid>
		<description><![CDATA[SSOのlogoutスクリプト from Products.CMFCore.utils import getToolByName try: from Products.CMFPlone import transactio [...]]]></description>
			<content:encoded><![CDATA[<p>SSOのlogoutスクリプト<br />
<code>from Products.CMFCore.utils import getToolByName<br />
try:<br />
	from Products.CMFPlone import transaction_note<br />
except ImportError:<br />
	from Products.CMFPlone.utils import transaction_note</p>
<p>from Products.PluggableAuthService.PluggableAuthService import logger<br />
logger.info("REQUEST.cookies = %r" % repr(context.REQUEST.cookies))<br />
try:<br />
    context.acl_users.logout(context.REQUEST)<br />
except:<br />
    pass<br />
target_url = context.REQUEST.URL1.replace('$', '$$')<br />
skinvar = context.portal_skins.getRequestVarname()<br />
path = '/' + context.absolute_url(1)<br />
if context.REQUEST.has_key(skinvar) and not context.portal_skins.getCookiePersistence():<br />
    #logger.info("expiring skin cookie")<br />
    context.REQUEST.RESPONSE.expireCookie(skinvar, path=path)<br />
sdm = getToolByName(context, 'session_data_manager', None)<br />
if sdm is not None:<br />
    #logger.info("got session_data_manager")<br />
    session = sdm.getSessionData(create=0)<br />
    if session is not None:<br />
        #logger.info("invalidating session")<br />
        session.invalidate()<br />
if context.REQUEST.cookies.has_key('__ac'):<br />
    #logger.info("building local account logout URL")<br />
    transaction_note('Logged out')<br />
    target_url += '/logged_out'<br />
    context.REQUEST.RESPONSE.redirect(target_url)<br />
else:<br />
    #logger.info("building shibboleth lazy logout URL")<br />
    config = context.acl_users.ShibbolethLogin.getConfig()<br />
    spliturl = target_url.split(':')<br />
    if config['http_logout_to_http']:<br />
        spliturl[0] = 'http'<br />
    try:<br />
        if config['http_login_url'][0][1][-1] == '=':<br />
            splitpath = spliturl[2].split('/')<br />
            port = str(config['http_login_to_port'])<br />
            if (spliturl[0] == 'https' and port == '443') or \<br />
               (spliturl[0] == 'http' and port == '80'):<br />
                # don't include default ports<br />
                del spliturl[0]<br />
            else:<br />
                splitpath[0] = port<br />
            if splitpath:<br />
                spliturl[2] = '/'.join(splitpath)<br />
            else:<br />
                del spliturl[2]<br />
            target_url = config['http_logout_url'] + ':'.join(spliturl) + '/logged_out'<br />
        else:<br />
            raise IndexError<br />
    except IndexError:<br />
        target_url = ':'.join(spliturl)<br />
        target_url = '%s/Shibboleth.sso/Logout?return=%s' % (target_url, target_url)<br />
    context.REQUEST.RESPONSE.redirect(target_url)<br />
print 'This is the %s "%s" in %s' % (script.meta_type, script.getId(), context.absolute_url())<br />
return printed</code></p>
]]></content:encoded>
			<wfw:commentRss>http://ngi644.net/blog/archives/666/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blobのファイルはどこに保存されている？</title>
		<link>http://ngi644.net/blog/archives/659</link>
		<comments>http://ngi644.net/blog/archives/659#comments</comments>
		<pubDate>Fri, 21 Jan 2011 09:36:56 +0000</pubDate>
		<dc:creator>ngi644</dc:creator>
				<category><![CDATA[Zope/Plone]]></category>

		<guid isPermaLink="false">http://ngi644.net/blog/?p=659</guid>
		<description><![CDATA[明けましておめでとうございます。と言っても１月ももう後半ですが。 Ploneを使っていて、ふと、Blobフィールドのファイルがどこに保存されているか知りたくなりました。 f = obj.getField('file')  [...]]]></description>
			<content:encoded><![CDATA[<p>明けましておめでとうございます。と言っても１月ももう後半ですが。</p>
<p>Ploneを使っていて、ふと、Blobフィールドのファイルがどこに保存されているか知りたくなりました。</p>
<pre class="wp-code-highlight prettyprint">f = obj.getField('file')</pre>
<pre class="wp-code-highlight prettyprint">blob = f.getUnwrapped(obj)</pre>
<pre class="wp-code-highlight prettyprint">zodb_blob = blob.getBlob()</pre>
<pre class="wp-code-highlight prettyprint">blob_file = zodb_blob.open()</pre>
<pre class="wp-code-highlight prettyprint">blob_file.name</pre>
<p>で、このnameがファイルシステムに保存されているファイルのフルパスになります。</p>
<p>なお、zodb_blob._p_oid を整形したものが Pathになっているぽい。</p>
<p>今年もよろしくお願いいたします。</p>
]]></content:encoded>
			<wfw:commentRss>http://ngi644.net/blog/archives/659/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>collective.xdv でコンテンツタイプごとのテーマテンプレート切り替え</title>
		<link>http://ngi644.net/blog/archives/642</link>
		<comments>http://ngi644.net/blog/archives/642#comments</comments>
		<pubDate>Thu, 25 Nov 2010 09:01:13 +0000</pubDate>
		<dc:creator>ngi644</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Zope/Plone]]></category>

		<guid isPermaLink="false">http://ngi644.net/blog/?p=642</guid>
		<description><![CDATA[collective.xdv 今まで、テーマテンプレートとルールを切り替えるのは、「コントロールパネルでできる、URLの正規表現マッチだけ。」と思っていた。 でも、こいつは、diazo(ｘｄｖ)サーバーを使っている。だか [...]]]></description>
			<content:encoded><![CDATA[<h3>collective.xdv</h3>
<p>今まで、テーマテンプレートとルールを切り替えるのは、「コントロールパネルでできる、URLの正規表現マッチだけ。」と思っていた。</p>
<p>でも、こいつは、diazo(ｘｄｖ)サーバーを使っている。だから、diazo(ｘｄｖ)の書き方にそって、ルール内に&lt;theme /&gt;タグで書いてあげれば、コンテンツタイプごとに切り替えだってできるのだ。</p>
<p>たとえば、ドキュメントコンテンツタイプでテンプレートを切り替えるには、 &lt;theme href=&#8221;sample.html&#8221; css:if-content=&#8221;body.portaltype-document&#8221;/&gt; てな感じで簡単に切り替えができる。</p>
<p>これができたので、ルールのネストなんかもできるに違いない！後日テストしよう。</p>
]]></content:encoded>
			<wfw:commentRss>http://ngi644.net/blog/archives/642/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ロゴとフッターを変えるプロダクト</title>
		<link>http://ngi644.net/blog/archives/624</link>
		<comments>http://ngi644.net/blog/archives/624#comments</comments>
		<pubDate>Sat, 30 Oct 2010 11:36:00 +0000</pubDate>
		<dc:creator>ngi644</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Zope/Plone]]></category>

		<guid isPermaLink="false">http://ngi644.net/blog/?p=624</guid>
		<description><![CDATA[Plone4のデザインは、素敵だけど、ロゴとフッターの変更が面倒だと常々感じる。TTTWで変更できるけど、ZMIにアクセスして、base_propertiesをいじったり、Page templateファイルをいじったりし [...]]]></description>
			<content:encoded><![CDATA[<p>Plone4のデザインは、素敵だけど、ロゴとフッターの変更が面倒だと常々感じる。TTTWで変更できるけど、ZMIにアクセスして、base_propertiesをいじったり、Page templateファイルをいじったりしないといけない。</p>
<p>Ploneには、サイト設定という場所がある。なぜ、ロゴとフッターを変更するというサイト作成において、重要なものがないのだろうか？と思っていた。</p>
<p>そこで、今回、さくっと作ってみた。Plone4でしかテストしていないけど、とりあえず、動いている感じ。</p>
<h3>ngi.theme.simple</h3>
<p><a href="http://pypi.python.org/pypi/ngi.theme.simple/1.0b3">http://pypi.python.org/pypi/ngi.theme.simple/1.0b3</a></p>
<p>override.zcmlを使ったりとちょっと？というところもあるけど、それは、これから直していきます。</p>
<div id="attachment_628" class="wp-caption alignnone" style="width: 310px"><a href="http://ngi644.net/blog/wp-content/uploads/2010/10/Screenshot-0.png"><img class="size-medium wp-image-628" title="適用前" src="http://ngi644.net/blog/wp-content/uploads/2010/10/Screenshot-0-300x149.png" alt="" width="300" height="149" /></a><p class="wp-caption-text">適用前</p></div>
<div id="attachment_629" class="wp-caption alignnone" style="width: 310px"><a href="http://ngi644.net/blog/wp-content/uploads/2010/10/Screenshot-1.png"><img class="size-medium wp-image-629  " title="設定画面" src="http://ngi644.net/blog/wp-content/uploads/2010/10/Screenshot-1-300x179.png" alt="" width="300" height="179" /></a><p class="wp-caption-text">設定画面 フッターはHTMLタグも使えます。</p></div>
<div id="attachment_627" class="wp-caption alignnone" style="width: 310px"><a href="http://ngi644.net/blog/wp-content/uploads/2010/10/Screenshot.png"><img class="size-medium wp-image-627" title="適用後" src="http://ngi644.net/blog/wp-content/uploads/2010/10/Screenshot-300x154.png" alt="" width="300" height="154" /></a><p class="wp-caption-text">適用後</p></div>
]]></content:encoded>
			<wfw:commentRss>http://ngi644.net/blog/archives/624/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plone で動くBlogプロダクト</title>
		<link>http://ngi644.net/blog/archives/609</link>
		<comments>http://ngi644.net/blog/archives/609#comments</comments>
		<pubDate>Fri, 27 Aug 2010 02:54:40 +0000</pubDate>
		<dc:creator>ngi644</dc:creator>
				<category><![CDATA[Zope/Plone]]></category>

		<guid isPermaLink="false">http://ngi644.net/blog/archives/609</guid>
		<description><![CDATA[Plone で動くBlogプロダクトで便利だなーと思うのは、collective.blogging。 これは、標準アイテムを拡張してBlogにしてしまうもの。PloneのUIにはマッチしたものだけど、単純に記事を書いて、 [...]]]></description>
			<content:encoded><![CDATA[<p>Plone で動くBlogプロダクトで便利だなーと思うのは、collective.blogging。</p>
<p>これは、標準アイテムを拡張してBlogにしてしまうもの。PloneのUIにはマッチしたものだけど、単純に記事を書いて、公開したいというには、ちょっと面倒。</p>
<p>そこで、勉強がてらBlogを作ってみた。（まだ公開していないけど。）</p>
<p>以前、dexterityの勉強のために、   <br />Products.ngiNikkiというのを作っていて（まだ作成中・・・。）、これをArchetypeベースにして、lightboxを同梱し、Plone3とPlone4両方で動くようにしたもの。</p>
<p>残すタスクは、ポートレット部分と国際対応、そして、すこしのテンプレート修正。あと、ドキュメントか。</p>
<p>プロダクト名は、ngi.site.blog となる予定。</p>
<p>今月末の公開を目指す。</p>
<p>なお、使ってもらっているサイトは、こちら↓↓   <br /><a href="http://www.edu-con.jp/s-blog">http://www.edu-con.jp/s-blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ngi644.net/blog/archives/609/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Plone 4 dev用buildout</title>
		<link>http://ngi644.net/blog/archives/606</link>
		<comments>http://ngi644.net/blog/archives/606#comments</comments>
		<pubDate>Tue, 20 Jul 2010 17:40:48 +0000</pubDate>
		<dc:creator>ngi644</dc:creator>
				<category><![CDATA[Zope/Plone]]></category>

		<guid isPermaLink="false">http://ngi644.net/blog/archives/606</guid>
		<description><![CDATA[以下、最近利用する頻度が多くなってきたのでメモしておく。 Plone4 のbuildoutの場所 http://svn.plone.org/svn/plone/buildouts/plone-coredev/branch [...]]]></description>
			<content:encoded><![CDATA[<p>以下、最近利用する頻度が多くなってきたのでメモしておく。</p>
<p>Plone4 のbuildoutの場所</p>
<p><a title="http://svn.plone.org/svn/plone/buildouts/plone-coredev/branches/4.0/" href="http://svn.plone.org/svn/plone/buildouts/plone-coredev/branches/4.0/">http://svn.plone.org/svn/plone/buildouts/plone-coredev/branches/4.0/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ngi644.net/blog/archives/606/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MeeGo に Plone4 をインストールするために必要な物</title>
		<link>http://ngi644.net/blog/archives/596</link>
		<comments>http://ngi644.net/blog/archives/596#comments</comments>
		<pubDate>Wed, 30 Jun 2010 15:09:57 +0000</pubDate>
		<dc:creator>ngi644</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[MeeGo]]></category>
		<category><![CDATA[Zope/Plone]]></category>

		<guid isPermaLink="false">http://ngi644.net/blog/archives/596</guid>
		<description><![CDATA[MeeGoというIntelとNokiaによるLinuxOSを使い始めた．このOSのUIはかわいくて使っていて楽しくなる．これを開発用にしようと思い，Plone4 Unifiedinstallerをインストールしてみた．イ [...]]]></description>
			<content:encoded><![CDATA[<p>MeeGoというIntelとNokiaによるLinuxOSを使い始めた．このOSのUIはかわいくて使っていて楽しくなる．これを開発用にしようと思い，Plone4 Unifiedinstallerをインストールしてみた．インストールする為に必要なパッケージの一覧は下記である．</p>
<ul>
<li>make</li>
<li>gcc-c++</li>
<li>zlib-devel</li>
<li>libjpeg-devel</li>
<li>readline-devel</li>
</ul>
<p>これらをyumを使ってインストールする．これでPlone4をインストールして利用することが出来る．</p>
<p><a href="http://ngi644.net/blog/wp-content/uploads/2010/07/PloneonMeeGo.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="PloneonMeeGo" border="0" alt="PloneonMeeGo" src="http://ngi644.net/blog/wp-content/uploads/2010/07/PloneonMeeGo_thumb.png" width="464" height="292" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ngi644.net/blog/archives/596/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plone4のpoファイルのコンパイルオプション</title>
		<link>http://ngi644.net/blog/archives/590</link>
		<comments>http://ngi644.net/blog/archives/590#comments</comments>
		<pubDate>Fri, 04 Jun 2010 10:59:06 +0000</pubDate>
		<dc:creator>ngi644</dc:creator>
				<category><![CDATA[Zope/Plone]]></category>

		<guid isPermaLink="false">http://ngi644.net/blog/?p=590</guid>
		<description><![CDATA[Plone 4のUnified Installerには、下記の記述がbuildoutファイルにないので、poファイルがコンパイルされない。そのため、自分で作ったプロダクト等の翻訳が適用されないで焦るときがある。そんなとき [...]]]></description>
			<content:encoded><![CDATA[<p>Plone 4のUnified Installerには、下記の記述がbuildoutファイルにないので、poファイルがコンパイルされない。そのため、自分で作ったプロダクト等の翻訳が適用されないで焦るときがある。そんなときは、下記の記述の確認をし、無ければ、buildout.cfgなどに追加してあげるとよい。</p>
<p>[instance]<br />
environment-vars =<br />
zope_i18n_compile_mo_files = true</p>
<p>以上、忘れずにメモしておく。</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="font-family: Arial, FreeSans, sans-serif;"><a class="link-plain" style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; color: #75ad0a; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; padding: 0px; margin: 0px;" href="http://launchpad.net/plone/3.3/3.3.5/+download/Plone-3.3.5-UnifiedInstaller.tgz">Unified Installer</a></span></div>
]]></content:encoded>
			<wfw:commentRss>http://ngi644.net/blog/archives/590/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ploneのサイト管理でスキンカスタマイズ「Theme Editor」</title>
		<link>http://ngi644.net/blog/archives/570</link>
		<comments>http://ngi644.net/blog/archives/570#comments</comments>
		<pubDate>Mon, 31 May 2010 10:10:23 +0000</pubDate>
		<dc:creator>ngi644</dc:creator>
				<category><![CDATA[Zope/Plone]]></category>

		<guid isPermaLink="false">http://ngi644.net/blog/?p=570</guid>
		<description><![CDATA[Plone 4 の experimental に skineditor.cfg が追加されました。 1.Ploneのサイト管理でスキンのカスタマイズを可能にする 「plone.app.skineditor」 plone. [...]]]></description>
			<content:encoded><![CDATA[<p>Plone 4 の experimental に skineditor.cfg が追加されました。</p>
<h3>1.Ploneのサイト管理でスキンのカスタマイズを可能にする 「plone.app.skineditor」</h3>
<p>plone.app.skineditor は、ZMIにアクセスせず、Ploneのサイト管理からportal_skin, portal_view_customizationsの中のテンプレートやリソースをカスタマイズできるという優れものです。</p>
<p>旧来の、ZMIによるカスタマイズでは、portal_skin, portal_view_customizationsそれぞれの場所に行き、該当するファイルを探し出してカスタマイズする必要があり、手間が多く、ZMIは、Ploneの管理インターフェイスとは少し異なるので、抵抗がある人もいたと思います。</p>
<h3>2.インストール</h3>
<p>早速、 ./bin/buildout -c skineditor.cfg -n を実行します。</p>
<p>サイト設定に行き、Theme Editor 0.1devをインストール（有効に）します。</p>
<h6><a href="http://ngi644.net/blog/wp-content/uploads/2010/05/theme.png"><span style="color: #000000;"><img class="alignnone size-medium wp-image-571" title="theme" src="http://ngi644.net/blog/wp-content/uploads/2010/05/theme-300x213.png" alt="" width="300" height="213" /></span></a></h6>
<h6>図１：有効にした状態 Theme Editorと表示される。</h6>
<h3>3.Theme Editorを使ってみる。</h3>
<p>Theme Editorをクリックして、どのようなものか見てみます。</p>
<h6><a href="http://ngi644.net/blog/wp-content/uploads/2010/05/skin_01.png"><span style="color: #000000;"><img class="alignnone size-medium wp-image-578" title="skin_01" src="http://ngi644.net/blog/wp-content/uploads/2010/05/skin_01-300x264.png" alt="" width="300" height="264" /></span></a></h6>
<h6>図２：Theme Editor画面</h6>
<p>Skin Resource Editorというタイトルが表示され、スキンのリソースが一覧で表示されます。タイトルの下にある、検索ボックスで、テンプレートやリソース、Pythonスクリプト、JavaScriptを検索でき、隣のキーワードタグでフィルタリングすることができます。</p>
<h3>4.試しにFooterを変更してみる。</h3>
<p>では、試しにFooterを変更してみたいと思います。キーワードタグの中から、Viewletsをクリックします。Footerは、plone.footerという名前なのでそれを選択します。</p>
<h6><a href="http://ngi644.net/blog/wp-content/uploads/2010/05/foot1.png"><span style="color: #000000;"><img class="alignnone size-medium wp-image-580" title="foot" src="http://ngi644.net/blog/wp-content/uploads/2010/05/foot1-300x265.png" alt="" width="300" height="265" /></span></a></h6>
<h6>図３：plone.footerを選択したところ</h6>
<p>クリックすると、該当するテンプレートやインターフェイスを記したボックスが表示されます。まさにこのテンプレートを編集したいので、クリックします。</p>
<h6><a href="http://ngi644.net/blog/wp-content/uploads/2010/05/footer_custom.png"><span style="color: #000000;"><img class="alignnone size-medium wp-image-581" title="footer_custom" src="http://ngi644.net/blog/wp-content/uploads/2010/05/footer_custom-300x245.png" alt="" width="300" height="245" /></span></a></h6>
<h6>図４：テンプレートの内容が表示された。</h6>
<p>ポップアップして、テンプレートの中身が表示されました。</p>
<p>CustomizeボタンをクリックしてCustomします。</p>
<h6><a href="http://ngi644.net/blog/wp-content/uploads/2010/05/foot_custom2.png"><span style="color: #000000;"><img class="alignnone size-medium wp-image-574" title="foot_custom2" src="http://ngi644.net/blog/wp-content/uploads/2010/05/foot_custom2-294x300.png" alt="" width="294" height="300" /></span></a></h6>
<h6>図5:ビューのカスタマイズをしているところ</h6>
<p>編集が終わったら、最後に、Save Changesをクリックして保存します。現段階では、ウィンドウが自動でクローズしないみたいなので、自分で「×」ボタンを押してクローズします。</p>
<p>図３の画面に戻ってみると、カスタムしたものが先ほどの項目の上に表示されています。そして、有効になっているので、赤色の<span style="color: #ff0000;">＊</span>で記されています。</p>
<h6><a href="http://ngi644.net/blog/wp-content/uploads/2010/05/footer_custom_after.png"><span style="color: #000000;"><img class="alignnone size-medium wp-image-577" title="footer_custom_after" src="http://ngi644.net/blog/wp-content/uploads/2010/05/footer_custom_after-300x44.png" alt="" width="300" height="44" /></span></a></h6>
<h6>図６：カスタムができ、項目が増えた。Customしたものは「In the database」となっている。</h6>
<p>以上でカスタマイズが終了しました。</p>
<h6><a href="http://ngi644.net/blog/wp-content/uploads/2010/05/footer_before.png"><span style="color: #000000;"><img class="alignnone size-medium wp-image-576" title="footer_before" src="http://ngi644.net/blog/wp-content/uploads/2010/05/footer_before-300x34.png" alt="" width="300" height="34" /></span></a></h6>
<h6>図７：Before</h6>
<h6><a href="http://ngi644.net/blog/wp-content/uploads/2010/05/footer_after2.png"><span style="color: #000000;"><img class="alignnone size-medium wp-image-575" title="footer_after2" src="http://ngi644.net/blog/wp-content/uploads/2010/05/footer_after2-300x30.png" alt="" width="300" height="30" /></span></a></h6>
<h6>図８：After</h6>
<h3>5.おわりに</h3>
<p>PloneのSkinカスタマイズは、ZMIにアクセスしないといけないのが、欠点でした。これと同時にインストールされる、Products.Glowormを使えば、ZMIに行かずにPloneの統一されたUIで作業ができるので、とても重宝しそうです。</p>
]]></content:encoded>
			<wfw:commentRss>http://ngi644.net/blog/archives/570/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ploneのフォームで2重投稿を禁止するJSの回避方法</title>
		<link>http://ngi644.net/blog/archives/566</link>
		<comments>http://ngi644.net/blog/archives/566#comments</comments>
		<pubDate>Tue, 02 Feb 2010 04:49:53 +0000</pubDate>
		<dc:creator>ngi644</dc:creator>
				<category><![CDATA[Zope/Plone]]></category>

		<guid isPermaLink="false">http://ngi644.net/blog/archives/566</guid>
		<description><![CDATA[Ploneは、フォームで2重投稿を極力避けるために、jQueryを使ってアラートを出すようにしています。 これは、目的によっては、邪魔な存在なので、表示させない方法。 submitボタンのクラスに allowMultiS [...]]]></description>
			<content:encoded><![CDATA[<p>Ploneは、フォームで2重投稿を極力避けるために、jQueryを使ってアラートを出すようにしています。</p>
<p>これは、目的によっては、邪魔な存在なので、表示させない方法。</p>
<p><strong>submit</strong>ボタンのクラスに <strong>allowMultiSubmit</strong> を割り当てる。</p>
<p>以上で回避できます。</p>
]]></content:encoded>
			<wfw:commentRss>http://ngi644.net/blog/archives/566/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows版のPlone</title>
		<link>http://ngi644.net/blog/archives/564</link>
		<comments>http://ngi644.net/blog/archives/564#comments</comments>
		<pubDate>Mon, 01 Feb 2010 19:13:02 +0000</pubDate>
		<dc:creator>ngi644</dc:creator>
				<category><![CDATA[Zope/Plone]]></category>

		<guid isPermaLink="false">http://ngi644.net/blog/archives/564</guid>
		<description><![CDATA[Windows版のPlone 4は、portal_css, portal_javascriptsをデバッグモードにしておくと、非常に遅い！！！ スキンプロダクトの作成や、ビュー周りの検証をするときは、Linuxか、Mac [...]]]></description>
			<content:encoded><![CDATA[<p>Windows版のPlone 4は、portal_css, portal_javascriptsをデバッグモードにしておくと、非常に遅い！！！</p>
<p>スキンプロダクトの作成や、ビュー周りの検証をするときは、Linuxか、MacにインストールしたPlone 4を使うとよい。</p>
]]></content:encoded>
			<wfw:commentRss>http://ngi644.net/blog/archives/564/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>フォルダが作成出来ないと嘆いていたら。</title>
		<link>http://ngi644.net/blog/archives/561</link>
		<comments>http://ngi644.net/blog/archives/561#comments</comments>
		<pubDate>Wed, 27 Jan 2010 18:11:45 +0000</pubDate>
		<dc:creator>ngi644</dc:creator>
				<category><![CDATA[Zope/Plone]]></category>

		<guid isPermaLink="false">http://ngi644.net/blog/archives/561</guid>
		<description><![CDATA[Flashからフォルダを作成出来るようにしていたのですが、どうもうまく動かない。 プロセスもpermissionにも間違い無いはずなのに、なぜ動かないのだろう。 いろいろと調べていたら・・・ テスト環境にフォルダを作成す [...]]]></description>
			<content:encoded><![CDATA[<p>Flashからフォルダを作成出来るようにしていたのですが、どうもうまく動かない。</p>
<p>プロセスもpermissionにも間違い無いはずなのに、なぜ動かないのだろう。</p>
<p>いろいろと調べていたら・・・</p>
<p>テスト環境にフォルダを作成する為のメソッド名と同名のPythonスクリプトが存在した・・・。</p>
<p>・・・・・・・・・・・・。</p>
<p>さあ、次に進むぞ。</p>
]]></content:encoded>
			<wfw:commentRss>http://ngi644.net/blog/archives/561/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>反省</title>
		<link>http://ngi644.net/blog/archives/560</link>
		<comments>http://ngi644.net/blog/archives/560#comments</comments>
		<pubDate>Wed, 27 Jan 2010 16:13:13 +0000</pubDate>
		<dc:creator>ngi644</dc:creator>
				<category><![CDATA[Zope/Plone]]></category>

		<guid isPermaLink="false">http://ngi644.net/blog/archives/560</guid>
		<description><![CDATA[Flash部分にどのぐらいのコストをかけ、Ploneの部分にどのぐらいのコストをかけるかというのをはっきりとしておくべきだった。 反省・・・。]]></description>
			<content:encoded><![CDATA[<p>Flash部分にどのぐらいのコストをかけ、Ploneの部分にどのぐらいのコストをかけるかというのをはっきりとしておくべきだった。</p>
<p>反省・・・。</p>
]]></content:encoded>
			<wfw:commentRss>http://ngi644.net/blog/archives/560/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

