php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem mit smarty und switch anweisung


 
Victorious
26-11-2005, 14:45 
 
So ich habe es nun mit dem switch hinbekommen, aber ein prob habe ich da trozdem noch. Er gibt es nicht richtig aus und zwar setzt er es oben hin aber soll es in die mitte anzeigen.
So sieht es atm aus.
Test Seite (http://www.koosai.net/Link/index.php)

index.php

switch($_GET['modul'])
{
default : li();break;
case news :
switch($_GET['sub_modul'])
{
default : li();break;
case news : news();break;
};break;
}
function news()
{
echo'news';
}
$smarty->display('index.tpl');


index.tpl

<table border="0" cellpadding="0" cellspacing="0" width="958" height="567">
<tr>
<td width="132" rowspan="4" height="567" valign="top">
<A HREF='index.php?modul=news' >Home</a><br>
<A HREF='index.php?modul=news&sub_modul=news' >Links</a><br>
</td>
<td width="693" height="38" >&nbsp;</td>
<td width="133" rowspan="4" height="567" valign="top"></td>
</tr>
<tr>
<td width="693" height="398" align="center" valign="top">dd</td>
</tr>
</table>

da wo dd steht soll der inhalt von der switch anwesiung rein. Was müss ich nun ändern?

 
Abraxax
26-11-2005, 14:55 
 
bitte code formatieren und die umbrüche so setzen, dass man nicht scrollen muss!
http://www.php-resource.de/forum/showthread.php?s=&threadid=50454

 
Victorious
26-11-2005, 15:04 
 
Ist es so besser?Ich weiss auch das script so richtig arbeitet nur ich weiss nicht, wie ich die switch anweisung an die richtige stelle bringe. ich habe auch auf smarty.php.net nix gefunden was mir helfen könnte.

 
Abraxax
26-11-2005, 15:08 
 
du solltest in deinem template einen platzhalter einfügen, wo der content rein soll.

dann kannst du mit smarty deinen content mit assign() und/oder append() dort einfügen.

http://smarty.php.net/manual/en/api.assign.php
http://smarty.php.net/manual/en/api.append.php

 
Victorious
26-11-2005, 15:12 
 
hatte ich schon versucht so


$index = switch($_GET['modul'])
{
default : li();break;
case news :
switch($_GET['sub_modul'])
{
default : li();break;
case news : news();break;
};break;
};


$smarty->assign('index', $index);

aber es kommt eine fehlermeldung

 
Abraxax
26-11-2005, 15:13 
 
und was für einen meldung?
und was stand in deinem template?

 
Victorious
26-11-2005, 15:16 
 
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /is/htdocs/wp1009673_FMKUCXMAF1/www/Link/index.php on line 12

Das stand drin.
Die Zeile ist das

$index ="switch($_GET['modul'])
{
default : li();break;
case news :


Und die tpl sah so aus

<tr>
<td width="693" height="398" align="center" valign="top">{$index}</td>
</tr>

 
Abraxax
26-11-2005, 15:19 
 
php grundlagen sind dir aber schon bekannt. oder?

schaue dir doch mal genau an, was du da gepostet hast .....

 
Victorious
26-11-2005, 15:22 
 
Hm hab das jetzt mal geändert jetzt sagt er mir den fehler parse error, unexpected T_SWITCH in /is/htdocs/wp1009673_FMKUCXMAF1/www/Link/index.php on line 12


$index = switch($_GET['modul'])
{
default : li();break;
case news :
switch($_GET['sub_modul'])
{
default : li();break;
case news : news();break;
};break;
};

 
Abraxax
26-11-2005, 15:24 
 
immer noch php-grundlagen.

beschreibe doch einmal was dein code hier machen soll.

und dann beschreibe mal was er macht.

 
Victorious
26-11-2005, 15:31 
 
Naja er soll zwischen den funktionen switchen. Die switch anweisung soll
in

$smarty->append('index', $index);

rein.

 
Victorious
26-11-2005, 15:41 
 
Ich komme nicht drauf, was ich falsch mache.

 
Abraxax
26-11-2005, 15:43 
 
Original geschrieben von Abraxax
beschreibe doch einmal was dein code hier machen soll.

und dann beschreibe mal was er macht.

 
Victorious
26-11-2005, 15:56 
 
über $_GET['modul'] bekommt er eine varriable übergeben. zb news dann wird die funktion news() aufgerufen.

Ich habe dann das mal versucht klapt aber auch nicht:

switch($_GET['modul'])
{
default : $smarty->assign('index', li());break;
case news :
switch($_GET['sub_modul'])
{
default : $smarty->assign('index',li());break;
case news : $smarty->assign('index',news());break;
};break;
}

 
Victorious
26-11-2005, 16:11 
 
Ich versteh das nicht mehr den code den ich vorher gepostet hat funktioniert,aber nur wenn in dem assign keine funktion drin ist. Sobald ich eine funktion drin habe gibt er mir den wieder falsch aus.

 
Victorious
26-11-2005, 17:44 
 
So ich habe nun was rausgefunden so und zwar ich muss in der funktion ein return befehl rein machen. Da trit nun folgendes problem auf und zwar das ganze ist auch mit smarty geschrieben wir muss ich nun den return befehl setzten?.

function li()
{
include('config.inc.php');
define('SMARTY_DIR','/is/htdocs/wp1009673_FMKUCXMAF1/www/libs/');
$smarty = new Smarty;
$smarty->template_dir = '//is/htdocs/wp1009673_FMKUCXMAF1/www/Link/templates/blue/';
$smarty->compile_dir = '/is/htdocs/wp1009673_FMKUCXMAF1/www/Link/templates_c/';
$smarty->config_dir = '/is/htdocs/wp1009673_FMKUCXMAF1/www/Link/configs/';
mysql_connect($sqlhost,$sqluser,$sqlpass) OR DIE( "Couldn't connect to MySQL server!");
mysql_select_db($database);
$query = "SELECT * FROM koosai_linkskategorien ORDER BY userid ";
$ergebn2 = mysql_query($query);
while ($row = mysql_fetch_array($ergebn2)) {
$cate = $row ;
$catid = $row['cate'];
$smarty->append('tiel', $cate);
$query1 = "SELECT * FROM koosai_links WHERE kat='$catid' ORDER BY userid ";
$ergebn = mysql_query($query1);
while ($dat = mysql_fetch_array($ergebn)) {
$link = $dat ;
$smarty->append('tietel2', $link);
}
}
$smarty->display('templat.tpl');
}

 
Victorious
26-11-2005, 19:13 
 
So habe es endlich geschaft funktioniert nun alles wunderbar.
ich musse nur das verändern


$smarty->display('templat.tpl');

in

return $smarty->fetch('templat.tpl');


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:13 Uhr.