I don’t get an error or anything.
Even with $error being a boolean I didn’t get my “something went wrong”.
After clicking on send the page refreshes but in the end nothing is changed.
I am not sure how to display the error message with PHP.
Here’s my userpage controller:
<?php
return function ($kirby, $page) {
$error = "";
if ($kirby->request()->is('POST') && get('user')) {
try {
$kirby->impersonate('kirby');
if(get('editEmail') !== ''){
$user = $kirby->user()->changeEmail(get('editEmail'));
}
} catch (Exception $e) {
$error = error_message;
}
}
return [
'error' => $error
];
};
Maybe there’s something wrong with my template?
userpage template:
<?php snippet('header', array("default" => true)) ?>
<article class="viewDefault">
<?php
if($error): ?>
<div class="alert"><?= $page->authAlert()->html() ?> <?= $error ?></div>
<?php endif ?>
<?php
if(!$kirby->user()){
go('login');
}
?>
<?php dump(get('email')) ?>
<div class="viewUserData" id="userData">
<div id="name"><?= $page->username() ?>: <?= $kirby->user()->username() ?></div>
<div id="email"><?= $page->email() ?>: <?= $kirby->user()->email() ?></div>
<?php if($kirby->user()->role()) ?><div id="beruf"><?= $page->occupation() ?>: <?= $kirby->user()->content()->occupation() ?></div>
<div id="adresse" class="userAddress">
<div id="street"><?= $page->street() ?>: <?= $kirby->user()->content()->street() ?> <?= $kirby->user()->content()->housenumber() ?></div>
<div id="PLZ"><?= $page->city() ?>: <?= $kirby->user()->content()->PLZ() ?> <?= $kirby->user()->content()->city() ?></div>
<div id="tel"><?= $page->tel() ?>: <?= $kirby->user()->content()->tel() ?></div>
<div id="fax"><?= $page->fax() ?>: <?= $kirby->user()->content()->fax() ?></div>
</div>
</div>
<form id="editUserData" class="editUserForm" method="post" action="<?= $page->url() ?>">
<div>
<label for="editEmail"><?= $page->username()->html() ?></label>
<input type="email" id="editEmail" name="editEmail" placeholder="<?= $kirby->user()->email() ?>" value="<?= get('editEmail') ? esc(get('editEmail'), 'attr') : '' ?>">
</div>
<div>
<label for="editPassword"><?= $page->password()->html() ?></label>
<input type="password" id="editPassword" name="editPassword" value="<?= get('editPassword') ? esc(get('editPassword'), 'attr') : '' ?>">
</div>
<?php if($kirby->user()->role()->id() == 'client'): ?>
<div class="clientField">
<label for="editFirstname"><?= $page->name()->html() ?></label>
<input type="text" id="editFirstname" name="editFirstname" value="<?= get('editFirstname') ? esc(get('editFirstname'), 'attr') : '' ?>">
</div>
<div class="clientField">
<label for="editLastname"><?= $page->lastname()->html() ?></label>
<input type="text" id="editLastname" name="editLastname" value="<?= get('editLastname') ? esc(get('editLastname'), 'attr') : '' ?>">
</div>
<select id="editOccupation" name="occupation">
<?php foreach($page->occupation_list()->toStructure() as $job): ?>
<option value="<?= $job->name()->html() ?>"><?= $job->name()->html() ?></option>
<?php endforeach; ?>
</select>
<?php elseif($kirby->user()->role()->id() == 'client-company'): ?>
<div class="companyField">
<label for="editCompany_name"><?= $page->company_name()->html() ?></label>
<input type="text" id="editCompany_name" name="editCompany_name" placeholder="<?= $kirby->user()->content()->company_name() ?>" value="<?= get('editCompany_name') ? esc(get('editCompany_name'), 'attr') : '' ?>">
</div>
<?php endif; ?>
<div>
<label for="editTel"><?= $page->tel()->html() ?></label>
<input type="text" id="editTel" placeholder="<?= $kirby->user()->content()->tel() ?>" name="editTel" value="<?= get('editTel') ? esc(get('editTel'), 'attr') : '' ?>">
</div>
<div>
<label for="editFax"><?= $page->fax()->html() ?></label>
<input type="text" id="editFax" name="editFax" placeholder="<?= $kirby->user()->content()->fax() ?>" value="<?= get('editFax') ? esc(get('editFax'), 'attr') : '' ?>">
</div>
<div>
<label for="editStreet"><?= $page->street()->html() ?></label>
<input type="text" id="editStreet" placeholder="<?= $kirby->user()->content()->street() ?>" name="editStreet" value="<?= get('editStreet') ? esc(get('editStreet'), 'attr') : '' ?>">
</div>
<div>
<label for="editHousenumber"><?= $page->housenumber()->html() ?></label>
<input type="text" id="editHousenumber" name="editHousenumber" placeholder="<?= $kirby->user()->content()->housenumber() ?>" value="<?= get('editHousenumber') ? esc(get('editHousenumber'), 'attr') : '' ?>">
</div>
<div>
<label for="editPlz"><?= $page->plz()->html() ?></label>
<input type="text" id="editPlz" name="editPlz" placeholder="<?= $kirby->user()->content()->plz() ?>" value="<?= get('editPlz') ? esc(get('editPlz'), 'attr') : '' ?>">
</div>
<div>
<label for="editCity"><?= $page->city()->html() ?></label>
<input type="text" id="editCity" name="editCity" placeholder="<?= $kirby->user()->content()->city() ?>" value="<?= get('editCity') ? esc(get('editCity'), 'attr') : '' ?>">
</div>
<div>
<input type="submit" name="editUserData" value="<?= $page->editmode()->html() ?>" onsubmit="">
</div>
</form>
<button id="editButton" class="editButton" onclick="toggleEdit();"><?= $page->button()->html() ?></button>
<?php dump($kirby->user()) ?>
</article>
<script>
function toggleEdit(){
const userData = document.getElementById('userData');
const editUserDataForm = document.getElementById('editUserData');
const editButton = document.getElementById('editButton');
console.log('I am happening')
if(userData.classList.contains('viewUserData')){
userData.classList.remove("viewUserData");
userData.classList.add("inEdit");
editUserDataForm.style.display = "block";
editButton.innerText = "<?= $page->editmodeoff()->html() ?>"
}
else if(userData.classList.contains('inEdit')){
userData.classList.remove("inEdit");
userData.classList.add("viewUserData");
editUserDataForm.style.display = "none";
editUserDataForm.reset();
editButton.innerText = "<?= $page->button()->html() ?>"
}
}
</script>
<?php snippet('footer') ?>