$link = mysql_connect( '機器', '帳號', '密碼') or die('failed to mysql_connect!.');
mysql_query('SET NAMES "utf8"', $link);
mysql_select_db('資料庫名') or die('Could not select database');
$query = "UPDATE node_revisions SET body = REPLACE(body, 'rel=\"lightbox\"', 'class=\"thickbox\"')";;
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
$query = "UPDATE node_revisions SET teaser = REPLACE(teaser, 'rel=\"lightbox\"', 'class=\"thickbox\"')";;
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
$querys = array();
$query = "SELECT nid, body FROM node_revisions WHERE body LIKE '%rel=\"lightbox[%'";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
$col_value = ereg_replace( "rel=\"lightbox\[([a-zA-Z0-9_]+)\]\"", "class=\"thickbox\" rel=\"\\1\"", $line['body'] );
$query = "UPDATE node_revisions SET `body` = \"" . mysql_real_escape_string($col_value, $link) . "\" WHERE nid = " . $line['nid'];
$querys[] = $query;
}
// Free resultset
mysql_free_result($result);
$query = "SELECT nid, teaser FROM node_revisions WHERE teaser LIKE '%rel=\"lightbox[%'";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
$col_value = ereg_replace( "rel=\"lightbox\[([a-zA-Z0-9_]+)\]\"", "class=\"thickbox\" rel=\"\\1\"", $line['teaser'] );
$query = "UPDATE node_revisions SET `teaser` = \"" . mysql_real_escape_string($col_value, $link) . "\" WHERE nid = " . $line['nid'];
回應
這種模組也有喔 -.-|||
這種模組也有喔 -.-||| 真是太好用了~
Re: Lightbox V2
It's very cool!!
Re: Lightbox V2
相對於 lightbox,我推薦使用 thickbox,thickbox 被實作出來,最主要的“原因“如下:
基於上述三個原因,已經開始著手把自己的網站,由原來的 lightbox 改為 thickbox 了 :)
ps. 這類的 box,可以參考這一篇 Lightbox 收集
Re: Lightbox V2
charlesc 的手腳好快。
在這邊提供一個自己寫的 .php,目的在把之前有用到 lightbox v2 的 node 的內文,轉為使用 thickbox。
<?
$link = mysql_connect( '機器', '帳號', '密碼') or die('failed to mysql_connect!.');
mysql_query('SET NAMES "utf8"', $link);
mysql_select_db('資料庫名') or die('Could not select database');
$query = "UPDATE node_revisions SET body = REPLACE(body, 'rel=\"lightbox\"', 'class=\"thickbox\"')";;
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
$query = "UPDATE node_revisions SET teaser = REPLACE(teaser, 'rel=\"lightbox\"', 'class=\"thickbox\"')";;
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
$querys = array();
$query = "SELECT nid, body FROM node_revisions WHERE body LIKE '%rel=\"lightbox[%'";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
$col_value = ereg_replace( "rel=\"lightbox\[([a-zA-Z0-9_]+)\]\"", "class=\"thickbox\" rel=\"\\1\"", $line['body'] );
$query = "UPDATE node_revisions SET `body` = \"" . mysql_real_escape_string($col_value, $link) . "\" WHERE nid = " . $line['nid'];
$querys[] = $query;
}
// Free resultset
mysql_free_result($result);
$query = "SELECT nid, teaser FROM node_revisions WHERE teaser LIKE '%rel=\"lightbox[%'";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
$col_value = ereg_replace( "rel=\"lightbox\[([a-zA-Z0-9_]+)\]\"", "class=\"thickbox\" rel=\"\\1\"", $line['teaser'] );
$query = "UPDATE node_revisions SET `teaser` = \"" . mysql_real_escape_string($col_value, $link) . "\" WHERE nid = " . $line['nid'];
$querys[] = $query;
}
// Free resultset
mysql_free_result($result);
$i=0;
foreach( $querys as $query ) {
$i++;
$r = mysql_query($query) or die('Query failed: ' . mysql_error());
}
echo $i;
// Closing connection
mysql_close($link);
?>
1. code 寫得很隨便,所以請謹慎使用。記得自行修改裏頭的中文部分。
2. code 沒用到任何 drupal 的東西,所以可以獨立執行,只要可以存取資料庫就好了。
3. 不考慮 table 有 prefix 的情況,有的話,得自行在 node_revisions 前加上。
4. 請偷偷執行,不要告訴別人你有這個 .php,最好是執行完後就砍了這個 .php。
5. 我的程式是假設你使用 mysql :p
6. 執行前,請記得備份你的資料庫,以免有個萬一時,還有得救。
7. 不曉得怎麼讓 node 的 teaser 自動與它的 body 做 sync,導致得分別對 body 和 teaser 兩個欄位都做一次處理,感覺有點笨。
8. mysql expression 有 replace, regular expression match,可惜沒有 regular expression replace。
9.
這個 tag 會吃掉 tab 和 space,感覺有點可惜(不過也可能是故意的?)
Re: Lightbox V2
> 7. 不曉得怎麼讓 node 的 teaser 自動與它的 body 做 sync,導致得分別對 body 和 teaser 兩個欄位都做一次處理,感覺有點笨。
沒差啦... :P
Re: Lightbox V2
好東西要趕快介紹:)
其實還有好多模組都沒介紹一下,粉可惜。
Re: Lightbox V2
good
Re: Lightbox V2
這個模塊我找了許久,終于給我找到了,不錯!
---------------------------------------
在牛逼的蕭邦,也彈不出老子的悲傷!
Re: Lightbox V2
想請問有關Lightbox2的應用
安裝完畢後台測試顯示也可以,但是要怎樣設定讓一般沒有權限的訪客,
也可以不用登入一樣有效果出現嗎??