Beiträge unter x Zeichen ausblenden
Verfasst: 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:Danach einfügen:Die Zahl
Finde:Davor einfügen:
Finde:Danach einfügen:Bots bekommen alle Nachrichten normal angezeigt; wenn
Finde:Ersetze mit: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
Ihr solltet möglicherweise einiges modifizieren, wenn ihr dieses Snippet bei euch einbauen wollt. 
Öffne: viewtopic.php
Finde:
Code: Alles auswählen
$now = phpbb_gmgetdate(time() + $user->timezone + $user->dst);
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;
}
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(
Code: Alles auswählen
// APRIL15 - strip bbcode
$stripped_text = $row['post_text'];
strip_bbcode($stripped_text, $row['bbcode_uid']);
Code: Alles auswählen
'hide_post' => ($row['foe'] && ($view != 'show' || $post_id != $row['post_id'])) ? true : false,
Code: Alles auswählen
'april15' => (!$user->data['is_bot'] && $view != 'show' && utf8_strlen($stripped_text) < 500 && !isset($team_users[$row['user_id']])),
&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>') : '',
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>') : '',
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.',
