Hallo,
ich bin gerade dabei mir ein externes Formular zu erstellen, das die Usersignatur überschreiben soll. In der Theorie funktioniert das auch schon soweit, das bei dem jeweiligen User der neue Text in die Datenbank geschrieben wird.
Doch angezeigt wird dann nur der reine Text (ein bbcode - der aber nicht ausgewertet wird). Klicke ich dann im Userprofil auf Signatur und speichere die Sig unverändert ab, wird sie richtig ausgewertet und angezeigt.
Ich habe in der Datenbank noch das Feld "user_sig_bbcode_bitfield" gesehen das scheinbar eine wichtige Rolle spielt. Kopiere ich die Zeichen aus einem anderen Account wo die Signatur normal funktioniert, wird sie auch bei der Formularsignatur des entsprechenden Users korrekt angezeigt.
Kann mir jemand sagen was es damit auf sich hat? Und kann ich einfach einen beliebigen Wert dort hinein schreiben lassen?
Gruß
hardy
Was macht "user_sig_bbcode_bitfield"?
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Re: Was macht "user_sig_bbcode_bitfield"?
Hallo,
schau Dir mal die Datei includes/ucp/ucp_profile.php an.
Ab diesem Punkt:
wird die Signatur in die Datenbank geschrieben ( inkl. user_sig_bbcode_uid und user_sig_bbcode_bitfield )
Dokumentation zum Einfügen von Text in die Datenbank findest Du hier: http://wiki.phpbb.com/display/MODDOCS/T ... rsing+text
schau Dir mal die Datei includes/ucp/ucp_profile.php an.
Ab diesem Punkt:
Code: Alles auswählen
if ($submit || $preview)
{
include($phpbb_root_path . 'includes/message_parser.' . $phpEx);
$enable_bbcode = ($config['allow_sig_bbcode']) ? ((request_var('disable_bbcode', false)) ? false : true) : false;
$enable_smilies = ($config['allow_sig_smilies']) ? ((request_var('disable_smilies', false)) ? false : true) : false;
$enable_urls = ($config['allow_sig_links']) ? ((request_var('disable_magic_url', false)) ? false : true) : false;
if (!sizeof($error))
{
$message_parser = new parse_message($signature);
// Allowing Quote BBCode
$message_parser->parse($enable_bbcode, $enable_urls, $enable_smilies, $config['allow_sig_img'], $config['allow_sig_flash'], true, $config['allow_sig_links'], true, 'sig');
if (sizeof($message_parser->warn_msg))
{
$error[] = implode('<br />', $message_parser->warn_msg);
}
if (!check_form_key('ucp_sig'))
{
$error[] = 'FORM_INVALID';
}
if (!sizeof($error) && $submit)
{
$user->optionset('sig_bbcode', $enable_bbcode);
$user->optionset('sig_smilies', $enable_smilies);
$user->optionset('sig_links', $enable_urls);
$sql_ary = array(
'user_sig' => (string) $message_parser->message,
'user_options' => $user->data['user_options'],
'user_sig_bbcode_uid' => (string) $message_parser->bbcode_uid,
'user_sig_bbcode_bitfield' => $message_parser->bbcode_bitfield
);
$sql = 'UPDATE ' . USERS_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
WHERE user_id = ' . $user->data['user_id'];
$db->sql_query($sql);
$message = $user->lang['PROFILE_UPDATED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>');
trigger_error($message);
}
}
Dokumentation zum Einfügen von Text in die Datenbank findest Du hier: http://wiki.phpbb.com/display/MODDOCS/T ... rsing+text