Seite 1 von 1

Gekürzte Beizräge für Gäste

Verfasst: 18.04.2009 23:52
von wolkenkrieger
Hallo Gemeinde,

ich suche nach einem Hack / Snippet /Mod, der /das folgendes umsetzt: ich möchte, dass meine Gäste einen gekürzten Beitrag sehen mit dem Hinweis, dass nach der Registrierung der Beitrag in voller Länge zur Verfügung stellt.

Gibt es sowas?

Danke und Gruß

wolkenkrieger

Re: Gekürzte Beizräge für Gäste

Verfasst: 19.04.2009 00:50
von dieweltist
Aha; Du möchtest also viele inaktive Accounts...

Andere fragen hier nach, wie sie solche Accounts am rationellsten wieder loswerden können: Klick! :wink:

Re: Gekürzte Beizräge für Gäste

Verfasst: 19.04.2009 11:44
von Helmut
Hallo wolkenkrieger,

das ist eigentlich relativ einfach umzusetzen, dazu musst du nur die viewtopic.php etwas erweitern. Das folgende Snippet zeigt dir, wie du sowas umsetzen könntest.

Öffne die viewtopic.php und finde folgendes:

Code: Alles auswählen

/ Posts are stored in the $rowset array while $attach_list, $user_cache
// and the global bbcode_bitfield are built
while ($row = $db->sql_fetchrow($result))
{
    // Set max_post_time
    if ($row['post_time'] > $max_post_time)
    {
        $max_post_time = $row['post_time'];
    }

    $poster_id = $row['poster_id'];

    // Does post have an attachment? If so, add it to the list
    if ($row['post_attachment'] && $config['allow_attachments'])
    {
        $attach_list[] = $row['post_id'];

        if ($row['post_approved'])
        {
            $has_attachments = true;
        }
    }
 
und füge danach folgendes ein:

Code: Alles auswählen

    //Überprüfen ob User eingeloggt ist sonst gekürzten Text anzeigen
    $short_to = 300; //Länge des angezeigten Textes
    if (!$user->data['is_registered'] && !$user->data['is_bot'] && $user->data['user_id'] = ANONYMOUS)
    {
        $row['post_text'] = ( utf8_strlen($row['post_text']) > $short_to + 5 )? (utf8_substr($row['post_text'],0,$short_to) . '... <br /><br /><strong>Wenn du den ganzen Text lesen willst, dann musst du dich anmelden und einloggen</strong>') : ($row['post_text']);
    }
 
Mit $short_to legst du fest, wieviele Zeichen der Text haben soll. Bei dem Beispiel wird aber nicht berücksichtigt ob Wörter und Links auch abgeschnitten werden. Dies kann unter ungünstigen Bedingungen dazu führen, dass dein Style zerschossen wird und die Darstellung ab dem abgeschnittenen Text fehlerhaft ist.

Wenn du das auch noch berücksichtigen willst, dann musst du einen deutlich höheren Aufwand treiben, damit die Zeichen der nicht vollständigen Wörter bzw. BBCodes rausgenommen werden.

Gruß Helmut :wink:

Re: Gekürzte Beizräge für Gäste

Verfasst: 21.04.2009 14:11
von matteovice
Hallo Helmut,

wäre es denn möglich, den Eröffnungsthead komplett anzuzeigen und erst die weiteren Beiträge zu kürzen? Wenn ja, was müsste man ändern?

Gruß

Matthias

Re: Gekürzte Beizräge für Gäste

Verfasst: 22.04.2009 01:03
von Helmut
Hallo matteovice,

nun, machbar ist es schon, aber es ist ein größerer Aufwand, das umzusetzen.

Dazu muss die Abfrage der Datenbank so geändert werden, dass der Eröffnungsthead und die Antworten dazu getrennt abgefragt werden. Das würde schon einen richtigen Mod ergeben, da dann gleich noch das Problem mit den abgeschnittenen bzw. unvollständigen BBCodes gelöst werden könnte.

Gruß Helmut

Re: Gekürzte Beizräge für Gäste

Verfasst: 23.04.2009 14:37
von marcus6977
Bei mir funzt es wunderbar.