Seite 1 von 2

code ins template system integrieren

Verfasst: 20.12.2006 00:14
von kolja
nabend forum

ich habe ein versucht meine (mit hilfe von miriam) erstellten codezeilen
in eine vorhandene datei einzubauen

ich habe mich an der "anleitung" in der kb orientiert, doch leider bekomme ich keine ausgabe

ich würd mich freuen, wenn ihr da mal rüberschaut :-)

also das ist "mein" code so wie er in der portal.php steht:

Code: Alles auswählen

$sql = "SELECT * FROM " . TOPICS_TABLE . "
       WHERE forum_id = 22 AND  (topic_calendar_time - UNIX_TIMESTAMP() > 0)
       ORDER BY topic_calendar_time ASC
       LIMIT  0 , 1";
if( !( $result = $db->sql_query($sql) ) )
{
      message_die(CRITICAL_ERROR, 'Kann Themen Informationen nicht laden!', '', __LINE__, __FILE__, $sql);
}
	$calendar_row = array();
	while( $row1 = $db->sql_fetchrow($result) )
	{
		$calendar_row[] = $row1;
	}

	$db->sql_freeresult($result);
	
$template->set_filenames(array(
	'body' => 'cms_comments_body.tpl'
	)
);

$template->assign_vars(array(
	'DATUM' => date("d.m.Y",$row[topic_calendar_time]),
	'TOPIC_ID' => $row['topic_id'],
	'TOPIC_TITLE' => $row['topic_title'],
	)
);
auf die datei "cms_comments_body.tpl" wird noch einmal verwiesen, da ich den inhalt beider (meinen und den der originalen) in der .tpl brauche


hier noch die ausgabe:

Code: Alles auswählen

    <table width="100%" cellspacing="1" cellpadding="2" border="0" class="forumline">

	<tr>
		<th class="white">Partys in Münster</th>
	</tr>
<td>
<span class="genmed"><b>{datum}</b></span>
<span class="topictitle">
<a class="topictitle" TARGET = "parent" href=viewtopic.php?t={topic_id}>{topic_title}</a>
</span>
</td>           </tr>

	</table>
aber der sollte richtig sein...

die ausgabe :-? könnt ihr hier sehen:
http://mona-davinci.de/phpbb/portal.php?s=subGreen

es ist die unterste box, die andere wurde mit einem iframe gemacht,
aber davon will ich weg...

das der code funktioniert sieht man ja in der iframe-box,
aber was mache ich bei der übergabe an das template falsch ??

kolja

Verfasst: 20.12.2006 01:02
von Miriam
Der Code, den Du da als erstes gepostet hast, soll funktionieren?
Na gut... :-?

Aber ich glaube, dass die Templatevariablen im Template auch gross geschrieben werden müssen.

Verfasst: 20.12.2006 19:14
von kolja
Miriam hat geschrieben:Der Code, den Du da als erstes gepostet hast, soll funktionieren?
zumindest bis zu der zeile wo das template anfängt....
Aber ich glaube, dass die Templatevariablen im Template auch gross geschrieben werden müssen.
:oops: dumm gelaufen,
aber jetzt bekomme ich als einzige ausgabe ein datum,
und zwar 1.1.1970

kommt mir irgendwie bekannt vor :(

also liegt es doch noch an dem php code,
nur sieht der doch genauso aus wie der von den anderen abfragen bzw ausgaben...

kolja

Verfasst: 20.12.2006 23:28
von Miriam
also liegt es doch noch an dem php code
Das würde ich auch sagen. :)

nur sieht der doch genauso aus wie der von den anderen abfragen bzw ausgaben
:o :o :o Dann siehst Du was anderes als ich.

Verfasst: 21.12.2006 22:56
von kolja
ich würde dich ja fragen was du siehst, aber ich traue mich nicht :oops:

kolja

Verfasst: 22.12.2006 08:18
von Miriam
$sql = "SELECT * FROM " . TOPICS_TABLE . "
WHERE forum_id = 22 AND (topic_calendar_time - UNIX_TIMESTAMP() > 0)
ORDER BY topic_calendar_time ASC
LIMIT 0 , 1";
// Wolltest Du nicht 4?
if( !( $result = $db->sql_query($sql) ) )
{
message_die(CRITICAL_ERROR, 'Kann Themen Informationen nicht laden!', '', __LINE__, __FILE__, $sql);
}
$calendar_row = array();
// Du brauchst keine WHILE Schleife: Du hast doch nur eins gefunden.
while( $row1 = $db->sql_fetchrow($result) )
{
// Welchen Sinn soll es haben, jedem Key aus $calendar_row ein Array zuzuordnen? Aber gut. :)
$calendar_row[] = $row1;
}

$db->sql_freeresult($result);

$template->set_filenames(array(
'body' => 'cms_comments_body.tpl'
)
);
// Wo kommt denn nun $row her? Ich denke $row1.
// Also $calendar_row[0]['topic_calendar_time'] etc. pp.
// Aber hier würde $row reichen, weil nur ein Ergebnis zurückgekommen ist.
// Und Du hast schon wieder die Hochkommata vergessen

$template->assign_vars(array(
'DATUM' => date("d.m.Y",$row[topic_calendar_time]),
'TOPIC_ID' => $row['topic_id'],
'TOPIC_TITLE' => $row['topic_title'],
)
);

Verfasst: 22.12.2006 23:16
von kolja
hi miriam

das mit "LIMIT 0 , 1"; " war falsch, muss natürlich ne 4 rein...

aber mir fällt auf, das nicht alle vier ergebnisse durchzähle (i++)
um nicht nur den ersten darzustellen...

und das mit row und row1 war genau son dummer schreibfehler wie das vergessene '

aber wirklich weiter bin ich nicht...

kolja

Verfasst: 23.12.2006 00:11
von Miriam
aber mir fällt auf, das nicht alle vier ergebnisse durchzähle (i++)
um nicht nur den ersten darzustellen...
???


Also, wie weit bist Du denn nun mit diesem bisschen Code?

Verfasst: 23.12.2006 00:45
von kolja

Code: Alles auswählen

$sql = "SELECT * FROM " . TOPICS_TABLE . "
WHERE forum_id = 22 AND (topic_calendar_time - UNIX_TIMESTAMP() > 0)
ORDER BY topic_calendar_time ASC
LIMIT 0 , 4";
if( !( $result = $db->sql_query($sql) ) )
{
message_die(CRITICAL_ERROR, 'Kann Themen Informationen nicht laden!', '', __LINE__, __FILE__, $sql);
}
$calendar_row = array();
while( $row1 = $db->sql_fetchrow($result) )
{
$calendar_row[] = $row1;
}

$db->sql_freeresult($result);

$template->set_filenames(array(
'body' => 'cms_comments_body.tpl'
)
);

$template->assign_vars(array(
'DATUM' => date("d.m.Y",$row['topic_calendar_time']),
'TOPIC_ID' => $row1['topic_id'],
'TOPIC_TITLE' => $row1['topic_title'],
)
);
:oops:

Verfasst: 23.12.2006 01:26
von Miriam
Probier' mal den -->

Code: Alles auswählen

$sql =  "SELECT topic_id, topic_title, topic_calendar_time FROM " . TOPICS_TABLE . "
	WHERE forum_id = 22 AND (topic_calendar_time - UNIX_TIMESTAMP() > 0)
	ORDER BY topic_calendar_time ASC
	LIMIT 0 , 4";
if( !( $result = $db->sql_query($sql) ) )
{
	message_die(CRITICAL_ERROR, 'Kann Themen Informationen nicht laden!', '', __LINE__, __FILE__, $sql);
}
$template->set_filenames(array(
	'body' => 'cms_comments_body.tpl'
));
while( $row = $db->sql_fetchrow($result) )
{
	$template->assign_block_vars('termine', array(
	         'DATUM' => date("d.m.Y",$row['topic_calendar_time']),
	         'TOPIC_ID' => $row['topic_id'],
	         'TOPIC_TITLE' => $row['topic_title'],
	));
}

$db->sql_freeresult($result);
Im Template anzusprechen mit:

Code: Alles auswählen

<!-- BEGIN termine -->
{termine.DATUM}
<!-- END termine -->