smart menu things
All checks were successful
Build and push / Pulling repo on server (push) Successful in 2s

This commit is contained in:
Chris 2023-10-23 14:36:28 +02:00
parent 88ec74af75
commit 9f3aab4033
5 changed files with 66 additions and 27 deletions

View File

@ -199,6 +199,11 @@ class Model {
return true;
}
function exists($id)
{
return $GLOBALS['redis']->exists($this->dbTable.':'.$id);
}
function delete()
{
return $GLOBALS['redis']->del($this->dbTable.':'.$this->id);

View File

@ -1,17 +1,31 @@
<?php
class Dog extends Model {
class Dog extends Model
{
protected $dbTable = "dogs";
protected $dbFields = Array (
'uuid' => ['type'=>'text','required','unique','autoValMethod'=>'gen_ulid'],
'registered' => ['type'=>'datetime','required','unique','autoValMethod'=>'getDateTime'],
'name' => ['type'=>'text'],
'kennel_name' => ['type'=>'text'],
'breed' => ['type'=>'text'],
'size' => ['type'=>'text'], //in cm
'birthday' => ['type'=>'text'],
'agility_size' => ['type'=>'text'], //S,M,I,L
'active' => ['type'=>'int','default'=>1]
protected $dbFields = array(
'uuid' => ['type' => 'text', 'required', 'unique', 'autoValMethod' => 'gen_ulid'],
'registered' => ['type' => 'datetime', 'required', 'unique', 'autoValMethod' => 'getDateTime'],
'name' => ['type' => 'text'],
'kennel_name' => ['type' => 'text'],
'breed' => ['type' => 'text'],
'size' => ['type' => 'text'], //in cm
'birthday' => ['type' => 'text'],
'agility_size' => ['type' => 'text'], //S,M,I,L
'active' => ['type' => 'int', 'default' => 1]
);
function isMyDog($dog = false)
{
if ($dog == false)
$dog = $this->id;
if (!$this->exists($dog))
return false;
else {
if (in_array($dog, $_SESSION['user']->data['dogs']))
return true;
else return false;
}
}
}

View File

@ -33,11 +33,6 @@ class User extends Model {
unset($_SESSION['user']);
}
function exists($id)
{
return $this->redis->exists($this->dbTable.':'.$id);
}
function getAll($filtered = true)
{
$keys = $this->redis->keys($this->dbTable.':*');

View File

@ -13,6 +13,17 @@ class Dogs extends Page {
{
$this->addSubmenuItem('Hunde anzeigen','/dogs','far fa-list-alt');
$this->addSubmenuItem('Hund hinzufügen','/dogs/add','fas fa-plus-circle');
if($_SESSION['user']->data['dogs'] && count($_SESSION['user']->data['dogs']) > 0)
{
$this->addSubmenuItem('divider','');
foreach($_SESSION['user']->data['dogs'] as $dogid)
{
$dog = new Dog();
$dog->load($dogid);
$this->addSubmenuItem($dog->data['name'],'/dogs/overview/'.$dogid,'fas fa-dog');
}
}
}
function index() {
@ -142,6 +153,16 @@ class Dogs extends Page {
}
}
function overview()
{
$dogid = $this->params[0];
$d = new Dog();
if(!$d->isMyDog($dogid))
return 'Not your dog :(';
return 'hier wird der hund angezeigt';
}
function maySeeThisPage() {
if($_SESSION['user']) //wenn eingeloggt, kein problem
return true;

View File

@ -20,15 +20,19 @@
</a>
<ul class="dropdown-menu">
<?php foreach($item['submenu'] as $sub) : ?>
<li>
<a href="<?= $sub['action'] ?>" hx-push-url="<?= $sub['action'] ?>" hx-get="<?= $sub['action'] ?>" hx-target="#main" class="dropdown-item <?= $sub['classes']?:'' ?>">
<?php if($sub['icon']) : ?>
<i class="<?= $sub['icon'] ?>"></i>
<?php endif; ?>
<?php if($sub['text']=='divider') : ?>
<li><hr class="dropdown-divider"></li>
<?php else : ?>
<li>
<a href="<?= $sub['action'] ?>" hx-push-url="<?= $sub['action'] ?>" hx-get="<?= $sub['action'] ?>" hx-target="#main" class="dropdown-item <?= $sub['classes']?:'' ?>">
<?php if($sub['icon']) : ?>
<i class="<?= $sub['icon'] ?>"></i>
<?php endif; ?>
<?= $sub['text'] ?>
</a>
</li>
<?= $sub['text'] ?>
</a>
</li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
</li>