Seite 1 von 1

Beiträge unter x Zeichen ausblenden

Verfasst: 07.04.2015 21:18
von Elsensee
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 . "&p={$row['post_id']}&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 . "&p={$row['post_id']}&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: