[外掛] Insert Attachment Into Post v1.0.3 (AttachMod v2.3.14)

MODs Released by Other phpbb Sites
非官方認證通過之 MOD ,或許有安全性之疑慮,所有問題由原發表者回覆!

版主: 版主管理群

主題已鎖定
belton2
星球普通子民
星球普通子民
文章: 14
註冊時間: 2005-11-21 15:59

[外掛] Insert Attachment Into Post v1.0.3 (AttachMod v2.3.14)

文章 belton2 »

外掛名稱: Insert Attachment Into Post v1.0.3 (插入圖像附件到文章指定地方)

外掛描述: 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 ]---------------------------------------
# 
&nbsp;&nbsp;&nbsp;<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/ )
主題已鎖定

回到「非官方認證外掛」