Beiträge unter x Zeichen ausblenden

In diesem moderierten Forum werden Code-Schnipsel, die zu klein sind, um richtige Mods zu sein, abgelegt.
Snippets können über unser Kontaktformular eingereicht werden (bitte als vollständiger, Copy&Paste fähiger Beitrag).
Bei Fragen oder Problemen benutze bitte das Forum [3.0.x] Mod Support.
Benutzeravatar
Elsensee
Website-Team
Website-Team
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Beiträge unter x Zeichen ausblenden

Beitragvon Elsensee » 07.04.2015 21:18

Unser diesjähriger Aprilscherz bestand natürlich nicht aus einem komplizierten Algorithmus, sondern wurde lediglich mit einer Zeichenbeschränkung und einigen Ausnahmeregeln davon erreicht. Dies haben wir durch das folgende Snippet umgesetzt:

Öffne: viewtopic.php

Finde:

Code: Alles auswählen

$now = phpbb_gmgetdate(time() + $user->timezone + $user->dst); 
Danach einfügen:

Code: Alles auswählen

// Get users in phpBB.de-Team group
if (!function_exists('group_memberships'))
{
    include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
}
$users_team = group_memberships(15182);

$team_users = array();
foreach ($users_team as $user_team)
{
    $team_users[$user_team['user_id']] = true;
Die Zahl 15182 steht für die Gruppen-ID des phpBB.de-Teams. In diesem Schritt werden also die Mitglieder des phpBB.de-Teams ermittelt, um diese von der später stattfindenen Zeichenbeschränkung auszunehmen.

Finde:

Code: Alles auswählen

$rowset[$row['post_id']] = array
Davor einfügen:

Code: Alles auswählen

// APRIL15 - strip bbcode
$stripped_text = $row['post_text'];
strip_bbcode($stripped_text, $row['bbcode_uid']); 

Finde:

Code: Alles auswählen

'hide_post'            => ($row['foe'] && ($view != 'show' || $post_id != $row['post_id'])) ? true : false
Danach einfügen:

Code: Alles auswählen

'april15'            => (!$user->data['is_bot'] && $view != 'show' && utf8_strlen($stripped_text) < 500 && !isset($team_users[$row['user_id']])), 
Bots bekommen alle Nachrichten normal angezeigt; wenn &view=show in der URL übergeben wurde, werden alle Nachrichten normal angezeigt; sonst gilt: solange der Poster nicht im phpBB.de-Team ist, wird der Post bei weniger als 500 Zeichen ausgeblendet.

Finde:

Code: Alles auswählen

'S_IGNORE_POST'        => ($row['hide_post']) ? true : false,
'L_IGNORE_POST'        => ($row['hide_post']) ? sprintf($user->lang['POST_BY_FOE'], get_username_string('full', $poster_id, $row['username'], $row['user_colour'], $row['post_username']), '<a href="' . $viewtopic_url . "&amp;p={$row['post_id']}&amp;view=show#p{$row['post_id']}" . '">', '</a>') : ''
Ersetze mit:

Code: Alles auswählen

'S_IGNORE_POST'        => ($row['hide_post'] || $row['april15']) ? true : false,
'L_IGNORE_POST'        => ($row['hide_post'] || $row['april15']) ? sprintf((($row['hide_post']) ? $user->lang['POST_BY_FOE'] : $user->lang['APRIL15']), get_username_string('full', $poster_id, $row['username'], $row['user_colour'], $row['post_username']), '<a href="' . $viewtopic_url . "&amp;p={$row['post_id']}&amp;view=show#p{$row['post_id']}" . '">', '</a>') : ''
Wir wollten nicht ganz den Text "Dieser Beitrag wird ausgeblendet, weil er von einem Mitglied geschrieben wurde, das du ignoriert hast." haben, darum haben wir unseren eigenen unter dem Key APRIL15 in die nächstbeste Sprachdatei hinzugefügt:

Code: Alles auswählen

'APRIL15'            => 'Dieser Beitrag von <strong>%1$s</strong> wurde von uns als nicht lesenswert eingestuft und wird daher ausgeblendet. %2$sDiesen Beitrag dennoch anzeigen%3$s.'


Ihr solltet möglicherweise einiges modifizieren, wenn ihr dieses Snippet bei euch einbauen wollt. :wink:
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)

Zurück zu „[3.0.x] Snippets“