Move_Message_Mod Grund angabe

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Mavo460
Mitglied
Beiträge: 368
Registriert: 07.09.2005 20:16
Wohnort: Oldenburg
Kontaktdaten:

Move_Message_Mod Grund angabe

Beitrag von Mavo460 »

Moin!

Bezugnehmen auf den Post hier: http://www.phpbb.de/viewtopic.php?t=94038&highlight= habe ich mich hingesetzt und den Mod selbst erweitert damit eine angabe von Gründen eingetragen werden kann. Das soll später dann in ein Drop-Down menü geändert werden. Ich habe es auch fast fertig allerdings habe ich ein problem damit das wenn ich nen Thread verschieben will das Text-Eingabefeld nicht übernommen wird.

Hier der Code aus der modcp_move.tpl:

Code: Alles auswählen

{MESSAGE_TEXT_REASON} <input type="text" name="move_text" /><br />
Damit habe ich das Eingabefeld dann sichtbar. Wenn ich allerdings etwas in das eingabefenster schreibe übernimmt er das nicht.

In der modcp.php habe ich folgende änderungen noch eingetragen:

Code: Alles auswählen

move_message_mod($row[$i]['topic_id'], '', 'move', $old_forum_id, $new_forum_id, $userdata['user_id'], $reason);
also ich habe noch die Variable $reason hinten dran gehängt damit die an die move_message_mod.php mit übergeben wird.

Allerdings kommt dort die Variable nur mit einer 0 an. Ich denke mal das ich die Variable $reason vorher noch deklarieren muss. Solche Deklarierungen gibt es ja in der modcp.php:

Code: Alles auswählen

//
// Continue var definitions
//
$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;

$delete = ( isset($HTTP_POST_VARS['delete']) ) ? TRUE : FALSE;
$move = ( isset($HTTP_POST_VARS['move']) ) ? TRUE : FALSE;
$lock = ( isset($HTTP_POST_VARS['lock']) ) ? TRUE : FALSE;
$unlock = ( isset($HTTP_POST_VARS['unlock']) ) ? TRUE : FALSE;
Ich habe versucht dann darunter

Code: Alles auswählen

$reason = ( isset($HTTP_POST_VARS['move_text']) ) ? TRUE : FALSE;
hinzuzufügen aber damit klappt das nicht.
Wenn ich allerdings schreibe $reaseon = '"blubb"; dann übergibt er das blubb ordnungsgemäß.

Daher denke ich das ich nen Denkfehler habe was die Variable angeht.

Könnt ihr mir da weiterhelfen?

MfG Mavo460
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Code: Alles auswählen

$reason = ( isset($HTTP_POST_VARS['move_text']) ) ? $HTTP_POST_VARS['move_text'] : false;
Mavo460
Mitglied
Beiträge: 368
Registriert: 07.09.2005 20:16
Wohnort: Oldenburg
Kontaktdaten:

Beitrag von Mavo460 »

Jau!

Vielen Dank :D damit klappt das ganze :)

MfG Mavo460
Benutzeravatar
HUGOOO
Mitglied
Beiträge: 74
Registriert: 01.03.2006 19:56
Wohnort: Hamburg

Beitrag von HUGOOO »

Würde ich auch gerne einbauen, könntrst Du das Ganze einmal zusammen fassen?
Malz
Mitglied
Beiträge: 195
Registriert: 30.05.2006 22:26

Beitrag von Malz »

dito :D

Nützliche Erweiterungen sind immer gut :)
Benutzeravatar
ATARI
Mitglied
Beiträge: 1684
Registriert: 22.02.2004 16:51
Wohnort: Monaco Di Bavaria

Beitrag von ATARI »

Ja, her damit.


Eine Frage: Muss etwas aus dem Dropdown ausgewählt werden, und ist das nur optional?
Man soll aufhören wenn´s am schönsten ist!

Servus phpBB! ;)
Benutzeravatar
ATARI
Mitglied
Beiträge: 1684
Registriert: 22.02.2004 16:51
Wohnort: Monaco Di Bavaria

Beitrag von ATARI »

Ja? Was is nun? Kommt da noch was?
Man soll aufhören wenn´s am schönsten ist!

Servus phpBB! ;)
Mavo460
Mitglied
Beiträge: 368
Registriert: 07.09.2005 20:16
Wohnort: Oldenburg
Kontaktdaten:

Beitrag von Mavo460 »

woops :)

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 :D
ATARI hat geschrieben: Eine Frage: Muss etwas aus dem Dropdown ausgewählt werden, und ist das nur optional?
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.

MfG Mavo460

Edit:

Hier nun das Addon :) 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} &nbsp; {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
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“