Seite 1 von 3

Threads zusammenfügen

Verfasst: 03.06.2003 10:41
von Mischa
Hi Leute,

in meinem Forum weichen die Leute oft von Thema ab und reden auf einmal von Dingen die in anderen Theads schon mal angesprochen wurden.
Meine Frage:
Es ist ja möglich einen Thread zu teilen. Aber kann ich die letzten paar "abgetrennten Posts" dann auch an einen anderen Thread anhängen.
Also Themen zusammenfügen.
Weil ansosten hätt ich ja mehrere Threads mit dem gleichen Thema.

Freu mich über Hilfe,
Mischa

Verfasst: 03.06.2003 10:46
von Chaze
Der ModCP Merge Hack dürfte sein, was Du suchst. Ob er auf 2.0.4 funktioniert, mußt Du ausprobieren.

Verfasst: 03.06.2003 15:26
von Mischa
Joa... nett bis jetzt. Hab alle Quelltexte in die jeweiligen Dateien gepackt und die modcp_merge.tpl hochgeladen. So wies beschrieben war.

Aber wie kann ich nun Themen zusammenfügen? Es wird nirgendwo im Forum eine neue Funktion angezeigt werden.

Verfasst: 03.06.2003 15:30
von Schumi
Bei der Moderatorenkontrolle sollte jetzt ein Button angezeigt werden. Dort, wo auch die normalen Buttons sind.

Verfasst: 03.06.2003 15:39
von Gast
So hab ich mir das auch vorgestellt.
Aber leider ist das nicht der Fall.
Ich hab auch schon versucht ein "topic_merge.gif" in meinen Image Ordner zu hochzuladen.

Verfasst: 03.06.2003 15:48
von Angela Goldig
so sieht das bei mir aus

http://img.worebu.de/merge.jpg

dast du eventuell nicht alle änderungen gemacht?

Verfasst: 03.06.2003 16:31
von Gast
Ich versteh das nicht. Bin nochmal alles durchgegangen.
Also folgende Änderungen habe ich gamacht:

Code: Alles auswählen



######################################################## 
## Mod Title:   ModCP Merge Hack
## Mod Version: 1.0.1 
## Author:       sickb0y < http://www.p2pitalia.com > 
## Description:  This mod adds topics merge function
##               in moderator control panel.
## 
## Installation Level:  (intermediate) 
## Installation Time:   5-10 Minutes 
## Files To Edit:       4
## Included Files:      modcp_merge.tpl
######################################################## 
## 
## Installation Notes: 
## 
##
## Put modcp_merge.tpl in templates/xxx/
##
######################################################## 


# 
#-----[ OPEN includes/functions_admin.php ]-------------------
# 
# 
#-----[ FIND ]----------------------------------
# 
function make_forum_select($box_name, $ignore_forum = false, $select_forum = '')
{
	global $db, $userdata;

	$is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata);

	$sql = "SELECT forum_id, forum_name
		FROM " . FORUMS_TABLE . " 
		ORDER BY cat_id, forum_order";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Couldn not obtain forums information', '', __LINE__, __FILE__, $sql);
	}

	$forum_list = '';
	while( $row = $db->sql_fetchrow($result) )
	{
		if ( $is_auth_ary[$row['forum_id']]['auth_read'] && $ignore_forum != $row['forum_id'] )
		{
			$selected = ( $select_forum == $row['forum_id'] ) ? ' selected="selected"' : '';
			$forum_list .= '<option value="' . $row['forum_id'] . '"' . $selected .'>' . $row['forum_name'] . '</option>';
		}
	}

	$forum_list = ( $forum_list == '' ) ? '<option value="-1">-- ! No Forums ! --</option>' : '<select name="' . $box_name . '">' . $forum_list . '</select>';

	return $forum_list;
}


# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
function make_topic_select($box_name, $forum_id)
{
	global $db, $userdata;

	$is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata);

	$sql = "SELECT topic_id, topic_title 
		FROM " . TOPICS_TABLE . " 
		WHERE forum_id = $forum_id 
		ORDER BY topic_title";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Couldn not obtain topics information', '', __LINE__, __FILE__, $sql);
	}

	$topic_list = '';
	while( $row = $db->sql_fetchrow($result) )
	{
		$topic_list .= '<option value="' . $row['topic_id'] . '">' . $row['topic_title'] . '</option>';
	}

	$topic_list = ( $topic_list == '' ) ? '<option value="-1">-- ! No Topics ! --</option>' : '<select name="' . $box_name . '">' . $topic_list . '</select>';

	return $topic_list;
}
# 
#-----[ CLOSE ]----------------------------------
# 



# 
#-----[ OPEN modcp.php ]-------------------
# 
# 
#-----[ FIND ]----------------------------------
# 
else if ( $unlock )
        {
                $mode = 'unlock';
        }
# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
else if ( $merge )
        {
                $mode = 'merge';
        }

# 
#-----[ FIND ]----------------------------------
# 
message_die(GENERAL_MESSAGE, $lang['Topics_Unlocked'] . '<br /><br />' . $message);

                break;
# 
#-----[ AFTER, ADD ]------------------------------------------ 
#
case 'merge':
                $page_title = $lang['Mod_CP'];
                include($phpbb_root_path . 'includes/page_header.'.$phpEx);

                if ( $confirm )
                {
                        if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) )
                        {
                                message_die(GENERAL_MESSAGE, $lang['None_selected']);
                        }

                        $new_topic_id = $HTTP_POST_VARS['new_topic'];
                        
				for ($i=0; $i < count($topic_id_list); $i++) {

				$old_topic_id = $topic_id_list[$i];

                        if ( $new_topic_id != $old_topic_id )
                        {
                                $sql = "UPDATE " . POSTS_TABLE . "
						    SET topic_id = $new_topic_id 
                                        WHERE topic_id = $topic_id_list[$i]";

                                if ( !($result = $db->sql_query($sql, BEGIN_TRANSACTION)) )
                                {
	                                message_die(GENERAL_ERROR, 'Could not update posts', '', __LINE__, __FILE__, $sql);
                                }

                                $sql = "DELETE FROM " . TOPICS_TABLE . "
                                        WHERE topic_id = $topic_id_list[$i]";

					  if ( !($result = $db->sql_query($sql, BEGIN_TRANSACTION)) )
                                {
	                                message_die(GENERAL_ERROR, 'Could not update posts', '', __LINE__, __FILE__, $sql);
                                }

					  $sql = "DELETE FROM  " . TOPICS_WATCH_TABLE . "
                                        WHERE topic_id = $topic_id_list[$i]";

					  if ( !($result = $db->sql_query($sql, BEGIN_TRANSACTION)) )
                                {
	                                message_die(GENERAL_ERROR, 'Could not update posts', '', __LINE__, __FILE__, $sql);
                                }

                                // Sync the forum indexes
				sync('forum', $forum_id);
                                sync('topic', $new_topic_id);

                                $message = $lang['Topics_Moved'] . '<br /><br />';
                        }
                        else
                        {
                                $message = $lang['No_Topics_Moved'] . '<br /><br />';
                        }

				}

                        if ( !empty($topic_id) )
                        {
                                $redirect_page = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id");
                                $message .= sprintf($lang['Click_return_topic'], '<a href="' . $redirect_page . '">', '</a>');
                        }
                        else
                        {
                                $redirect_page = append_sid("modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id");
                                $message .= sprintf($lang['Click_return_modcp'], '<a href="' . $redirect_page . '">', '</a>');
                        }

                        $message = $message . '<br \><br \>' . sprintf($lang['Click_return_forum'], '<a href="' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$old_forum_id") . '">', '</a>');

                        $template->assign_vars(array(
                                'META' => '<meta http-equiv="refresh" content="3;url=' . $redirect_page . '">')
                        );

                        message_die(GENERAL_MESSAGE, $message);
                }
                else
                {
                        if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) )
                        {
                                message_die(GENERAL_MESSAGE, $lang['None_selected']);
                        }

                        $hidden_fields = '<input type="hidden" name="mode" value="' . $mode . '" /><input type="hidden" name="' . POST_FORUM_URL . '" value="' . $forum_id . '" />';

                        if ( isset($HTTP_POST_VARS['topic_id_list']) )
                        {
                                $topics = $HTTP_POST_VARS['topic_id_list'];

                                for($i = 0; $i < count($topics); $i++)
                                {
                                        $hidden_fields .= '<input type="hidden" name="topic_id_list[]" value="' . intval($topics[$i]) . '" />';
                                }
                        }
                        else
                        {
                                $hidden_fields .= '<input type="hidden" name="' . POST_TOPIC_URL . '" value="' . $topic_id . '" />';
                        }

                        //
                        // Set template files
                        //
                        $template->set_filenames(array(
                                'mergetopic' => 'modcp_merge.tpl')
                        );

                        $template->assign_vars(array(
                                'MESSAGE_TITLE' => $lang['Confirm'],
                                'MESSAGE_TEXT' => $lang['Confirm_move_topic'],

                                'L_MERGE_TOPIC' => $lang['Merge_topic'],
                                
                                'L_YES' => $lang['Yes'],
                                'L_NO' => $lang['No'],

                                'S_TOPIC_SELECT' => make_topic_select('new_topic', $forum_id),
                                'S_MODCP_ACTION' => append_sid("modcp.$phpEx"),
                                'S_HIDDEN_FIELDS' => $hidden_fields)
                        );

                        $template->pparse('mergetopic');

                        include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
                }
                break;

# 
#-----[ FIND ]----------------------------------
# 
'L_UNLOCK' => $lang['Unlock'],
# 
#-----[ AFTER, ADD ]------------------------------------------ 
#
'L_MERGE' => $lang['Merge'],
# 
#-----[ CLOSE ]----------------------------------
# 



# 
#-----[ OPEN language/lang_xxx/lang_main.php ]-------------------
# 
# 
#-----[ FIND ]----------------------------------
# 
$lang['Unlock'] = "Unlock";
# 
#-----[ AFTER, ADD ]------------------------------------------ 
#
$lang['Merge'] = "Merge"; 
$lang['Merge_topic'] = "Merge to topic"; 
# 
#-----[ CLOSE ]----------------------------------
# 



# 
#-----[ OPEN templates/xxx/modcp_body.tpl ]-------------------
# 
# 
#-----[ FIND ]----------------------------------
# 
&nbsp; 
		<input type="submit" name="unlock" class="liteoption" value="{L_UNLOCK}" />
# 
#-----[ AFTER, ADD ]------------------------------------------ 
#
&nbsp; 
		<input type="submit" name="merge" class="liteoption" value="{L_MERGE}" />
# 
#-----[ CLOSE ]----------------------------------
# 

# 
#----------------------------------------------- 
#


Wie kommst du denn zum Controlpannel?
Ist bei dir unten noch ein Button rechts neben den delete, move, lock und split Buttons?

Verfasst: 03.06.2003 16:36
von Angela Goldig
sicher, dass das

Code: Alles auswählen

# 
#-----[ OPEN templates/xxx/modcp_body.tpl ]------------------- 
# 
# 
#-----[ FIND ]---------------------------------- 
# 
&nbsp; 
      <input type="submit" name="unlock" class="liteoption" value="{L_UNLOCK}" /> 
# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
&nbsp; 
      <input type="submit" name="merge" class="liteoption" value="{L_MERGE}" /> 
# 
#-----[ CLOSE ]---------------------------------- 
# 
drin ist?

ins modpanel kommt man eigentlich (bei mir is anders) über den link" du kannst dieses forum moderieren", der unten ist....

Verfasst: 03.06.2003 18:23
von Mischa
aah... sehr schön.
So jetzt hab ich schonmal den "Merge" Button. Im Modpanel hab ich nicht nach gesehen, da in meinem Forum die "auth_list" weg ist.
Wie kann man denn sonst noch in den Modpannel kommen, ich würde die Liste unter der Jumpbox nämlich gerne wieder entfernen.

Und nun weiter: Wenn ich im Modpannel ein Thema markiert habe und unten auf "Merge" klicke, kann ich zwar aussuchen an welches Thema es angehängt werden soll. Sobald ich dann jedoch mit "Ja" bestätige erscheint "Invalid_session". :o

Verfasst: 03.06.2003 18:29
von Angela Goldig
da kann ich dir auch nicht raten.

aber du wirst ohne modpanel schlecht klar kommen. (wenn die auth liste wech ist). bei kleinigkeiten schon, aber räume mal in einem forum auf ohne mass move (modpanel). viel spass sach ich da nur. :D :D