sorry, war mal ein paar Tage nicht hier *g* Wenn Ihr euch noch ein paar Stunden gedulden könnt dann packe ich das als Mod zusammen und stelle es hier on
Das Drop-Down menü ist noch nicht eingebaut aber ich denke mal das ich es nachher noch packen sollte. Ein Zwang ist es nicht also kann auch leer bleiben. Zur Zeit ist halt noch ein Text-Feld drin.
Falls jmd nen Hinweis hat falls etwas verbessert werden könnte dann einfach hier her schreiben
Code: Alles auswählen
##############################################################
## MOD Title: Move Message Mod Addon Grund Angabe
## MOD Author: Leuchte < mail@leuchte.net > http://www.leuchte.net Addon by Mavo460
## MOD Description: Addon zum Move Message Mod welchen eine Angabe von Gründen ermöglicht
## MOD Version: 3.0.3 Addon 1.0
## Installation Level: Easy
## Installation Time: < 10 Minutes
## Files To Edit: 7
## language/lang_german/lang_main.php
## modcp.php
## viewtopic.php
## templates/subSilver/viewtopic_body.tpl
## templates/subSilver/modcp_move.tpl
## templates/subSilver/modcp_split.tpl
## move_messag_mod.php
## Included Files: 0
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################
## MOD History:
##
## 2006-06-18 - Initial Release
##
##############################################################
#
#-----[ SQL ]------------------------------------------
ALTER TABLE `phpbb_topic_moved` ADD `moved_reason` TEXT NOT NULL ;
#
#-----[ OPEN ]------------------------------------------
#
language/lang_german/lang_main.php
#
#-----[ FIND ]------------------------------------------
#
$lang['Move_move_message'] = 'Verschoben: <b>%s</b> Uhr von <b>%s</b><br>Von <b>%s</b> nach <b>%s</b>';
$lang['Move_lock_message'] = 'Gesperrt: <b>%s</b> Uhr von <b>%s</b>';
$lang['Move_unlock_message'] = 'Entsperrt: <b>%s</b> Uhr von <b>%s</b>';
$lang['Move_split_message'] = 'Gesplittet: <b>%s</b> Uhr von <b>%s</b><br>Von Beitrag <b>%s</b> aus dem Forum <b>%s</b>';
#
#-----[ REPLACE WITH ]------------------------------------------
#
$lang['Move_move_message'] = 'Verschoben: <b>%s</b> Uhr von <b>%s</b><br>Von <b>%s</b> nach <b>%s</b> Grund: <b>%s</b>';
$lang['Move_lock_message'] = 'Gesperrt: <b>%s</b> Uhr von <b>%s</b>';
$lang['Move_unlock_message'] = 'Entsperrt: <b>%s</b> Uhr von <b>%s</b>';
$lang['Move_split_message'] = 'Gesplittet: <b>%s</b> Uhr von <b>%s</b><br>Von Beitrag <b>%s</b> aus dem Forum <b>%s</b> Grund: <b>%s</b>';
#
#-----[ OPEN ]------------------------------------------
#
modcp.php
#
#-----[ FIND ]------------------------------------------
#
$lock = ( isset($HTTP_POST_VARS['lock']) ) ? TRUE : FALSE;
$unlock = ( isset($HTTP_POST_VARS['unlock']) ) ? TRUE : FALSE;
#
#-----[ AFTER, ADD ]------------------------------------------
#
$reason = ( isset($HTTP_POST_VARS['move_text']) ) ? $HTTP_POST_VARS['move_text'] : false;
#
#-----[ FIND ]------------------------------------------
#
'MESSAGE_TITLE' => $lang['Confirm'],
'MESSAGE_TEXT' => $lang['Confirm_delete_topic'],
#
#-----[ AFTER, ADD ]------------------------------------------
#
'MESSAGE_TEXT_REASON' => $lang['Text_reason'],
#
#-----[ FIND ]------------------------------------------
#
move_message_mod($row[$i]['topic_id'], '', 'move', $old_forum_id, $new_forum_id, $userdata['user_id']);
#
#-----[ REPLACE WITH ]------------------------------------------
#
move_message_mod($row[$i]['topic_id'], '', 'move', $old_forum_id, $new_forum_id, $userdata['user_id'], $reason);
#
#-----[ FIND ]------------------------------------------
#
move_message_mod($new_topic_id, $topic_id, 'split', $forum_id, '', $userdata['user_id']);
#
#-----[ REPLACE WITH ]------------------------------------------
#
move_message_mod($new_topic_id, $topic_id, 'split', $forum_id, '', $userdata['user_id'], $reason);
#
#-----[ FIND ]------------------------------------------
#
'L_UNMARK_ALL' => $lang['Unmark_all'],
'L_POST' => $lang['Post'],
#
#-----[ AFTER, ADD ]------------------------------------------
#
'MESSAGE_TEXT_REASON' => $lang['Text_reason'],
#
#-----[ OPEN ]------------------------------------------
#
viewtopic.php
#
#-----[ FIND ]------------------------------------------
#
// Move Message
if($postrow[$i]['post_move'] == 1)
{
$sql = "SELECT moved_type
FROM ". MOVED_TABLE ."
WHERE last_post_id = '". $postrow[$i]['post_id'] ."'
ORDER BY moved_id DESC LIMIT 1";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, 'Could not get moved type', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$moved_type = $row['moved_type'];
if($moved_type == "move")
{
$select = "mv.moved_time, mv.last_post_id, f.forum_name AS forumparent, f2.forum_name AS forumtarget, u.username";
$from = "". MOVED_TABLE ." mv, ". FORUMS_TABLE ." f, ". FORUMS_TABLE ." f2, ". USERS_TABLE ." u ";
$where = "mv.last_post_id = '". $postrow[$i]['post_id'] ."'
AND mv.moved_parent = f.forum_id
AND mv.moved_target = f2.forum_id
AND mv.moved_mod = u.user_id";
}
if($moved_type == "split")
{
$select = "mv.moved_time, mv.last_post_id, f.forum_name as forumparent, t.topic_title, u.username";
$from = "". MOVED_TABLE ." mv, ". TOPICS_TABLE ." t, ". FORUMS_TABLE ." f, ". USERS_TABLE ." u ";
$where = "mv.last_post_id = '". $postrow[$i]['post_id'] ."'
AND mv.moved_parent = f.forum_id
AND mv.moved_oldtopic_id = t.topic_id
AND mv.moved_mod = u.user_id";
}
if($moved_type == "lock" || $moved_type == "unlock")
{
$select = "mv.moved_time, mv.last_post_id, u.username";
$from = "". MOVED_TABLE ." mv, ". USERS_TABLE ." u ";
$where = "mv.last_post_id = '". $postrow[$i]['post_id'] ."'
AND mv.moved_mod = u.user_id";
}
if($moved_type)
{
$sql = "SELECT $select
FROM $from
WHERE $where
ORDER BY mv.moved_time DESC LIMIT 1";
if ( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not get main move information', '', __LINE__, __FILE__, $sql);
}
$moved = $db->sql_fetchrow($result);
}
$mini_icon = $images['icon_minipost'];
$move_date = create_date($board_config['default_dateformat'], $moved['moved_time'], $board_config['board_timezone']);
$mover = $moved['username'];
$parent_topic = $moved['topic_title'];
$parent_forum = $moved['forumparent'];
$target_forum = $moved['forumtarget'];
if($moved_type == "move")
{
$move_message = sprintf($lang['Move_move_message'], $move_date, $mover, $parent_forum, $target_forum);
}
if($moved_type == "lock")
{
$move_message = sprintf($lang['Move_lock_message'], $move_date, $mover);
}
if($moved_type == "unlock")
{
$move_message = sprintf($lang['Move_unlock_message'], $move_date, $mover);
}
if($moved_type == "split")
{
$move_message = sprintf($lang['Move_split_message'], $move_date, $mover, $parent_topic, $parent_forum);
}
if($moved['last_post_id'] == $postrow[$i]['post_id'])
{
$template->assign_block_vars('postrow.move_message', array(
'MOVE_MESSAGE' => '<img src="'.$mini_icon.'" border="0" />'.$move_message)
);
}
else
{
$template->assign_block_vars('postrow.switch_spacer', array());
}
}// Move Message
#
#-----[ REPLACE WITH ]------------------------------------------
#
// Move Message
if($postrow[$i]['post_move'] == 1)
{
$sql = "SELECT moved_type
FROM ". MOVED_TABLE ."
WHERE last_post_id = '". $postrow[$i]['post_id'] ."'
ORDER BY moved_id DESC LIMIT 1";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, 'Could not get moved type', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$moved_type = $row['moved_type'];
if($moved_type == "move")
{
$select = "mv.moved_time, mv.last_post_id, mv.reason, f.forum_name AS forumparent, f2.forum_name AS forumtarget, u.username";
$from = "". MOVED_TABLE ." mv, ". FORUMS_TABLE ." f, ". FORUMS_TABLE ." f2, ". USERS_TABLE ." u ";
$where = "mv.last_post_id = '". $postrow[$i]['post_id'] ."'
AND mv.moved_parent = f.forum_id
AND mv.moved_target = f2.forum_id
AND mv.moved_mod = u.user_id";
}
if($moved_type == "split")
{
$select = "mv.moved_time, mv.last_post_id, mv.reason, f.forum_name as forumparent, t.topic_title, u.username";
$from = "". MOVED_TABLE ." mv, ". TOPICS_TABLE ." t, ". FORUMS_TABLE ." f, ". USERS_TABLE ." u ";
$where = "mv.last_post_id = '". $postrow[$i]['post_id'] ."'
AND mv.moved_parent = f.forum_id
AND mv.moved_oldtopic_id = t.topic_id
AND mv.moved_mod = u.user_id";
}
if($moved_type == "lock" || $moved_type == "unlock")
{
$select = "mv.moved_time, mv.last_post_id, mv.reason, u.username";
$from = "". MOVED_TABLE ." mv, ". USERS_TABLE ." u ";
$where = "mv.last_post_id = '". $postrow[$i]['post_id'] ."'
AND mv.moved_mod = u.user_id";
}
if($moved_type)
{
$sql = "SELECT $select
FROM $from
WHERE $where
ORDER BY mv.moved_time DESC LIMIT 1";
if ( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not get main move information', '', __LINE__, __FILE__, $sql);
}
$moved = $db->sql_fetchrow($result);
}
$mini_icon = $images['icon_minipost'];
$move_date = create_date($board_config['default_dateformat'], $moved['moved_time'], $board_config['board_timezone']);
$mover = $moved['username'];
$parent_topic = $moved['topic_title'];
$parent_forum = $moved['forumparent'];
$target_forum = $moved['forumtarget'];
$grund = $moved['reason'];
if($moved_type == "move")
{
$move_message = sprintf($lang['Move_move_message'], $move_date, $mover, $parent_forum, $target_forum, $grund);
}
if($moved_type == "lock")
{
$move_message = sprintf($lang['Move_lock_message'], $move_date, $mover, $grund);
}
if($moved_type == "unlock")
{
$move_message = sprintf($lang['Move_unlock_message'], $move_date, $mover, $grund);
}
if($moved_type == "split")
{
$move_message = sprintf($lang['Move_split_message'], $move_date, $mover, $parent_topic, $parent_forum, $grund);
}
if($moved['last_post_id'] == $postrow[$i]['post_id'])
{
$template->assign_block_vars('postrow.move_message', array(
'MOVE_MESSAGE' => '<img src="'.$mini_icon.'" border="0" />'.$move_message)
);
}
else
{
$template->assign_block_vars('postrow.switch_spacer', array());
}
}// Move Message
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/viewtopic_body.tpl
#
#-----[ FIND ]------------------------------------------
#
<tr>
<td class="spaceRow" colspan="2" height="1"><img src="templates/subSilver/images/spacer.gif" alt="" width="1" height="1" /></td>
</tr>
<!-- END postrow -->
#
#-----[ REPLACE, WITH ]------------------------------------------
#
<!-- BEGIN switch_spacer -->
<tr>
<td class="spaceRow" colspan="2" height="1"><img src="templates/subSilver/images/spacer.gif" alt="" width="1" height="1" /></td>
</tr>
<!-- END switch_spacer -->
<!-- BEGIN move_message -->
<tr>
<td class="row3" colspan="2"><span class="postdetails">{postrow.move_message.MOVE_MESSAGE}</span></td>
</tr>
<!-- END move_message -->
<!-- END postrow -->
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/modcp_move.tpl
#
#-----[ FIND ]------------------------------------------
#
<tr>
<td align="center"><span class="gen">{L_MOVE_TO_FORUM} {S_FORUM_SELECT}<br /><br />
<input type="checkbox" name="move_leave_shadow" checked="checked" />{L_LEAVESHADOW}<br />
#
#-----[ AFTER, ADD ]------------------------------------------
#
<br />
{MESSAGE_TEXT_REASON} <input type="text" name="move_text" /><br />
<br />
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/modcp_split.tpl
#
#-----[ FIND ]------------------------------------------
#
<td class="row1" nowrap="nowrap"><span class="gen">{L_SPLIT_FORUM}</span></td>
<td class="row2" colspan="2">{S_FORUM_SELECT}</td>
</tr>
#
#-----[ AFTER, ADD ]------------------------------------------
#
<tr>
<td class="row1" nowrap="nowrap"><span class="gen">{MESSAGE_TEXT_REASON}</span></td>
<td class="row2" colspan="2"><input type="text" name="move_text" /></td>
</tr>
#
#-----[ OPEN ]------------------------------------------
#
move_message_mod.php
#
#-----[ REPLACE ALL WITH ]------------------------------------------
#
<?php
if (!defined('IN_PHPBB'))
{
die('Hacking attempt');
}
function move_message_mod($moved_topic_id, $moved_oldtopic_id, $type, $moved_parent, $moved_target, $moved_mod, $reason)
{
global $db;
if($type == 'split')
{
$where = "WHERE topic_id = '$moved_oldtopic_id'";
}
else
{
$where = "WHERE topic_id = '$moved_topic_id'";
}
$sql = "SELECT topic_last_post_id
FROM ". TOPICS_TABLE ."
$where";
if(!($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, 'Could not get topic_last_post_id', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$last_post_id = $row['topic_last_post_id'];
$time = time();
$sql = "INSERT INTO ". MOVED_TABLE ." (moved_topic_id, moved_oldtopic_id, moved_type, moved_reason, moved_parent, moved_target, moved_mod, moved_time, last_post_id)
VALUES ('$moved_topic_id', '$moved_oldtopic_id', '$type', '$reason', '$moved_parent', '$moved_target', '$moved_mod', '$time', '$last_post_id')";
if(!($db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not insert data into moved table', '', __LINE__, __FILE__, $sql);
}
$sql = "UPDATE ". POSTS_TABLE ." SET
post_move = '1'
WHERE post_id = '$last_post_id'";
if(!($db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update posts table', '', __LINE__, __FILE__, $sql);
}
}
function delete_topic($topic_id)
{
global $db;
$sql = "DELETE FROM ". MOVED_TABLE ."
WHERE moved_topic_id = '$topic_id'";
if(!$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete move message', '', __LINE__, __FILE__, $sql);
}
}
?>
#
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM