Skip to content

Instantly share code, notes, and snippets.

@davidvavra
Last active March 6, 2018 01:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davidvavra/fa2be8db788c8a19fad4a0447cb4a5ee to your computer and use it in GitHub Desktop.
Save davidvavra/fa2be8db788c8a19fad4a0447cb4a5ee to your computer and use it in GitHub Desktop.
/**
* Vrátí html kód pro přihlášení / odhlášení / informaci o zaplněnosti pro
* daného uživatele. Pokud není zadán, vrací prázdný řetězec.
* @todo v rodině instancí maximálně jedno přihlášení?
* @todo konstanty pro jména POST proměnných? viz prihlasovatkoZpracuj
*/
function prihlasovatko(Uzivatel $u = null, $parametry = 0) {
$out = '';
if($u && $u->gcPrihlasen() && $this->prihlasovatelna($parametry)) {
if (($stav = $this->prihlasenStav($u)) > -1) {
if ($stav == 0 || $parametry & self::ZPETNE)
$out .=
'<form method="post" style="display:inline">' .
'<input type="hidden" name="odhlasit" value="' . $this->id() . '">' .
'<a href="#" onclick="$(this).parent().submit(); return false">odhlásit</a>' .
'</form>';
if ($stav == 1) $out .= '<em>účast</em>';
if ($stav == 2) $out .= '<em>jako náhradník</em>';
if ($stav == 3) $out .= '<em>neúčast</em>';
if ($stav == 4) $out .= '<em>pozdní odhlášení</em>';
} elseif ($u->organizuje($this)) {
$out = '';
} elseif ($this->a['zamcel']) {
$out = '&#128274;'; //zámek
} else {
$volno = $this->volno();
if ($volno == 'u' || $volno == $u->pohlavi())
$out =
'<form method="post" style="display:inline">' .
'<input type="hidden" name="prihlasit" value="' . $this->id() . '">' .
'<a href="#" onclick="$(this).parent().submit(); return false">přihlásit</a>' .
'</form>';
elseif ($volno == 'f')
$out = 'pouze ženská místa';
elseif ($volno == 'm')
$out = 'pouze mužská místa';
else {
if ($u->prihlasenJakoNahradnikNa($this)) {
$out =
'<form method="post" style="display:inline">' .
'<input type="hidden" name="odhlasNahradnika" value="' . $this->id() . '">' .
'<a href="#" onclick="$(this).parent().submit(); return false">odhlásit jako náhradník</a>' .
'</form>';
} else {
$out =
'<form method="post" style="display:inline">' .
'<input type="hidden" name="prihlasNahradnika" value="' . $this->id() . '">' .
'<a href="#" onclick="$(this).parent().submit(); return false">přihlásit jako náhradník</a>' .
'</form>';
}
}
}
}
if($parametry & self::PLUSMINUS_KAZDY) {
$out .= '&emsp;' . $this->plusminus($u);
}
return $out;
}
/** Zpracuje post data z přihlašovátka. Pokud došlo ke změně, vyvolá reload */
static function prihlasovatkoZpracuj(Uzivatel $u = null, $parametry = 0)
{
if(post('prihlasit')) {
self::zId(post('prihlasit'))->prihlas($u, $parametry);
back();
}
if(post('odhlasit')) {
$bezPokut = $parametry & self::ZPETNE ? self::BEZ_POKUT : 0; // v případě zpětných změn bez pokut
self::zId(post('odhlasit'))->odhlas($u, $bezPokut);
back();
}
if(post('prihlasNahradnika')) {
self::zId(post('prihlasNahradnika'))->prihlasNahradnika($u);
back();
}
if(post('odhlasNahradnika')) {
self::zId(post('odhlasNahradnika'))->odhlasNahradnika($u);
back();
}
if($parametry & self::PLUSMINUS_KAZDY) {
self::plusminusZpracuj($u, $parametry);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment