[問題+分享]相簿藝廊的搜尋外掛

phpBB 2 MOD Support
無論是官方或非官方認證之外掛,安裝與使用問題討論。
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

yuei
星球公民
星球公民
文章: 93
註冊時間: 2005-12-20 22:14

[問題+分享]相簿藝廊的搜尋外掛

文章 yuei »

問題外掛:search_album
參考連結: http://smartor.is-root.com/viewtopic.php?p=52442#52442
使用版本:2.0.19
網站位置:無
狀況描述:

這是一個我幾天前去找到的搜尋相簿藝廊的外掛
試用後發現一個可大可小的問題

打開album_search.php
約在第97行的地方

代碼: 選擇全部

$sql = "SELECT p.pic_id, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_approval, c.cat_id, c.cat_title
FROM " . ALBUM_TABLE . ' AS p,' . ALBUM_CAT_TABLE . " AS c
WHERE p.pic_approval = 1 AND " . $where .  " LIKE '%" . $s . "%' AND p.pic_cat_id = c.cat_id OR p.pic_cat_id = 0 AND p.pic_approval = 1 AND " . $where .  " LIKE '%" . $s . "%' 
ORDER BY p.pic_time DESC";
這是原本的搜尋語法
問題是他loading怎麼那麼大

他把所有的相簿不管有沒有資料都列出來,有幾個分類就列幾次
隨便搜個會員都會列出600筆以上,然後當機

p.s.php頁面可能看不到資料量,把sql拿到phpmyadmin執行就知道多恐怖了


於是我做了一點修改

代碼: 選擇全部

                $sql = "SELECT p.pic_id, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_approval, c.cat_id, c.cat_title, u.user_nickname, u.username
                     FROM " . ALBUM_TABLE . " p
                     LEFT JOIN phpbb_album_cat c ON p.pic_cat_id = c.cat_id
                     LEFT JOIN phpbb_users u ON p.pic_username = u.username
                     WHERE " . $where .  " LIKE '%" . $s . "%' 
                     ORDER BY p.pic_time DESC";
我順便加了顯示會員暱稱的語法,雖然沒有列出一堆沒用的資料

但是~問題來了
他的loading還是很大
我的主機已經2次因為使用搜尋相簿當機了

單單一個搜尋照片的功能居然比phpbb搜尋文章loading還大
怎麼回事 :-o
順便請教
有沒有更好的SQL寫法優化這個mod? :-?
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8510
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

就我測試的結果, 搜尋還算正常.

只是我覺得 97 行這裡, 應該可以簡化如下:

代碼: 選擇全部

$sql = "SELECT p.pic_id, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_approval, c.cat_id, c.cat_title 
FROM " . ALBUM_TABLE . ' AS p,' . ALBUM_CAT_TABLE . " AS c 
WHERE p.pic_approval = 1 AND " . $where .  " LIKE '%" . $s . "%' AND p.pic_cat_id = c.cat_id 
ORDER BY p.pic_time DESC";
另外, 如果可以將查詢結果, 做分頁顯示, 將更理想. (尚在研究中...) :oops:
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
yuei
星球公民
星球公民
文章: 93
註冊時間: 2005-12-20 22:14

文章 yuei »

心靈捕手 寫:就我測試的結果, 搜尋還算正常.

只是我覺得 97 行這裡, 應該可以簡化如下:

代碼: 選擇全部

$sql = "SELECT p.pic_id, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_approval, c.cat_id, c.cat_title 
FROM " . ALBUM_TABLE . ' AS p,' . ALBUM_CAT_TABLE . " AS c 
WHERE p.pic_approval = 1 AND " . $where .  " LIKE '%" . $s . "%' AND p.pic_cat_id = c.cat_id 
ORDER BY p.pic_time DESC";
另外, 如果可以將查詢結果, 做分頁顯示, 將更理想. (尚在研究中...) :oops:
喔喔~真的嗎XD
可惜分頁寫法我還沒學會 :oops:
好期待..不然一次出來一堆照片也不是辦法

對了,捕手老師簡化過的語法無法搜尋到會員個人相簿的內容
也就是cat_id = 0的資料 :-o
最後由 yuei 於 2006-10-13 02:19 編輯,總共編輯了 1 次。
頭像
kkt
竹貓忠實會員
竹貓忠實會員
文章: 625
註冊時間: 2005-06-15 01:37
來自: H.K.
聯繫:

文章 kkt »

跑去看了那 search_album 討論串, 還是未知有何用處的呢?

是相簿藝廊的外加插件功能嗎?


.
舊站台經已結朿了, 學生們可到遊戲站玩玩 Flash Game (不必註冊) 免費 Flash Game
在此學到很多架站知識, 永遠多謝:
心靈捕手老師, ~倉木麻衣~, 依夢兒 及 神川小羽各位大大相助
yuei
星球公民
星球公民
文章: 93
註冊時間: 2005-12-20 22:14

文章 yuei »

kkt 寫:跑去看了那 search_album 討論串, 還是未知有何用處的呢?

是相簿藝廊的外加插件功能嗎?


.
就是增加album_moc讓他有搜尋照片功能 :-o
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8510
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

yuei 寫:
心靈捕手 寫:就我測試的結果, 搜尋還算正常.

只是我覺得 97 行這裡, 應該可以簡化如下:

代碼: 選擇全部

$sql = "SELECT p.pic_id, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_approval, c.cat_id, c.cat_title 
FROM " . ALBUM_TABLE . ' AS p,' . ALBUM_CAT_TABLE . " AS c 
WHERE p.pic_approval = 1 AND " . $where .  " LIKE '%" . $s . "%' AND p.pic_cat_id = c.cat_id 
ORDER BY p.pic_time DESC";
另外, 如果可以將查詢結果, 做分頁顯示, 將更理想. (尚在研究中...) :oops:
喔喔~真的嗎XD
可惜分頁寫法我還沒學會 :oops:
好期待..不然一次出來一堆照片也不是辦法

對了,捕手老師簡化過的語法無法搜尋到會員個人相簿的內容
也就是cat_id = 0的資料 :-o
如果您的論壇, 允許會員建立個人相簿, 而且也沒有設成保密性質的話,
也就是說, 沒有設定 '只有群組會員有建立或觀看個人相簿的權限',
那麼, 的確是使用原來 (原始的) 的語法比較妥當.

否則, 因為它的搜尋語法, 並沒有加入任何權限的判斷,
所以恐怕還是會產生一些弊端, 如: 有搜尋到個人相簿的圖片, 卻沒有權限觀看.

分頁的語法, 我一直沒有辦法搞定. :oops:
期待有其他的大大有興趣, 一同研究看看.

茲將相關外掛連結條列如下:
// 相簿藝廊
http://smartor.is-root.com/viewtopic.php?t=3021
// 相簿藝廊 (附加外掛) 圖片搜尋
http://www.ekopapers.com/progr/searchalbum.rar
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8510
註冊時間: 2004-04-30 01:54
來自: Taiwan

[分享] 圖片搜尋結果以 '分頁' 顯示的相關修改

文章 心靈捕手 »

前言:

此修改的前提是, 您必須已經安裝下列兩個外掛, 而且運作正常.
// 相簿藝廊
http://smartor.is-root.com/viewtopic.php?t=3021
// 相簿藝廊 (附加外掛) 圖片搜尋
http://www.ekopapers.com/progr/searchalbum.rar


修改:

#
#-----[ OPEN ]-----
#
album_search.php

#
#-----[ FIND ]-----
#

代碼: 選擇全部

$sql = "SELECT p.pic_id, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_approval, c.cat_id, c.cat_title
#
#-----[ BEFORE, ADD ]-----
#

代碼: 選擇全部

                // + 分頁
                 $pics_per_page = 10;// 設定每頁顯示的圖片數量
                $start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;
                $order_by = "p.pic_time DESC LIMIT $start, " . $pics_per_page;
                $count_sql = "SELECT COUNT(pic_id) AS count
                                FROM " . ALBUM_TABLE . ' AS p,' . ALBUM_CAT_TABLE . " AS c
                                WHERE p.pic_approval = 1 AND " . $where .  " LIKE '%" . $s . "%' AND p.pic_cat_id = c.cat_id OR p.pic_cat_id = 0 AND p.pic_approval = 1 AND " . $where .  " LIKE '%" . $s . "%'";
			
                if( !($result = $db->sql_query($count_sql)) )
                {
                        message_die(GENERAL_ERROR, '無法統計圖片數量', __LINE__, __FILE__, $count_sql);
                }

                $row = $db->sql_fetchrow($result);
                $total_pics = $row['count'];
                $pagination = generate_pagination("album_search." . $phpEx . "?mode=" . $m . "&search=" . $s, $total_pics, $pics_per_page, $start);
                // - 分頁
#
#-----[ FIND ]-----
#

代碼: 選擇全部

ORDER BY p.pic_time DESC";
#
#-----[ REPLACE WITH ]-----
#

代碼: 選擇全部

ORDER BY $order_by";
#
#-----[ FIND ]-----
#

代碼: 選擇全部

'L_NRESULTS' => $numres,
#
#-----[ REPLACE WITH ]-----
#

代碼: 選擇全部

//'L_NRESULTS' => $numres,
#
#-----[ FIND ]-----
#

代碼: 選擇全部

        }
        else
        {
                $template->assign_block_vars('switch_search', array());
        }
#
#-----[ AFTER, ADD ]-----
#

代碼: 選擇全部

        // + 分頁
        $template->assign_vars(array(
                'L_NRESULTS' => $total_pics,
                'PAGINATION' => $pagination,
                'PAGE_NUMBER' => sprintf($lang['Page_of'], (floor($start / $pics_per_page) + 1), ceil($total_pics / $pics_per_page))
        ));
        // - 分頁 
#
#-----[ OPEN ]-----
#
templates/YOUR_THEME/album_search_body.tpl

#
#-----[ FIND ]-----
#

代碼: 選擇全部

<!-- BEGIN switch_search_results -->
<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
  <tr> 
	<td><span class="maintitle">Search found {L_NRESULTS} matches</span><br /></td>
  </tr>
  <tr> 
	<td><span class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a></span></td>
  </tr>
</table>
#
#-----[ REPLACE WITH ]-----
#

代碼: 選擇全部

<!-- BEGIN switch_search_results -->
<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
  <tr> 
	<td><span class="maintitle">Search found {L_NRESULTS} matches</span><br /></td>
  </tr>
  <tr> 
	<td><span class="nav">{PAGE_NUMBER}</span></td>
	<td align="right"><span class="nav">{PAGINATION}</span></td>
  </tr>
</table>
#
#-----[ SAVE & CLOSE ]-----
#
#End


後記:

目前已知的缺失:
若查詢的關鍵字為中文的話, 則相關網址會以亂碼顯示, 導致分頁顯示的連結失效.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
頭像
kkt
竹貓忠實會員
竹貓忠實會員
文章: 625
註冊時間: 2005-06-15 01:37
來自: H.K.
聯繫:

文章 kkt »

老師又成功加設分頁, 讚喔..!!

未知可否進一步把搜尋個人圖檔的連結, 加在viewtopic_body.tpl 內的頭像中.
因為我曾經在一論壇見有此功能, 又未尋得有關外掛或修改方法.

但如裝有虛擬形象的, 修改可能將更複雜, 我曾嘗試未有成功.. :oops:




.
舊站台經已結朿了, 學生們可到遊戲站玩玩 Flash Game (不必註冊) 免費 Flash Game
在此學到很多架站知識, 永遠多謝:
心靈捕手老師, ~倉木麻衣~, 依夢兒 及 神川小羽各位大大相助
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8510
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

kkt 寫:老師又成功加設分頁, 讚喔..!!

未知可否進一步把搜尋個人圖檔的連結, 加在viewtopic_body.tpl 內的頭像中.
因為我曾經在一論壇見有此功能, 又未尋得有關外掛或修改方法.

但如裝有虛擬形象的, 修改可能將更複雜, 我曾嘗試未有成功.. :oops:




.
建議您:
補充 (舉例) 說明, 何謂 '搜尋個人圖檔'?
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
頭像
kkt
竹貓忠實會員
竹貓忠實會員
文章: 625
註冊時間: 2005-06-15 01:37
來自: H.K.
聯繫:

文章 kkt »

找得很辛苦, 終於給我找到這站的連結了,
他的相簿做得真不錯, 是我所見最好的.
我是指可以在文章頁面, 點擊 頭像 連結到個人相簿.

參考連結:

http://www.hkwei.com/phpBB/viewtopic.ph ... 832#625832






.
舊站台經已結朿了, 學生們可到遊戲站玩玩 Flash Game (不必註冊) 免費 Flash Game
在此學到很多架站知識, 永遠多謝:
心靈捕手老師, ~倉木麻衣~, 依夢兒 及 神川小羽各位大大相助
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8510
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

kkt 寫:找得很辛苦, 終於給我找到這站的連結了,
他的相簿做得真不錯, 是我所見最好的.
我是指可以在文章頁面, 點擊 頭像 連結到個人相簿.

參考連結:

http://www.hkwei.com/phpBB/viewtopic.ph ... 832#625832






.
這個論壇使用的相簿是 CPG 版本, 而非 Photo Album 版本.

不過, 您的需求-點擊 頭像 連結到個人相簿-應該不難辦到.
因為 Photo Album 版本, 若有允許會員建立個人相簿的話,則可在檢視會員資料處, 出現一個觀看會員個人相簿的連結. 所以, 只要參考 includes/usercp_viewprofile.php 的相關語法, 修改在 viewtopic.php 即可.

稍後, 我會抽空試試.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
yuei
星球公民
星球公民
文章: 93
註冊時間: 2005-12-20 22:14

文章 yuei »

老師強到掉渣渣 8-)
好棒呀XD
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8510
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

kkt 寫:老師又成功加設分頁, 讚喔..!!

未知可否進一步把搜尋個人圖檔的連結, 加在viewtopic_body.tpl 內的頭像中.
因為我曾經在一論壇見有此功能, 又未尋得有關外掛或修改方法.

但如裝有虛擬形象的, 修改可能將更複雜, 我曾嘗試未有成功.. :oops:




.
以下的修改, 提供您參考:
#
#-----[ OPEN ]-----
#
viewtopic.php

#
#-----[ FIND ]-----
#

代碼: 選擇全部

		'U_POST_ID' => $postrow[$i]['post_id'])
#
#-----[ BEFORE, ADD ]-----
#

代碼: 選擇全部

		'U_PERSONAL_GALLERY' => append_sid("album_personal.$phpEx?user_id=" . $postrow[$i]['user_id']),
		'L_PERSONAL_GALLERY' => sprintf($lang['Personal_Gallery_Of_User'], $postrow[$i]['username']),
#
#-----[ OPEN ]-----
#
templates/YOUR_THEME/viewtopic_body.tpl

#
#-----[ FIND ]-----
#

代碼: 選擇全部

{postrow.POSTER_AVATAR}
#
#-----[ REPLACE WITH ]-----
#

代碼: 選擇全部

<a href="{postrow.U_PERSONAL_GALLERY}" title="{postrow.L_PERSONAL_GALLERY}">{postrow.POSTER_AVATAR}</a>
#
#-----[ SAVE & CLOSE ]-----
#

ps.
發現若個人頭像為 '虛擬形象' 則無法正常連結;
暫時應變如下:
#
#-----[ OPEN ]-----
#
templates/YOUR_THEME/viewtopic_body.tpl

#
#-----[ FIND ]-----
#

代碼: 選擇全部

{postrow.POSTER_AVATAR}
#
#-----[ REPLACE WITH ]-----
#

代碼: 選擇全部

<a href="{postrow.U_PERSONAL_GALLERY}" title="{postrow.L_PERSONAL_GALLERY}">{postrow.POSTER_AVATAR}<br><span class="postdetails">參觀個人相簿</span></a>
#
#-----[ SAVE & CLOSE ]-----
#
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
頭像
kkt
竹貓忠實會員
竹貓忠實會員
文章: 625
註冊時間: 2005-06-15 01:37
來自: H.K.
聯繫:

文章 kkt »

多謝老師指教, 這個變通已可達到目的.

而我就不曉變通一下, 以為根據連結會員名稱查看個人資料的語法.
依樣葫蘆的去把個人頭像及虛擬形象中的一段包起來. 就是失敗.

在這段中給他連結也可以的, 但就是無法連結虛擬形象. 現在更好, 感謝!!

代碼: 選擇全部

	case USER_AVATAR_GALLERY:
				$poster_avatar = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $board_config['avatar_gallery_path'] . '/' . $postrow[$i]['user_avatar'] . '" OnError=this.src="'.  $images['default_avatar'] .'" alt="" border="0" />' : '';
				break;
舊站台經已結朿了, 學生們可到遊戲站玩玩 Flash Game (不必註冊) 免費 Flash Game
在此學到很多架站知識, 永遠多謝:
心靈捕手老師, ~倉木麻衣~, 依夢兒 及 神川小羽各位大大相助
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8510
註冊時間: 2004-04-30 01:54
來自: Taiwan

[分享] 將搜尋結果加入縮圖預覽, 圖片描述

文章 心靈捕手 »

修改前提: (請參考此文)
http://phpbb-tw.net/phpbb/viewtopic.php?p=247578#247578

#
#-----[ OPEN ]-----
#
album_search.php

#
#-----[ FIND ]-----
#

代碼: 選擇全部

							'U_PIC' => ($album_config['fullpic_popup'] == 1) ? append_sid(album_append_uid('album_pic.' . $phpEx . '?pic_id=' . $row['pic_id'])) : append_sid(album_append_uid('album_showpage.' . $phpEx . '?pic_id=' . $row['pic_id'])),
#
#-----[ AFTER, ADD ]-----
#

代碼: 選擇全部

							'THUMBNAIL' => append_sid('album_thumbnail.' . $phpEx . '?pic_id=' . $row['pic_id']),
							'DESC' => $row['pic_desc'],
#
#-----[ OPEN ]-----
#
templates/subSilver/album_search_body.tpl

#
#-----[ FIND ]-----
#

代碼: 選擇全部

	<td class="row1" align="center" valign="middle"><img src="templates/subSilver/images/folder.gif" /></td>
#
#-----[ REPLACE WITH ]-----
#

代碼: 選擇全部

	<td class="row1" align="center" valign="middle"><a href="{switch_search_results.search_results.U_PIC}" class="genmed"><img src="{switch_search_results.search_results.THUMBNAIL}" alt="{switch_search_results.search_results.DESC}" border="0" /></a></td>
#
#-----[ SAVE & CLOSE ]-----
#
#END
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
主題已鎖定

回到「外掛問題討論」