Thank you hack

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
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
Benutzeravatar
SuesseMaus1
Mitglied
Beiträge: 4
Registriert: 22.09.2004 12:14

Thank you hack

Beitrag von SuesseMaus1 »

Kann mir jemand sagen wo ich den hack Thank you oder so ähnlich finde?
Vielen Dank im voraus
Benutzeravatar
Markus67
Ehrenadmin
Beiträge: 28346
Registriert: 12.01.2004 16:02
Wohnort: Neuss
Kontaktdaten:

Beitrag von Markus67 »

Hi ...

Was soll der MOD denn genau machen ?

Spontan fällt mir nur dieser hier ein ...
Bedankomat

Markus
Benutzeravatar
SuesseMaus1
Mitglied
Beiträge: 4
Registriert: 22.09.2004 12:14

Beitrag von SuesseMaus1 »

ja das ist das aber wo kann ich den hack runterladen?
Benutzeravatar
Markus67
Ehrenadmin
Beiträge: 28346
Registriert: 12.01.2004 16:02
Wohnort: Neuss
Kontaktdaten:

Beitrag von Markus67 »

Hi ...

Du musst den Code in diesem Beitrag einfach kopieren ...

http://www.phpbb2.de/viewtopic.php?p=50901#50901

Markus
Benutzeravatar
SuesseMaus1
Mitglied
Beiträge: 4
Registriert: 22.09.2004 12:14

Beitrag von SuesseMaus1 »

Markus vielen Dank, genau das suchte ich..
Ich hab da alles verstanden nur, das verstehe ich nicht ganz

Code: Alles auswählen

IMPORTANT: 

You will have to create an extra table. Plase run the following SQL-code 
within your DBMS: 

CREATE TABLE `phpbb_bedankomat` ( 
  `thx_id` smallint(11) NOT NULL auto_increment, 
  `user_id` smallint(11) NOT NULL default '0', 
  `topic_id` smallint(11) NOT NULL default '0', 
  PRIMARY KEY  (`thx_id`) 
) TYPE=MyISAM; 
SQL Wo ist das wo find ich sowas :-? und wo schreib ich diese TAbellen?
Kann mir jemand ein Link geben wo alles erklärt ist. :oops:

Hab so was noch nie gemacht :oops:
Tuxman
Mitglied
Beiträge: 2284
Registriert: 24.05.2003 13:32
Kontaktdaten:

Beitrag von Tuxman »

In der Mail von deinem Hoster müsstest du einen Link zu phpMyAdmin bekommen haben.
Wie du nun vorgehen musst, steht hier:
KB:122
tux. Ehemaliger Moderator ohne Sondertitel.
tuxproject.de
Benutzeravatar
SuesseMaus1
Mitglied
Beiträge: 4
Registriert: 22.09.2004 12:14

Beitrag von SuesseMaus1 »

Vielen Dank :P :roll:
Hab das mit SQL alles gemacht, nur ist der hack nciht das was ich suche.
Ich hab bereits schon hide installiert und hab bbcode_box deshalb stimmt hier was nicht :( Ich bekomm lauter fehler :(

Code: Alles auswählen

vorhanden. Das ist wenigstens ein Anfang. 
   $thx_user_id = intval($HTTP_GET_VARS['u']); 
   $thx_topic_id = intval($HTTP_GET_VARS['t']); 
   $thx_mode = stripslashes($HTTP_GET_VARS['mode']); 

   switch ($thx_mode) 
   { 
      case 'add_thx': 
            // Von mir aus. Ein 'Dankeschoen' soll also hinzugefuegt werden. 
            // Es kostet zwar eine zuaetzliche SQL-Abfrage, aber wir sollten an dieser 
            // Stelle anhand der User-Datenbank pruefen, ob die gegebene User-ID wirklich 
            // gueltig ist. 
            // Auch den User ANONYMOUS (-1) wollen wir ausschliessen. 
            $sql = 'SELECT user_id FROM ' .USERS_TABLE. ' WHERE user_id=' .$thx_user_id. ' LIMIT 1'; 
            if ( !($result = $db->sql_query($sql)) ) 
            { 
               message_die(GENERAL_ERROR, 'Could not obtain user information', '', __LINE__, __FILE__, $sql); 
            }            
            if (($db->sql_numrows($result) == 0) && ($thx_user_id == -1)) 
            { 
               // Ein Satz mit 'X' - das war wohl nix. 
               // Es wurde eine ungueltige User-ID uebergeben. 
               // Um so besser - dann haben wir weniger zu tun. 
               message_die(GENERAL_ERROR, 'Invalid User-ID', '', __LINE__, __FILE__, $sql); 
            } 

            // Man soll sich ja pro Topic nur einmal bedanken koennen. Also muesen wir jetzt prufen, ob 
            // dieser User sich bereits fuer dieses Topic bedankt hat. 
            $sql = 'SELECT * FROM ' .BEDANKOMAT_TABLE. ' WHERE (user_id=' .$thx_user_id. ') AND (topic_id=' .$thx_topic_id. ') LIMIT 1'; 
            if ( !($result = $db->sql_query($sql)) ) 
            { 
               message_die(GENERAL_ERROR, 'Could not obtain bedankomat information', '', __LINE__, __FILE__, $sql); 
            } 
            if ($db->sql_numrows($result) != 0) 
            { 
               // Noch ein Satz mit 'X' - das war wohl wieder nix. 
               // Dieser User hat sich fuer diesen Thread bereits bedankt. 
               message_die(GENERAL_ERROR, 'Einmal reicht. ;-)', '', __LINE__, __FILE__, $sql); 
            } 

            // Hier endlich angekommen scheint alles klar zu gehen. ;-) 
            // Der User existiert, will sich aufrichtig bedanken und hat dies auch noch nicht getan. 
            $sql = 'INSERT INTO ' .BEDANKOMAT_TABLE. ' (user_id, topic_id) VALUES (' .$thx_user_id. ', ' .$thx_topic_id. ')'; 
            if ( !($result = $db->sql_query($sql)) ) 
            { 
               message_die(GENERAL_ERROR, 'Could not update bedankomat information', '', __LINE__, __FILE__, $sql); 
            } 
            // done. 

            break; 
      case 'remove_thx': 
            // Von mir aus. Ein 'Dankeschoen' soll also zurueckgenommen werden. 
            // Es kostet zwar eine zuaetzliche SQL-Abfrage, aber wir sollten an dieser 
            // Stelle anhand der User-Datenbank pruefen, ob die gegebene User-ID wirklich 
            // gueltig ist. 
            // Auch den User ANONYMOUS (-1) wollen wir ausschliessen. 
            $sql = 'SELECT user_id FROM ' .USERS_TABLE. ' WHERE user_id=' .$thx_user_id. ' LIMIT 1'; 
            if ( !($result = $db->sql_query($sql)) ) 
            { 
               message_die(GENERAL_ERROR, 'Could not obtain user information', '', __LINE__, __FILE__, $sql); 
            }            
            if (($db->sql_numrows($result) == 0) && ($thx_user_id == -1)) 
            { 
               // Ein Satz mit 'X' - das war wohl nix. 
               // Es wurde eine ungueltige User-ID uebergeben. 
               // Um so besser - dann haben wir weniger zu tun. 
               message_die(GENERAL_ERROR, 'Invalid User-ID', '', __LINE__, __FILE__, $sql); 
            } 

            // Wir wollen nur dann weiter machen, wenn sich dieser User auch fuer dieses Topic bedankt hat. 
            // Man koennte sich ueberlegen, sich diese Abfrage zu schenken, aber es schadet nichts, 
            // fuer alle Situationen gewappnet zu sein. 
            $sql = 'SELECT * FROM ' .BEDANKOMAT_TABLE. ' WHERE (user_id=' .$thx_user_id. ') AND (topic_id=' .$thx_topic_id. ') LIMIT 1'; 
            if ( !($result = $db->sql_query($sql)) ) 
            { 
               message_die(GENERAL_ERROR, 'Could not obtain bedankomat information', '', __LINE__, __FILE__, $sql); 
            } 
            if ($db->sql_numrows($result) == 0) 
            { 
               // Noch ein Satz mit 'X' - das war wohl wieder nix. 
               // Dieser User hat sich fuer diesen Thread niemals bedankt. 
               message_die(GENERAL_ERROR, 'invalid data', '', __LINE__, __FILE__, $sql); 
            } 

            // Endlich: 
            // Dann versuchen wir jetzt, das 'Dankeschoen' dieses Users fuer genau dieses Topic 
            // aus der Datenbank zu entfernen. 
            $sql = 'DELETE FROM ' .BEDANKOMAT_TABLE. ' WHERE (user_id=' .$thx_user_id. ') AND (topic_id=' .$thx_topic_id. ') LIMIT 1'; 
            if ( !($result = $db->sql_query($sql)) ) 
            { 
               message_die(GENERAL_ERROR, 'Could not update bedankomat information', '', __LINE__, __FILE__, $sql); 
            } 
            // done. 

            break; 
      default: 
            // und was machen wir hier? irgendeine Fehlermeldung auszugeben waere nicht das Verkehrteste.... 
            message_die(GENERAL_ERROR, 'unknown "mode"', '', __LINE__, __FILE__, $sql); 
            break; 
   } 

   $db->sql_freeresult($result); 
   unset( $sql ); 
   unset( $thx_user_id ); 
   unset( $thx_topic_id ); 
   unset( $thx_mode ); 
} 

////////////////////////////////////////////// 
// 
// Bedankomat Ende (1) 
// 
////////////////////////////////////////////// 

# 
#-----[ FIND ]------------------------------------------ 
# 
// 
// Topic watch information 
// 

# 
#-----[ BEFORE, ADD ]------------------------------------------ 
# 
///////////////////////////////////////////////////////// 
// 
//   Bedankomat-Start (2) 
// 
///////////////////////////////////////////////////////// 


// nungut - erstmal soll das Teil nur fuer registrierte Benuzer vorhanden sein. 
if ($userdata['session_logged_in']) 
{ 
   // Nun muss sich der Admin entscheiden - soll ein Benutzer die Möglichkeit haben, ein 
   // 'Dankeschoen' wieder zurueckzunehmen? Wenn nicht, dann muss die folgende Variable 
   // auf '0' gestzt werden, sonst eben auf einen Wert ungleich '0' - etwa die '1' wäre 
   // eine gute Alternative ;-) 
   $allow_remove_thanks = 1;  // noch nicht implementiert !!!!! 


   // Jetzt gibt es zwei Moeglichkeiten: 
   // (1) Dieser Benutzer hat sich bereits bedankt - dann koennte er seine Danksagung zurueckziehen 
   // (2) Dieser Benutzer hat sich noch nicht bedankt und erhaelt jetzt die Möglichkeit hierzu 
    

   // Feststellen, ob der aktuelle Benutzer sich fuer dieses Topic schon bedankt hat. 
   $sql = 'SELECT * FROM ' .BEDANKOMAT_TABLE. ' WHERE (user_id=' . $userdata['user_id'] . ') AND (topic_id=' .$topic_id. ') LIMIT 1'; 
   if ( !($result = $db->sql_query($sql)) ) 
   { 
      message_die(GENERAL_ERROR, 'Could not obtain user-bedankomat information', '', __LINE__, __FILE__, $sql); 
   } 


   if ($db->sql_numrows($result) == 1) 
   { 
      // Daten liegen vor - Benutzer hat sich also schon bedankt. 
      $l_bedankomat = '\'Dankeschön\' zurücknehmen'; 
      $u_bedankomat = append_sid('viewtopic.'.$phpEx.'?mode=remove_thx&u='.$userdata['user_id'].'&t='.$topic_id); 
   } 
   else 
   { 
      // Daten liegen nicht vor - Benutzer hat sich also noch nicht bedankt. 
      $l_bedankomat = '\'Dankeschön\' sagen.'; 
      $u_bedankomat = append_sid('viewtopic.'.$phpEx.'?mode=add_thx&u='.$userdata['user_id'].'&t='.$topic_id); 
   } 
} 
else 
{ 
   $l_bedankomat = ''; 
   $u_bedankomat = ''; 
} 


// Jetzt generieren wir die Ansicht fuer diejenigen, die sich bedankt haben. 
$sql = 'SELECT b.user_id, b.topic_id, u.username FROM ' .BEDANKOMAT_TABLE. ' b, ' .USERS_TABLE. ' u 
   WHERE (b.user_id = u.user_id) AND (b.topic_id = ' .$topic_id. ')'; 
if ( !($result = $db->sql_query($sql)) ) 
{ 
   message_die(GENERAL_ERROR, 'Could not obtain topic-bedankomat information', '', __LINE__, __FILE__, $sql); 
} 

$thx_users = array(); 
$num_thxs = $db->sql_numrows($result); 
$thx_users = $db->sql_fetchrowset($result); 

if ($num_thxs > 0) 
{ 
   $l_thx_userlist = ''; 
   $l_thx_user = 'Für diesen Thread bedanken sich die folgenden User:'; 

   for ($index=0; $index<$num_thxs; $index++) 
   { 
      $l_thx_userlist .= ($index==0) ? $thx_users[$index]['username'] : ', ' . $thx_users[$index]['username']; 
   } 

   $template->assign_block_vars('switch_bedankomat', array() ); 
} 
else 
{ 
   $l_thx_userlist = ''; 
   $l_thx_user = ''; 
} 

unset( $num_thxs ); 
unset( $thx_users ); 

///////////////////////////////////////////////////////// 
// 
//   Bedankomat-Ende (2) 
// 
///////////////////////////////////////////////////////// 

# 
#-----[ FIND ]------------------------------------------ 
# 
'L_GOTO_PAGE' => $lang['Goto_page'], 

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
'L_BEDANKOMAT' => $l_bedankomat, 
'U_BEDANKOMAT' => $u_bedankomat, 
'L_BEDANKOMAT_USERS' => $l_thx_userlist, 
'L_BEDANKOMAT_TEXT' => $l_thx_user, 

# 
#-----[ OPEN ]------------------------------------------ 
# 
templates/subSilver/viewtopic_body.tpl 

# 
#-----[ FIND ]------------------------------------------ 
# 
   <td align="left" valign="middle" width="100%"><span class="nav">&nbsp;&nbsp;&nbsp;<a href="{U_INDEX}" class="nav">{L_INDEX}</a> 
     -> <a href="{U_VIEW_FORUM}" class="nav">{FORUM_NAME}</a></span></td> 
  </tr> 
# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
  <tr> 
   <td colspan="2"><span class="gen"><a href="{U_BEDANKOMAT}" class="nav">{L_BEDANKOMAT}</a></span></td> 
  </tr> 

# 
#-----[ FIND ]------------------------------------------ 
# 
<!-- END postrow --> 

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
<!-- BEGIN switch_bedankomat --> 
<tr> 
   <td class="row1" colspan="2"><span class="gen"><b>{L_BEDANKOMAT_TEXT}</b>&nbsp;{L_BEDANKOMAT_USERS}</td> 
</tr> 
<!-- END switch_bedankomat --> 

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM
Benutzeravatar
Markus67
Ehrenadmin
Beiträge: 28346
Registriert: 12.01.2004 16:02
Wohnort: Neuss
Kontaktdaten:

Beitrag von Markus67 »

Hi

welche Fehler bekommst du denn ?

Verlinke mal die viewtopic.php als txt-Datei
KB:datei

Markus
Antworten

Zurück zu „phpBB 2.0: Mod Support“