###################################################################################
##
## Hack Titel: Status zum Thema hinzufügen
## Hack Version: 1.0.3 (phpBB 2.0.5)
## Autor: Acid
## Support:
http://www.phpbb.de/viewforum.php?f=15
##
## Beschreibung: Mit diesem Hack kann man den Status des Topics anzeigen, ändern.
## z.B. "up", "down", "active" oder was auch immer. Es ist von jedem
## änderbar. Es wird in der Forenansicht angezeigt
##
## Dateien zu ersetzen: 5
## language/lang_german/lang_main.php
## viewtopic.php
## viewforum.php
## templates/xxx/viewtopic_body.tpl
## templates/xxx/viewforum_body.tpl
##
###################################################################################
##
## Notiz:
## Vor jeglichen Änderungen an Datenbank/Dateien sollten dieser gesichert werden.
##
## Dieser Hack legt ein neues Feld in der Datenbank an.
##
###################################################################################
## Versionen:
##
## 1.0.3 - Fehler in "zuletzt geändert" Teil behoben (viewtopic.php)
## 1.0.2 - "$submit" mit "isset($HTTP_POST_VARS['submit'])" ersetzt (viewtopic.php)
## - optionalen Teil hinzugefügt (Status wird mit Bildern angezeigt, Status
## nur von bestimmten Leuten änderbar, zuletzt geändert)
## - switch in viewtopic_body.tpl vergessen
## 1.0.1 - Sprachteil angepasst ("Status auswählen" hinzugefügt)
## - kleine Veränderungen in viewforum.php (Ausgabe) und viewtopic.php (submit)
## - Gästecheck vergessen
## 1.0 - Veröffentlichung
###################################################################################
##
## SQL QUERY: (prefix_ angleichen)
ALTER TABLE phpbb_topics ADD topic_info TINYINT(3) NOT NULL default '0' AFTER topic_status;
## alternativ kann man auch die table_update.php benutzen, um die Datenbank
## anzugleichen (Datei einfach uploaden und ausführen)
##
###################################################################################
#
#-----[ ÖFFNEN ]--------------------------------------------------
#
# language/lang_german/lang_main.php
#
#-----[ FINDE ]--------------------------------------------------
#
//
// Viewforum
//
#
#-----[ DARUNTER EINFÜGEN ]--------------------------------------------------
#
## Wenn man die "Info_choice" Zeile anpasst, darf man nicht die Anführungsstriche (') und
## den ersten Eintrag (Status auswählen) löschen.
## "Status auswählen" kann natürlich geändert werden.
## Wenn man weitere Auswahlmöglichkeiten hinzufügen möchte, muss man ",'Auswahl'" vor
## ");" einfügen (ohne die Anführungsstriche (")).
$lang['Topic_info'] = 'Topic Info';
$lang['Topic_info_updated'] = 'Topic Info aktualisiert.';
$lang['Info_choice'] = array('Status auswählen','negativ','neutral','positiv');
#
#-----[ ÖFFNEN ]--------------------------------------------------
#
# viewtopic.php
#
#-----[ FINDE ]--------------------------------------------------
#
$sql = "SELECT t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments" . $count_sql . "
#
#-----[ FINDE in dieser Zeile ]--------------------------------------------------
#
t.topic_title
#
#-----[ DANACH EINFÜGEN ]--------------------------------------------------
#
, t.topic_info
#
#-----[ FINDE ]--------------------------------------------------
#
$topic_title = $forum_topic_data['topic_title'];
#
#-----[ DARUNTER EINFÜGEN ]--------------------------------------------------
#
$topic_info = $forum_topic_data['topic_info'];
#
#-----[ FINDE ]--------------------------------------------------
#
$pagination = ( $highlight != '' ) ? generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&highlight=$highlight", $total_replies, $board_config['posts_per_page'], $start) : generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order", $total_replies, $board_config['posts_per_page'], $start);
#
#-----[ DARUNTER EINFÜGEN ]--------------------------------------------------
#
function s_info_select($select_name = 'topic_info')
{
global $topic_info, $lang;
$s_info_select = '<select name="' . $select_name . '">';
while( list($offset, $choice) = @each($lang['Info_choice']) )
{
$selected = ( $offset == $topic_info ) ? ' selected="selected"' : '';
$s_info_select .= '<option value="' . $offset . '"' . $selected . '>' . $choice . '</option>';
}
$s_info_select .= '</select>';
return $s_info_select;
}
$s_info_select = s_info_select('topic_info');
if( $userdata['user_id'] != ANONYMOUS )
{
$template->assign_block_vars('switch_info', array());
}
if ( isset($HTTP_POST_VARS['submit']) && $HTTP_POST_VARS['topic_info'] != 0 && $userdata['user_id'] != ANONYMOUS )
{
$sql = "UPDATE ". TOPICS_TABLE ."
SET topic_info = '" . str_replace("\'", "''", $HTTP_POST_VARS['topic_info']) . "'
WHERE topic_id = $topic_id";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update topic info.', '', __LINE__, __FILE__, $sql);
}
$message = $lang['Topic_info_updated'] . "<br /><br />" . sprintf($lang['Click_return_topic'], "<a href=\"" . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_forum'], "<a href=\"" . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id") . "\">", "</a>");
message_die(GENERAL_MESSAGE, $message);
}
#
#-----[ FINDE ]--------------------------------------------------
#
'FORUM_ID' => $forum_id,
#
#-----[ DARÜBER EINFÜGEN ]--------------------------------------------------
#
'L_TOPIC_INFO' => $lang['Topic_info'],
'S_INFO_SELECT' => $s_info_select,
'S_INFO_ACTION' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id"),
#
#-----[ ÖFFNEN ]--------------------------------------------------
#
# viewforum.php
#
#-----[ FINDE ]--------------------------------------------------
#
'ROW_CLASS' => $row_class,
#
#-----[ DARUNTER EINFÜGEN ]--------------------------------------------------
#
'TOPIC_INFO' => ( $topic_rowset[$i]['topic_info'] != 0 ) ? $lang['Info_choice'][$topic_rowset[$i]['topic_info']].'<br />' : '',
#
#-----[ ÖFFNEN ]--------------------------------------------------
#
# templates/xxx/viewtopic_body.tpl
#
#-----[ FINDE ]--------------------------------------------------
#
{POLL_DISPLAY}
#
#-----[ DARUNTER EINFÜGEN ]--------------------------------------------------
#
<!-- BEGIN switch_info -->
<tr>
<td class="row1" align="left" colspan="2">
<form method="post" action="{S_INFO_ACTION}"><span class="gensmall">{L_TOPIC_INFO}:
{S_INFO_SELECT} <input type="submit" name="submit" value="{L_GO}" class="liteoption" /></span></td>
</tr>
<!-- END switch_info -->
#
#-----[ ÖFFNEN ]--------------------------------------------------
#
# templates/xxx/viewforum_body.tpl
#
#-----[ FINDE (nur ein Auszug) ]--------------------------------------------------
#
<img src="{topicrow.TOPIC_FOLDER_IMG}"
#
#-----[ DAVOR EINFÜGEN ]--------------------------------------------------
#
<span class="gensmall">{topicrow.TOPIC_INFO}</span>
###################################################################################
###################################################################################