Seite 4 von 5

Verfasst: 27.09.2005 09:49
von CADwiesel
:grin: Super das isses Danke dir vielmals für deine Mühe.

Steht zwar nun am Ende, aber es ist so wie ich mir das dachte.

Du machst echt 'nen tollen Job

Verfasst: 27.09.2005 11:06
von DreamPromise
Moin moin

super das du nun fertig bist.....dann kommen mal meine Probleme:

Ich möchte gern das der User die Bedankung nicht mehr zurück nehmen kann.

In der Anleitung steht zwar:

Code: Alles auswählen

$allow_remove_thanks = 1;  // noch nicht implementiert !!!!!
Muß man das nun auf 0 (null) setzen oder geht das noch garnicht ????

Danke schon mal

DP

Verfasst: 27.09.2005 11:10
von CADwiesel
Hast es denn mal ausprobiert?

Verfasst: 27.09.2005 11:10
von Markus67
Hi ...

Was passiert denn wenn du das ganze auf 0 stellst? Können die User dann ihre "Danke" zurücknehmen ?

Markus

Verfasst: 27.09.2005 11:14
von CADwiesel
ich habe hier noch was gefunden :

Code: Alles auswählen

Wenn ihr nicht wollt, daß man das "Danke" zurücknehmen kann:

# 
#-----[ OPEN ]----- 
# 
viewtopic.php 

# 
#-----[ FIND AND DELETE ]----- 
# 
      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; 

# 
#------[ FIND ]----- 
# 
      $l_bedankomat = $lang['Say_no_thanks']; 
      $u_bedankomat = append_sid('viewtopic.'.$phpEx.'?mode=remove_thx&u='.$userdata['user_id'].'&t='.$topic_id); 

# 
#-----[ REPLACE WITH ]----- 
# 
      $l_bedankomat = ''; 
      $u_bedankomat = ''; 


# 
#-----[ SAVE/CLOSE ALL FILES ]----- 
# 
# EoM

Verfasst: 27.09.2005 11:18
von CADwiesel
@Markus

eine Sache ist mir aber noch aufgefallen
es wird nun unter jeder Seite (wenn ein Toppic mehrere Seiten beinhaltet) der Danke Threat angezeigt.
wenn ich den unter dem 1. Beitrag platzieren möchte, muss ich den irgendwo anders einbauen.

weißt du wo?
.. ich fummel mal etwas rum mal sehen....

Verfasst: 27.09.2005 11:18
von DreamPromise
Die Variable steht auf 0 (null) ...aber man kann das Dankeschön trotz alldem zurück nehmen.

DP

Verfasst: 27.09.2005 11:41
von Markus67
Hi ...

@DreamPromise

Hast du schon den weiter oben geposteten Code von CADwiesel ausprobiert?

@CATwiesel

Wenn du das ganze an den Anfang stellst ist es das gleiche in grün .. nur steht es dann obendrüber. :wink:
Wie wird denn das ganze im Standard angezeigt? Kommt es da auch auf jeder Seite?

Markus

Verfasst: 27.09.2005 11:51
von DreamPromise
Markus67 hat geschrieben:Hi ...

@DreamPromise

Hast du schon den weiter oben geposteten Code von CADwiesel ausprobiert?
Also diese Cod ist doch schon in der viewtopic.php mit drin.
Aber man kann das immernoch zurück nehmen.

DP

Verfasst: 27.09.2005 12:00
von Markus67
@DreamPromise

lösch das mal aus der viewtopic.php
(vorher aber bitte eine Sicherungskopie erstellen)

Code: Alles auswählen

      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;
Markus