Seite 2 von 2

Verfasst: 29.09.2005 11:28
von itst
[function] => include
Das ist dann wohl der Übeltäter...

Code: Alles auswählen

//post article ----------------------------------------------------------------------------ADD
if ( $HTTP_POST_VARS['article_submit'] )
{

	$page_title = $lang['Add_article'];
	if ( !$is_block )
	{
	   include($phpbb_root_path . 'includes/page_header.'.$phpEx);
	}
Schnapp Dir mal die kb_add.php und ersetzte alle include durch include_once. Und dann schreib ne Mail an den Autor des KB-MODs mit nem netten 'Bug' samt Fix.

Verfasst: 29.09.2005 21:02
von Gumfuzi
Hi!

das wars leider nicht, aber in der functions_post.php war der header included - nun ist die meldung weg. Danke f�r den Hinweis!!!

Habe aber noch ein Problem:
die Seite zeigt trotzdem nur Smilies auf der ganzen breite und kein Textfeld um Text in die KB einzuf�gen...

Was mir aufgefallen ist:
die Smilies haben unten einen Link "fenster schlie�en" der ja sonst nur kommt, wenn man die Smilies als Extra-Fenster l�dt. Die Seite ist aber eine Seite mit Header und Footer, etc. ( http://www.deskmodder.de/phpBB2/kb.php?mode=add&cat=3 )
Nur sollten die Smilies ja wie bei den normalen Postings nicht extra sein.

ich habe mit die functions_post mal angesehen speziell die Funktion "generate_smilies", welche durch den k�rzlich eingebauten Smilies Category Mod ver�ndert wurde:

Code: Alles auswählen

//
// Fill smiley templates (or just the variables) with smileys

// Either in a window or inline
//
function generate_smilies($mode, $page_id)
{
	global $db, $board_config, $template, $lang, $images, $theme, $phpEx, $phpbb_root_path;
	global $user_ip, $session_length, $starttime;
	global $userdata;

	global $HTTP_GET_VARS;

	$inline_columns = $board_config['smilie_columns'];
	$inline_rows = $board_config['smilie_rows'];
	$window_columns = $board_config['smilie_window_columns'];

	$cat_id = ( !empty($HTTP_POST_VARS['cat']) ) ? intval($HTTP_POST_VARS['cat']) : intval($HTTP_GET_VARS['cat']);

	if (!$cat_id)
	{
		// Select the 1st unhidden category for displaying smilies on the Reply to Post page.
		$sql = "SELECT cat_order
			FROM " . SMILIES_CAT_TABLE . "
			WHERE hidden != 1
			ORDER BY cat_order
			ASC LIMIT 1";
		$result = $db->sql_query($sql);
		$row = $db->sql_fetchrow($result);
		$where = ' WHERE cat_id="' . $row['cat_order'] . '"';
	}
	else
	{
		$where = ' WHERE cat_id=' . $cat_id;
	}

	if ($cat_id || ($mode == 'window'))
	{
		$userdata = session_pagestart($user_ip, $page_id);
		init_userprefs($userdata);

		$gen_simple_header = TRUE;

		$page_title = $lang['Emoticons'] . " - $topic_title";
		include_once($phpbb_root_path . 'includes/page_header.'.$phpEx);

		$template->set_filenames(array(
			'smiliesbody' => 'posting_smilies.tpl')
		);
	}

	$sql = "SELECT emoticon, code, smile_url
		FROM " . SMILIES_TABLE . $where . "
		ORDER BY smilies_order
		ASC";
	if ($result = $db->sql_query($sql))
	{
		$num_smilies = 0;
		$rowset = array();
		while ($row = $db->sql_fetchrow($result))
		{
			if (empty($rowset[$row['smile_url']]))
			{
				$rowset[$row['smile_url']]['code'] = str_replace("'", "\\'", str_replace('\\', '\\\\', $row['code']));
				$rowset[$row['smile_url']]['emoticon'] = $row['emoticon'];
				$num_smilies++;
			}
		}

		if ($num_smilies)
		{
			$smilies_count = ($mode == 'inline') ? min((($inline_columns * $inline_rows) - 1), $num_smilies) : $num_smilies;
			$smilies_split_row = ($mode == 'inline') ? $inline_columns - 1 : $window_columns - 1;

			$s_colspan = 0;
			$row = 0;
			$col = 0;

			while (list($smile_url, $data) = @each($rowset))
			{
				if (!$col)
				{
					$template->assign_block_vars('smilies_row', array());
				}

				$template->assign_block_vars('smilies_row.smilies_col', array(
					'SMILEY_CODE' => $data['code'],
					'SMILEY_IMG' => $board_config['smilies_path'] . '/' . $smile_url,
					'SMILEY_DESC' => $data['emoticon'])
				);

				$s_colspan = max($s_colspan, $col + 1);

				if ($col == $smilies_split_row)
				{
					if ($mode == 'inline' && $row == $inline_rows - 1)
					{
						break;
					}
					$col = 0;
					$row++;
				}
				else
				{
					$col++;
				}
			}


			$template->assign_vars(array(
				'L_EMOTICONS' => $lang['Emoticons'], 
				'L_CLOSE_WINDOW' => $lang['Close_window'], 
				'S_SMILIES_COLSPAN' => $s_colspan)
			);
		}
	}

	if ($cat_id || ($mode == 'window'))
	{
		generate_smiley_categories('window');
		$template->pparse('smiliesbody');

		include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
	}
}
mich wundert dabei folgender Teil, der 2x vorkommt (auf gleichen "Schleifen-Ebene"):

Code: Alles auswählen

if ($cat_id || ($mode == 'window'))
in der kb_add.php wird diese Funktion aber mit

Code: Alles auswählen

generate_smilies('inline', PAGE_POSTING);
aufgerufen. Das inline wird aber in der Funktion nicht so abgefragt.
in der posting.php werden die Smilies aber auch mit "inline" aufgerufen, genau wie in der kb_add.php - und dort funzt es komischerweise...

Verfasst: 02.10.2005 10:38
von Gumfuzi
Hat da noch jemand einen Tipp für mich?

Verfasst: 21.04.2006 11:27
von mgutt
Ich habe aber auch eine Frage zum Thema:

Ich habe auch GZIP aktiviert, aber GZIP ist nicht aktiv. Jedenfalls überträgt das System keinen entsprechenden Header.

In meiner phpinfo steht, dass _SERVER["HTTP_ACCEPT_ENCODING"] gzip enthält. gzip steht sogar an mehreren Stellen, also gehe ich mal davon aus, dass mein Apache das unterstützt. Sowas wie "mod_gzip" kann ich zwar nicht finden (das sollte wohl auch vorhanden sein), ich bin mir da aber nicht sicher, ob es sich da nicht um eine Fehlinformation handelt :-?

EDIT:
Ok bis zu dieser Zeile geht die Schleife durch:

Code: Alles auswählen

ob_start('ob_gzhandler');
D.h. ob_start wird dann auch ausgeführt. Aber ich sehe gerade, dass bei der 1. if-Abfrage gar kein Header gesendet wird. Ist das eine andere Art der Komprimierung?

Auch wird nicht wie bei der 2. Schleife do_gzip auf aktiv gesetzt:

Code: Alles auswählen

$do_gzip_compress = TRUE;
Wo wird dann ob_start beendet? Ich finde ob_end_clean() in der page_tail, aber nur dann, wenn do_gzip true ist?!

@gumfuzi
Hast Du Short Urls verbaut? Ich hatte mal einen ähnlichen Fehler wegen der Reihenfolge von start und end.

Verfasst: 21.04.2006 14:31
von Gumfuzi
Danke, ich habe es dann gelöst. Weiss zwar nicht mehr genau wie, da es nun schon eine Weile her ist ;)

Verfasst: 22.04.2006 16:39
von mgutt
Wie kann ich denn nun überprüfen, ob GZIP aktiv ist, wenn kein Header gesendet wird :-?