Simple Machines Community Forum

SMF Support => Hilfe zu SMF (German) => Language Specific Support => FAQ & Tutorials => Topic started by: noex on February 28, 2006, 08:04:30 AM

Title: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: noex on February 28, 2006, 08:04:30 AM
Mit der folgenden Änderung sieht man ob die gesendete private Nachricht vom Empfänger gelesen wurde.

SMF 1.1 RC1

Suche in der Datei Sources/PersonalMessage.php nach:

Code: (Suche) [Select]
// Get recipients (don't include bcc-recipients for your inbox, you're not supposed to know :P).
$request = db_query("
SELECT pmr.ID_PM, mem_to.ID_MEMBER AS ID_MEMBER_TO, mem_to.realName AS toName, pmr.bcc, pmr.labels, pmr.is_read
FROM {$db_prefix}pm_recipients AS pmr
LEFT JOIN {$db_prefix}members AS mem_to ON (mem_to.ID_MEMBER = pmr.ID_MEMBER)
WHERE pmr.ID_PM IN (" . implode(', ', $pms) . ")", __FILE__, __LINE__);

und ersetze den Code mit folgenden:
Code: (Ersetzen) [Select]
// Get recipients (don't include bcc-recipients for your inbox, you're not supposed to know :P).
$request = db_query("
SELECT pmr.ID_PM, mem_to.ID_MEMBER AS ID_MEMBER_TO, mem_to.realName AS toName, pmr.bcc, pmr.labels, pmr.is_read" . ($context['folder'] == 'outbox' ? ", pmr.is_read" : '') . "
FROM {$db_prefix}pm_recipients AS pmr
LEFT JOIN {$db_prefix}members AS mem_to ON (mem_to.ID_MEMBER = pmr.ID_MEMBER)
WHERE pmr.ID_PM IN (" . implode(', ', $pms) . ")", __FILE__, __LINE__);

Suche nach:
Code: (Suche) [Select]
while ($row = mysql_fetch_assoc($request))
{
if ($context['folder'] == 'outbox' || empty($row['bcc']))
$recipients[$row['ID_PM']][empty($row['bcc']) ? 'to' : 'bcc'][] = empty($row['ID_MEMBER_TO']) ? $txt[28] : '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER_TO'] . '">' . $row['toName'] . '</a>';

und füge diesen hinzu:
Code: (Hinzufügen) [Select]
if($context['folder'] == 'outbox')
$recipients[$row['ID_PM']]['is_read'] = $row['is_read'];
            

Suche nun in der Datei Themes/default/PersonalMesssage.template.php nach:
Code: (Suche) [Select]
// People it was sent directly to....
if (!empty($message['recipients']['to']))
echo implode(', ', $message['recipients']['to']);
// Otherwise, we're just going to say "some people"...
elseif ($context['folder'] != 'outbox')
echo '(', $txt['pm_undisclosed_recipients'], ')';

echo ' <b> ', $txt[30], ':</b> ', $message['time'], ' »</div>';

und füge danach folgenden Code hinzu:
Code: (Hinzufügen) [Select]

if($context['folder'] == 'outbox')
{
echo '<br />';
foreach($message['recipients']['to'] as $person)
{
echo $person . ' hat diese Nachricht ' . ($message['recipients']['is_read'] == '1' ? 'gelesen' : 'NICHT gelesen') . '.<br />';
}
}


Original von: Oldiesmann (http://www.simplemachines.org/community/index.php?action=profile;u=150)
Deutsche Übersetzung von: noex (http://www.simplemachines.org/community/index.php?action=profile;u=3080)
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: chrischan on March 01, 2006, 05:49:51 AM
Hi!
Kann leider das "<div style="overflow: auto; width: 100%;">', $message['body'], '</div>"
in der personalmassage.template... nicht finden  ???

gruß
chris
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: steinbock on March 01, 2006, 08:50:27 AM
Hi bei mir auch.
Ausserdem steht nach
Quote
while ($row = mysql_fetch_assoc($request))
bei mir noch
Quote
{   
       if ($context['folder'] == 'outbox' || empty($row['bcc']))
{

und diesen Eintrag gibts zwei mal.
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: noex on March 01, 2006, 02:51:38 PM
okay, arbeite gerade an einer aktuellen Version und korrigiere die Fehler, Lösung poste ich dann hier...
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: noex on March 01, 2006, 03:16:12 PM
Update: Hab die Codestellen angepasst und im ersten Post geändert. Beachtet bitte das ich einen ersetzen Befehl durch einen hinzufügen Befehl getauscht habe!

lg
noex
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: chrischan on March 02, 2006, 02:33:42 AM
supe, hat prima geklappt, dankesehr!!  :D
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: steinbock on March 05, 2006, 04:59:41 AM
Hi, bei mir werden nicht alle Mails bestätigt.

Ausserdem ist dieser Teil
Code: [Select]
while ($row = mysql_fetch_assoc($request))
{
if ($context['folder'] == 'outbox' || empty($row['bcc']))
$recipients[$row['ID_PM']][empty($row['bcc']) ? 'to' : 'bcc'][] = empty($row['ID_MEMBER_TO']) ? $txt[28] : '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER_TO'] . '">' . $row['toName'] . '</a>';
doppelt vorhanden.
Muss bei beiden Stellen der Code hinzugefügt werden?

SMF 1.1 RC2
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: ernomo98 on March 05, 2006, 04:33:03 PM
funktioniert das auch im 1.1RC2?
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: V-Mann on March 23, 2006, 04:47:55 AM
ja würd mich auch intressieren, ich probiers gerne aus, aber zuvor wüsste ich doch gern ob schon jemand erfahrungen damit gemacht hat ;)))
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: NacoyaTarsk on April 11, 2006, 06:56:42 AM
Hab alle aufgeführten Änderungen gemacht, aber ich bekomm keine Bestätigung ob die PM gelesen wurde oder nicht. Benutzte aber auch 1.1RC2 ... sind da andere/weiterführende Änderungen zu machen damit es funktioniert?
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: mediman on August 06, 2006, 10:01:59 AM
Es gibt bereits seit längerer Zeit eine Modifikation von mir, allerdings muss dringend eine neue Lösung gefunden werden, da alle Mods davon ausgehen, dass nur ein Recipient vorhanden ist.

Ein Bild des Mods ist angehangen (RC2)

mediman
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: ernomo98 on August 27, 2006, 05:47:18 PM
@all

kann jemand sagen wo diese modifikation ist?
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: jpch on November 08, 2006, 03:54:14 AM
Hi Ihr,

Funktioniert das auch in SMF 1.1 RC 3 ? und ja, wo findet man den mod ?

Danke
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: Sprudel on November 19, 2006, 12:34:41 PM
Hallo,

ich finde die Modifikation von mediman leider auch nicht.  :(

Kann mir da jemand einen Hinweis geben wo diese Modifikation sich versteckt, das wäre sehr nett.  :)


Grüße
Sprudel
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: rois on November 25, 2006, 06:03:56 AM
Hi Ihr,

Funktioniert das auch in SMF 1.1 RC 3 ? und ja, wo findet man den mod ?

Danke


Beschäftigt mich auch sehr brennend!!!
Wie muss man bei RC3 vorgehen?

Ich denke,eine gute Modification muss her,denn andere nicht so sehr bekannte Boards als das SMF,haben so etwas standard! :(

Ich finde,so etwas müsste längst implementiert sein.
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: ernomo98 on April 30, 2007, 04:04:32 AM
Es gibt bereits seit längerer Zeit eine Modifikation von mir, allerdings muss dringend eine neue Lösung gefunden werden, da alle Mods davon ausgehen, dass nur ein Recipient vorhanden ist.

Ein Bild des Mods ist angehangen (RC2)

mediman


mediman, hast du das auf die neue version(1.1.2) aktuallisiert? Ist eine super Funktion, kann man sehr gut brauchen.
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: ernomo98 on May 15, 2007, 12:53:41 PM
weiss wirklich niemand wie das geht, oder braucht das wirklich niemand?
Danke
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: Jessikard on May 18, 2007, 01:36:52 AM
ich wäre auch brennend daran interessiert, allerdings mit einer Version, die mit smf 1.1.1 läuft

bitteeeeeeeeeeeeeeeeeeeeeeeeeeeee  :-*
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: acherontic on March 07, 2008, 12:03:51 AM
gibts mittlerweile neue infos zu diesem thema bzgl. der aktuellen version 1.1.4
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: Jessikard on March 07, 2008, 05:09:55 AM
bin auch mittlerweile auf der 1.1.4 und es wäre schön wenn es sowas gäbe
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: acherontic on March 07, 2008, 01:03:19 PM
hey, es funktioniert - auch in Version 1.1.4! aber nur, wenn ihr beim schreiben einer pm das häckchen bei "Kopie im Ausgang speichern" angeklickt habt. dann könnt ihr im ordner "postausgang" sehen, ob jemand die nachricht schon gelesen hat oder nicht ...

ich hab den code (fast) genauso eingefügt, wie es noex weiter oben beschrieben hat.
- in sources/PersonalMessage.php wird der erste teil ab Zeile 482 und der zweite Teil wird zwischen die Zeilen 492 und 493 eingefügt, sodass
der Code (ab Zeile 476) so aussehen müsste
Code: [Select]
mysql_free_result($request);

if (!empty($pms))
{
// Get recipients (don't include bcc-recipients for your inbox, you're not supposed to know :P).
$request = db_query("
SELECT pmr.ID_PM, mem_to.ID_MEMBER AS ID_MEMBER_TO, mem_to.realName AS toName, pmr.bcc, pmr.labels, pmr.is_read" . ($context['folder'] == 'outbox' ? ", pmr.is_read" : '') . "
FROM {$db_prefix}pm_recipients AS pmr
LEFT JOIN {$db_prefix}members AS mem_to ON (mem_to.ID_MEMBER = pmr.ID_MEMBER)
WHERE pmr.ID_PM IN (" . implode(', ', $pms) . ")", __FILE__, __LINE__);
$context['message_labels'] = array();

und ab Zeile 490 so:

Code: [Select]
if ($context['folder'] == 'outbox' || empty($row['bcc']))
$recipients[$row['ID_PM']][empty($row['bcc']) ? 'to' : 'bcc'][] = empty($row['ID_MEMBER_TO']) ? $txt[28] : '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER_TO'] . '">' . $row['toName'] . '</a>';

if($context['folder'] == 'outbox')
$recipients[$row['ID_PM']]['is_read'] = $row['is_read'];

if ($row['ID_MEMBER_TO'] == $ID_MEMBER && $context['folder'] != 'outbox')

- in Themes/default/PersonalMesssage.template.php wird der code ab Zeile 371 eingefügt, sodass der Code (beginnend ab Zeile 359) so aussehen müsste:

Code: [Select]
// Show who the message was sent to.
echo '
<div class="smalltext">&#171; <b> ', $txt['sent_to'], ':</b> ';

// People it was sent directly to....
if (!empty($message['recipients']['to']))
echo implode(', ', $message['recipients']['to']);
// Otherwise, we're just going to say "some people"...
elseif ($context['folder'] != 'outbox')
echo '(', $txt['pm_undisclosed_recipients'], ')';

echo ' <b> ', $txt[30], ':</b> ', $message['time'], ' &#187;</div>';

if($context['folder'] == 'outbox')
{
echo '<br />';
foreach($message['recipients']['to'] as $person)
{
echo $person . ' hat diese Nachricht ' . ($message['recipients']['is_read'] == '1' ? 'gelesen' : 'NICHT gelesen') . '.<br />';
}
}

// If we're in the outbox, show who it was sent to besides the "To:" people.

Ergänzen möchte ich :
das funktioniert nur, wenn man beim Absenden einer PM auch angibt, dass eine Kopie im Postausgang gespeichert werden soll. Dann sieht man dort bei den gesendeten PM's über dem geschriebenen Text "xxxx hat diese Nachricht gelesen" bzw. "... NICHT gelesen"
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: Jessikard on March 07, 2008, 02:23:36 PM
 :D cooooool, es funzt super megafettes Dankeschön :-*
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: atrsc2003 on April 20, 2008, 11:06:10 AM
hallo!

Ich habe das versucht nach zu vollziehen und bekomme folgende Fehlermeldung :
-----------------------------------------------------
Parse error: syntax error, unexpected T_STRING in /is/htdocs/wp1072687_2XYCC92U7J/quasselbox/Sources/PersonalMessage.php on line 489
------------------------------------------------------

Andreas

Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: B-S-G on May 15, 2008, 02:11:38 AM
Hallo,

nette Sache, funktioniert soweit auch.

Problem: Sobald der Empfänger auf die PM antwortet (egal ob 'antworten' oder 'zitieren'), wandert der Status wieder auf "Nicht gelesen".

Ist das bei euch auch so (V. 1.1.5)?
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: atrsc2003 on May 15, 2008, 03:46:25 PM
hallo!

Ich habe das versucht nach zu vollziehen und bekomme folgende Fehlermeldung :
-----------------------------------------------------
Parse error: syntax error, unexpected T_STRING in /is/htdocs/wp1072687_2XYCC92U7J/quasselbox/Sources/PersonalMessage.php on line 489
------------------------------------------------------

Andreas



Hallo!

Habe den Fehler gefunden.....da ich den zu suchenden String wohl irgendwie nicht hatte konnte der auch nicht ersetzt werden. Scheint also Super einwandfrei zu funktionierten. Herzliches danke!:-)

Andreas
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: B-S-G on May 19, 2008, 06:41:19 AM
Problem: Sobald der Empfänger auf die PM antwortet (egal ob 'antworten' oder 'zitieren'), wandert der Status wieder auf "Nicht gelesen".

Hat dazu noch jemand eine Idee?  ???
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: halfmoon on July 12, 2008, 05:16:41 AM
Hallo Zusammen,

ich habe das gleiche Problem, Nachrichten werden in den Status "NICHT gelesen" versetzt sobald eine
Antowert oder Zitat erfolgt.

Änderungen habe ich laut der ersten How To durchgeführt.

Ich verwende SMF 1.1.5

Hoffe es kann jemand helfen und weis eine Lösung oder einen Ansatz.

Gruss HalfMoon


Problem: Sobald der Empfänger auf die PM antwortet (egal ob 'antworten' oder 'zitieren'), wandert der Status wieder auf "Nicht gelesen".

Hat dazu noch jemand eine Idee?  ???
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: Nachtfalke on July 27, 2008, 06:21:44 AM
Also DAS möchte ich auch haben  8)

Ich benutze SMF 1.1.5

Gibt es da schon ne gut funktionierende Lösung???

Gruß, Thorsten
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: Jessikard on August 14, 2008, 10:22:19 AM
 :( wir haben auch das Problem mit dem Status, dass der wieder auf ungelesen geht - help please
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: joker on April 25, 2009, 06:33:26 AM
Gibt es eine aktuellere version zu diesem MOD oder paßt sie auch zu 1.1.8?
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: dieter4 on April 25, 2009, 06:59:49 AM
Probiere es mal lokal aus. Vllt funktioniert es noch in 1.1.8.
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: daGroove on April 28, 2009, 05:36:48 PM
funktioniert bei mir einwandfrei mit 1.1.8... bis auf das problem das gelesene messages bei antwort wieder als ungelesen erscheinen... was allerdings nicht auf einen bug dieser modifikation zurück zu führen ist...

ergo das ding macht unter 1.1.8 genau das was es machen soll :) ob einem das ergebnis dann gefällt ist halt geschmacksache...

mir recihts erstmal  8)
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: Shorti25 on July 05, 2011, 05:18:22 AM
funktioniert das auch bei 2.0 gold ?
Title: Re: [Tutorial] PM Lesebestätigung für gesendete Nachrichten
Post by: Nightwish76 on November 30, 2011, 08:32:56 AM
Funktioniert das auch mit SMF 2.0.1 bzw. gibt es vielleicht sogar eine Mod (Paket) dafür?