Skip to content

Commit

Permalink
Merge pull request #51 from zorgch/develop
Browse files Browse the repository at this point in the history
zorg Code v4.2.3
  • Loading branch information
oliveratgithub committed Oct 17, 2021
2 parents b4772a0 + 6730f57 commit 2cef969
Show file tree
Hide file tree
Showing 10 changed files with 213 additions and 146 deletions.
197 changes: 105 additions & 92 deletions www/books.php
Expand Up @@ -23,7 +23,7 @@
* Validate Passed Parameters
*/
/** GET */
if (isset($_GET['book_id']) && is_numeric($_GET['book_id'])) $book_id = (int)$_GET['book_id'];
if (isset($_GET['book_id']) && is_numeric($_GET['book_id']) && $_GET['book_id'] > 0) $book_id = (int)$_GET['book_id'];
if (isset($_GET['do']) && is_string($_GET['do'])) $action = (string)$_GET['do'];
$user_id = (isset($_GET['user']) && is_numeric($_GET['user']) ? (int)$_GET['user'] : $user->id);
/** POST */
Expand Down Expand Up @@ -158,7 +158,7 @@ function get_title($kat_id)
$db->query($sql, __FILE__, __LINE__, 'Neuer Buchbesitzer');

$smarty->assign('error', ['type' => 'success', 'dismissable' => 'true', 'title' => 'Boook #'.$IdNewBook.' hinzugefügt']);

$action = 'show';
$book_id = $IdNewBook;
} else {
Expand Down Expand Up @@ -190,12 +190,12 @@ function get_title($kat_id)
/** Testen ob bereits besitzer */
$sql = 'SELECT user_id FROM books_holder where book_id = '.$book_id.' AND user_id = '.$user->id;
if ($db->num($db->query($sql, __FILE__, __LINE__, 'add_owner')) == 0)
{
{
/** Neuen Benutzer hinzufuegen */
$sql = 'INSERT INTO books_holder (book_id, user_id) VALUES ('.$book_id.','.$user->id.')';
$db->query($sql, __FILE__, __LINE__, 'add_owner');
}

$action = 'show';
}
/** Besitzer in DB loeschen */
Expand Down Expand Up @@ -324,91 +324,104 @@ function get_title($kat_id)
/** Buch ansehen */
elseif ($action === 'show' && isset($book_id))
{
/** Get Book Details */
$sql = 'SELECT * from books WHERE id = '.$book_id;
$rs = $db->fetch($db->query($sql, __FILE__, __LINE__, 'Buch ansehen'));

$sql = 'SELECT * from books_title WHERE id = '.$rs['titel_id'];
$rs2 = $db->fetch($db->query($sql, __FILE__, __LINE__, 'Buch ansehen'));

$htmlOutput .= '<h1>'.htmlentities($rs['title']).'</h1>';
$htmlOutput .= '<table cellpadding="1" cellspacing="1" class="border" align="center" style="max-width: 100%;">'
.'<tr><td align="left" style="font-weight: 600;">'
.'Autor:'
.'</td><td align="left" style="color:#'.FONTCOLOR.'; background-color:#'.BACKGROUNDCOLOR.'; border-bottom-style: solid; border-bottom-color: #'.BORDERCOLOR.'; border-bottom-width: 1px; border-left-style: solid; border-left-color: #'.BORDERCOLOR.'; border-left-width: 1px;">'
.htmlentities($rs['autor'])
.'</td></tr><tr><td align="left" style="font-weight: 600;">'
.'Verlag:'
.'</td><td align="left" style="color:#'.FONTCOLOR.'; background-color:#'.BACKGROUNDCOLOR.'; border-bottom-style: solid; border-bottom-color: #'.BORDERCOLOR.'; border-bottom-width: 1px; border-left-style: solid; border-left-color: #'.BORDERCOLOR.'; border-left-width: 1px;">'
.htmlentities($rs['verlag'])
.'</td></tr><tr><td align="left" style="font-weight: 600;">'
.'ISBN:'
.'</td><td align="left" style="color:#'.FONTCOLOR.'; background-color:#'.BACKGROUNDCOLOR.'; border-bottom-style: solid; border-bottom-color: #'.BORDERCOLOR.'; border-bottom-width: 1px; border-left-style: solid; border-left-color: #'.BORDERCOLOR.'; border-left-width: 1px;">'
.htmlentities($rs['isbn'])
.'</td></tr><tr><td align="left" style="font-weight: 600;">'
.'Thema:'
.'</td><td align="left" style="color:#'.FONTCOLOR.'; background-color:#'.BACKGROUNDCOLOR.'; border-bottom-style: solid; border-bottom-color: #'.BORDERCOLOR.'; border-bottom-width: 1px; border-left-style: solid; border-left-color: #'.BORDERCOLOR.'; border-left-width: 1px;">'
.htmlentities($rs2['typ'])
.'</td></tr><tr><td align="left" style="font-weight: 600;">'
.'Druckjahr:'
.'</td><td align="left" style="color:#'.FONTCOLOR.'; background-color:#'.BACKGROUNDCOLOR.'; border-bottom-style: solid; border-bottom-color: #'.BORDERCOLOR.'; border-bottom-width: 1px; border-left-style: solid; border-left-color: #'.BORDERCOLOR.'; border-left-width: 1px;">'
.$rs['jahrgang']
.'</td></tr><tr><td align="left" style="font-weight: 600;">'
.'Preis:'
.'</td><td align="left" style="color:#'.FONTCOLOR.'; background-color:#'.BACKGROUNDCOLOR.'; border-bottom-style: solid; border-bottom-color: #'.BORDERCOLOR.'; border-bottom-width: 1px; border-left-style: solid; border-left-color: #'.BORDERCOLOR.'; border-left-width: 1px;">'
.'CHF '.htmlentities($rs['preis'])
.'</td></tr><tr><td align="left" style="font-weight: 600;">'
.'Seiten:'
.'</td><td align="left" style="color:#'.FONTCOLOR.'; background-color:#'.BACKGROUNDCOLOR.'; border-bottom-style: solid; border-bottom-color: #'.BORDERCOLOR.'; border-bottom-width: 1px; border-left-style: solid; border-left-color: #'.BORDERCOLOR.'; border-left-width: 1px;">'
.htmlentities($rs['seiten'])
.'</td></tr><tr><td align="left" style="font-weight: 600;">'
.'Besitzer:'
.'</td><td align="left" style="color:#'.FONTCOLOR.'; background-color:#'.BACKGROUNDCOLOR.'; border-bottom-style: solid; border-bottom-color: #'.BORDERCOLOR.'; border-bottom-width: 1px; border-left-style: solid; border-left-color: #'.BORDERCOLOR.'; border-left-width: 1px;">'
;

/** besitzer auflisten */
$sql = 'SELECT * from books_holder WHERE book_id = '.$rs['id'];
$result3 = $db->query($sql, __FILE__, __LINE__, 'Besitzer auflisten');
$alleBesitzer = '';
while ($rs3 = $db->fetch($result3))
if ($rs !== false && $rs !== null)
{
$alleBesitzer .= sprintf('<a href="?do=my&user=%d">%s</a>, ', $rs3['user_id'], $user->id2user($rs3['user_id'], 0));
}
$htmlOutput .= substr($alleBesitzer, 0, -2); // Entfernt das allerletzte Komma
$sql = 'SELECT * from books_title WHERE id = '.$rs['titel_id'];
$rs2 = $db->fetch($db->query($sql, __FILE__, __LINE__, 'Buch ansehen'));

$htmlOutput .= '</td></tr></table>';
$htmlOutput .= '<h1>'.htmlentities($rs['title']).'</h1>';
$htmlOutput .= '<table cellpadding="1" cellspacing="1" class="border" align="center" style="max-width: 100%;">'
.'<tr><td align="left" style="font-weight: 600;">'
.'Autor:'
.'</td><td align="left" style="color:#'.FONTCOLOR.'; background-color:#'.BACKGROUNDCOLOR.'; border-bottom-style: solid; border-bottom-color: #'.BORDERCOLOR.'; border-bottom-width: 1px; border-left-style: solid; border-left-color: #'.BORDERCOLOR.'; border-left-width: 1px;">'
.htmlentities($rs['autor'])
.'</td></tr><tr><td align="left" style="font-weight: 600;">'
.'Verlag:'
.'</td><td align="left" style="color:#'.FONTCOLOR.'; background-color:#'.BACKGROUNDCOLOR.'; border-bottom-style: solid; border-bottom-color: #'.BORDERCOLOR.'; border-bottom-width: 1px; border-left-style: solid; border-left-color: #'.BORDERCOLOR.'; border-left-width: 1px;">'
.htmlentities($rs['verlag'])
.'</td></tr><tr><td align="left" style="font-weight: 600;">'
.'ISBN:'
.'</td><td align="left" style="color:#'.FONTCOLOR.'; background-color:#'.BACKGROUNDCOLOR.'; border-bottom-style: solid; border-bottom-color: #'.BORDERCOLOR.'; border-bottom-width: 1px; border-left-style: solid; border-left-color: #'.BORDERCOLOR.'; border-left-width: 1px;">'
.htmlentities($rs['isbn'])
.'</td></tr><tr><td align="left" style="font-weight: 600;">'
.'Thema:'
.'</td><td align="left" style="color:#'.FONTCOLOR.'; background-color:#'.BACKGROUNDCOLOR.'; border-bottom-style: solid; border-bottom-color: #'.BORDERCOLOR.'; border-bottom-width: 1px; border-left-style: solid; border-left-color: #'.BORDERCOLOR.'; border-left-width: 1px;">'
.htmlentities($rs2['typ'])
.'</td></tr><tr><td align="left" style="font-weight: 600;">'
.'Druckjahr:'
.'</td><td align="left" style="color:#'.FONTCOLOR.'; background-color:#'.BACKGROUNDCOLOR.'; border-bottom-style: solid; border-bottom-color: #'.BORDERCOLOR.'; border-bottom-width: 1px; border-left-style: solid; border-left-color: #'.BORDERCOLOR.'; border-left-width: 1px;">'
.$rs['jahrgang']
.'</td></tr><tr><td align="left" style="font-weight: 600;">'
.'Preis:'
.'</td><td align="left" style="color:#'.FONTCOLOR.'; background-color:#'.BACKGROUNDCOLOR.'; border-bottom-style: solid; border-bottom-color: #'.BORDERCOLOR.'; border-bottom-width: 1px; border-left-style: solid; border-left-color: #'.BORDERCOLOR.'; border-left-width: 1px;">'
.'CHF '.htmlentities($rs['preis'])
.'</td></tr><tr><td align="left" style="font-weight: 600;">'
.'Seiten:'
.'</td><td align="left" style="color:#'.FONTCOLOR.'; background-color:#'.BACKGROUNDCOLOR.'; border-bottom-style: solid; border-bottom-color: #'.BORDERCOLOR.'; border-bottom-width: 1px; border-left-style: solid; border-left-color: #'.BORDERCOLOR.'; border-left-width: 1px;">'
.htmlentities($rs['seiten'])
.'</td></tr><tr><td align="left" style="font-weight: 600;">'
.'Besitzer:'
.'</td><td align="left" style="color:#'.FONTCOLOR.'; background-color:#'.BACKGROUNDCOLOR.'; border-bottom-style: solid; border-bottom-color: #'.BORDERCOLOR.'; border-bottom-width: 1px; border-left-style: solid; border-left-color: #'.BORDERCOLOR.'; border-left-width: 1px;">'
;

/** besitzer auflisten */
$sql = 'SELECT * from books_holder WHERE book_id = '.$rs['id'];
$result3 = $db->query($sql, __FILE__, __LINE__, 'Besitzer auflisten');
$alleBesitzer = '';
while ($rs3 = $db->fetch($result3))
{
$alleBesitzer .= sprintf('<a href="?do=my&user=%d">%s</a>, ', $rs3['user_id'], $user->id2user($rs3['user_id'], 0));
}
$htmlOutput .= substr($alleBesitzer, 0, -2); // Entfernt das allerletzte Komma

$htmlOutput .= nl2br(htmlentities($rs['text']));
$htmlOutput .= '</td></tr></table>';

/** Ists ein angemeldeter User? */
if (true === $user->is_loggedin())
{
$sidebarHtml = '<h3>Boook Actions</h3>';
$htmlOutput .= nl2br(htmlentities($rs['text']));

/** Wer das Buch besitzt kanns loeschen, wer nicht kanns hinzufuegen */
$sql = 'SELECT user_id FROM books_holder WHERE book_id = '.$rs['id'].' AND user_id = '.$user->id;
if ($db->num($db->query($sql, __FILE__, __LINE__, 'Buchbesitzer')) == 1)
/** Ists ein angemeldeter User? */
if (true === $user->is_loggedin())
{
$sidebarHtml .= '<a href="?do=edit&book_id='.$rs['id'].'">[edit]</a><br>'
.'<a href="?do=delete_owner&book_id='.$rs['id'].'">[delete book from my list]</a><br>';
$sidebarHtml = '<h3>Boook Actions</h3>';

/** Wer das Buch besitzt kanns loeschen, wer nicht kanns hinzufuegen */
$sql = 'SELECT user_id FROM books_holder WHERE book_id = '.$rs['id'].' AND user_id = '.$user->id;
if ($db->num($db->query($sql, __FILE__, __LINE__, 'Buchbesitzer')) == 1)
{
$sidebarHtml .= '<a href="?do=edit&book_id='.$rs['id'].'">[edit]</a><br>'
.'<a href="?do=delete_owner&book_id='.$rs['id'].'">[delete book from my list]</a><br>';
} else {
$sidebarHtml .= '<a href="?do=add_owner&book_id='.$rs['id'].'">[add book to my list]</a><br>';
}

/** nur ersteller kann loeschen, falls keine anderen besitzer vorhanden */
if ($user->id == $rs['ersteller'])
{
$sidebarHtml .= '<a href="?do=delete&book_id='.$rs['id'].'">[delete]</a>';
}
} else {
$sidebarHtml .= '<a href="?do=add_owner&book_id='.$rs['id'].'">[add book to my list]</a><br>';
$sidebarHtml = '&nbsp;';
}

/** nur ersteller kann loeschen, falls keine anderen besitzer vorhanden */
if ($user->id == $rs['ersteller'])
{
$sidebarHtml .= '<a href="?do=delete&book_id='.$rs['id'].'">[delete]</a>';
}
} else {
$sidebarHtml = '&nbsp;';
/** HTML Output */
$model->showBook($smarty, $book_id, $rs['title']);
$smarty->assign('sidebarHtml', $sidebarHtml);
$smarty->display('file:layout/head.tpl');
echo $htmlOutput;
}

/** HTML Output */
$model->showBook($smarty, $book_id, $rs['title']);
$smarty->assign('sidebarHtml', $sidebarHtml);
$smarty->display('file:layout/head.tpl');
echo $htmlOutput;

/** Invalid Book ID / Book not found */
else {
http_response_code(404); // Set response code 404 (not found) and exit.
$model->notFound($smarty, $book_id);
$htmlOutput = $smarty->fetch('file:layout/head.tpl');
$smarty->assign('error', ['type' => 'danger', 'dismissable' => 'false', 'title' => 'Buch nicht gefunden!']);
$htmlOutput .= $smarty->fetch('file:layout/elements/block_error.tpl');
echo $htmlOutput;
}
}
/** Buch bearbeiten */
elseif ($action === 'edit' && true === $user->is_loggedin())
Expand Down Expand Up @@ -653,10 +666,10 @@ function get_title($kat_id)

$htmlOutput .= '<h2>Boooks von '.$user->id2user($user_id).'</h2>';

$sql = 'SELECT DISTINCT titel_id
FROM books, books_holder
WHERE
books.id = books_holder.book_id AND
$sql = 'SELECT DISTINCT titel_id
FROM books, books_holder
WHERE
books.id = books_holder.book_id AND
books_holder.user_id = '.$user_id;
$result = $db->query($sql, __FILE__, __LINE__);
while($rs = $db->fetch($result))
Expand All @@ -674,12 +687,12 @@ function get_title($kat_id)
while($rs2 = $db->fetch($result2))
{
$htmlOutput .= "<li>".get_title($rs2['parent_id'])."</li><ul>";
$sql = 'SELECT *
FROM books, books_holder
WHERE
books.titel_id = '.$rs['titel_id'].' AND
books.parent_id = '.$rs2['parent_id'].' AND
books.id = books_holder.book_id AND
$sql = 'SELECT *
FROM books, books_holder
WHERE
books.titel_id = '.$rs['titel_id'].' AND
books.parent_id = '.$rs2['parent_id'].' AND
books.id = books_holder.book_id AND
books_holder.user_id = '.$user_id;
$result3 = $db->query($sql, __FILE__, __LINE__);
while($rs3 = $db->fetch($result3))
Expand All @@ -689,20 +702,20 @@ function get_title($kat_id)
$htmlOutput .= '</ul>';
}

$sql = 'SELECT *
FROM books, books_holder
WHERE
books.titel_id = '.$rs['titel_id'].' AND
books.parent_id = 0 AND
books.id = books_holder.book_id AND
$sql = 'SELECT *
FROM books, books_holder
WHERE
books.titel_id = '.$rs['titel_id'].' AND
books.parent_id = 0 AND
books.id = books_holder.book_id AND
books_holder.user_id = '.$user_id;
$result4 = $db->query($sql, __FILE__, __LINE__);
while($rs4 = $db->fetch($result4)) {
$htmlOutput .= '<li><a href="?do=show&book_id='.$rs4['book_id'].'">'.$rs4['title'].'</a></li>';
}
$htmlOutput .= '</ul>';
}

/** HTML Output */
$model->showUserbooks($smarty, $user, $user_id);
$smarty->assign('sidebarHtml', $user->userprofile_link($user_id, ['pic' => true, 'username' => true, 'clantag' => true, 'link' => true]));
Expand Down
23 changes: 17 additions & 6 deletions www/css/css.php
Expand Up @@ -55,6 +55,7 @@
html {
font-size: calc(1em + 1vw);
scroll-behavior: smooth;
-webkit-tap-highlight-color: transparent; /** Removes gray Tap-Highlight on links with iOS Safari */
}

body {
Expand Down Expand Up @@ -155,12 +156,12 @@
.main-content {
font-size: 0.5rem;
padding: .5rem .5rem .5rem 1.25rem;
background: var(--background-color-main, rgba(1,1,1,1));
background: var(--background-color-main, #000);
}
.sidebar {
font-size: 0.5rem;
padding: .5rem 1rem .5rem 1rem;
background: var(--background-color-main, rgba(1,1,1,1));
background: var(--background-color-main, #000);
}
.footer {
font-size: 0.5rem;
Expand Down Expand Up @@ -235,13 +236,13 @@
.main-content {
font-size: 0.85rem;
padding: .2rem 1rem 0 1rem;
background: var(--background-color-main, rgba(1,1,1,1));
background: var(--background-color-main);
}
.main-content > img { max-width: 100%; }
.sidebar {
font-size: 0.85rem;
padding: .5rem 1rem .5rem 1rem;
background: var(--background-color-sidebar-mobile, rgba(1,1,1,1));
background: var(--background-color-sidebar-mobile);
}
.footer {
font-size: 0.7rem;
Expand Down Expand Up @@ -279,7 +280,7 @@
/**
* HTML5 Structure Styling
*/
.zorghead, .navigation { background: var(--background-color-base, rgba(1,1,1,1)); }
.zorghead, .navigation { background: var(--background-color-base); }
.navigation {
text-align: center;
padding-left: 0;
Expand Down Expand Up @@ -352,7 +353,10 @@
text-decoration: none;
box-shadow: 0 0 0 1px #344586;
}
a:active { color: #ccbc7a; }
a:active {
color: #ccbc7a;
background-color: transparent;
}
a img:active {
box-shadow: 0 0 0 1px #cbba79;
-webkit-filter: opacity(.1);
Expand Down Expand Up @@ -832,6 +836,7 @@

div.menu a:active {
text-decoration: underline;
background-color: transparent;
}

div.menu a.left {
Expand Down Expand Up @@ -971,6 +976,12 @@
width: unset;
}

/** Fix to remove tap highlight on Input elements on iOS Safari */
input, textarea, button, select, label, a {
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-tap-highlight-color: transparent;
}

@media screen and (max-width: 767px) {
/**
* Fix input zoom on iPhones
Expand Down
2 changes: 1 addition & 1 deletion www/includes/bugtracker.inc.php
Expand Up @@ -319,7 +319,7 @@ static function getBugHTML($bug_id, $edit=FALSE)
.'<td align="left"><span itemprop="author" itemscope itemtype="http://schema.org/Person">'.$user->link_userpage($rs['reporter_id']).'</span> @ <time itemprop="dateCreated" datetime="'.$reportedDate_iso8601.'">'.datename($rs['reported_date']).'</time></td>'//|date_format:"%Y-%m-%d-T%H:00"}
.'</tr>'
.'<tr><td colspan="2">&nbsp;</td></tr>'
.'<tbody'.(!empty($rs['assignedto_id']) ? ' itemtype="http://schema.org/Answer" itemscope itemprop="suggestedAnswer'.($rs['resolved_date'] > 0 || $rs['denied_date'] > 0 ? ' acceptedAnswer' : '').'"' : '').'>'
.'<tbody'.(!empty($rs['assignedto_id']) ? ' itemtype="http://schema.org/Answer" itemscope itemprop="suggestedAnswer'.($rs['resolved_date'] > 0 || $rs['denied_date'] > 0 ? ' acceptedAnswer' : '').'"' : '').'>' // FIXME Either "acceptedAnswer" or "suggestedAnswer" should be specified
.'<tr>'
.'<td align="left">Git Commit</td>'
.'<td align="left">'
Expand Down

0 comments on commit 2cef969

Please sign in to comment.