Seite 2 von 2
Verfasst: 28.11.2006 00:20
von mark2
Nein es funktioniert leider nicht.
Zumindes mit Version 2.0.21 nicht
Erlaubt man HTML im ACP erscheint beim posting erstellen unten ein Feld in dem HTML immer für jeden deaktiviert ist und man für jede post einzeln nochmal den Haken entfernen muß um HTML zu aktivieren. Diese Zeile taucht aber leider mit deinem code nicht auf und HTML ist somit immernoch für den Admin deaktiviert.
Verfasst: 28.11.2006 16:59
von gn#36
Sorry. Ich hatte die falsche Funktion angegeben. Es muss nicht an die Stelle die ich angegeben habe sondern in die Funktion
"function session_pagestart($user_ip, $thispage_id)" und zwar 2 mal, direkt vor die Zeilen mit "return":
Code: Alles auswählen
if($userdata['user_level'] == ADMIN)
{
$board_config['allow_html'] = 1;
}
return $userdata;
}
}
}
//
// If we reach here then no (valid) session exists. So we'll create a new one,
// using the cookie user_id if available to pull basic user prefs.
//
$user_id = ( isset($sessiondata['userid']) ) ? intval($sessiondata['userid']) : ANONYMOUS;
if ( !($userdata = session_begin($user_id, $user_ip, $thispage_id, TRUE)) )
{
message_die(CRITICAL_ERROR, 'Error creating user session', '', __LINE__, __FILE__, $sql);
}
if($userdata['user_level'] == ADMIN)
{
$board_config['allow_html'] = 1;
}
return $userdata;
Ursprünglich dürfte da das hier gestanden haben:
Code: Alles auswählen
return $userdata;
}
}
}
//
// If we reach here then no (valid) session exists. So we'll create a new one,
// using the cookie user_id if available to pull basic user prefs.
//
$user_id = ( isset($sessiondata['userid']) ) ? intval($sessiondata['userid']) : ANONYMOUS;
if ( !($userdata = session_begin($user_id, $user_ip, $thispage_id, TRUE)) )
{
message_die(CRITICAL_ERROR, 'Error creating user session', '', __LINE__, __FILE__, $sql);
}
return $userdata;
Das habe ich dieses mal getestet und bei mir funktioniert es. Trotzdem vorher sichern und testen ob es ohne Admin Rechte trotzdem funktioniert. Im ACP muss HTML aus sein, sonst macht die Aktion keinen Sinn, es müssen aber trotzdem die erlaubten Tags eingetragen werden.
EDIT: Für alle die nur diesen Post lesen: Das ganze findet statt in der sessions.php
Verfasst: 07.12.2006 15:11
von mark2
Hm.
Also entweder spinnt mein Board oder es geht nich richtig.
Jetz bekomme ich bein Posting schreiben zwar die Anzeige mit der Auswahl und auch links bei den smilys wird angezeigt html is an aber es funktioniert nicht.
ich habe diesen code gepostet.
Code: Alles auswählen
<a>Zum Anker</a>
ein bisschen HTML
<a>hier ist der Anker</a>
Den code <a> habe ich im ACP freigeschalten. Klicke ich jetzt auf Vorschau wird mir das angezeigt
Zum Anker
ein bisschen HTML
hier ist der Anker
So soll es ja sein und habe mich schon gefreut. Aber klicke ich dann auf Absenden steht es dann komischerweise so im Beitrag
<a>Zum Anker</a>
ein bisschen HTML
<a>hier ist der Anker</a>
Es funktioniert also nur in der Vorschau. Wiso ??
Verfasst: 07.12.2006 15:36
von Miriam
Die Sache mit den Ankern sollt so aussehen:
Code: Alles auswählen
<a href="#anker">Zum Anker</a>
ein bisschen HTML
<a name="anker">hier ist der Anker</a>
Zum Thema,
kannst Du auch mal hier nachschauen
Und es muss HTML im Forum erlaubt sein, das HTML darf in diesem Posting nicht abgeschaltet sein und in Deinem Profil sollte es auch (evtl.) angeschaltet sein.
Verfasst: 07.12.2006 17:16
von mark2
Hi Miriam
Um die Anker Funktion geht es mir garnicht. Brauchte nur ein html post zum testen. Das habe ich gerade gefunden und einfach rein kopiert.
Aber guter Tip mit dem Profileinstellungen.
Ich habe gerade in meinem Profil also dem Admin Account bei "HTML immer aktivieren:" den Haken gesetzt und jetzt wird es richtig angezeigt. Allerdings nur mir. Es müsste also jeder user in seinem Profil Html aktiv haben.
Wenn man nun diesen code um den es hier geht einbaut so dass der Admin html posten kann ohne es gleich jedem zu erlauben, sehen die user alle nur den html code. Weil es keiner im Profil an hat.
Das bringt dann auch nicht wirklich einen vorteil.
Der code oben müsste noch erweitert werden, so dass jeder user html sehen aber nicht posten kann.
Verfasst: 07.12.2006 17:52
von gn#36
Code: Alles auswählen
if ( !$board_config['allow_html'] || !$userdata['user_allowhtml'])
{
if ( $user_sig != '' )
{
$user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $user_sig);
}
if ( $postrow[$i]['enable_html'] )
{
$message = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $message);
}
}
Diese Stelle in der viewtopic.php ist der Übeltäter. Unabhängig davon, ob im Post HTML erlaubt ist oder nicht funktioniert das ganze nur wenn im Board HTML erlaubt ist. Es sollte eigentlich nicht möglich sein Posts mit HTML aktiviert zu machen wenn HTML im Board verboten ist. Daher könntest du diesen Teil
Code: Alles auswählen
if ( $postrow[$i]['enable_html'] )
{
$message = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $message);
}
auskommentieren und deinen HTML Code dürften alle sehen können. Sicherer ist es aber an dieser Stelle z.B. die user_id mit abzufragen die der Poster hat, auf diese Weise stellst du sicher, dass auch nur deine Posts eine Ausnahmegenemigung bekommen. Z.B. das hier statt des codes:
Code: Alles auswählen
if ( $postrow[$i]['enable_html'] && $poster_id != ---ADMIN_ID_EINTRAGEN---)
{
$message = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $message);
}
(das ---ADMIN_ID_EINTRAGEN--- natürlich durch die ID ersetzen)
Oder aber wenn du generell allen Admins HTML Erlauben willst muss in diese Abfrage hier
Code: Alles auswählen
$sql = "SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_avatar, u.user_avatar_type, u.user_allowavatar, u.user_allowsmile, p.*, pt.post_text, pt.post_subject, pt.bbcode_uid
FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt
WHERE p.topic_id = $topic_id
$limit_posts_time
AND pt.post_id = p.post_id
AND u.user_id = p.poster_id
ORDER BY p.post_time $post_time_order
LIMIT $start, ".$board_config['posts_per_page'];
zusätzlich noch u.user_level rein und dann kannst du in die If Abfrage $postrow[$i]['user_level'] != ADMIN einbauen.
Verfasst: 07.12.2006 21:36
von mark2
Super.
Das funktioniert.
Habe die unterste Variante eingebaut.
Da es ja mal sein kann dass der Admin irgendwann wechselt und dann müste man die id in der php Datei ändern. Gefällt mir auch nicht wenn die Admin id direkt in einer Datei steht.
Es ist jetzt sogar so dass ich im Admin Profil (und allen user Profilen) & im ACP Html aus habe und der code sogar Gästen richtig angezeigt wird. Somit auch allen usern. Zusätzlich ist sichergestellt dass nur ein Admin Html posten kann.
Bin begeistert.
Thx.
Verfasst: 07.12.2006 21:44
von gn#36
Kein Problem.
Verfasst: 25.06.2008 16:52
von wwwthomasbauerattf
@gn#36
check ich noch immer ned. was muss ich jetzt machen das der admin html posten darf. sonst aber keiner
aber jeder soll das html-gepostete vom admin sehen
jetzt siehts nämlich keiner mehr, als ich die eine änderung in der sessions.php durchgeführt habe
edit: hab schon die lösung gefunden (
http://www.phpbb.com/community/viewtopic.php?t=119663)
Verfasst: 18.07.2008 16:22
von wwwthomasbauerattf
ok. ich muss mich korrigieren. der link zum mod auf phpbb.com ist doch totaler blödsinn...
user die bisher html aktiviert haben können html vom admin nicht sehen sondern sehen nur den code
neu registrierte user genau das gleiche, da das feldchen html aktivieren nicht mehr da ist und somit automatisch deaktiviert ist. also total blödsinn der mod...
kann mir bitte jemand helfen... das kann doch nicht so schwer sein