Seite 1 von 1

Template switch anweisung in rowblock

Verfasst: 10.04.2003 13:51
von Spas
Hi,

ich versuche grade folgendes
liste von beiträgen

DATUM TAG
UHRZEIT: POSTING TITEL, POSTER
UHRZEIT: POSTING TITEL, POSTER

DATUM TAG
UHRZEIT: POSTING TITEL, POSTER
UHRZEIT: POSTING TITEL, POSTER
UHRZEIT: POSTING TITEL, POSTER

der tag soll nur auftauchen wenn es sich um einen neuen tag handelt


also so was wie
if( $date != $previous_date ) schreibe den tag

habe das temporär so gelößt das ich im template bis jetzt so arbeite
<!-- BEGIN postingrow -->
{postingrow.POSTING_DATE}
{postingrow.POSTING_TIME} : {postingrow.POSTING_TITLE} {postingrow.POSTING_POSTER}
<!-- END postingrow -->

ich übergebe dann der variable POSTING_DATE im fall von ungleichem datum den kompletten html text <tr><td>POSTINGDATE</td></tr>

aber das stinkt mir

würde das genre auf diese art (oder wie das eben geht) machen
<!-- BEGIN postingrow -->

<!-- BEGIN switch_new_date -->
{postingrow.POSTING_DATE}
<!-- BEGIN switch_new_date -->

{postingrow.POSTING_TIME} : {postingrow.POSTING_TITLE} {postingrow.POSTING_POSTER}
<!-- END postingrow -->

aber dafür müßte ich den blockvars switch_new_date für jede row aus postingrow einen wert zuweisen ka wie ich das im code löse oder ob das überhaupt geht

würde mich über hilfe sehr freuen

THX
grüße

der spas

Verfasst: 10.04.2003 14:10
von Chaze
Nimms einfach mit in Dein "While" rein.

Code: Alles auswählen

while($row = $db->sql_fetchrow($results))
{
	$template->assign_block_vars("switch_new_date", array(
...Array...)
	);
...Alles weitere...
}
(Aber nur wenn ich Dein Problem richtig verstanden habe :roll: )

Verfasst: 14.04.2003 10:46
von Gast
glaube du hast das schon richtig verstanden
aber genau so funktioniert das irgendwie nicht

also das ist der kritische teil des template

Code: Alles auswählen

<table border="2" cellpadding="2" cellspacing="2">
	
	<!-- BEGIN postingrow -->
	
	<!-- BEGIN switch_not_same_date -->
	<tr>
		<td>{posting_DATE}</td>
	</tr>
	<!-- END switch_not_same_date -->
		
	<tr>       
		<td>{postingrow.POSTING_TIME}</td>				    					
		<td>{postingrow.POSTING_TITLE}</td>
	</tr>
	<!-- END postingrow -->
	
</table>
un das der php code noch ohne die db klasse hab das einfach mal so runtergeschrieben

Code: Alles auswählen

while ($output = mysql_fetch_array($result, MYSQL_ASSOC)){
	
	$this_date = $output[date];
	
	if($this_date != $temp_date)
		$template->assign_block_vars('switch_not_same_date', array(
			'POSTING_DATE' => $output[date]
			)
		);
	
	$template->assign_block_vars('postingrow', array(		
		'POSTING_TIME' => $output[time],
		'POSTING_ID' => $output[id],		
		'POSTING_TITLE' => $output[title]
		)
	);
	$temp_date = $this_date;	    	

} // END while

Verfasst: 14.04.2003 11:10
von itst

Code: Alles auswählen

<table border="2" cellpadding="2" cellspacing="2">
	
	<!-- BEGIN postingrow -->
	
	<!-- BEGIN switch_not_same_date -->
	<tr>
		<td>{postingrow.switch_not_same_date.posting_DATE}</td>
	</tr>
	<!-- END switch_not_same_date -->
		
	<tr>       
		<td>{postingrow.POSTING_TIME}</td>				    					
		<td>{postingrow.POSTING_TITLE}</td>
	</tr>
	<!-- END postingrow -->
	
</table>

Code: Alles auswählen

while ($output = mysql_fetch_array($result, MYSQL_ASSOC)){
	
	$this_date = $output[date];
	
	if($this_date != $temp_date)
		$template->assign_block_vars('postingrow.switch_not_same_date', array(
			'POSTING_DATE' => $output[date]
			)
		);
	
	$template->assign_block_vars('postingrow', array(		
		'POSTING_TIME' => $output[time],
		'POSTING_ID' => $output[id],		
		'POSTING_TITLE' => $output[title]
		)
	);
	$temp_date = $this_date;	    	

} // END while
[/quote]

Verfasst: 14.04.2003 11:15
von Spas
Danke Danke

habs auch garde gesehenn das ich die mit

Code: Alles auswählen

postingrow.switch_new_date ansprechen muß
jetzt kommt aber der kniff

:0) ich muß das

postingrow.switch_new_date
unter dem postingrow machen
obwohl es im template drübersteht denn sonst kennt der das handle postingrow noch nicht und verwirft das erste datum :0)

nochmla danke jungs
und ein dickes
HURRA!!![/b]