Seite 1 von 1

Was macht "user_sig_bbcode_bitfield"?

Verfasst: 28.10.2010 11:56
von hardy23
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

Re: Was macht "user_sig_bbcode_bitfield"?

Verfasst: 28.10.2010 13:45
von Dr.Death
Hallo,

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);
						}
					}
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