Seite 1 von 1

[ERLEDIGT] Signatur in Profil

Verfasst: 01.09.2006 13:00
von killerbees19
Ich habe eine kurze Erweiterung von einem anderen MOD genommen, damit die Signatur im Profil angezeigt wird.
Jedoch wird die Signatur auch angezeigt, wenn der User keine hat.

Wie schaffe ich es, dass die Signatur nicht angezeigt wird, oder ein alternativer Text steht, wie "Der Benutzer hat keine Signatur" angezeitg wird?

Hier der Auszug des PHP-Codes:
includes/usercp_viewprofil.php

Code: Alles auswählen

if ( $profiledata['user_attachsig'] && $board_config['allow_sig'] )
{
	include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
	$user_sig = $profiledata['user_sig'];
	$user_sig_bbcode_uid = $profiledata['user_sig_bbcode_uid'];
	if ( $user_sig != '' )
	{
		if ( !$board_config['allow_html'] && $profiledata['user_allowhtml'] )
		{
			$user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $user_sig);
		}

		if ( $board_config['allow_bbcode'] && $user_sig_bbcode_uid != '' )
		{
			$user_sig = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($user_sig, $user_sig_bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $user_sig);
		}

		$user_sig = make_clickable($user_sig);

		if ( !$userdata['user_allowswearywords'] )
		{
			$orig_word = !empty($orig_word) ? $orig_word : array();
			$replacement_word = !empty($replacement_word) ? $replacement_word : array();
			obtain_word_list($orig_word, $replacement_word);
			$user_sig = preg_replace($orig_word, $replacement_word, $user_sig);
		}

		if ( $profiledata['user_allowsmile'] )
		{
			$user_sig = smilies_pass($user_sig);
		}

		$user_sig = str_replace("\n", "\n<br />\n", $user_sig);
	}

	$template->assign_block_vars('switch_user_sig_block', array());
}
Im Template ist der Signatur-Teil natürlich durch die üblichen Kommentare eingehüllt, damit er geblockt werden kann.

Das Problem: Wenn ein User eingestellt hat "Signatur immer anhängen", dann wird der Signaturteil ausgegeben, auch wenn der Benutzer keine hat.
Wenn der Benutzer es anders im profil eingestellt hat, dann wird die Signatur schön geblockt.


Bitte um Tipps.


MfG Christian

Verfasst: 01.09.2006 14:10
von faux
Hallo!

Probiers mal so:

Code: Alles auswählen

    if ( $user_sig != '' )
    {
      ... SIEHE OBEN ...
    }
    else
    {
        $user_sig = $lang['User_has_no_sig'];
    }
Und dann in die language/lang_english/lang_main.php
am Ende $lang['User_has_no_sig'] = 'This user has no signature.'; einfügen.

Grüße
Faux

Verfasst: 01.09.2006 14:15
von killerbees19
:grin: Danke.
Jetzt ist zwar der Signaturbereich nicht weg, wenn jemand kein hat, aber es sieht schon etwas besser aus.

MfG Christian

Verfasst: 01.09.2006 14:46
von faux
killerbees19 hat geschrieben:Jetzt ist zwar der Signaturbereich nicht weg, wenn jemand kein hat
Na das geht noch einfacher. ;)

In deinem gepostetem Code, die Zeile

Code: Alles auswählen

$template->assign_block_vars('switch_user_sig_block', array());
mit der vorletzen Klammer (also der Klammer direkt vor dieser Zeile) austauschen:

Code: Alles auswählen

if ( $profiledata['user_attachsig'] && $board_config['allow_sig'] )
{
  ... SIEHE OBEN ...
  if ( $user_sig != '' )
  {
    ... SIEHE OBEN ...
    $template->assign_block_vars('switch_user_sig_block', array());
  }
}
Grüße
Faux

Verfasst: 01.09.2006 14:56
von killerbees19
:lol: So gehts auch.
Thanks...


MfG Christian