<?php 
 | 
class gotowe { 
 | 
    static $pola = array('autor', 'tytul', 'wydanie', 'miejsce', 'rok', 'wydawnictwo', 'jezyk', 'ISBN', 'ISSN'); 
 | 
    static $nastrone = 25; 
 | 
    static $add = ''; 
 | 
    static $default = FALSE; 
 | 
     
 | 
    static function dodaj_lista($kod, $wlasne, $znalezione=array()) { 
 | 
        validate::KOD($kod, FALSE); 
 | 
         
 | 
        echo '<p>KOD: <input type="text" name="kod" value="'.$kod.'" readonly="readonly" /></p> 
 | 
  
 | 
'; 
 | 
         
 | 
        $i = 0; 
 | 
?> 
 | 
  
 | 
<table> 
 | 
<tr> <th>Autor</th> <th>Tytuł</th> <th>Wydanie</th> <th>Miejsce</th> <th>Rok</th> <th>Wydawnictwo</th> <th>Język</th> <th>ISBN</th> <th>ISSN</th> <th>Zapisz</th> </tr> 
 | 
<?php 
 | 
    if(!empty($wlasne)) { 
 | 
?> 
 | 
<tr> <th colspan="10">Zasoby własne</th> </tr> 
 | 
  
 | 
<?php 
 | 
foreach($wlasne as $value) { 
 | 
    echo '<tr> <form action="add_book.php" method="post"> 
 | 
'; 
 | 
    foreach(self::$pola as $v) { 
 | 
        echo '<td> <input type="text" name="'.$v.'" value="'.htmlspecialchars($value[$v]).'" /> </td> 
 | 
'; 
 | 
    } 
 | 
    echo '<td> <input type="hidden" name="id" value="'.$kod.'" readonly="readonly" /> <input type="submit" value="Zapisz" /> </td> 
 | 
</form> </tr> 
 | 
'; 
 | 
} 
 | 
    } 
 | 
  
 | 
foreach($znalezione as $nazwa => $dane) { 
 | 
    echo '<tr> <th colspan="10">'.$nazwa.'</th> </tr>'; 
 | 
    foreach($dane as $value) { 
 | 
        echo '<tr> <form action="add_book.php" method="post"> 
 | 
'; 
 | 
        foreach(self::$pola as $v) { 
 | 
            echo '<td> <input type="text" name="'.$v.'" value="'.htmlspecialchars($value[$v]).'" /> </td> 
 | 
'; 
 | 
        } 
 | 
        echo '<td> <input type="hidden" name="id" value="'.$kod.'" readonly="readonly" /> <input type="submit" value="Zapisz" /> </td> 
 | 
</form> </tr> 
 | 
'; 
 | 
    } 
 | 
} 
 | 
?> 
 | 
  
 | 
<tr> <th colspan="10">Dodaj własną</th> </tr> 
 | 
  
 | 
<?php 
 | 
echo '<tr> <form action="add_book.php" method="post"> 
 | 
'; 
 | 
foreach(self::$pola as $v) { 
 | 
    echo '<td> <input type="text" name="'.$v.'" /> </td> 
 | 
'; 
 | 
} 
 | 
echo '<td> <input type="hidden" name="id" value="'.$kod.'" readonly="readonly" /> <input type="submit" value="Zapisz" /> </td> 
 | 
</form> </tr> 
 | 
  
 | 
</table> 
 | 
'; 
 | 
    } 
 | 
     
 | 
    static function sort($by=NULL, $strona=NULL) { 
 | 
        if($strona === NULL) { 
 | 
            $strona = 0; 
 | 
        } 
 | 
         
 | 
        if($by === NULL) { 
 | 
            if(!self::$default) { 
 | 
                $by = $_GET['sort']; 
 | 
            } 
 | 
             
 | 
            $ord = $_GET['ord']; 
 | 
        } 
 | 
        elseif($by == 'default' && self::$default) { 
 | 
            $ord = self::invert_sort($_GET['ord']); 
 | 
        } 
 | 
        elseif($_GET['sort'] == $by && $_GET['ord'] == 'asc') { 
 | 
            $ord = 'desc'; 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            $ord = 'asc'; 
 | 
        } 
 | 
         
 | 
        return $_SERVER['PHP_SELF'].'?'.self::$add.'strona='.$strona.'&sort='.$by.'&ord='.$ord; 
 | 
    } 
 | 
     
 | 
    static function add($what, $size=50) { 
 | 
        if($_GET[$what]!='') { 
 | 
            self::$add .= $what.'='.urlencode(substr($_GET[$what], 0, $size)).'&'; 
 | 
        } 
 | 
    } 
 | 
     
 | 
    static function invert_sort($ord) { 
 | 
        $ord = strtolower($ord); 
 | 
        if($ord != 'asc') { 
 | 
            $ord = 'asc'; 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            $ord = 'desc'; 
 | 
        } 
 | 
        return $ord; 
 | 
    } 
 | 
     
 | 
    static function historia($kod) { 
 | 
        $st = PDOO::Singleton()->prepare( 
 | 
             'SELECT * FROM pozycz_historia WHERE id=?'."\n" 
 | 
            .'UNION'."\n" 
 | 
            .'SELECT *, \'\' AS do FROM pozycz WHERE id=? ORDER BY od ASC' 
 | 
        ); 
 | 
        $st->execute(array($kod, $kod)); 
 | 
        $dane = $st->fetchAll(); 
 | 
         
 | 
        $info = '<table id="bhist"> 
 | 
<tr> <th>Pożyczający</th> <th>Od</th> <th>Do</th> </tr> 
 | 
'; 
 | 
         
 | 
        foreach($dane as $o) { 
 | 
            $info .= '<tr> <td>'.htmlspecialchars($o['kto']).'</td> <td>'.date('Y-m-d H:i:s', $o['od']).'</td> <td>'.($o['do'] ? date('Y-m-d H:i:s', $o['do']) : '').'</td> </tr>'."\n"; 
 | 
        } 
 | 
         
 | 
        echo $info.'</table>'; 
 | 
    } 
 | 
     
 | 
    static function informacje($kod, $dane=NULL) { 
 | 
        if(is_null($dane)) { 
 | 
            $dane = ksiazki::szukaj_KOD($kod); 
 | 
        } 
 | 
         
 | 
        if($dane['wycofana']) { 
 | 
            $class = 'wyc'; 
 | 
            $info = '<p>Książka wycofana'.($dane['powod'] ? ' <br /> '.$dane['powod'] : '').'</p>'; 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            if(!pozycz::pozyczona($dane['id'])) { 
 | 
                $class = 'norm'; 
 | 
                $info = ' 
 | 
  
 | 
<fieldset> 
 | 
<legend>Wypożyczanie</legend> 
 | 
<p>Książka w bibliotece</p> 
 | 
<form action="borrow_book.php" method="post" onsubmit="return ffalse(\'step1\')"> 
 | 
<p>Pożycz <input type="text" name="kod" value="'.$dane['id'].'" readonly="readonly" /><br /> 
 | 
Komu? <input type="text" name="kto" id="step11" required="required" /></p> 
 | 
<p><input type="submit" value="Pożycz" /></p> 
 | 
  
 | 
<script type="text/javascript"> 
 | 
document.getElementById(\'step11\').focus(); 
 | 
</script> 
 | 
</form> 
 | 
</fieldset> 
 | 
  
 | 
'; 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                $class = 'poz'; 
 | 
                $info = ' 
 | 
  
 | 
<fieldset> 
 | 
<legend>Wypożyczanie</legend> 
 | 
<p>Wypożyczył(a) '.$dane['kto'].' w dniu '.date('d.m.Y', $dane['od']).'</p> 
 | 
  
 | 
<form action="borrow_back.php" method="post"> 
 | 
<p><input type="hidden" name="kod" value="'.$dane['id'].'" /> <input type="submit" value="Zwrot"  id="step11" /></p> 
 | 
  
 | 
<script type="text/javascript"> 
 | 
document.getElementById(\'step11\').focus(); 
 | 
</script> 
 | 
</form> 
 | 
</fieldset> 
 | 
  
 | 
'; 
 | 
            } 
 | 
        } 
 | 
         
 | 
        // Okładka 
 | 
        $cover = ksiazki::okladka($dane['id'], $dane['ISBN']); 
 | 
         
 | 
        echo '<div class="'.$class.'" id="book"> 
 | 
'.($cover ? '<a href="cover.php?KOD='.$dane['id'].'&ISBN='.$dane['ISBN'].'"><img src="'.$cover.'" alt="Okładka" /></a> 
 | 
' : '').'<h4>'.$dane['tytul'].'</h4> 
 | 
<h5>'.$dane['autor'].($dane['regal'] ? ' <span>('.$dane['regal'].($dane['polka'] ? '/'.$dane['polka'] : '').($dane['rzad'] ? '/'.$dane['rzad'] : '').')</span>' : '').'</h5> 
 | 
'.($dane['wydanie'] ? '<p>Wydanie '.$dane['wydanie'].'</p>' : '').' 
 | 
<p>'.($dane['wydawnictwo'] ? $dane['wydawnictwo'].'<br /> 
 | 
' : '').$dane['miejsce'].' '.$dane['rok'].($dane['ISBN'] ? '<br /> 
 | 
ISBN-13: '.$dane['ISBN'] : '').(substr($dane['ISBN'], 0, 3) == '978' ? '<br /> 
 | 
ISBN-10: '.convert::ISBN13_to_ISBN10($dane['ISBN']) : '').($dane['ISSN'] ? '<br /> 
 | 
ISSN-13: '.$dane['ISSN'].'<br /> 
 | 
ISSN-10: '.convert::ISSN13_to_ISSN8($dane['ISSN']) : '').'</p> 
 | 
'.$info.' 
 | 
<form action="edit.php" method="get" style="float:left;"> 
 | 
<p><input type="hidden" name="kod" value="'.$dane['id'].'" /> <input type="submit" value="Edytuj" /></p> 
 | 
</form> 
 | 
  
 | 
<form action="del.php" method="get" style="float:left;"> 
 | 
<p><input type="hidden" name="kod" value="'.$dane['id'].'" /> <input type="submit" value="Usuń" /></p> 
 | 
</form> 
 | 
'.($dane['od'] ? ' 
 | 
<form action="borrow_history.php" method="get" style="float:right;"> 
 | 
<p><input type="hidden" name="kod" value="'.$dane['id'].'" /> <input type="submit" value="Historia wypożyczeń" /></p> 
 | 
</form>' : '').' 
 | 
</div>'; 
 | 
    } 
 | 
     
 | 
    static function lista() { 
 | 
        if(!in_array($_GET['sort'], array('id', 'autor', 'tytul', 'miejsce', 'rok', 'wydawnictwo'))) { 
 | 
            $_GET['sort'] = 'tytul'; 
 | 
            self::$default = TRUE; 
 | 
        } 
 | 
        if($_GET['ord'] != 'desc') { 
 | 
            $_GET['ord'] = 'asc'; 
 | 
        } 
 | 
        if(!ctype_digit($_GET['strona'])) { 
 | 
            $_GET['strona'] = 0; 
 | 
        } 
 | 
         
 | 
        if($_GET['id']) { 
 | 
            self::add('id', 13); 
 | 
            self::add('polka', 3); 
 | 
            self::add('rzad', 3); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            self::add('tytul'); 
 | 
            self::add('autor'); 
 | 
            self::add('wydanie', 25); 
 | 
            self::add('miejsce'); 
 | 
            self::add('rok', 4); 
 | 
            self::add('wydawnictwo'); 
 | 
        } 
 | 
         
 | 
        if(self::$default) { 
 | 
            $sort = array('revelance' => self::invert_sort($_GET['ord']), $_GET['sort'] => $_GET['ord']); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            $sort = array($_GET['sort'] => $_GET['ord']); 
 | 
        } 
 | 
         
 | 
        list($num, $ksiazki, $revelance) = ksiazki::szukaj_info($_GET, $sort, $_GET['strona']*self::$nastrone, self::$nastrone); 
 | 
         
 | 
        if($num==0) { 
 | 
            errorclass::add('Brak książek spełniających podane kryteria'); 
 | 
        } 
 | 
        elseif($num==1 AND !$revelance) { 
 | 
            self::informacje(NULL, $ksiazki[0]); 
 | 
            return TRUE; 
 | 
        } 
 | 
         
 | 
        echo '<table class="width"> 
 | 
<tr> <th>Okł.</th> <th> <b><a href="'.self::sort('id').'">Kod</a></b> <br /> Wyd. </th> <th> <a href="'.self::sort('autor').'">Autor</a> <br /> <b><a href="'.self::sort('tytul').'">Tytuł</a></b> </th> <th> <a href="'.self::sort('miejsce').'">Miejsce</a>, <a href="'.self::sort('rok').'">rok</a> <br /> <a href="'.self::sort('wydawnictwo').'">Wydawnictwo</a> </th>'.($revelance ? ' <th><a href="'.self::sort('default').'">Trafność</a></th>' : '').' <th> Wypożyczenie <br /> Opcje </th> </tr> 
 | 
'; 
 | 
         
 | 
        foreach($ksiazki as $ksiazka) { 
 | 
            if($ksiazka['wycofana']) { 
 | 
                $info = 'Książka wycofana'; 
 | 
                $class = 'wyc'; 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                if($ksiazka['do']!==NULL OR $ksiazka['od']===NULL) { 
 | 
                    $class = 'norm'; 
 | 
                    $info = 'Książka w bibliotece'; 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    $class = 'poz'; 
 | 
                    $info = $ksiazka['kto']; 
 | 
                    $pozycz = TRUE; 
 | 
                } 
 | 
            } 
 | 
             
 | 
            $cover = ksiazki::okladka($ksiazka['id'], $ksiazka['ISBN']); 
 | 
             
 | 
            echo '<tr'.($class ? ' class="'.$class.'"' : '').'> 
 | 
    <td> 
 | 
         '.($cover ? '<a href="cover.php?KOD='.$ksiazka['id'].'&ISBN='.$ksiazka['ISBN'].'"><img src="'.$cover.'" alt="Okładka" /></a>' : '').' 
 | 
    </td> 
 | 
    <td> 
 | 
        <b>'.$ksiazka['id'].'</b> <br /> 
 | 
        '.($ksiazka['wydanie'] ? 'W. '.$ksiazka['wydanie'] : '').' 
 | 
    </td> 
 | 
    <td> 
 | 
        '.$ksiazka['autor']. 
 | 
            ($ksiazka['regal'] ? ' <span>('.$ksiazka['regal']. 
 | 
            ($ksiazka['polka'] ? '/'.$ksiazka['polka'] : ''). 
 | 
            ($ksiazka['rzad'] ? '/'.$ksiazka['rzad'] : ''). 
 | 
            ')</span>' : '').' <br /> 
 | 
        <b>'.$ksiazka['tytul'].'</b> </td> 
 | 
    <td> 
 | 
        '.$ksiazka['miejsce'].' '.$ksiazka['rok'].' <br /> 
 | 
        '.$ksiazka['wydawnictwo'].'  
 | 
    </td>'.($revelance ? ' 
 | 
    <td>'.min(100, (int)($ksiazka['revelance']*10)).'% </td>' : '').' 
 | 
    <td class="n"> 
 | 
        '.$info.' <br /> 
 | 
        <a href="info.php?kod='.$ksiazka['id'].'">Więcej</a> 
 | 
        <a href="edit.php?kod='.$ksiazka['id'].'">Edycja</a> 
 | 
        <a href="del.php?kod='.$ksiazka['id'].'">Usuń</a> 
 | 
    </td> 
 | 
</tr> 
 | 
'; 
 | 
        } 
 | 
         
 | 
        echo '</table> 
 | 
  
 | 
'; 
 | 
        self::strony($num); 
 | 
    } 
 | 
     
 | 
    static function strony($elementow) { 
 | 
        $stron = ceil($elementow / self::$nastrone) - 1; 
 | 
         
 | 
        echo '<p class="paginator"> '; 
 | 
        for($strona=0; $strona<=$stron; $strona++) { 
 | 
            if($strona == $_GET['strona']) { 
 | 
                echo '<b>[ '.($strona+1).' ]</b> '; 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                echo '<a href="'.self::sort(NULL, $strona).'">[ '.($strona+1).' ]</a> '; 
 | 
            } 
 | 
        } 
 | 
         
 | 
        echo '</p>'; 
 | 
    } 
 | 
} 
 | 
?> 
 |