SMF Support > FAQ & Tutorials
[Tutorial] PM Lesebestätigung für gesendete Nachrichten
noex:
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) --- // 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__);
--- End code ---
und ersetze den Code mit folgenden:
--- Code: (Ersetzen) --- // 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__);
--- End code ---
Suche nach:
--- Code: (Suche) --- 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>';
--- End code ---
und füge diesen hinzu:
--- Code: (Hinzufügen) --- if($context['folder'] == 'outbox')
$recipients[$row['ID_PM']]['is_read'] = $row['is_read'];
--- End code ---
Suche nun in der Datei Themes/default/PersonalMesssage.template.php nach:
--- Code: (Suche) --- // 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>';
--- End code ---
und füge danach folgenden Code hinzu:
--- Code: (Hinzufügen) ---
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 />';
}
}
--- End code ---
Original von: Oldiesmann
Deutsche Übersetzung von: noex
chrischan:
Hi!
Kann leider das "<div style="overflow: auto; width: 100%;">', $message['body'], '</div>"
in der personalmassage.template... nicht finden ???
gruß
chris
steinbock:
Hi bei mir auch.
Ausserdem steht nach
--- Quote ---while ($row = mysql_fetch_assoc($request))
--- End quote ---
bei mir noch
--- Quote ---{
if ($context['folder'] == 'outbox' || empty($row['bcc']))
{
--- End quote ---
und diesen Eintrag gibts zwei mal.
noex:
okay, arbeite gerade an einer aktuellen Version und korrigiere die Fehler, Lösung poste ich dann hier...
noex:
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
Navigation
[0] Message Index
[#] Next page
Go to full version