外掛描述: Attachment Mod 不能於指定位置顯示圖片不太方便.
這外掛為 Attachment Mod 加入 "插入附件到文章" 功能.
例如: 附件檔為 abc.jpg, 按"插入到文章" 按鈕後,
圖片便會於文章中以 BBCode 形式出現 (img 標籤)
對於貼圖愛好者或寫教學文件應該很有用.
外掛特點:
- 上載圖像附件後, 按 "插入附件到文章" (Insert Into Post) 按鈕,
便可於文章中指定地方顯示\r
- 插入其他類型的附件, 則以超連結顯示
- 所有插入的附件, 都不會重覆於文章底部顯示出來
適用的 phpBB 版本:
- 只於 phpBB 2.0.17 測試過可行
適用的 Attachment Mod 版本:
- 只於 Attachment Mod v2.3.14 測試過可行
代碼: 選擇全部
##############################################################
## MOD Title: Insert Attachment Into Post for File Attachment Mod v2.3
## MOD Author: Belton < N/A > http://
## MOD Description: Show image attachment and insert other attachments as URL at anywhere of message
## MOD Version: 1.0.3
##
## Installation Level: Intermediate
## Installation Time: 10 Minutes
## Files To Edit: 6
## display.php
## posting_attachments.php
## viewtopic.php
## language/lang_english/lang_main_attach.php
## templates/subSilver/posting_body.tpl
## templates/subSilver/posted_attachments_body.tpl
##
## Included Files: None
##
##############################################################
## Author Notes:
##
## This is my first time to write Mod,
## please do let me know if you think this Mod can be
## improved in any way.
##
##############################################################
## MOD History:
##
## 2006-02-07 - Version 1.0.3
## - Code fix
##
## 2005-12-15 - Version 1.0.2
## - Code fix
##
## 2005-11-29 - Version 1.0.0
## - First release
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################
#
#-----[ OPEN ]---------------------------------------------
#
templates/subSilver/posting_body.tpl
#
#-----[ FIND ]---------------------------------------------
#
function emoticon(text) {
#
#-----[ BEFORE, ADD ]--------------------------------------
#
function inserturl(fileName, showImg) {
var fileDotPos = fileName.lastIndexOf('.');
if (fileDotPos != -1 && fileDotPos < fileName.length) {
var fileExt = fileName.substring(fileDotPos + 1).toLowerCase();
var url = 'http:\/\/' + location.hostname + '/phpBB/files/' + fileName;
if (showImg == true) {
if (fileExt == 'jpg' || fileExt == 'jpeg' || fileExt == 'gif' || fileExt == 'png') {
url = '\[img\]' + url + '\[\/img\]';
}
}
url = url + '
';
if (document.post.message.createTextRange && document.post.message.caretPos) {
var caretPos = document.post.message.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? url + ' ' : url;
} else {
document.post.message.value += url;
}
}
}
#
#-----[ OPEN ]---------------------------------------------
#
templates/subSilver/posted_attachments_body.tpl
#
#-----[ FIND ]---------------------------------------------
#
<!-- BEGIN attach_row -->
<tr>
<td class="row1"><span class="gen"><b>{L_FILE_NAME}</b></span></td>
<td class="row2"><span class="gen"> <a class="gen" href="{attach_row.U_VIEW_ATTACHMENT}" target="_blank">{attach_row.FILE_NAME}</a></span>
</td>
</tr>
#
#-----[ IN-LINE FIND ]-------------------------------------
#
{attach_row.FILE_NAME}</a>
#
#-----[ AFTER, ADD ]---------------------------------------
#
<input type="button" onclick="inserturl('{attach_row.ATTACH_FILENAME}', true)" name="inserturlbtn" value="{L_INSERT_URL}" class="liteoption" />
#
#-----[ OPEN ]---------------------------------------------
#
posting_attachments.php
#
#-----[ FIND ]---------------------------------------------
#
$template->assign_vars(array(
'L_POSTED_ATTACHMENTS' => $lang['Posted_attachments'],
#
#-----[ AFTER, ADD ]---------------------------------------
#
'L_INSERT_URL' => $lang['Insert_attach_into_post'],
#
#-----[ OPEN ]---------------------------------------------
#
language/lang_english/lang_main_attach.php
#
#-----[ FIND ]---------------------------------------------
#
?>
#
#-----[ BEFORE, ADD ]---------------------------------------
#
$lang['Insert_attach_into_post'] = 'Insert Into Post';
#
#-----[ OPEN ]---------------------------------------------
#
display.php
#
#-----[ FIND ]---------------------------------------------
#
$attachments = array();
#
#-----[ AFTER, ADD ]---------------------------------------
#
$post_text = '';
#
#-----[ FIND ]---------------------------------------------
#
//
// Generate the Display Assign File Link
//
#
#-----[ BEFORE, ADD ]--------------------------------------
#
function get_post_text($message)
{
global $post_text;
$post_text = $message;
}
#
#-----[ FIND ]---------------------------------------------
#
if (!$denied
#
#-----[ BEFORE, ADD ]--------------------------------------
#
// Hide attachments that are inserted into post
if (stristr($post_text, $filename)){
$denied = true;
}
#
#-----[ FIND ]---------------------------------------------
# around line 745
if (!$denied
#
#-----[ BEFORE, ADD ]--------------------------------------
#
// Hide attachments that are inserted into post
if (stristr($post_text, $filename)){
$denied = true;
}
#
#-----[ OPEN ]---------------------------------------------
#
viewtopic.php
#
#-----[ FIND ]---------------------------------------------
#
display_post_attachments($postrow[$i]['post_id'], $postrow[$i]['post_attachment']);
#
#-----[ BEFORE, ADD ]---------------------------------------
#
get_post_text($message);
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
1.
language/lang_english/lang_main_attach.php
改成
language/lang_chinese_traditional_taiwan/lang_main_attach.php
2.
$lang['Insert_attach_into_post'] = 'Insert Into Post';
改成
$lang['Insert_attach_into_post'] = '插入附件到文章';
小弟第一次寫外掛, 請多多指教!
多謝 Garfield 及草兄弟建議的修正!
而修改的檔案, 如果您沒有 display.php 及 posting_attachments.php,
那便將:
display.php >改成> attach_mod/displaying.php
posting_attachments.php >改成> attach_mod/posting_attachments.php
另外, 如果你不是使用預設的路徑: /phpBB/
請把 '/phpBB/files/' 要改成自己的網站的路徑
例如路徑是 /forum/, 那便改成: '/forum/files/' (如 Attachment Mod 的路徑沒被改動, 預設便是 /files/ )