Jeg driver og øver meg litt på smarty, og i den sammenheng så har jeg nesten klart å konvertere et gammelt gratisprogram fra smarty 2 til smarty 3. Nesten alt fungerer som det skal etter konverteringen, men jeg har problemer med "edit user details". Tpl filen ser slik ut:
Header og footer vises, men ikkenoe av det i midten. Hvis jeg fjerner "foreach" og "/foreach" så vises formen og alle "smarty.const", men ikke noe user-info. Laster jeg opp Smarty.class.php fra version 2 så vises alt som det skal.
Og php filen ser slik ut:
Noen som ser problemet og/eller kan komme med noen tips?
HTML:
{include file="header.tpl"}
<div id="pageContainer">
{foreach item="records" from=$records}
<fieldset>
<legend>{$smarty.const.EDIT_USER_LEGEND}</legend>
<form action="useredit.php" method="post">
<p><label for="first_name">{$smarty.const.FIRST_NAME}</label>
<input id="first_name" name="first_name" type="text" size="30" maxlength="30" value="{$records.first_name}" />
</p>
<p><label for="last_name">{$smarty.const.LAST_NAME}</label>
<input id="last_name" name="last_name" type="text" size="30" maxlength="30" value="{$records.last_name}" />
</p>
<p><label for="phone">{$smarty.const.PHONE}</label>
<input id="phone" name="phone" type="text" size="30" maxlength="30" value="{$records.phone}" />
</p>
<p><label for="alt_phone">{$smarty.const.ALT_PHONE}</label>
<input id="alt_phone" name="alt_phone" type="text" size="30" maxlength="30" value="{$records.alt_phone}" />
</p>
<p><label for="fax">{$smarty.const.FAX}</label>
<input id="fax" name="fax" type="text" size="30" maxlength="30" value="{$records.fax}" />
</p>
<p {if $mail_error}class="error"{/if}><label for="email">{$smarty.const.EMAIL}</label>
<input id="email" name="email" type="text" size="35" maxlength="50" value="{$records.email}" />
</p>
<p><input name="submit" type="submit" value="{$smarty.const.SUBMIT}" />
<a href="member.php">{$smarty.const.BACK_TO_MEMBER_HOME}</a><br />
</p>
</form>
</fieldset>
{/foreach}
</div>
{include file="footer.tpl"}
Og php filen ser slik ut:
PHP:
require_once 'configs/functions.php';
require_once 'libs/Smarty.class.php';
include_once "libs/language/$site_lang.php";
$smarty = new Smarty;
//Check if single user mode 1 or multi-user mode 0
if ($site_mode == 0) {
$smarty->assign("site_mode",1);
}
//The user is already logged in.
if ($_SESSION["logged_in"] == 1){
$smarty->assign("logged_in",1);
if (isset($_POST["submit"])) {
$res = updateUser($_SESSION["user"], $_POST["email"], $_POST["first_name"], $_POST["last_name"], $_POST["phone"], $_POST["alt_phone"], $_POST["fax"]);
//Update was successful
if ($res == 99) {
$smarty->assign("success",DETAIL_UPDATE_SUCCESS);
$records = getUserRecords($_SESSION["user"]);
$smarty->assign('records',$records);
} elseif ($res == 1) {//Errors during Update
$smarty->assign("error_message",VALIDATE_EMAIL_ERROR);
$smarty->assign("mail_error",1);
}
} else {
$records = getUserRecords($_SESSION["user"]);
$smarty->assign('records',$records);
}
}
$status = checkPrivs();
$smarty->assign("$status",1);
$smarty->display('useredit.tpl');
Noen som ser problemet og/eller kan komme med noen tips?