[BETA] phpBB3 Football MOD Version 0.9.3

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.
Benutzeravatar
football
Mitglied
Beiträge: 862
Registriert: 03.05.2009 10:37
Kontaktdaten:

Re: [BETA] phpBB3 Football MOD Version 0.9.3

Beitrag von football »

Damit bei der aktuellen WM die Achtelfinalteilnehmer automatisch eingetragen werden, kann man in football\includes\functions.php

Code: Alles auswählen

		case 'G':
			// GROUP
			return '#0#'. substr($para_in_array[0], 1, 1) . '. ' . sprintf($user->lang['GROUP']). ' ' . substr($para_in_array[0], 0, 1) .  '#'. substr($para_in_array[0], 1, 1) . '. ' . sprintf($user->lang['GROUP']) . ' ' . substr($para_in_array[0], 0, 1);
			break;
durch folgendes ersetzen:

Code: Alles auswählen

		case 'G':
			// GROUP
			$group = substr($para_ary[0], 0, 1);
			$place = substr($para_ary[0], 1, 1);
			$sql = '
				SELECT
				SUM(1) AS matches,
				SUM(IF(m.status = 3, 1, 0)) AS played
				FROM ' . FOOTB_MATCHES . " AS m
				WHERE m.season = $season AND m.league = $league AND m.group_id = '$group' 
				GROUP BY m.group_id
			";
			$result = $db->sql_query($sql);

			if ( $row = $db->sql_fetchrow($result))
			{
				if ($row['matches'] == $row['played'])
				{
					$sql = '
						SELECT
						t.*,
						SUM(1) AS matches,
						SUM(IF((m.team_id_home = t.team_id), IF(goals_home + 0 > goals_guest, 1, 0), IF(goals_home + 0 < goals_guest, 1, 0))) AS win,
						SUM(IF(goals_home = goals_guest, 1, 0)) AS draw,
						SUM(IF((m.team_id_home = t.team_id), IF(goals_home + 0 < goals_guest, 1, 0), IF(goals_home + 0 > goals_guest, 1, 0))) AS lose,
						SUM(IF(m.team_id_home = t.team_id, 
								IF(goals_home + 0 > goals_guest, 
									3, 
									IF(goals_home = goals_guest, 
										1, 
										0
									)
								), 
								IF(goals_home + 0 < goals_guest, 
									3, 
									IF(goals_home = goals_guest, 
										1, 
										0
									)
								)
							)
						) AS points,
						SUM(IF(m.team_id_home = t.team_id, goals_home - goals_guest, goals_guest - goals_home)) AS goal_diff,
						SUM(IF(m.team_id_home = t.team_id, goals_home, goals_guest)) AS goals,
						SUM(IF(m.team_id_home = t.team_id, goals_guest, goals_home)) AS goals_get
						FROM ' . FOOTB_TEAMS . ' AS t
						LEFT JOIN ' . FOOTB_MATCHES . " AS m ON (m.season = t.season AND m.league = t.league AND 
																(m.team_id_home = t.team_id OR m.team_id_guest = t.team_id) AND m.group_id = t.group_id)
						WHERE t.season = $season AND t.league = $league AND m.group_id = '$group'
						GROUP BY t.team_id
						ORDER BY points DESC, goal_diff DESC, goals DESC
					";
					$result = $db->sql_query($sql);
					$rowset = $db->sql_fetchrowset($result);
					$db->sql_freeresult($result);
					
					if (1 == $place)
					{
						if ($rowset[0]['points'] == $rowset[1]['points'] AND $rowset[0]['goal_diff'] == $rowset[1]['goal_diff'] AND $rowset[0]['goals'] == $rowset[1]['goals'])
						{
							return '#0#' . $place . '. ' . sprintf($user->lang['GROUP']) . ' ' . $place . '#' . $place . '. ' . sprintf($user->lang['GROUP']) . ' ' . $group;
						}
						else
						{
							$new_id = $rowset[0]['team_id'];
							$sqlup = 'UPDATE ' . FOOTB_MATCHES . " SET $field = $new_id WHERE season = $season AND league = $league AND match_no = $matchnumber";
							$resultup = $db->sql_query($sqlup);
							$sqlup = 'UPDATE ' . FOOTB_TEAMS . ' SET matchday = (SELECT max(matchday) FROM ' . FOOTB_MATCHES . " 
																				 WHERE season = $season AND league = $league AND (team_id_home= $new_id OR team_id_guest = $new_id))
									  WHERE season = $season AND league = $league AND team_id = $new_id";
							$resultup = $db->sql_query($sqlup);
							return $rowset[0]['team_symbol'] . '#' . $new_id . '#' . $rowset[0]['team_name'] . '#' . $rowset[0]['team_name_short'];
						}
					}
					else
					{
						// second 
						if (($rowset[0]['points'] == $rowset[1]['points'] AND $rowset[0]['goal_diff'] == $rowset[1]['goal_diff'] AND $rowset[0]['goals'] == $rowset[1]['goals'] ) OR
						    ($rowset[2]['points'] == $rowset[1]['points'] AND $rowset[2]['goal_diff'] == $rowset[1]['goal_diff'] AND $rowset[2]['goals'] == $rowset[1]['goals'] ))
						{
							return '#0#' . $place . '. ' . sprintf($user->lang['GROUP']) . ' ' . $group . '#' . $place . '. ' . sprintf($user->lang['GROUP']) . ' ' . $group;
						}
						else
						{
							$new_id = $rowset[1]['team_id'];
							$sqlup = 'UPDATE ' . FOOTB_MATCHES . " SET $field = $new_id WHERE season = $season AND league = $league AND match_no = $matchnumber";
							$resultup = $db->sql_query($sqlup);
							$sqlup = 'UPDATE ' . FOOTB_TEAMS . ' SET matchday = (SELECT max(matchday) FROM ' . FOOTB_MATCHES . " 
																				 WHERE season = $season AND league = $league AND (team_id_home= $new_id OR team_id_guest = $new_id))
									  WHERE season = $season AND league = $league AND team_id = $new_id";
							$resultup = $db->sql_query($sqlup);
							return $rowset[1]['team_symbol'] . '#' . $new_id . '#' . $rowset[1]['team_name'] . '#' . $rowset[1]['team_name_short'];
						}
					}
				}
				else
				{
					return '#0#' . $place . '. ' . sprintf($user->lang['GROUP']) . ' ' . $group . '#' . $place . '. ' . sprintf($user->lang['GROUP']) . ' ' . $group;
				}
			}
			else
			{
				return '#0#' . $place . '. ' . sprintf($user->lang['GROUP']) . ' ' . $group . '#' . $place . '. ' . sprintf($user->lang['GROUP']) . ' ' . $group;
			}
			break;
Dann werden zumindest die eindeutig platzierten Mannschaften automatisch eingetragen, Bei Punkt und Torgleichheit wird der direkte Vergleich nicht herangezogen und keine davon betroffene Mannschaft ins Achtelfinale übertragen.
Kein Support per PN oder E-Mail. Support-Anfragen beantworte ich nur über diese Community.
fontane
Mitglied
Beiträge: 295
Registriert: 03.02.2013 12:58

Re: [BETA] phpBB3 Football MOD Version 0.9.3

Beitrag von fontane »

football hat geschrieben:Oh, die CL funktioniert bei mir auch nicht. Ist aber auch klar, da die Mannschaften noch fehlen.
Dann setzte ich mal ein paar bereits qualifizierte Mannschaften rein. Jetzt sollte es auch klappen.
klappt :P
football hat geschrieben:Mit der Premier League hast du dich vermutlich vertan. Denn diese Liga ist komplett und sollte den Fehler nicht hervorrufen.
stimmt, ich meinte statt PremierLeague die EuropaLeague :D > funktioniert jetzt auch. :grin:

Vielen Dank für die schnelle Problemlösung.
phpbb 3.0.4 | PHP 7.4 | MySQL 5.7
tups
Mitglied
Beiträge: 46
Registriert: 02.11.2011 20:12
Kontaktdaten:

Re: [BETA] phpBB3 Football MOD Version 0.9.3

Beitrag von tups »

Hi,
ich wollte eine kleine Kosmetik vornehmen und scheitere leider kläglich :cry: und habe hier über die Suchfunktion nichts gefunden, auch auf den hier 189 Seiten nicht (ich kann es auch, falls es das schon gibt, überlesen haben).

Und zwar wollte ich auf der Seite zum Tippen automatisch einen Hinweis bei den KO-Runden erscheinen lassen auf welches Ergebnis getippt wird.

Hier mal ein Beispiel wie es aussehen soll/kann
Beispiel

Dieser Hinweis soll dann nur bei den KO Spielen, je nach Einstellung im ACP (ob nach 90 Min, Verlängerung oder Elfmeter), erscheinen.

Über einen Tipp bzw. Hilfe wäre ich dankbar.

Mein Forum
phpbb 3.3.10
PHP 8.1.17
MySQL 5.7
fontane
Mitglied
Beiträge: 295
Registriert: 03.02.2013 12:58

Re: [BETA] phpBB3 Football MOD Version 0.9.3

Beitrag von fontane »

tups hat geschrieben:Über einen Tipp bzw. Hilfe wäre ich dankbar.
Da ich stets immer dieselbe Einstellung für die Tipper verwende, habe ich es in der html so integriert:
Tipphinweis
Damit sieht jeder Tipper beim tippen immer den Hinweis.
Zuletzt geändert von fontane am 25.06.2014 19:20, insgesamt 1-mal geändert.
phpbb 3.0.4 | PHP 7.4 | MySQL 5.7
tups
Mitglied
Beiträge: 46
Registriert: 02.11.2011 20:12
Kontaktdaten:

Re: [BETA] phpBB3 Football MOD Version 0.9.3

Beitrag von tups »

Erst einmal Danke für die schnelle Antwort.

Diese Möglichkeit spukte mir auch schon im Kopf herum. Allerdings steht dieser Hinweis dann bei den regulären Spielen, wie Bundesliga, auch.

Ich dachte eventuell an eine Lösung, die nur bei den KO-Spielen angezeigt wird und auch automatisch die Anzeige der Einstellung im ACP übernimmt.

Das scheint aber wohl doch etwas komplizierter zu sein, aber vielleicht kommt das ja eventuell noch.
phpbb 3.3.10
PHP 8.1.17
MySQL 5.7
MK35
Mitglied
Beiträge: 128
Registriert: 16.04.2007 15:32

Re: [BETA] phpBB3 Football MOD Version 0.9.3

Beitrag von MK35 »

football hat geschrieben:Damit bei der aktuellen WM die Achtelfinalteilnehmer automatisch eingetragen werden, kann man in football\includes\functions.php

Dann werden zumindest die eindeutig platzierten Mannschaften automatisch eingetragen, Bei Punkt und Torgleichheit wird der direkte Vergleich nicht herangezogen und keine davon betroffene Mannschaft ins Achtelfinale übertragen.
Wenn ich die functions.php nicht verändern will, kann ich dann auch jetzt schon die KO-Runden Gewinner ermitteln obwohl noch nicht alle Spiele in den Gruppen gespielt wurden :roll: ....ich frage weil ich im Achtelfinale jetzt noch keine Mannschaften stehen habe und sich ja bereits welche qualifiziert haben, oder sollte man dies erst machen wenn alle Vorrunden - Spiele den Status 3 haben?
Benutzeravatar
football
Mitglied
Beiträge: 862
Registriert: 03.05.2009 10:37
Kontaktdaten:

Re: [BETA] phpBB3 Football MOD Version 0.9.3

Beitrag von football »

Ich habe die Anzeige wie folgt gelöst:
in /styles/prosilver/template/football/bet.html
die Überschrift der Tipps um ({BET_EXPLAIN}) erweitert:

Code: Alles auswählen

						<th align="center" colspan="3">{L_BET_OF} ({BET_EXPLAIN})</th>
und in /football/block/bet.php vor

Code: Alles auswählen

$link_rules = '';
folgendes einfügen:

Code: Alles auswählen

$league_info = league_info($season, $league);
$bet_explain = '';
switch ($league_info['bet_ko_type'])
{
	case BET_KO_90:
		$bet_explain = sprintf($user->lang['MIN90']);
		break;
	case BET_KO_EXTRATIME:
		$bet_explain = sprintf($user->lang['EXTRATIME_SHORT']);
		break;
	case BET_KO_PENALTY:
		$bet_explain = sprintf($user->lang['PENALTY']);
		break;
	default:
		$bet_explain = sprintf($user->lang['MIN90']);
		break;
}

Und die Variablenausgabe $template->assign_vars(array( erweitern um

Code: Alles auswählen

	'BET_EXPLAIN' 				=> $bet_explain,
Kein Support per PN oder E-Mail. Support-Anfragen beantworte ich nur über diese Community.
Benutzeravatar
football
Mitglied
Beiträge: 862
Registriert: 03.05.2009 10:37
Kontaktdaten:

Re: [BETA] phpBB3 Football MOD Version 0.9.3

Beitrag von football »

@MK35:
Die "KO-Runden Gewinner ermitteln" Funktion im Adminbereich setzt vorraus, dass alle Vorrundenspiele beendet sind und setzt dann die Mannschaften lediglich in die nächste Runde/Spieltag, damit man diese (und nur diese) Mannschaft im Spielplan auswählen kann.

Bei der oben beschriebenen Änderung werden die Gruppen ersten und zweiten nach Abschluß der Gruppe berechnet und ins Achtelfinale eingetragen.

Oder du kannst auch den Spielplan über die Update-Funktion im Adminbereich aktualisieren. Im XML-Spielplan sind die Mannschaften der abgeschlossenen Gruppen bereits im Achtelfinale eingetragen.
Kein Support per PN oder E-Mail. Support-Anfragen beantworte ich nur über diese Community.
Benutzeravatar
Hegse
Mitglied
Beiträge: 262
Registriert: 05.06.2006 12:49
Wohnort: Liemke
Kontaktdaten:

Re: [BETA] phpBB3 Football MOD Version 0.9.3

Beitrag von Hegse »

Moin

Habe gerade mal im ACP den Spielplan über Spielplan aktualisieren geladen. Das Achtelfinale Argentinien - Schweiz ist schon auf Status 1 gesetzt und lässt sich über das ACP auch nicht ändern.
Just for Info...
Benutzeravatar
Hegse
Mitglied
Beiträge: 262
Registriert: 05.06.2006 12:49
Wohnort: Liemke
Kontaktdaten:

Re: [BETA] phpBB3 Football MOD Version 0.9.3

Beitrag von Hegse »

Fehler gefunden. Das Datum war falsch. Anstatt 2014 war der 1.7.2013 eingegeben.
Antworten

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