Tommy 碎碎念

Tommy Wu's blog

« 上一篇 | 下一篇 »

LifeType 與 Gallery2 的完美結合
post by tommy @ 06 四月, 2007 09:14

今天早上睡不著, 約五點就起床了, 所以上網逛逛, 發現我這邊設定在 LifeType 中的 Gallery 外掛, 有些路徑會運作不正常, 所以花了一些時間研究了一下, 目前看起來, 整個運作都正常了, 除了不能在 Gallery 做登入的動作外, 其他的操作, 就如同在 Gallery2 的系統一樣, 都可以正常運作. (如果你有發現有那個地方不能用的, 麻煩通知一下)

為了怕忘了, 所以趕緊做個筆記記下來.

首先, 在 Gallery2 方面:

  • 安裝的路徑是: /usr/share/gallery2
  • 使用的 URL 是: http://gallery.teatime.com.tw
  • 安裝 Gallery2 的網址改寫外掛.
  • 啟用網址改寫的功能, 在規則中設定你要使用的項目 (我除了 G1 到 G2 的對應沒有選擇外, 其他的都有)
  • 在網址改寫的設定中, 允許空的查詢源, 並加上 blog 所用的 domain. 以我來說, 就是 blog.teatime.com.tw

這時, 應該在你的 Gallery2 的路徑下頭的 .htaccess, 就會有類似下頭的設定:

RewriteCond %{THE_REQUEST} /sitemap(\?.|\ .)
RewriteCond %{REQUEST_URI} !/main\.php$
RewriteRule . /main.php?g2_view=sitemap.Sitemap [QSA,L]
RewriteCond %{THE_REQUEST} /popular(\?.|\ .)
RewriteCond %{REQUEST_URI} !/main\.php$
RewriteRule . /main.php?g2_view=dynamicalbum.PopularAlbum [QSA,L]
RewriteCond %{THE_REQUEST} /updates(\?.|\ .)
RewriteCond %{REQUEST_URI} !/main\.php$
RewriteRule . /main.php?g2_view=dynamicalbum.UpdatesAlbum [QSA,L]
RewriteCond %{THE_REQUEST} /random(\?.|\ .)
RewriteCond %{REQUEST_URI} !/main\.php$
RewriteRule . /main.php?g2_view=dynamicalbum.RandomAlbum [QSA,L]
RewriteCond %{THE_REQUEST} /admin/(\?.|\ .)
RewriteCond %{REQUEST_URI} !/main\.php$
RewriteRule . /main.php?g2_view=core.SiteAdmin [QSA,L]
RewriteCond %{THE_REQUEST} /v/([^?]+)/slideshowapplet\.html(\?.|\ .)
RewriteCond %{REQUEST_URI} !/main\.php$
RewriteRule . /main.php?g2_view=slideshowapplet.SlideshowApplet&g2_path=%1 [QSA,L]
RewriteCond %{THE_REQUEST} /d/([0-9]+)-([0-9]+)/([^/?]+)(\?.|\ .)
RewriteCond %{REQUEST_URI} !/main\.php$
RewriteRule . /main.php?g2_view=core.DownloadItem&g2_itemId=%1&g2_serialNumber=%2&g2_fileName=%3 [QSA,L]
RewriteCond %{THE_REQUEST} /v/([^?]+)/slideshow\.html(\?.|\ .)
RewriteCond %{REQUEST_URI} !/main\.php$
RewriteRule . /main.php?g2_view=slideshow.Slideshow&g2_path=%1 [QSA,L]
RewriteCond %{THE_REQUEST} /c/view/([0-9]+)\.html(\?.|\ .)
RewriteCond %{REQUEST_URI} !/main\.php$
RewriteRule . /main.php?g2_view=comment.ShowAllComments&g2_itemId=%1 [QSA,L]
RewriteCond %{THE_REQUEST} /c/add/([0-9]+)\.html(\?.|\ .)
RewriteCond %{REQUEST_URI} !/main\.php$
RewriteRule . /main.php?g2_view=comment.AddComment&g2_itemId=%1 [QSA,L]
RewriteCond %{THE_REQUEST} /rating/([^?/]+)(\?.|\ .)
RewriteCond %{REQUEST_URI} !/main\.php$
RewriteRule . /main.php?g2_view=rating.RatingAlbum&g2_limit=%1 [QSA,L]
RewriteCond %{THE_REQUEST} /rss/([^\/\?]+)(\?.|\ .)
RewriteCond %{REQUEST_URI} !/main\.php$
RewriteRule . /main.php?g2_view=rss.Render&g2_name=%1 [QSA,L]
RewriteCond %{THE_REQUEST} /srss/([0-9]+)(\?.|\ .)
RewriteCond %{REQUEST_URI} !/main\.php$
RewriteRule . /main.php?g2_view=rss.SimpleRender&g2_itemId=%1 [QSA,L]
RewriteCond %{THE_REQUEST} /key/([^?/]+)(\?.|\ .)
RewriteCond %{REQUEST_URI} !/main\.php$
RewriteRule . /main.php?g2_view=keyalbum.KeywordAlbum&g2_keyword=%1 [QSA,L]
RewriteCond %{THE_REQUEST} /f/([^?]+)(\?.|\ .)
RewriteCond %{REQUEST_URI} !/main\.php$
RewriteRule . /main.php?g2_controller=permalinks.Redirect&g2_filename=%1 [QSA,L]
RewriteCond %{THE_REQUEST} /v/([^?]+)(\?.|\ .)
RewriteCond %{REQUEST_URI} !/main\.php$
RewriteRule . /main.php?g2_path=%1 [QSA,L]

接著是 LifeType 的設定:

  • 安裝的路徑是: /var/www/blog
  • 使用的 URL 是: http://blog.teatime.com.tw
  • 在網址設定上, 選擇一般網址或自訂網址 (當然你要自訂後頭的項目), 總之, 會把網址變成 /{blogid}/xxx 之類的都可以. 只要一開頭的兩個 / 包住的是你的 blogid 或 blogname 就可以.
  • 安裝 LifeType 的 Gallery 外掛. (還要加上這個 patch, 如果還沒被官方納入的話)
  • 設定 Gallery 外掛:
    • embed.php 的路徑: /usr/share/gallery2/embed.php
    • embedUri 參數: blog.teatime.com.tw/1/index.php?op=gallery
    • embedPath 參數: /
    • g2Uri 參數: gallery.teatime.com.tw/main.php
    • 圖片區塊: randomImage
    • 顯示項目: title|date
    • Gallery 項目代碼: /tommy_baby

embed.php 的路徑, 是你安裝 Gallery2 之後, embed.php 的完整路徑.

embedUri 參數, 是你的 blog 用的 domain, 加上你的 blogid, 再加上 index.php?op=gallery 就可以. 以上頭的例子來看, 那個 blog.teatime.com.tw 是我用的 domain, 1 是我的 blogid, 所以是 blog.teatime.com.tw/1/index.php?op=gallery

g2Uri 參數, 是你的 Gallery 用的 dmain 加上 main.php, 我的 Gallery 用的 domain 是 gallery.teatime.com.tw 所以就是 gallery.teatime.com.tw/main.php

Gallery 項目代碼, 是如果有區塊有顯示時, 要顯示那個相片或相簿. 一般來說, 如果你知道該項目在 Gallery 中的編號,可以使用那個編號就可以. 不過... 我通常不會知道那個編號是什麼, 當你打開網址改寫的功能時, 這兒就是改寫之後, 出現在網址 /v/ 後頭的那個路徑或名字. 而上頭的 /tommy_baby 就代表我是要顯示 http://gallery.teatime.com.tw/v/tommy_baby 這個相簿.

接著, 把 Gallery 的 .htaccess 在上頭的那一段, 複製到 blog 的 .htaccess 中, 修改一下, 把 /xxx/ 都改成 /([0-9]+)/xxx/, 然後把 /main\.php 改成 index\.php, 再把 /main.php? 改成 index.php?op=gallery&, 然後把參數的順序都加 1 (因為我們前面多了 blogid), 如 %1 變 %2, %2 變 %3 等等. 最後, 在最前面加上一段處理 index.php 的內容, 修改之後, 應該像下頭這樣吧:

# Gallery
# for index.php?op=gallery
RewriteCond %{REQUEST_URI} /([0-9]+)/index\.php
RewriteCond %{QUERY_STRING} op\=gallery [NC]
RewriteRule . index.php?%{QUERY_STRING}
#
# from gallery's .htaccess
# 1. insert /([0-9]+)/ to /xxx
# 2. change !/main\.php$ to !index\.php$
# 3. change /main.php? to index.php?op=gallery&
# 4. shift parameter, add 1 to them
#
RewriteCond %{THE_REQUEST} /([0-9]+)/sitemap(\?.|\ .)
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule . index.php?op=gallery&g2_view=sitemap.Sitemap [QSA,L]
RewriteCond %{THE_REQUEST} /([0-9]+)/popular(\?.|\ .)
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule . index.php?op=gallery&g2_view=dynamicalbum.PopularAlbum [QSA,L]
RewriteCond %{THE_REQUEST} /([0-9]+)/updates(\?.|\ .)
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule . index.php?op=gallery&g2_view=dynamicalbum.UpdatesAlbum [QSA,L]
RewriteCond %{THE_REQUEST} /([0-9]+)/random(\?.|\ .)
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule . index.php?op=gallery&g2_view=dynamicalbum.RandomAlbum [QSA,L]
RewriteCond %{THE_REQUEST} /([0-9]+)/admin/(\?.|\ .)
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule . index.php?op=gallery&g2_view=core.SiteAdmin [QSA,L]
RewriteCond %{THE_REQUEST} /([0-9]+)/v/([^?]+)/slideshowapplet\.html(\?.|\ .)
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule . index.php?op=gallery&g2_view=slideshowapplet.SlideshowApplet&g2_path=%2 [QSA,L]
RewriteCond %{THE_REQUEST} /([0-9]+)/d/([0-9]+)-([0-9]+)/([^/?]+)(\?.|\ .)
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule . index.php?op=gallery&g2_view=core.DownloadItem&g2_itemId=%2&g2_serialNumber=%3&g2_fileName=%4 [QSA,L]
RewriteCond %{THE_REQUEST} /([0-9]+)/v/([^?]+)/slideshow\.html(\?.|\ .)
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule . index.php?op=gallery&g2_view=slideshow.Slideshow&g2_path=%2 [QSA,L]
RewriteCond %{THE_REQUEST} /([0-9]+)/c/view/([0-9]+)\.html(\?.|\ .)
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule . index.php?op=gallery&g2_view=comment.ShowAllComments&g2_itemId=%2 [QSA,L]
RewriteCond %{THE_REQUEST} /([0-9]+)/c/add/([0-9]+)\.html(\?.|\ .)
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule . index.php?op=gallery&g2_view=comment.AddComment&g2_itemId=%2 [QSA,L]
RewriteCond %{THE_REQUEST} /([0-9]+)/rating/([^?/]+)(\?.|\ .)
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule . index.php?op=gallery&g2_view=rating.RatingAlbum&g2_limit=%2 [QSA,L]
RewriteCond %{THE_REQUEST} /([0-9]+)/rss/([^\/\?]+)(\?.|\ .)
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule . index.php?op=gallery&g2_view=rss.Render&g2_name=%2 [QSA,L]
RewriteCond %{THE_REQUEST} /([0-9]+)/srss/([0-9]+)(\?.|\ .)
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule . index.php?op=gallery&g2_view=rss.SimpleRender&g2_itemId=%2 [QSA,L]
RewriteCond %{THE_REQUEST} /([0-9]+)/key/([^?/]+)(\?.|\ .)
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule . index.php?op=gallery&g2_view=keyalbum.KeywordAlbum&g2_keyword=%2 [QSA,L]
RewriteCond %{THE_REQUEST} /([0-9]+)/f/([^?]+)(\?.|\ .)
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule . index.php?op=gallery&g2_controller=permalinks.Redirect&g2_filename=%2 [QSA,L]
RewriteCond %{THE_REQUEST} /([0-9]+)/v/([^?]+)(\?.|\ .)
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule . index.php?op=gallery&g2_path=%2 [QSA,L]

經過上頭的設定之後, 我們就可以在經由 LifeType 進入的 Gallery 內, 使用所有可以用的功能了.

Del.icio.us Furl HEMiDEMi Technorati MyShare
commons icon [1] Re:LifeType 與 Gallery2 的完美結合 [ 回覆 ]

您好:
請教您,關於您文末所說的:可以在經由 LifeType 進入的 Gallery 內, 使用所有可以用的功能了。是否代表經過上述的設定,只要登入Lifetype就等同登入gallery2可以執行所有必須登入gallery2才可以執行的操作,例如新增相簿、新增項目。最近正在架設LifeType的部落格主機,您分享的文章對在下有很大的幫助,謝謝您!

commons icon [2] Re:LifeType 與 Gallery2 的完美結合 [ 回覆 ]

不是. 所有的功能是指由訪客的角度來看.
一般 Gallery 的管理仍必需由 Gallery 的進入點登入才可以.

commons icon [3] Re:LifeType 與 Gallery2 的完美結合 [ 回覆 ]

嗯!謝謝您的回覆。

迴響
暱稱:
標題:
個人網頁:
電子郵件:
authimage

迴響

  

Bad Behavior 已經阻擋了 93 個過去 7 天試圖闖關的垃圾迴響與引用。
Power by LifeType. Template design by JamesHuang. Valid XHTML and CSS