McWitty
28.08.2006, 12:11
Support-Maske:
Version vom wbb: 2.2.1
Version vom JGS-Portal: 3.1.0
Link zum Board: http://kga-kastanienhain.de/
Test-Account: k.A.
PHP-Version: 4.3.10 (Das ist vom Webspace auf localhost verwende ich PHP Version 5.0.4
Link zur PHP-Info-Datei: http://kga-kastanienhain.de/php.php
Suchfunktion genutzt mit: meincode.php, eigene seite einbinden, eigener code portal, eigenes php im portal, php in portal einfügen
genaue Beschreibung:
Ich habe ein kleines Addon für eine Kleingartenkolonie geschrieben, mit dem man die zum Verkauf stehenden Parzellen ausgeben kann. Die Eingaben dafür werden über das ACP gemacht.
Die Templates und das PHP-Script fürs ACP funzen bestens, nur mit dem Einbau des Scriptes ins Portal habe ich Probleme.
Da ich es offline mit XAMPP schreibe habe ich mal ein Screenshot mit angehängt.
http://kga-kastanienhain.de/parzelle.png
Wie man sieht, wir das Template f_parzelle_view ausgeführt, aber obwohl sechs Parzellen in der Datenbank stehen wird nichts angezeigt. Ich bin mir jetzt nicht sicher, ob das Template f_parzelle_viewbit nicht ausgeführt wird, oder der gesamte PHP-code und wo das Problem liegt.
hier der PHP-Code:
if($seiteninfos[seiten_text]=="[Parzelle]"){
$jgs_tpl_parser_off="1";
$lang->load('REGISTER,GLOBAL,PARZELLE');
if (isset($_REQUEST['action'])) $action = $_REQUEST['action'];
else $action = "view";
/*Abfrage des Usernamen*/
function getuser($userid, $db, $n){
$user = $db->query_first("SELECT username FROM bb".$n."_users WHERE userid = '$userid'");
$username = $user[username];
return $username;
}
/*Parzelle ansehen*/
if ($action == 'view') {
$count = 0;
$f_parzelle_viewbit = '';
$result = $db->query("SELECT * FROM bb".$n."_parzelle ORDER BY parz ASC");
while ($row = $db->fetch_array($result)) {
$rowclass = getone($count++, "tablea", "tableb");
eval("\$seiteninfos['seiten_text'] = \"".$tpl->get("f_parzelle_viewbit")."\";");
}
$lang->items['LANG_PARZELLE_TITLE'] = $lang->get("LANG_PARZELLE_TITLE", array('$anzahl' => $count));
eval("\$seiteninfos['seiten_text'] = \"".$tpl->get("f_parzelle_view")."\";");
}
/*Parzelle anzeigen*/
if ($action == "show") {
$fp = $db->query_first("SELECT * FROM bb".$n."_parzelle WHERE id = '$id'");
eval("\$seiteninfos['seiten_text'] = \"".$tpl->get("f_parzelle_show", 1)."\",1);");
}
}
Hier das Template f_parzelle_view:
<?xml version="1.0" encoding="{$lang->items['LANG_GLOBAL_ENCODING']}"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="{$lang->items['LANG_GLOBAL_DIRECTION']}" lang="{$lang->items['LANG_GLOBAL_LANGCODE']}" xml:lang="{$lang->items['LANG_GLOBAL_LANGCODE']}">
<head>
<title>$master_board_name | {$lang->items['LANG_PARZELLE_TITEL']}</title>
$headinclude
<meta http-equiv="Content-Type" content="text/html;charset={$lang->items['LANG_GLOBAL_ENCODING']}" />
<link rel="stylesheet" href="css/main.css" />
</head>
<body>
<table cellpadding="6" cellspacing="0" border="0" width="100%" align="center">
<tr class="tableb">
<td colspan="4"><p>
<if($wbbuserdata[userid]=="0")>
<then>{$lang->items['LANG_GLOBAL_USERCBAR_HELLO_GUEST']}</then>
<else>{$lang->items['LANG_GLOBAL_USERCBAR_HELLO']} $wbbuserdata[username]</else></if>,<br/>
Hier sind unsere Parzellen aufgelistet, die zur Zeit zum Verkauf stehen. Bitte auf "Details" klicken um weitere Einzelheiten zu den jeweiligen Parzellen sehen.</td>
</tr>
<tr class="tablecat" align="center">
<td width="25%"><b>{$lang->items['LANG_PARZELLE_TITLE_NAME']}</b></td>
<td width="25%"><b>{$lang->items['LANG_PARZELLE_FLAECHE']}</b></td>
<td width="25%"><b>{$lang->items['LANG_PARZELLE_BILD']}</b></td>
<td width="25%"><b>{$lang->items['LANG_PARZELLE_DETAILS']}</b></td>
</tr>
$f_parzelle_viewbit
<tr class="tablecat">
<td colspan="4" align="center">{$lang->items['LANG_PARZELLE_FOOTER']}</td>
</tr>
</table>
</body>
</html>
Das Template f_parzelle_viewbit:
<tr class="$rowclass" border="1">
<td width="25%">{$lang->items['LANG_PARZELLE_VIEWBIT']}
$row[parz]</td>
<td width="25%">$row[flaeche] m²</td>
<td width="25%">
<if($row[bild_n]=="")>
<then><img src="{$style['imagefolder']}/parz_foto_rot.gif" border="0" /></then><else>
<img src="{$style['imagefolder']}/parz_foto_gruen.gif" border="0" /></else></if></td>
<td width="25%"><b><a href="?action=show&id=$row[id]&sid=$session[hash]">Details</a></b></td>
</tr>
Diese Stelle habe ich in der jgs_portal.php geändert:
// eigenen Code einbinden Start
require("./jgs_portal_include/f_parzelle.php");
Und das hier in jgs_portal_box.php:
// eigenen Code einbinden Start
require("./jgs_portal_include/f_parzelle.php");
Da ich da jetzt schon mehrer Tage hänge, würde ich mich riesig freuen, wenn mir jemand auf die Sprünge helfen könnte. Ich beschäfftige mich erst seit kurzer Zeit mit PHP wirklich intensiv und vermute daher, das es ein Anfängerfehler ist. Ausserdem habe ich diverse Flüchtigkeitsfehler von mir bereits gefunden, vielleicht habe ich einen übersehen.
Vielen Dank
Witty
P.S.: Die Anleitungen hier im Board habe ich gelesen und bin der Meinung alles korrekt gemacht zu haben.
Version vom wbb: 2.2.1
Version vom JGS-Portal: 3.1.0
Link zum Board: http://kga-kastanienhain.de/
Test-Account: k.A.
PHP-Version: 4.3.10 (Das ist vom Webspace auf localhost verwende ich PHP Version 5.0.4
Link zur PHP-Info-Datei: http://kga-kastanienhain.de/php.php
Suchfunktion genutzt mit: meincode.php, eigene seite einbinden, eigener code portal, eigenes php im portal, php in portal einfügen
genaue Beschreibung:
Ich habe ein kleines Addon für eine Kleingartenkolonie geschrieben, mit dem man die zum Verkauf stehenden Parzellen ausgeben kann. Die Eingaben dafür werden über das ACP gemacht.
Die Templates und das PHP-Script fürs ACP funzen bestens, nur mit dem Einbau des Scriptes ins Portal habe ich Probleme.
Da ich es offline mit XAMPP schreibe habe ich mal ein Screenshot mit angehängt.
http://kga-kastanienhain.de/parzelle.png
Wie man sieht, wir das Template f_parzelle_view ausgeführt, aber obwohl sechs Parzellen in der Datenbank stehen wird nichts angezeigt. Ich bin mir jetzt nicht sicher, ob das Template f_parzelle_viewbit nicht ausgeführt wird, oder der gesamte PHP-code und wo das Problem liegt.
hier der PHP-Code:
if($seiteninfos[seiten_text]=="[Parzelle]"){
$jgs_tpl_parser_off="1";
$lang->load('REGISTER,GLOBAL,PARZELLE');
if (isset($_REQUEST['action'])) $action = $_REQUEST['action'];
else $action = "view";
/*Abfrage des Usernamen*/
function getuser($userid, $db, $n){
$user = $db->query_first("SELECT username FROM bb".$n."_users WHERE userid = '$userid'");
$username = $user[username];
return $username;
}
/*Parzelle ansehen*/
if ($action == 'view') {
$count = 0;
$f_parzelle_viewbit = '';
$result = $db->query("SELECT * FROM bb".$n."_parzelle ORDER BY parz ASC");
while ($row = $db->fetch_array($result)) {
$rowclass = getone($count++, "tablea", "tableb");
eval("\$seiteninfos['seiten_text'] = \"".$tpl->get("f_parzelle_viewbit")."\";");
}
$lang->items['LANG_PARZELLE_TITLE'] = $lang->get("LANG_PARZELLE_TITLE", array('$anzahl' => $count));
eval("\$seiteninfos['seiten_text'] = \"".$tpl->get("f_parzelle_view")."\";");
}
/*Parzelle anzeigen*/
if ($action == "show") {
$fp = $db->query_first("SELECT * FROM bb".$n."_parzelle WHERE id = '$id'");
eval("\$seiteninfos['seiten_text'] = \"".$tpl->get("f_parzelle_show", 1)."\",1);");
}
}
Hier das Template f_parzelle_view:
<?xml version="1.0" encoding="{$lang->items['LANG_GLOBAL_ENCODING']}"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="{$lang->items['LANG_GLOBAL_DIRECTION']}" lang="{$lang->items['LANG_GLOBAL_LANGCODE']}" xml:lang="{$lang->items['LANG_GLOBAL_LANGCODE']}">
<head>
<title>$master_board_name | {$lang->items['LANG_PARZELLE_TITEL']}</title>
$headinclude
<meta http-equiv="Content-Type" content="text/html;charset={$lang->items['LANG_GLOBAL_ENCODING']}" />
<link rel="stylesheet" href="css/main.css" />
</head>
<body>
<table cellpadding="6" cellspacing="0" border="0" width="100%" align="center">
<tr class="tableb">
<td colspan="4"><p>
<if($wbbuserdata[userid]=="0")>
<then>{$lang->items['LANG_GLOBAL_USERCBAR_HELLO_GUEST']}</then>
<else>{$lang->items['LANG_GLOBAL_USERCBAR_HELLO']} $wbbuserdata[username]</else></if>,<br/>
Hier sind unsere Parzellen aufgelistet, die zur Zeit zum Verkauf stehen. Bitte auf "Details" klicken um weitere Einzelheiten zu den jeweiligen Parzellen sehen.</td>
</tr>
<tr class="tablecat" align="center">
<td width="25%"><b>{$lang->items['LANG_PARZELLE_TITLE_NAME']}</b></td>
<td width="25%"><b>{$lang->items['LANG_PARZELLE_FLAECHE']}</b></td>
<td width="25%"><b>{$lang->items['LANG_PARZELLE_BILD']}</b></td>
<td width="25%"><b>{$lang->items['LANG_PARZELLE_DETAILS']}</b></td>
</tr>
$f_parzelle_viewbit
<tr class="tablecat">
<td colspan="4" align="center">{$lang->items['LANG_PARZELLE_FOOTER']}</td>
</tr>
</table>
</body>
</html>
Das Template f_parzelle_viewbit:
<tr class="$rowclass" border="1">
<td width="25%">{$lang->items['LANG_PARZELLE_VIEWBIT']}
$row[parz]</td>
<td width="25%">$row[flaeche] m²</td>
<td width="25%">
<if($row[bild_n]=="")>
<then><img src="{$style['imagefolder']}/parz_foto_rot.gif" border="0" /></then><else>
<img src="{$style['imagefolder']}/parz_foto_gruen.gif" border="0" /></else></if></td>
<td width="25%"><b><a href="?action=show&id=$row[id]&sid=$session[hash]">Details</a></b></td>
</tr>
Diese Stelle habe ich in der jgs_portal.php geändert:
// eigenen Code einbinden Start
require("./jgs_portal_include/f_parzelle.php");
Und das hier in jgs_portal_box.php:
// eigenen Code einbinden Start
require("./jgs_portal_include/f_parzelle.php");
Da ich da jetzt schon mehrer Tage hänge, würde ich mich riesig freuen, wenn mir jemand auf die Sprünge helfen könnte. Ich beschäfftige mich erst seit kurzer Zeit mit PHP wirklich intensiv und vermute daher, das es ein Anfängerfehler ist. Ausserdem habe ich diverse Flüchtigkeitsfehler von mir bereits gefunden, vielleicht habe ich einen übersehen.
Vielen Dank
Witty
P.S.: Die Anleitungen hier im Board habe ich gelesen und bin der Meinung alles korrekt gemacht zu haben.