[RC] Ad Management 1.0.1

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
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.
Armour
Mitglied
Beiträge: 56
Registriert: 06.03.2009 08:46
Kontaktdaten:

Re: [RC] Ad Management 1.0.1

Beitrag von Armour »

wenn ichs davor setze komt:
Parse error: syntax error, unexpected ';', expecting ')' in /home/customer/webs/wh23977/forum/includes/functions.php on line 4212
das kommt auch wenn ichs dahinter setz, hab auch nochmal ersetzt und das geho dann wieder zwischengesetzt, ich komm dann zwar wieder rein, kann es auch installieren und aktivieren, aber das wars dann auch, sehen kann ich nichts
Armour
Mitglied
Beiträge: 56
Registriert: 06.03.2009 08:46
Kontaktdaten:

Re: [RC] Ad Management 1.0.1

Beitrag von Armour »

kann niemand helfen?
vielleicht brauch ich den ad-manager ja auch nicht, aber in der suche hab ich nichts besseres gefunden was paßt, weil ich möchte keine werbung machen für andere sondern eher für mich, eine art event werbung als art banner.
einer vielleichtne idee, wenn dass hier nicht geht?
Gast234254
Gesperrt
Beiträge: 1999
Registriert: 08.02.2009 22:58

Re: [RC] Ad Management 1.0.1

Beitrag von Gast234254 »

Das Problem, meiner Meinung nach, ist das das bei der root/includes/functions.php dieser code ersetzt werden soll

Code: Alles auswählen

// The following assigns all _common_ variables that may be used at any point in a template.
	$template->assign_vars(array(
mit diesem code ersetzt werden soll

Code: Alles auswählen

	// Start output Ad
	$adID = '';
	$forum_id = isset($f) ? $f : 0;
	$sql = "SELECT a.code, a.ad_id, a.position, a.type, a.image, a.url, a.height, a.width
		FROM " . AD_TABLE ." a, " . USER_GROUP_TABLE . " g
		WHERE (a.max_views >= a.views OR a.max_views = '0')
			AND (FIND_IN_SET(" . $forum_id . ", a.show_forums) > 0 OR a.show_all_forums = '1')
			AND g.user_id = " . $user->data['user_id'] . "
			AND FIND_IN_SET(g.group_id, a.groups)
			AND FIND_IN_SET(" . $user->data['user_rank'] . ", a.ranks)
			AND a.start_time < " . time() . "
			AND a.end_time > " . time() . "
			AND (a.clicks <= a.max_clicks OR a.max_clicks = '0')
		ORDER BY rand()";
	$result = $db->sql_query($sql, 3600);

	while($row = $db->sql_fetchrow($result))
	{
		if ($row['type'] == 2)
		{
			$adcode[$row['position']] = '<a href="' . $phpbb_root_path . 'adclick.' . $phpEx . '?id=' . $row['ad_id'] . '"><img src="' . $row['image'] . '" height="' . $row['height'] . '" width="' . $row['width'] . '" alt="" /></a>';
		}
		else
		{
			$adcode[$row['position']] = html_entity_decode($row['code']);
		}
		$adID[$row['position']]['ad_id'] = $row['ad_id'];
	}
	$db->sql_freeresult($result);

	// update views for every Ad
	$ad_ids = array();
	for ($i = 1; $i <= 6; $i++)
	{
		if (isset($adID[$i]['ad_id']))
		{
			$ad_ids[] = $adID[$i]['ad_id'];
		}
	}
	if(sizeof($ad_ids))
	{
		$db->sql_query('UPDATE ' . AD_TABLE . ' SET views = views +1 WHERE ' . $db->sql_in_set('ad_id', $ad_ids));
	}
	// End output Ad

	// The following assigns all _common_ variables that may be used at any point in a template.
	$template->assign_vars(array(
		'AD_CODE1'  => isset($adcode[1]) ? $adcode[1] : '',
		'AD_CODE2'  => isset($adcode[2]) ? $adcode[2] : '',
		'AD_CODE3'  => isset($adcode[3]) ? $adcode[3] : '',
		'AD_CODE4'  => isset($adcode[4]) ? $adcode[4] : '',
		'AD_CODE5'  => isset($adcode[5]) ? $adcode[5] : '',
		'AD_CODE6'  => isset($adcode[6]) ? $adcode[6] : '',
Da aber bei den meisten Mod Einbauten nach diesem code

Code: Alles auswählen

// The following assigns all _common_ variables that may be used at any point in a template.
	$template->assign_vars(array(
eingefügt werden soll, füge ich ab dem Einbau von diesem mod hier, meine Einbauten ab diesem code ein

Code: Alles auswählen

	'AD_CODE6'  => isset($adcode[6]) ? $adcode[6] : '',

und es funktioniert alles.

Gruß
Stephan
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: [RC] Ad Management 1.0.1

Beitrag von Helmut »

Hallo Tobi,

Ich möchte es gerne so haben, dass im Footer alle dafür eingestellten Banner nebeneinander angezeigt werden, nicht nur jeweils einer. Was muss ich da ändern damit mir die Banner {AD_CODE6} alle angezeigt werden?


Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: [RC] Ad Management 1.0.1

Beitrag von Helmut »

Hallo Tobi,

also ich habe es jetzt selber gelöst und den Mod entsprechend angepasst. Ich kann jetzt zwischen drei unterschiedlichen Varianten wählen, Bannerwechsel beim neuen Seitenaufruf, Bannerwechsel nach einer eingestellten Zeit und alle Banner gleichzeitig im Footer anzeigen. Dazu habe ich noch die ACP Module etwas überarbeitet und erweitert, sowie eine zusätzliche Seite geschaffen wo Einzelheiten zu den jeweiligen Bannern angezeigt werden. Ich habe auch den Teil in der functions.php in eine eigene Datei functions_ads.php ausgelagert, dann brauchst du nur noch ein include.... in die functions.php reinschreiben.

Ich habe dir per PN mal meine Version geschickt, du kannst diese gerne für deine nächste Version verwenden bzw. noch anpassen und optimieren.

Gruß Helmut :wink:
Ich bin nicht ganz dicht.... na und.
mgalaxy
Mitglied
Beiträge: 3
Registriert: 17.01.2010 00:06

Re: [RC] Ad Management 1.0.1

Beitrag von mgalaxy »

Mal ne ganz kurze Zwischenfrage. Funktioniert die Modifikation auch mit der phpBB version 3.0.6?
Ich habe das ganze ca 5x mit einem komplett frisch aufgesetztem Forum probiert und hatte jedesmal die gleichen Probleme.
SQL-Database mit der Table "updated".
Files wie in der Anleitung editiert (.php Datein mit "Weaverslave", .html Dateien mit "Nvu")

Probleme:
1. Nach Cachelöschung und aufrufen des Forums waren jegliche Hintergrundgrafiken futsch und der ganze Text verschoben.
2. Konnte ich dann auch nicht den Admin Bereich betreten ->Meldung (nicht genau nur Inhaltstechnisch richtig): "U(APC)" konnte nicht gefunden werden.

Gruß,
Martin
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: [RC] Ad Management 1.0.1

Beitrag von Helmut »

Hallo mgalaxy,

also die Version 1.0.1 funktioniert auch fehlerfrei mit 3.0.6, jedenfalls habe ich keine Fehler bei mir gefunden.

Deiner Beschreibung nach könnte es doch ein Einbaufehler sein und zwar die Stelle für die functions.php. Da ist es etwas unverständlich beschrieben:

Find
Tip: This may be a partial find and not the whole line.

Code: Alles auswählen

// The following assigns all _common_ variables that may be used at any point in a template.
	$template->assign_vars(array(
Replace With
Tip: Replace the preceding line(s) to find with the following lines.

Code: Alles auswählen

	// Start output Ad
	$adID = '';
	$forum_id = isset($f) ? $f : 0;
	$sql = "SELECT a.code, a.ad_id, a.position, a.type, a.image, a.url, a.height, a.width
		FROM " . AD_TABLE ." a, " . USER_GROUP_TABLE . " g
		WHERE (a.max_views >= a.views OR a.max_views = '0')
			AND (FIND_IN_SET(" . $forum_id . ", a.show_forums) > 0 OR a.show_all_forums = '1')
			AND g.user_id = " . $user->data['user_id'] . "
			AND FIND_IN_SET(g.group_id, a.groups)
			AND FIND_IN_SET(" . $user->data['user_rank'] . ", a.ranks)
			AND a.start_time < " . time() . "
			AND a.end_time > " . time() . "
			AND (a.clicks <= a.max_clicks OR a.max_clicks = '0')
		ORDER BY rand()";
	$result = $db->sql_query($sql, 3600);

	while($row = $db->sql_fetchrow($result))
	{
		if ($row['type'] == 2)
		{
			$adcode[$row['position']] = '<a href="' . $phpbb_root_path . 'adclick.' . $phpEx . '?id=' . $row['ad_id'] . '"><img src="' . $row['image'] . '" height="' . $row['height'] . '" width="' . $row['width'] . '" alt="" /></a>';
		}
		else
		{
			$adcode[$row['position']] = html_entity_decode($row['code']);
		}
		$adID[$row['position']]['ad_id'] = $row['ad_id'];
	}
	$db->sql_freeresult($result);

	// update views for every Ad
	$ad_ids = array();
	for ($i = 1; $i <= 6; $i++)
	{
		if (isset($adID[$i]['ad_id']))
		{
			$ad_ids[] = $adID[$i]['ad_id'];
		}
	}
	if(sizeof($ad_ids))
	{
		$db->sql_query('UPDATE ' . AD_TABLE . ' SET views = views +1 WHERE ' . $db->sql_in_set('ad_id', $ad_ids));
	}
	// End output Ad

	// The following assigns all _common_ variables that may be used at any point in a template.
	$template->assign_vars(array(
		'AD_CODE1'  => isset($adcode[1]) ? $adcode[1] : '',
		'AD_CODE2'  => isset($adcode[2]) ? $adcode[2] : '',
		'AD_CODE3'  => isset($adcode[3]) ? $adcode[3] : '',
		'AD_CODE4'  => isset($adcode[4]) ? $adcode[4] : '',
		'AD_CODE5'  => isset($adcode[5]) ? $adcode[5] : '',
		'AD_CODE6'  => isset($adcode[6]) ? $adcode[6] : '',
Besser wäre es so in der Beschreibung:

Find
Tip: This may be a partial find and not the whole line.

Code: Alles auswählen

// The following assigns all _common_ variables that may be used at any point in a template.
	$template->assign_vars(array(
Add before
Tip: Add these lines on a new blank line before the preceding line(s) to find.

Code: Alles auswählen

	// Start output Ad
	$adID = '';
	$forum_id = isset($f) ? $f : 0;
	$sql = "SELECT a.code, a.ad_id, a.position, a.type, a.image, a.url, a.height, a.width
		FROM " . AD_TABLE ." a, " . USER_GROUP_TABLE . " g
		WHERE (a.max_views >= a.views OR a.max_views = '0')
			AND (FIND_IN_SET(" . $forum_id . ", a.show_forums) > 0 OR a.show_all_forums = '1')
			AND g.user_id = " . $user->data['user_id'] . "
			AND FIND_IN_SET(g.group_id, a.groups)
			AND FIND_IN_SET(" . $user->data['user_rank'] . ", a.ranks)
			AND a.start_time < " . time() . "
			AND a.end_time > " . time() . "
			AND (a.clicks <= a.max_clicks OR a.max_clicks = '0')
		ORDER BY rand()";
	$result = $db->sql_query($sql, 3600);

	while($row = $db->sql_fetchrow($result))
	{
		if ($row['type'] == 2)
		{
			$adcode[$row['position']] = '<a href="' . $phpbb_root_path . 'adclick.' . $phpEx . '?id=' . $row['ad_id'] . '"><img src="' . $row['image'] . '" height="' . $row['height'] . '" width="' . $row['width'] . '" alt="" /></a>';
		}
		else
		{
			$adcode[$row['position']] = html_entity_decode($row['code']);
		}
		$adID[$row['position']]['ad_id'] = $row['ad_id'];
	}
	$db->sql_freeresult($result);

	// update views for every Ad
	$ad_ids = array();
	for ($i = 1; $i <= 6; $i++)
	{
		if (isset($adID[$i]['ad_id']))
		{
			$ad_ids[] = $adID[$i]['ad_id'];
		}
	}
	if(sizeof($ad_ids))
	{
		$db->sql_query('UPDATE ' . AD_TABLE . ' SET views = views +1 WHERE ' . $db->sql_in_set('ad_id', $ad_ids));
	}
	// End output Ad
Add after
Tip: Add these lines on a new blank line after the preceding line(s) to find.

Code: Alles auswählen

		'AD_CODE1'  => isset($adcode[1]) ? $adcode[1] : '',
		'AD_CODE2'  => isset($adcode[2]) ? $adcode[2] : '',
		'AD_CODE3'  => isset($adcode[3]) ? $adcode[3] : '',
		'AD_CODE4'  => isset($adcode[4]) ? $adcode[4] : '',
		'AD_CODE5'  => isset($adcode[5]) ? $adcode[5] : '',
		'AD_CODE6'  => isset($adcode[6]) ? $adcode[6] : '',
Bei diesem Teil der Änderungen passieren die meisten Einbaufehler weil davon die Anzeige der Seite direkt betroffen ist. Bitte prüfe diese Stelle bei dir noch einmal und ändere es ggf. entsprechend ab.

Im übrigen wirken sich auch fehlerhafte HTML Banner aus, da hierbei der HTML Code direkt in die Seite eingebunden wird. Zur Sicherhet probierst es zuerst einmal mit den normalen Bannern aus oder nimmst einen einfachen Testcode wie etwa <b>Test</b> um zu sehen ob überhaut was angezeigt wird.

Dann ist es in der Beschreibung auch nicht so genau erklärt dass du im ACP bei der Eintragung der Banner zwingend die berechtigten Gruppen eintragen musst, sonst wird garnichts angezeigt.

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Benutzeravatar
Robbi der Forenfreak
Mitglied
Beiträge: 409
Registriert: 11.01.2007 17:53
Kontaktdaten:

Re: [RC] Ad Management 1.0.1

Beitrag von Robbi der Forenfreak »

@Helmut. Aber in dem Text, der das andere ersetzten soll ist die selbe Zeile bereits drinnen. Dürfte somit nichts ändern-
Programmierer sterben nie. Sie beenden sich mit return 0.

http://www.robinrump.com :)
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: [RC] Ad Management 1.0.1

Beitrag von Helmut »

Hallo Robbi der Forenfreak,

klar ist die Zeile schon drinnen und an der Funktion selber ändert sich auch nichts. Ich hatte das ja auch geschrieben, da es immer wieder vorkommt, dass es da falsch eingebaut wird. Darum habe ich das nochmal genauer hingeschrieben was gemeint ist.

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
mgalaxy
Mitglied
Beiträge: 3
Registriert: 17.01.2010 00:06

Re: [RC] Ad Management 1.0.1

Beitrag von mgalaxy »

Ok, das Problem ist -zum Teil- behoben.
Der Editor (Nvu) hat irgendwie die html-Dateiern vermurkst, habe einen anderen genommen und die Fehler waren weg.

Dafür schaffe ich es nicht, daß Modul im Admin-Bereich hinzu zu fügen.
Aneitung dafür nehme ich diese: http://www.phpbb-seo.de/downloads/mod-a ... ement.html
und: http://www.phpbb-seo.de/anleitungen/mod ... uegen.html
Neue Frage daher:

Ich bin im Moment im Admin bereich:
- klicke auf System
- klicke auf Admininistration Bereich
- klicke auf Allgemein
- klicke auf schnellzugriff
- klicke unten auf "neues Modul erstellen"
- gebe dann den Namen "Ad Management [acp_ads]" ein

Jetzt das Problem:
Wähle ich als Modul-Typ: "Modul" muss ich ja weiter unten eine Modul-Datei auswählen. Finde da nichts mit namen "acp_ads"

Wähle ich als Modul-Typ: "Kategorie" und aktiviere diese, passiert überhaupt nichts.

Wenn ich im Dropdown-Menü nach dem neuen Modul suche, finde ich auch nichts.

Wo liegt mein Fehler?

Danke schon einmal für die Hilfe.
Zuletzt geändert von mgalaxy am 18.01.2010 01:22, insgesamt 2-mal geändert.
Antworten

Zurück zu „[3.0.x] Mods in Entwicklung“