Banner in phpbb + einfügen

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
SevenUp
Beiträge: 78
Registriert: Do 19.Aug, 2004 11:13

Banner in phpbb + einfügen

Beitrag von SevenUp »

also, bei phpbb plus ist ja ein banner-mod installiert (k.a. wie er heisst)

und mit ihm kann man ja im header einen banner einfügen und verwalten.
dieser code ist doch dafür zuständig (overall_header.tpl)

Code: Alles auswählen

<!-- Start add - Complete banner MOD -->
<!-- Banners -->
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20%">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><td><div align="center">{BANNER_1_IMG}</div></td></tr>
<tr><td><div align="center">{BANNER_2_IMG}</div></td></tr>
</table>
</td>
<td width="60%">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><td><div align="center">{BANNER_3_IMG}</div></td></tr>
<tr><td><div align="center">{BANNER_4_IMG}</div></td></tr>
</table>
</td>
<td width="20%">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><td><div align="center">{BANNER_5_IMG}</div></td></tr>
<tr><td><div align="center">{BANNER_6_IMG}</div></td></tr>
</table>
</td>
</tr>
</table>
<!-- End Banners -->
<!-- End add - Complete banner MOD -->
ich habe diesen code entdernt, da ich den ganzen header für ein logo verwende.

ich habe dann einen hide-mod eingebaut. der zeigt einen text der zwischen [hide] [/hide] steht nur dann an, wenn man den bedankomat benutzt hat (klingt kompliziert, ist es aber nicht :-) )

ein teil des codes für hide-mod steht in der bbcode.tpl

Code: Alles auswählen

<!-- BEGIN show --> 
</span>
<table border="0" align="center" width="90%" cellpadding="3" cellspacing="1">
<tr> 
          <td><span class="genmed"><b>Protected Message: </b></span></td>
        </tr>
        <tr>
          <td class="quote">
                {HTEXTE}
                </td>
        </tr>
</table>
<span class="postbody">
<!-- END show --> 
nun möchte ich dass nach "protected message:" ein banner kommt.
habe dann versucht den code den ich aus overall_header entfernt habe, einfach in bbcode.tpl nach "protected message:" reinzusetzten.

aber der forum zeigt dann dort wo der banner dann stehen müsste, nur das an
{BANNER_1_IMG} {BANNER_3_IMG} {BANNER_5_IMG}
{BANNER_2_IMG} {BANNER_4_IMG} {BANNER_6_IMG}

was mach ich falsch?
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Die bbcode.tpl bekommt Ihren Inhalt aus der bbcode.php. Die Daten aus der page_header.php stehen hier daher nicht zur Verfügung, da die Umsetzung der BBCodes durch Funktionen geschieht, in denen die Werte nicht verfügbar sind.
Daher sind die Felder alle leer!
Du müsstest also in der bbcode.php, wo der Hide-Mod ansetzt auch den Code für die Banner aus der page-header.php dorthin verlagern.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
SevenUp
Beiträge: 78
Registriert: Do 19.Aug, 2004 11:13

Beitrag von SevenUp »

das ist die anleitung für hide-mod, und zwar nur für bbcode.php

Code: Alles auswählen

5 - In bbcode.php  

Find  

$bbcode_tpl['email'] = str_replace('{EMAIL}', '\\1', $bbcode_tpl['email']);  

Add Below  

$bbcode_tpl['show'] = str_replace('{HTEXTE}', '\\1', $bbcode_tpl['show']);
 

*Before* this text  

/**
 * Does second-pass bbencoding. This should be used before displaying the message in
 * a thread. Assumes the message is already first-pass encoded, and we are given the 
 * correct UID as used in first-pass encoding.
 */ 
 

Add this functions  

function hide_in_quote($text)
{
        $text = preg_replace("#\[hide\](.*?)\[\/hide\]#si","--- phpBB : The Protected Message is not copied in this quote ---", $text);
        return $text;
}

function bbencode_third_pass($text, $uid, $deprotect)
{
        global $bbcode_tpl;

        // pad it with a space so we can distinguish between FALSE and matching the 1st char (index 0).
        // This is important; bbencode_quote(), bbencode_list(), and bbencode_code() all depend on it.
        $text = " " . $text;

        // First: If there isn't a "[" and a "]" in the message, don't bother.
        if (! (strpos($text, "[") && strpos($text, "]")) )
        {
                // Remove padding, return.
                $text = substr($text, 1);
                return $text;
        }
        // Patterns and replacements for URL and email tags..
        $patterns = array();
        $replacements = array();
 
        if ( $deprotect ) {
        $patterns[0] = "#\[hide:$uid\](.*?)\[/hide:$uid\]#si";
        $replacements[0] = $bbcode_tpl['show'];
        }
        else
        {
        $patterns[0] = "#\[hide:$uid\](.*?)\[/hide:$uid\]#si";
        $replacements[0] = $bbcode_tpl['hide'];
        }

        $text = preg_replace($patterns, $replacements, $text);
 
        // Remove our padding from the string..
        $text = substr($text, 1);

        return $text;
}
 

Find in function "bbencode_first_pass"  

// [img]image_url_here[/img] code..
$text = preg_replace("#\[img\](([a-z]+?)://([^ \"\n\r]+?))\[/img\]#si", "[img:$uid]\\1[/img:$uid]", $text);  

Add Below  

//[hide]message[/hide]
$text = preg_replace("#\[hide\](.*?)\[\/hide\]#si","[hide:$uid]\\1[/hide:$uid]", $text);  
ich habe den banner-code aud page....php genommen

Code: Alles auswählen

// Start add - Complete banner MOD
$time_now=time();
$hour_now=create_date('Hi',$time_now,$board_config['board_timezone']);
$date_now=create_date('Ymd',$time_now,$board_config['board_timezone']);
$week_now=create_date('w',$time_now,$board_config['board_timezone']);
$sql_level= ($userdata['user_id']==ANONYMOUS) ? ANONYMOUS : (($userdata['user_level']==ADMIN) ? MOD : (($userdata['user_level']==MOD) ? ADMIN : $userdata['user_level'])); 
$sql = "SELECT DISTINCT banner_id, banner_name, banner_spot, banner_description, banner_forum, banner_type, banner_width, banner_height, banner_filter FROM ".BANNERS_TABLE ."
		WHERE banner_active
		AND IF(banner_level_type,IF(banner_level_type=1,".intval($sql_level)."<=banner_level,IF(banner_level_type=2,".intval($sql_level).">=banner_level,".intval($sql_level)."<>banner_level)),banner_level=".intval($sql_level).")
		AND (banner_timetype=0 
		OR (( $hour_now BETWEEN time_begin AND time_end) AND ((banner_timetype=2
		OR (( $week_now BETWEEN date_begin AND date_end) AND banner_timetype=4)
		OR (( $date_now BETWEEN date_begin AND date_end) AND banner_timetype=6)
		)))) ORDER BY banner_spot,banner_weigth*SUBSTRING(RAND(),6,2) DESC";
if ( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, "Couldn't get banners data", "", __LINE__, __FILE__, $sql);
} 
$banners = array();
$i=0;
while ($banners[$i] = $db->sql_fetchrow($result))
{
	$cookie_name = $board_config['cookie_name'] . '_b_' . $banners[$i]['banner_id'];
	if ( !($HTTP_COOKIE_VARS[$cookie_name] && $banners[$i]['banner_filter']) )
	{
		$banner_spot=$banners[$i]['banner_spot'];
		if ($banner_spot<>$last_spot  AND ($banners[$i]['banner_forum']==$forum_id || empty($banners[$i]['banner_forum'])))
		{
			$banner_size = ($banners[$i]['banner_width'] && $banners[$i]['banner_height']) ? '"width="'.$banners[$i]['banner_width'].'" height="'.$banners[$i]['banner_height'].'"' : '';
			switch ($banners[$i]['banner_type'])
			{
				case 6 :
					// swf file
					$template->assign_vars(array('BANNER_'.$banner_spot.'_IMG' => '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,23,0" id=macromedia '.$banner_size.' align="abscenter"><param name=movie value="'.$banners[$i]['banner_name'].'"><param name=quality value=high><embed src="'.$banners[$i]['banner_name'].'" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" autostart="true" /><noembed><a href="'.append_sid('redirect.'.$phpEx.'?banner_id='.$banners[$i]['banner_id']).'" target="_blank">'.$banners[$i]['banner_description'].'</a></noembed></object>')); 
					break;
				case 4 :
					// custom code
					$template->assign_var('BANNER_'.$banner_spot.'_IMG', $banners[$i]['banner_name'] );
					break;
				case 2 :
					// Text link
					$template->assign_var('BANNER_'.$banner_spot.'_IMG', '<a href="'.append_sid('redirect.'.$phpEx.'?banner_id='.$banners[$i]['banner_id']).'" target="_blank" alt="'.$banners[$i]['banner_description'].'" title="'.$banners[$i]['banner_description'].'">'.$banners[$i]['banner_name'].'</a>');
					break;
				case 0 :
				default: 
					$template->assign_var('BANNER_'.$banner_spot.'_IMG', '<a href="'.append_sid('redirect.'.$phpEx.'?banner_id='.$banners[$i]['banner_id']).'" target="_blank"><img src="'.$banners[$i]['banner_name'].'" '.$banner_size.' border="0" alt="'.$banners[$i]['banner_description'].'" title="'.$banners[$i]['banner_description'].'" /></a>');
			}
			$banner_show_list.= ', '.$banners[$i]['banner_id'];
		}
		$last_spot = ($banners[$i]['banner_forum']==$forum_id || empty($banners[$i]['banner_forum'])) ? $banner_spot : $last_spot;
	}
	$i++;
}
// End add - Complete banner MOD

und versucht in bbcode.php reinzusetzten. allerding weiss ich nicht genau an welche stelle.

habe versucht vor <?, dann vor und dann nach dem
/**
* Does second-pass bbencoding. This should be used before displaying the message in
* a thread. Assumes the message is already first-pass encoded, and we are given the
* correct UID as used in first-pass encoding.
*/


kriege dann aber jedes mal fehlermeldung im forum:

Fatal error: Call to a member function on a non-object in /home/ekctpa/public_html/forum/includes/bbcode.php on line 288
Zuletzt geändert von SevenUp am So 20.Mär, 2005 21:50, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Wenn Du uns noch sagen würdest, was in der Zeile 288 steht, könnte man den Fehler besser einkreisen.
*glaskugel noch in reparatur*
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
SevenUp
Beiträge: 78
Registriert: Do 19.Aug, 2004 11:13

Beitrag von SevenUp »

so, habe jetzt diesen code aus page-header.php genommen

Code: Alles auswählen

// Start add - Complete banner MOD
$time_now=time();
$hour_now=create_date('Hi',$time_now,$board_config['board_timezone']);
$date_now=create_date('Ymd',$time_now,$board_config['board_timezone']);
$week_now=create_date('w',$time_now,$board_config['board_timezone']);
$sql_level= ($userdata['user_id']==ANONYMOUS) ? ANONYMOUS : (($userdata['user_level']==ADMIN) ? MOD : (($userdata['user_level']==MOD) ? ADMIN : $userdata['user_level'])); 
$sql = "SELECT DISTINCT banner_id, banner_name, banner_spot, banner_description, banner_forum, banner_type, banner_width, banner_height, banner_filter FROM ".BANNERS_TABLE ."
		WHERE banner_active
		AND IF(banner_level_type,IF(banner_level_type=1,".intval($sql_level)."<=banner_level,IF(banner_level_type=2,".intval($sql_level).">=banner_level,".intval($sql_level)."<>banner_level)),banner_level=".intval($sql_level).")
		AND (banner_timetype=0 
		OR (( $hour_now BETWEEN time_begin AND time_end) AND ((banner_timetype=2
		OR (( $week_now BETWEEN date_begin AND date_end) AND banner_timetype=4)
		OR (( $date_now BETWEEN date_begin AND date_end) AND banner_timetype=6)
		)))) ORDER BY banner_spot,banner_weigth*SUBSTRING(RAND(),6,2) DESC";
if ( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, "Couldn't get banners data", "", __LINE__, __FILE__, $sql);
} 
$banners = array();
$i=0;
while ($banners[$i] = $db->sql_fetchrow($result))
{
	$cookie_name = $board_config['cookie_name'] . '_b_' . $banners[$i]['banner_id'];
	if ( !($HTTP_COOKIE_VARS[$cookie_name] && $banners[$i]['banner_filter']) )
	{
		$banner_spot=$banners[$i]['banner_spot'];
		if ($banner_spot<>$last_spot  AND ($banners[$i]['banner_forum']==$forum_id || empty($banners[$i]['banner_forum'])))
		{
			$banner_size = ($banners[$i]['banner_width'] && $banners[$i]['banner_height']) ? '"width="'.$banners[$i]['banner_width'].'" height="'.$banners[$i]['banner_height'].'"' : '';
			switch ($banners[$i]['banner_type'])
			{
				case 6 :
					// swf file
					$template->assign_vars(array('BANNER_'.$banner_spot.'_IMG' => '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,23,0" id=macromedia '.$banner_size.' align="abscenter"><param name=movie value="'.$banners[$i]['banner_name'].'"><param name=quality value=high><embed src="'.$banners[$i]['banner_name'].'" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" autostart="true" /><noembed><a href="'.append_sid('redirect.'.$phpEx.'?banner_id='.$banners[$i]['banner_id']).'" target="_blank">'.$banners[$i]['banner_description'].'</a></noembed></object>')); 
					break;
				case 4 :
					// custom code
					$template->assign_var('BANNER_'.$banner_spot.'_IMG', $banners[$i]['banner_name'] );
					break;
				case 2 :
					// Text link
					$template->assign_var('BANNER_'.$banner_spot.'_IMG', '<a href="'.append_sid('redirect.'.$phpEx.'?banner_id='.$banners[$i]['banner_id']).'" target="_blank" alt="'.$banners[$i]['banner_description'].'" title="'.$banners[$i]['banner_description'].'">'.$banners[$i]['banner_name'].'</a>');
					break;
				case 0 :
				default: 
					$template->assign_var('BANNER_'.$banner_spot.'_IMG', '<a href="'.append_sid('redirect.'.$phpEx.'?banner_id='.$banners[$i]['banner_id']).'" target="_blank"><img src="'.$banners[$i]['banner_name'].'" '.$banner_size.' border="0" alt="'.$banners[$i]['banner_description'].'" title="'.$banners[$i]['banner_description'].'" /></a>');
			}
			$banner_show_list.= ', '.$banners[$i]['banner_id'];
		}
		$last_spot = ($banners[$i]['banner_forum']==$forum_id || empty($banners[$i]['banner_forum'])) ? $banner_spot : $last_spot;
	}
	$i++;
}
// End add - Complete banner MOD
und in die bbcode.php vor dem

Code: Alles auswählen

/** 
* Does second-pass bbencoding. This should be used before displaying the message in 
* a thread. Assumes the message is already first-pass encoded, and we are given the 
* correct UID as used in first-pass encoding. 
*/ 
eingefügt

danach kriege ich im forum fehler in der bbcode, zeile 288

Code: Alles auswählen

// Text link
mehr steht in 288 nicht drin
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Scheinbar mag es das hier so nicht:

Code: Alles auswählen

$template->assign_var(...
Also in der bbcode.php...
Ist wirklich schwierig festzustellen, welcher Befehl denn hier nun nicht erkannt wird.
Häng mal die BBCode an, mit den Änderungen, vielleicht finde ich so eher den Fehler.

BTW:
Der Mod, um den es hier eigentlich geht, ist der Complete Banner Mod von Niels.
Link: http://mods.db9.dk/viewtopic.php?t=1503 (Anmeldung erforderlich).
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
SevenUp
Beiträge: 78
Registriert: Do 19.Aug, 2004 11:13

Beitrag von SevenUp »

hier ist es
komisch dass es in page_header + overall_header funktioniert, und in bbcode nicht :-/
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Vielleicht klappts so:
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
SevenUp
Beiträge: 78
Registriert: Do 19.Aug, 2004 11:13

Beitrag von SevenUp »

funktioniert leider nicht
komische sache
naja, dann lassen wird es wieder wenn es nicht geht
dachte es wäre einfacher und würde nicht so viele umstände machen :-/
Antworten