Tommy 碎碎念

Tommy Wu's blog

« 上一篇 | 下一篇 »

讓 LifeType 使用 TinyMCE 的 g2image plugin 來選取 Gallery2 的照片
post by tommy @ 03 三月, 2006 20:50
把 Gallery2 與 LifeType 做了初步的整合後, 我們可以在 LifeType 顯示 Gallery 的 ImageBlock 了. 不過, 如果要在文章內貼上一張 Gallery2 的相片時, 能不能像 LifeType 內建的檔案中心那樣的方便, 直接在 TinyMCE 中就使用類似 insertresource 的功能那樣的方便嗎?

在 Google 找了一下, 我們可以找到一個 TinyMCE 的 plugin: g2image, 透過這個 plugin, 可以讓 TinyMCE 搭配 WordPress 有一個直接選取 Gallery2 相片的功能. 而我們是使用 LifeType, 是否也能用呢?

看了一下這個軟體的說明, 並非只能在 WordPress 中使用, 應該只要 TinyMCE 能用, 這個軟體就可以使用. 二話不說, 先抓回來裝看看. 在做一些簡單的修改之後, 果然可以搭配使用, 方便了不少.

首先是修改 tinymce 的 tinymce-plog.js 檔案, 在 plugins 的設定加上 g2image, 然後在 theme_advanced_buttons2 中, 自己找個位置加上 g2image.

然後把下載的檔案中的 g2image 目錄, 搬到 tinymce 的 plugins 目錄中.

接著, 修改 g2image 目錄中的  config.php, 修改下列的設定:

# 設定使用中文
$g2ic_language = 'zh_TW';

# gallery2 安裝的路徑
$g2ic_gallery2_path = '/usr/share/gallery2/';

# 後面這兩個設定是原本沒有的, 為了配合 LifeType 加上的
# gallery2 的 URL, 注意一定要有 http, 且, 後頭要有 / 字元.
$g2ic_gallery2_url = 'http://gallery.teatime.com.tw/';

# 你的 LifeType 的路徑,
# 如果 URL 是 http://blog.teatime.com.tw/ 就是用 /
# 如果 URL 是 http://www.teatime.com.tw/blog/ 就是用 /blog/
$g2ic_gallery2_embed_uri = '/';

然後把 g2image 目錄下的 init.php 先改成 init.old.php, 再把下頭的程式存成 init.php:

<?php
// Initialization File for Gallery 2 Image Chooser for TinyMCE
// Version 2.0
// By Kirk Steffensen - http://g2image.steffensenfamily.com/ -
// Released under the GPL version 2.
// A copy of the license is in the root folder of this plugin.

// ====( Initialize Variables )=================================
$g2ic_current_page = 1;
$g2ic_rel_path = '/';
$g2ic_embedded_mode = FALSE;
$g2ic_wpg2_valid = FALSE;
$g2ic_dirs = null;
$g2ic_wp_rel_path = '';
$g2ic_base_path = str_repeat("../", substr_count(dirname($_SERVER['PHP_SELF']), "/"));
if(isset($_SESSION['g2ic_last_album_visited'])) {
$g2ic_last_album = $_SESSION['g2ic_last_album_visited'];
}
else {
$g2ic_last_album = '/';
}

// ==============================================================
// Native embedded mode
// ==============================================================

// Else use the native Gallery2 functions
if (!$g2ic_embedded_mode){
if(file_exists($g2ic_gallery2_path.'embed.php')) {
$g2ic_option['gallery2_url'] = $g2ic_gallery2_url;
$g2ic_option['embedUri'] = $g2ic_gallery2_embed_uri;
require_once($g2ic_gallery2_path.'embed.php');
g2ic_init($g2ic_option,$g2ic_embedded_mode);
}
// Else die on a fatal error
else {
print g2ic_make_html_header();
print $g2ic_lang['g2_embedded_error'];
print "</body>\n\n";
print "</html>";
die;
}
}

//---------------------------------------------------------------------
// Function: g2ic_init
// Parameters: $option,$embedded_mode
// Returns: None
// Purpose: Initialize the emedded functions of Gallery2.
// Notes: Exit on Fatal
//---------------------------------------------------------------------

function g2ic_init($option,$embedded_mode) {

// Initialise GalleryAPI
$ret = GalleryEmbed::init( array(
'g2Uri' => $option['gallery2_url'],
'embedUri' => $option['embedUri'],
'fullInit' => true)
);
if ($ret) {
print g2ic_make_html_header();
print '{$lang_g2image_g2_fatal_error}' .$ret->getAsHtml() . "\n";
print "</body>\n\n";
print "</html>";
die;
}

return;
}
?>

這樣子就應該可以在 TinyMCE 中使用 g2image 來選擇你要顯示的照片了. 另外, 原本的中文檔案有兩個小問題, 如果你要使用中文, 可以把 g2image 目錄下的 langs/zh_TW.php 改成下列這個樣子:

<?php

// Traditional Chinese lang variables - Version 2.0

$g2ic_lang = array(
'about' => '關於 G2Image',
'alignment_class' => '對齊級別:',
'alignment_legend' => '對齊級別(CSS必需支援 g2image classes 級別才能發生效用)>:',
'click_advanced' => '開啟進階設定選單',
'click_image' => '在圖像上按滑鼠會出現圖像選項。',
'click_one_click' => '使用預設方式插入',
'click_options' => '在圖像上按滑鼠鍵的動作:',
'current_album' => '目前相簿:',
'custom_url' => '自定網址:',
'description' => '描述:',
'description_legend' => '圖像或文字鏈接的替代文字說明:',
'display_legend' => '顯示選項',
'drupal_g2_filter' => 'Drupal Gallery2 過濾器',
'empty_album' => '這個相簿中沒有照片。<br /><br />'.
'請在上面的導覽選項中另選一個相簿。',
'filename' => '檔名:',
'filenames' => '檔名:',
'g2_directory_error' => '無法打開 Gallery2 資料目錄。 :-(',
'g2_embedded_error' => '<h2>嚴重 Gallery2 錯誤:</h2><br />'.
'無法啟動 Gallery2 內>嵌功能。<br />'.
'請為 WordPress 安裝 WPG2 外掛模組(位於 http://wpg2.ozgreg.com/)<br />'.
'或確認你的 config.php 中的 Gallery2 路徑。',
'g2_entities_by_id_error' => '<h2>嚴重 Gallery2 錯誤:</h2><br />'.
'無法取得這個 Gallery2 ID 的圖像資訊。<br />'.
'G2 傳回的錯誤:',
'g2_fatal_error' => '<h2>嚴重 Gallery2 錯誤:</h2><br />'.
'G2 傳回的錯誤:',
'g2_id_by_path_error' => '<h2>嚴重 Gallery2 錯誤:</h2><br />'.
'無法取得要求路徑的 Gallery2 ID。<br />'.
'G2 傳回的錯誤:',
'g2_id_not_found_error' => '<h2>嚴重 Gallery2 錯誤:</h2><br />'.
'無法取得這個檔案>的 Gallery2 ID。<br />'.
'G2 傳回的錯誤:',
'g2_image_title' => 'Gallery2 主題:',
'go' => '前往',
'how_insert' => '插入方式:',
'image_title' => 'Title: ',
'img_float_left' => '浮動對左',
'img_float_right' => '浮動對右',
'img_centered' => '對中',
'img_none' => '無',
'img_normal' => '正常',
'insert' => '插入',
'insert_legend' => '按下按鈕以插入圖像:',
'last_modification_new' => '上次更新日期(最新的在前)',
'last_modification_old' => '上次更新日期(最舊的在前)',
'link_album' => '指到上層相簿的文字鏈接',
'link_image' => '指到圖像的文字鏈接',
'name_a_to_z' => '檔案名稱(A-z)',
'name_z_to_a' => '檔案名稱(z-A)',
'page' => '頁數:',
'page_navigation' => '頁面導覽:',
'photo_albums' => '相簿',
'redraw' => '重新顯示',
'sort_error' => '排序方式錯誤',
'sorted_by' => '排序方式:',
'subalbums' => '子相簿:',
'thumbnails' => '縮略圖',
'thumbnail_album' => '指到上層相簿的縮略圖',
'thumbnail_custom_url' => '指到自定網址(在下列文字框中)的縮略圖',
'thumbnail_image' => '指到圖像的縮略圖',
'thumbnail_only' => '只顯示縮略圖:不含鏈接',
'thumbnails_per_page' => '每頁項數:',
'title' => '選取 Gallery 2 圖像',
'title_a_to_z' => 'Gallery 2 主題(A-z)',
'title_z_to_a' => 'Gallery 2 主題(z-A)',
'url' => '網址:',
'wpg2_album_legend' => '插入目前相簿的 WPG2 標籤:',
'wpg2_configuration_error' => '組態設定錯誤:<br />'.
'WPG2 已用,可是並未通過驗証手續。<br />'.
'請在 WordPress 管理面板中設定並驗証 WPG2。<br />'.
'說明可在 http://www.ozgreg.com 網站中找到。',
'wpg2_link_album' => '指到上層相簿的文字鏈接(HTML)',
'wpg2_link_image' => '指到圖像的文字鏈接(HTML)',
'wpg2_tag_image' => '圖像的 WPG2 標籤',
'wpg2_thumbnail_album' => '指到上層相簿的縮略圖(HTML)',
'wpg2_thumbnail_custom_url' => '指到自定網址(在下列文字框中)的縮略圖(HTML)',
'wpg2_thumbnail_image' => '指到圖像的縮略圖(HTML)',
'wpg2_thumbnail_only' => '只顯示縮略圖:不含鏈接(HTML)')
?>

注意: 我的修改適用下列的版本:

我的環境是使用 rewrite 的簡短路徑功能, 不確定是否別的環境也適用, 不過應該是可以用才對.

選取相片的顯示就類似下面這個樣子:

DSC_0819

不錯, 我兒子很可愛吧! 


2006/10/22: 

我不確定 1.1 的時候, 我有沒有改到這部份 (印象中是有, 因為目前用的 TinyMCE 2.0.6 與之前用的 2.0.2 (or 2.0.1?) 之間, plugins 的寫法有些不同). 我打包了我目前用的版本放這兒, 有需要的抓回去放在 TinyMCE 的 plugins 目錄下頭, 設定一下 config.php 就應該可以用了.

http://www.teatime.com.tw/~tommy/files/lifetype/tinymce_g2image.tgz 

 

Del.icio.us Furl HEMiDEMi Technorati MyShare
commons icon [1] 想請教一下... [ 回覆 ]

我看到您寫的這功能..
想說這實在是一個很棒的東西..
所以我也照著 patch 了..
但不知道是不是我現在更新成 LifeType 1.1
所以失敗了...XD

我會有這樣的情形..
點了 G2image 的 icon 之後..
會跳出視窗..
可是只是有 Gallery 的連結..
一個下拉式選單有我相簿的名稱..
旁邊有一個按鈕寫著.. onClick="top.location.href

請問是不是我哪裡有做錯呢..XD

額外請問一下..
我能否將您一些技術文章轉錄至我的網誌呢?

commons icon [2] [ 回覆 ]

我不太確定我在 1.1 時有沒有改到這個部份. 直接抓這個回去放在 tinymce 的 plugins 目錄下頭吧. 這是我目前用的版本. 自己改一下 config.php 的設定, 應該就可以用了吧.
http://www.teatime.com.tw/files/lifetype/tinymce_g2image.tgz

commons icon [3] [ 回覆 ]

至於轉錄我的文章, 我沒有意見. 如果可以就註明出處. 不想註明出處也無妨.

commons icon [4] @.@a"" [ 回覆 ]

不能下載耶...
難道我錯過了嗎....XD
(我為了今天第一天到公司上班難得早點睡而已...XD)

還有...
我會註明出處的啦....:P
這些都是好東西..一定要註明的啊..^^

commons icon [5] [ 回覆 ]

sorry, 網址打錯了, 現在的應該可以了.

commons icon [6] 又發生小問題想請教你....XD [ 回覆 ]

我更換了 Lifetype 1.1.1 之後..
卻發現如果我文章插入了相簿的圖片之後..
在閱讀文章的時候,點選圖片理論上應該要能顯示相簿照片的那一頁..
可是我的卻不行了...
一時還是不知道哪裡出問題....XD

不過猜測是照片所附帶的 link 最後少了
?op=gallery&blogId=1 類似這樣的字串...

請問有沒有什麼建議檢查或修正的地方...XD

commons icon [7] XD [ 回覆 ]

我又弄成功了..
原因只是因為我 embed uri 沒設定好..
但是我現在卻現在去陷入因為之前升級 php ..
卻導致 gallery 在點選略縮圖後,卻看不到照片的窘境..XD

總之...叨擾了..XD

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

迴響

  

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