SMF Support > FAQ & Tutorials

[Tutorial] PM Lesebestätigung für gesendete Nachrichten

(1/7) > >>

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