Subscribe to
Posts
Comments

屬於 'b2evolution' 目錄中的文章

工頭在今天(2007-05-26)將久未昇級的 b2evolution 給昇級到目前最新的 1.10.1版,在昇級的程序倒是沒有發生什麼問題。可是在昇級完成後就發生了有部份文章中的中文變成了問號。解決的方法是進入 b2evolution 的文章編輯畫面將每篇中文變成問號的文章重新儲存一次就可以了。

b2-1-10.jpg

另外,b2evolution 1.10.1版還有一個中文亂碼問題,是在 firefox 看中文是正常的,而用 IE 來看則中文全部成了亂碼。針對這個中文亂碼問題,工頭終於在官方網站上找到解決的辦法,在這裏說明一下︰

若要完全解決 b2evolution 1.10.1 版的中文亂碼問題,就必須要修改 _locales.php 這一個檔案.

用UTF-8文字編輯器或 vi 將下列檔案打開

/var/www/html/blogs/conf/_locales.php

在第40行找到下列文字,去修改此文字檔的內容.

$evo_charset = ”;

$force_io_charset_if_accepted = ”;

改成

$evo_charset = ‘utf-8‘;

$force_io_charset_if_accepted = ‘utf-8‘;

存檔後,就可以完全解決 b2evolution 1.10.1 版的中文亂碼問題了。

工頭在今年初左右原本想試著使用 wordpress 來取代 b2evolution 這個我使用了數年的部落格軟體,一來是體驗一下這麼多人使用的軟體 wordpress 應該是一個不錯的軟體。不過最後還是因為念念不忘 b2evolution 優良的後台管理功能(backoffice)而讓我又重新使用了 b2evolution。

在這裏就介紹一下 b2evolution的後台管理功能吧!其中工頭認為比較重要的功能就屬其中的「統計(stats)」功能最為有用了。

首先,這個畫面是每日訪客經由何種途徑而找到本網站的分類統計表及圖表。

b2-admin-01.jpg

以下這個畫面是在統計出每個使用者是直接而訪問本網站的明細。

b2-admin-01.jpg

以下這個畫面是在統計出每個使用者是點撃別人網頁中的超鏈結而訪問本網站的明細,在這個功能網站管理者可以知道有那些別人的網頁上建立了可以直接鏈結本網站的超鏈結,並且己經有效的吸引網友經它而訪問網站了。這個畫面也提供了超鏈結讓網站管理者可以去查看建立了可以直接鏈結本網站的超鏈結的網頁。

b2-admin-01.jpg

以下這個畫面是根據上圖的結果而繪成的圓形統計圖及超鏈結排行榜。

b2-admin-01.jpg

以下這個畫面是訪客利用各大搜尋引撆輸入搜尋字串而找到並訪問本網站的記錄,這個記錄了搜尋引撆名稱及搜尋字串,以便於網站管理者可以知道有那些訊息是訪客比較會利用本網站來提供的,以便站長了解使用這個網站的訪客的情形。

b2-admin-01.jpg

以下這個畫面是統計訪客利用各大搜尋引撆輸入搜尋字串而找到並訪問本網站的記錄的排行榜。

b2-admin-01.jpg

因為舊的網址不再使用了,但是存在 b2evolution 內的文章中圖片所指連結的網址還是舊的網址,為了要更新成新的網址,我們不必去一篇一篇的開啓來更新它,可以利用 mysql 資料庫中的備份功能 mysqldump 來進行自動去變更文章中圖片所指連結的網址,將它更改成新的網址。

STEP 1︰利用 MYSQL 的指令將b2evolution資料庫的內容變成文字檔。

假設您的 MYSQL 的使用者名稱是 root,密碼是 3939889,資料庫名稱為 b2

在 linux 的提示符號下輸入下列文字︰

mysqldump –user=root –password=3939889 b2 〉 dump.sql

成功後你會發現有一個新的檔案 dump.sql

STEP 2︰利用 vi 將 dump.sql 進行自動去變更文章中圖片所指連結的網址,將它更改成新的網址。

在 linux 的提示符號下輸入下列文字︰

vi dump.sql

在 vi 內輸入下列文字(假設舊網址為 www.shdc.com.tw,而新網址為 www.nanaimoinn.com)︰

:1,$s/www.shdc.com.tw/www.nanaimoinn.com/g

STEP 3︰利用 MYSQL 的指令將 dump.sql 變成b2evolution資料庫的內容。

mysql –user=root –password=3939889 b2 〈 dump.sql

這樣就完成了所有自動去變更文章中圖片所指連結的網址,將它更改成新的網址的步驟,以後就不必要為變更新網址而苦惱了。

因為不能透過修改 _main.php 去把b2evolution 1.9.2版中的「小月曆」中文化,所以在這裏說明針對「小月曆」中星期天數的英文來加以中文化的步驟。
要使b2evolution 1.9.2 中的「小月曆」中文化,則必須修改 _vars.inc.php 檔案才行。用UTF-8文字編輯器將下列檔案打開(假設你是使用custom這個skin),大約在檔案中的第180行左右。

/var/www/html/blogs/inc/_vars.inc.php

去修改此文字檔的內容.

// the weekdays short form (typically 3 letters)

// TRANS: abbrev. for Sunday

$weekday_abbrev[0] = NT_(’Sun’);

// TRANS: abbrev. for Monday

$weekday_abbrev[1] = NT_(’Mon’);

// TRANS: abbrev. for Tuesday

$weekday_abbrev[2] = NT_(’Tue’);

// TRANS: abbrev. for Wednesday

$weekday_abbrev[3] = NT_(’Wed’);

// TRANS: abbrev. for Thursday

$weekday_abbrev[4] = NT_(’Thu’);

// TRANS: abbrev. for Friday

$weekday_abbrev[5] = NT_(’Fri’);

// TRANS: abbrev. for Saturday

$weekday_abbrev[6] = NT_(’Sat’);
更改成

// TRANS: abbrev. for Sunday

$weekday_abbrev[0] = NT_(’日’);

// TRANS: abbrev. for Monday

$weekday_abbrev[1] = NT_(’一’);

// TRANS: abbrev. for Tuesday

$weekday_abbrev[2] = NT_(’二’);

// TRANS: abbrev. for Wednesday

$weekday_abbrev[3] = NT_(’三’);

// TRANS: abbrev. for Thursday

$weekday_abbrev[4] = NT_(’四’);

// TRANS: abbrev. for Friday

$weekday_abbrev[5] = NT_(’五’);

// TRANS: abbrev. for Saturday

$weekday_abbrev[6] = NT_(’六’);

再使用UTF-8文字編輯器將下列檔案打開下列檔案。

/var/www/html/blogs/plugins/_calendar.plugin.php

去修改此文字檔的內容.

for( $i = locale_startofweek(), $j = $i + 7; $i < $j; $i = $i + 1)
{
echo str_replace('[abbr]', T_($weekday[($i % 7)]), $this->headercellstart);
switch( $this->headerdisplay )
{
case ‘e’:
// e => ‘F’
echo T_($weekday_letter[($i % 7)]);
break;

case ‘l’:
// l (lowercase l) => ‘Friday’
echo T_($weekday[($i % 7)]);
break;

default: // Backward compatibility: any non emty value will display this
// D => ‘Fri’
echo T_($weekday_abbrev[($i % 7)]);
}
更改成
for( $i = locale_startofweek(), $j = $i + 7; $i < $j; $i = $i + 1)
{
echo str_replace('[abbr]', T_($weekday[($i % 7)]), $this->headercellstart);
switch( $this->headerdisplay )
{
case ‘e’:
// e => ‘F’
echo T_($weekday_letter[($i % 7)]);
break;

case ‘l’:
// l (lowercase l) => ‘Friday’
echo T_($weekday[($i % 7)]);
break;

default: // Backward compatibility: any non emty value will display this
// D => ‘Fri’
echo $weekday_abbrev[($i % 7)];
}

存檔後,就完成了「小月曆」的星期天數中文化。

想要在在 b2evolution 中的側邊欄(sidebar)中加入一張小照片,只要只要進入b2evolution 的後台管理畫面後,點選 Blog settings -> display 後,在 Long Description: 的方格中輸入下列文字即可。

〈center〉
〈img xsrc=”http://blog.nanaimoinn.com/img/blog/title_new/flicker-title.jpg”   alt=”工頭的家” title=”撲動鴷(Northern Flicker)” /〉
〈/center〉

工頭嘗試著將 b2evolution 由1.8.7版昇級到 1.9.2版時出了一個問題,會出現以下訊息而停止昇級的程序。

MySQL error!

Table ‘evo_item__prerendering’ already exists(Errno=1050)

Your query:

CREATE TABLE evo_item__prerendering(
itpr_itm_ID INT(11) UNSIGNED NOT NULL,
itpr_format ENUM(’htmlbody’, ‘entityencoded’, ‘xml’, ‘text’) NOT NULL,
itpr_renderers TEXT NOT NULL,
itpr_content_prerendered TEXT NULL,
itpr_datemodified TIMESTAMP NOT NULL,
PRIMARY KEY (itpr_itm_ID, itpr_format)
)

此時只要利用 phpMyAdmin 將 b2evolution 的資料庫中的 evo_item__prerendering 這個子資料庫刪除後,再重新進行昇級程序就可以成功的完成 b2evolution 由1.8.7版昇級到 1.9.2版了。

今天查看一下 b2evolution的官方網站發現己經出現了1.8.7版了,不過這個版本只是補強安全性的改版而己,但是為了網站的安全還是更新一下吧。

因為只有補強安全性的改版所以只要更新幾個檔案即可,不必大費周張的用昇級程式去昇級了。

先到 b2evolution的官方網站去下載下列這一個檔案,

upgrade-1.8.6-to-1.8.7.zip

在解壓縮後,將其中的 blogs 資料夾複製到 b2evolution 1.8.6版的 blogs 資料夾,自然就會把需要更新的舊檔案給覆蓋成新檔案了。

cp -R /upgrade-1.86-to-1.8.7/blogs /var/www/html/

檔案複製完成也就等於將 b2evolution 1.8.6版昇級到1.8.7版了。

在 b2evolution 1.8.6版預設中的側邊欄(sidebar)只能在「最新文章」或是「每月文章」二者之間選一個,但是工頭認為它們二者都很重要應該要一並出現在網頁以供網友們點選才是,所以以下是在 b2evolution 1.8.6版中的側邊欄(sidebar)加入顯示「最新文章」及「每月文章」旳功能。

b2-monthly.jpg

若要設定此一功能,就要修改_main.php此檔案,利用UTF-8文字編輯器或 vi 將下列檔案打開(假設你是使用custom這個skin)

/var/www/html/blogs/skins/custom/_main.php

依照以下步驟去修改此文字檔的內容.

將原本的

〈?php
// ————————– ARCHIVES INCLUDED HERE —————————–
// Call the Archives plugin:
$Plugins-〉call_by_code( ‘evo_Arch’, array(
) );
// ——————————– END OF ARCHIVES ———————————-
?〉

改成

〈?php
// ————————– ARCHIVES INCLUDED HERE —————————–
// Call the Archives plugin:
$Plugins-〉call_by_code( ‘evo_Arch’, array( ‘mode’ =〉 ‘postbypost’ ,’title’ =〉’〈h3〉’.T_(’最新文章’).’〈/h3〉’
) );
// ——————————– END OF ARCHIVES ———————————-
?〉

〈?php
// ————————– ARCHIVES INCLUDED HERE —————————–
// Call the Archives plugin:
$Plugins-〉call_by_code( ‘evo_Arch’, array( ‘mode’ =〉 ‘monthly’,'title’ =〉’〈h3〉’.T_(’每月文章’).’〈/h3〉’
) );
// ——————————– END OF ARCHIVES ———————————-
?〉

存檔後,就完成了修改,可以讓它在 b2evolution 1.8.6版中的側邊欄中加入「最新文章」及「每月文章」。

因為不能透過修改 _main.php 去把b2evolution 1.8.6版中的「小月曆」中文化,所以在這裏說明針對「小月曆」中星期天及月份的英文來加以中文化的步驟。

要使b2evolution 1.8.6 中的「小月曆」中文化,則必須修改 _vars.inc.php 檔案才行。用UTF-8文字編輯器將下列檔案打開(假設你是使用custom這個skin),大約在檔案中的第180行左右。

/var/www/html/blogs/inc/_vars.inc.php

去修改此文字檔的內容.

// the weekdays short form (typically 3 letters)
// TRANS: abbrev. for Sunday
$weekday_abbrev[0] = NT_(’Sun’);
// TRANS: abbrev. for Monday
$weekday_abbrev[1] = NT_(’Mon’);
// TRANS: abbrev. for Tuesday
$weekday_abbrev[2] = NT_(’Tue’);
// TRANS: abbrev. for Wednesday
$weekday_abbrev[3] = NT_(’Wed’);
// TRANS: abbrev. for Thursday
$weekday_abbrev[4] = NT_(’Thu’);
// TRANS: abbrev. for Friday
$weekday_abbrev[5] = NT_(’Fri’);
// TRANS: abbrev. for Saturday
$weekday_abbrev[6] = NT_(’Sat’);

更改成
// TRANS: abbrev. for Sunday
$weekday_abbrev[0] = NT_(’日’);
// TRANS: abbrev. for Monday
$weekday_abbrev[1] = NT_(’一’);
// TRANS: abbrev. for Tuesday
$weekday_abbrev[2] = NT_(’二’);
// TRANS: abbrev. for Wednesday
$weekday_abbrev[3] = NT_(’三’);
// TRANS: abbrev. for Thursday
$weekday_abbrev[4] = NT_(’四’);
// TRANS: abbrev. for Friday
$weekday_abbrev[5] = NT_(’五’);
// TRANS: abbrev. for Saturday
$weekday_abbrev[6] = NT_(’六’);

// the months
$month[’01′] = NT_(’January’);
$month[’02′] = NT_(’February’);
$month[’03′] = NT_(’March’);
$month[’04′] = NT_(’April’);
$month[’05′] = NT_(’May ‘);
$month[’06′] = NT_(’June’);
$month[’07′] = NT_(’July’);
$month[’08′] = NT_(’August’);
$month[’09′] = NT_(’September’);
$month[’10′] = NT_(’October’);
$month[’11′] = NT_(’November’);
$month[’12′] = NT_(’December’);

更改成

// the months
$month[’01′] = NT_(’元月’);
$month[’02′] = NT_(’二月’);
$month[’03′] = NT_(’三月’);
$month[’04′] = NT_(’四月’);
$month[’05′] = NT_(’五月’);
$month[’06′] = NT_(’六月’);
$month[’07′] = NT_(’七月’);
$month[’08′] = NT_(’八月’);
$month[’09′] = NT_(’九月’);
$month[’10′] = NT_(’十月’);
$month[’11′] = NT_(’十一月’);
$month[’12′] = NT_(’十二月’);

存檔後,就完成了「小月曆」中文化。

當我們在 b2evolution 1.8.6版中將網頁中的主標題設定為網站名稱而在副標題設定為主要分類名稱時,於是我們會發現在側邊欄(sidebar)的文章目錄的標題文字還是會維持預設的去顯示網站的主標題,我們必須要做一些修改才能讓它正確的顯示出主要分類名稱。

例如︰「工頭的家」是本網站的網站名稱,「營建知識Q&A」為本網站的主要分類名稱。

b2-arch.jpg

要使b2evolution 1.8.6 上修改佈景的側邊欄的文章目錄的標題文字則必須修改_categories.plugin.php檔案才行。用UTF-8文字編輯器將下列檔案打開(假設你是使用custom這個skin),大約在檔案中的第215行左右。

/var/www/html/blogs/plugins/_categories.plugin.php

去修改此文字檔的內容.

if( $this-〉params[’link_type’] == ‘context’ )
{ // We want to preserve current browsing context:
echo regenerate_url( ‘blog,cats,catsel’, ‘blog=’.$curr_blog_ID );
}
else
{
blog_list_iteminfo(’blogurl’);
}
echo ‘”〉’;
blog_list_iteminfo(’name’);
echo ‘ 〈/a〉’;
echo $params[’coll_end’];

更改成

if( $this-〉params[’link_type’] == ‘context’ )
{ // We want to preserve current browsing context:
echo regenerate_url( ‘blog,cats,catsel’, ‘blog=’.$curr_blog_ID );
}
else
{
blog_list_iteminfo(’blogurl’);
}
echo ‘”〉’;
blog_list_iteminfo(’tagline‘);
echo ‘ 〈/a〉’;
echo $params[’coll_end’];

存檔後,就完成了修改佈景的側邊欄的文章目錄的標題文字,可以讓它在每一個不同的側邊欄的文章目錄中去顯示正確的標題文字。

當我們在 b2evolution 1.8.6版中將網頁中的主標題設定為網站名稱而在副標題設定為主要分類名稱時,在每一個不同分類網頁的側邊欄(sidebar)的標題文字還是會維持預設的去顯示網站的主標題,於是我們必須去修改佈景的側邊欄的標題文字讓它在每一個不同的分類網頁的側邊欄(sidebar)的標題文字去顯示此網站的主要分類名稱。

例如︰「工頭的家」是本網站的網站名稱,「營建知識Q&A」為本網站的主要分類名稱。

b2-title.jpg

要使b2evolution 1.8.6 上修改佈景的側邊欄的標題文字則必須修改_main.php檔案才行。用UTF-8文字編輯器將下列檔案打開(假設你是使用custom這個skin)

/var/www/html/blogs/skins/custom/_main.php

去修改此文字檔的內容.

〈div class=”bSideItem”〉
〈h3〉〈?php $Blog-〉disp( ‘name’, ‘htmlbody’ ) ?〉〈/h3〉
〈p〉〈?php $Blog-〉disp( ‘longdesc’, ‘htmlbody’ ); ?〉〈/p〉

更改成

〈div class=”bSideItem”〉
〈h3〉〈?php $Blog-〉disp( ‘tagline‘, ‘htmlbody’ ) ?〉〈/h3〉
〈p〉〈?php $Blog-〉disp( ‘longdesc’, ‘htmlbody’ ); ?〉〈/p〉

存檔後,就完成了修改佈景的側邊欄的標題文字,可以讓它在每一個不同的分類網頁的側邊欄(sidebar)的標題文字去顯示此網站的主要分類名稱。

之前曾經介紹過在b2evolution的預設環境中,IE的標題列的內容會隨著我們選擇不同的BLOG而變化,為了統一顯示我們的網站名稱出現在標題列上,我們必須在b2evolution內做一些修改,但是那個方法並不是最好的方法,因為在標題列是解決了但是在各個分類的網頁上的標題依舊沒有出現網站的名稱。(如下圖所示)

b2_title

若要設定此一功能,就要修改_main.php此檔案.

用UTF-8文字編輯器將下列檔案打開(假設你是使用custom這個skin)

/var/www/html/blogs/skins/custom/_main.php

找到此檔案內容中的〈title〉後加上下列粗體文字內容即可.(大約在檔案中的第24行)

〈title〉〈?php
$Blog-〉disp(’name’, ‘htmlhead’);
request_title( ‘ - ‘, ”, ‘ - ‘, ‘htmlhead’ );
?〉〈/title〉

更改成

〈title〉〈?php
$Blog-〉disp(’name’, ‘htmlhead’);echo ‘ - ‘;
$Blog-〉disp( ‘tagline’, ‘htmlhead’ ) ;

request_title( ‘ - ‘, ”, ‘ - ‘, ‘htmlhead’ );
?〉〈/title〉

要修改之前應將_main.php此檔案備份,以免改錯了無法復元.

要使b2evolution 1.8.6 上顯示單篇文章時,不會出現 Post details: 這個字.必須修改_template.funcs.php檔案才行.

b2_postdetails.jpg
用UTF-8文字編輯器或vi將下列檔案打開

/var/www/html/blogs/inc/_misc/_template.funcs.php

在找到下列文字,去修改此文字檔的內容.

elseif( intval($p) )

{ // We are requesting a specific post by ID:

if( $Item = $ItemCache->get_by_ID( $p, false ) )

{

$r[] = T_(’Post details’).’: ‘.$Item->get(’title’);

}

}

elseif( !empty( $title ) )

{ // We are requesting a specific post by title:

if( $Item = $ItemCache->get_by_urltitle( $title, false ) )

{

$r[] = T_(’Post details’).’: ‘.$Item->get(’title’);

}
更改成
elseif( intval($p) )

{ // We are requesting a specific post by ID:

if( $Item = $ItemCache->get_by_ID( $p, false ) )

{

$r[] = T_(”).”.$Item->get(’title’);

}

}

elseif( !empty( $title ) )

{ // We are requesting a specific post by title:

if( $Item = $ItemCache->get_by_urltitle( $title, false ) )

{

$r[] = T_(”).”.$Item->get(’title’);

}

存檔後,就可以在b2evolution 1.8.6 上顯示單篇文章時,不會出現 Post details: 這個字了.

因為原本使用的 b2evolution到了1.6版以後對於中文的支援變得好奇怪喔!工頭昇級到 b2evolution 1.86 版後,己經轉好了資料庫的編碼由 latin1轉為 utf8,但是居然在 firefox 看中文是正常的,而用 IE 來看則中文全部成了亂碼。 shock

針對這個 b2evolution 1.86 版的中文亂碼問題,工頭終於在官方網站上找到解決的辦法,在這裏說明一下︰

若要完全解決 b2evolution 1.86 版的中文亂碼問題,就必須要修改 _locales.php 這一個檔案.

用UTF-8文字編輯器或 vi 將下列檔案打開

/var/www/html/blogs/conf/_locales.php

在第40行找到下列文字,去修改此文字檔的內容.

$evo_charset = ”;

改成

$evo_charset = ‘utf-8‘;

存檔後,就可以完全解決 b2evolution 1.86 版的中文亂碼問題了。

但若是 b2evolution 1.9.1 版則必須要修改以下文字檔的內容才行完全解決 b2evolution 1.9.1 版的中文亂碼問題。

$evo_charset = ”;

$force_io_charset_if_accepted = ”;

改成
$evo_charset = ‘utf-8‘;

$force_io_charset_if_accepted = ‘utf-8‘;

在b2evolution的索引建立程式記錄表中的預設內容並不會對來自 sogou 這個網站所透過程式(automated robots)所連結此 blog 的記錄來統計.所以我們如果要加入 sogou 這一項統計項目時,就要修改 _stats.php 此檔案.

用 vi 文字編輯器將下列檔案打開

/var/www/html/blogs/conf/_stats.php

在大約第123行就會見到下列文字,去修改此文字檔的內容,趁這個機會一次多加入幾個吧! shock

$user_agents = array(
// Robots:
array(’robot’, ‘Googlebot/’, ‘Google (Googlebot)’ ),
array(’robot’, ‘Slurp/’, ‘Inktomi (Slurp)’ ),

改成

$user_agents = array(
// Robots:
array(’robot’, ‘Googlebot/’, ‘Google (Googlebot)’ ),
array(’robot’, ’sogou spider’, ‘Sogou (Sogou spider)’ ),
array(’robot’, ‘ichiro/’, ‘goo.ne.jp (ichiro/)’ ),
array(’robot’, ‘YodaoBot/’, ‘Yodao (YodaoBot)’ ),
array(’robot’, ‘Baiduspider+’, ‘BaiDu (Spider+)’ ),
array(’robot’, ‘FurlBot/’, ‘furl.net (FurlBot/)’ ),

array(’robot’, ‘Slurp/’, ‘Inktomi (Slurp)’ ),

另外在大約第60行就會見到下列文字,去修改此文字檔的內容.

$search_engines = array(
‘google.’,
‘.hotbot.’,

改成
$search_engines = array(
‘google.’,
’sogou.’,
‘.hotbot.’,

如此就能讓 b2evolution 能夠針對來自 www.sogou.com 的搜索結果所連結到本網站的 log能加以記錄及統計。

b2-robot.jpg

下一頁 »