Blätterfunktion für phpBB

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Maffy
Mitglied
Beiträge: 158
Registriert: 16.07.2002 17:14
Wohnort: Steinach
Kontaktdaten:

Blätterfunktion für phpBB

Beitrag von Maffy »

Ich erstelle einen Episoden Guid für TV Serien. Jetzt möchte ich gerne eine Blätterfunktion erstellen mit der ich in einer ausgewählten Serie durch die einzelnen Staffeln der Serie blättern kann.

Wie stelle ich die Anzahl der vorhanden Staffeln in einer Serie fest.
Und wie erstelle ich daraus eine Blätterfunktion für das phpBB Forum .

Es genügt ein Vorwärts und Zurück Button

Code: Alles auswählen

	$sql = "SELECT serie_id, season_id, folge_title, folge_desc, folge_img
			   FROM " . EPG_FOLGEN_TABLE . "
			   WHERE serie_id = ".$serie." AND season_id = ".$staffel."
			   ORDER BY folge_id";
Ich hoffe das mir jemand dabei helfen kann.
Leben und Leben lassen.
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Code: Alles auswählen

	$start = ( !empty($_GET['start']) ) ? intval($_GET['start']) : 0;
	$start = $start * 25;
Damit legen wir die Anzahl fest wie viele Sachen angezeigt werden.
$start wird noch gebraucht.
Dann modifizieren wir mal deine MySQL Abfrage:

Code: Alles auswählen

   $sql = "SELECT serie_id, season_id, folge_title, folge_desc, folge_img 
            FROM " . EPG_FOLGEN_TABLE . " 
            WHERE serie_id = ".$serie." AND season_id = ".$staffel." 
            ORDER BY folge_id
            LIMIT $start, 25";
Dann ermitteln wir die Anzahl der Ergebnisse die Allgemeine gefunden werden sprich alle:

Code: Alles auswählen

$sql = "SELECT * FROM ".EPG_FOLGEN_TABLE;
$result = $db->sql_query($sql);
$total = mysql_num_rows($result);
Das oben kommt unter der Auswertung deiner MySQL Abfrage.

Und jetzt berechnen wir daran dann die Seitenanzahl:

Code: Alles auswählen

	$i = 1;
	$total = $total * 0.25;
	$total = ceil($total);
	while($i != $total)
	{
	$i++;
	echo ', <a href="dein_file.php?start='.$i.'">'.$i.'</a> ';
	}
Mehr ist das nicht.
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

fanrpg hat geschrieben:Und jetzt berechnen wir daran dann die Seitenanzahl:

Code: Alles auswählen

	$i = 1;
	$total = $total * 0.25;
	$total = ceil($total);
	while($i != $total)
	{
	$i++;
	echo ', <a href="dein_file.php?start='.$i.'">'.$i.'</a> ';
	}
Dafür gibt es beim phpBB doch eine Funktion generate_pagination()!?

Code: Alles auswählen

$pagination = generate_pagination(append_sid("name_der_datei.$phpEx"), $total, 25, $start);
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Oh wusst ich gar nicht, aber die Funktion gibt mir andere Seitenzahlen aus als die die ich bei $start brauche.
Maffy
Mitglied
Beiträge: 158
Registriert: 16.07.2002 17:14
Wohnort: Steinach
Kontaktdaten:

Beitrag von Maffy »

Dafür gibt es beim phpBB doch eine Funktion generate_pagination()!?

Bei normalen Serien die bei der Staffel 1 beginnen und x Staffeln haben könnte ich die normale Pagination Funktion des phpBB Forums verwenden.

Mein Problem ist allerdings das es insgesamt 32 Staffeln + ca. 400 Folgen für die Serie gibt.

Leider verfüge ich, bzw. stehen keine Serien Daten für die Staffeln 1 - 14 zu Verfügung

Therotisch müsste ich ertmal feststellen bei welcher Staffel die Serie beginnt und dann die Blätterfunktion entsprechend erstellen lassen.
Leben und Leben lassen.
Maffy
Mitglied
Beiträge: 158
Registriert: 16.07.2002 17:14
Wohnort: Steinach
Kontaktdaten:

Beitrag von Maffy »

Ok, ich habe mir jetz eine eigene Pagination für das Blättern durch die Sieren Staffeln einer Serie gebastelt.

Evt. könnte mann das auch noch einwenig besser bzw. einfacher Programmieren.

Auf jedenfall funktioniert das Blätter jetzt so, wie ich es haben wollte.

Code: Alles auswählen


#
# // Staffel Pagination
# 

	$next_staffel = floor($staffel) + 1;
   	$back_staffel = floor($staffel) - 1; 
	
	// Testen ob in der nächsten Staffel Folgen angelegt sind
	$sqlnext = "SELECT serie_id, staffel_id, folge_title, folge_desc, folge_img, folge_approval
			   FROM " . EPG_FOLGEN_TABLE . "
			   WHERE serie_id = ".$serie." AND staffel_id = ".$next_staffel." AND folge_approval = 1
			   ORDER BY folge_id";
	
	if( !($result = $db->sql_query($sqlnext)) )
	{
		message_die(GENERAL_ERROR, 'Could not query folgen list', '', __LINE__, __FILE__, $sql);
	}
	
	$total_next = $db->sql_numrows($result);

	if( $total_next == 0 )
	{
		$link_next = '';
		$nav_next_staffel = '';
	} else {
		$link_next = append_sid('epiguid.'.$phpEx.'?mode='.$mode.'&serie='.$serie.'&staffel='.$next_staffel.'');
		$nav_next_staffel = ' Staffel '.$next_staffel.' ';
	}
	
	// Testen ob in der vorherigen Staffel Folgen angelegt sind
	$sqlback = "SELECT serie_id, staffel_id, folge_title, folge_desc, folge_img, folge_approval
			   FROM " . EPG_FOLGEN_TABLE . "
			   WHERE serie_id = ".$serie." AND staffel_id = ".$back_staffel." AND folge_approval = 1
			   ORDER BY folge_id";
	
	if( !($result = $db->sql_query($sqlback)) )
	{
		message_die(GENERAL_ERROR, 'Could not query folgen list', '', __LINE__, __FILE__, $sql);
	}
	
	$total_back = $db->sql_numrows($result);	
		
	if( $total_back == 0 )
	{
		$link_back = '';
		$nav_back_staffel = ' ';
	} else {
		$link_back = append_sid('epiguid.'.$phpEx.'?mode='.$mode.'&serie='.$serie.'&staffel='.$back_staffel.'');
		$nav_back_staffel = ' Staffel '.$back_staffel.'  ';
	}
	
	$link_staffel_index = append_sid('epiguid.'.$phpEx.'?mode=serie&serie='.$serie.'');
	$staffel_index = ' Staffel Übersicht ';
	
	$template->assign_block_vars('pagina', array(	
		
		'L_NEXT_STAFFEL' => $link_next,
		'NEXT_STAFFEL' => $nav_next_staffel,
		
		'L_BACK_STAFFEL' => $link_back,
   		'BACK_STAFFEL' => $nav_back_staffel,
		
		'AKTUELL' => $staffel,
		
		'L_BACK_STAFFEL_INDEX' => $link_staffel_index,
		'BACK_STAFFEL_INDEX' => $staffel_index,
		
	));
Leben und Leben lassen.
Maffy
Mitglied
Beiträge: 158
Registriert: 16.07.2002 17:14
Wohnort: Steinach
Kontaktdaten:

Beitrag von Maffy »

Habe das ganse jetzt mal im Forum eingerichtet.

Hier ist der Link zur Seite:

Episoden Guid

Mfg Maffy
Leben und Leben lassen.
Antworten

Zurück zu „Coding & Technik“