ACC SHELL
<?php
/**
*
*
* @version $Id$
* @copyright 2010
* @name Zpracování kateogorií
*/
// pokud neni zadny dokument, vypsat info
#@TODO smazat soubor z doc, smazat soubor z db dokumeny, smazat soubor z prirazeni
class Dokumenty {
public $idDokumentu = "";
public $idKategorie = "";
public $nazev = "";
public $seo_nazev = "";
public $popis = "";
public $title = "";
public $keywords = "";
public $description = "";
public $stav = "";
public $velikost = "";
public $datum = "";
public $lang = "";
public $typ = "";
public $currentpage = "";
public $totalpages = "";
public $pagesize = "20";
/**
* Constructor
*/
function __construct() {
}
public function getNumRows($query) {
//$query = "SELECT id FROM fotogalerie";
$result = mysql_query($query);
if ($result) {
return mysql_num_rows($result);
}
else
return false;
}
public function getAdminTable($id=0, $table='dokumenty') {
if (isset($_SESSION['listuj']))
$this->pagesize = $_SESSION['listuj'];
if (isset($_GET['recordstart'])) {
$recordstart = (isset($_GET['recordstart'])) ? (int) $_GET['recordstart'] : 0;
}
else
$recordstart = 0;
/*
$query = "SELECT d.velikost, d.id id, d.nazev, d.pripona, kp.nazev kp_nazev, dpr.id dpr_id, dpr.id_dokumentu, dpr.id_kategorie, d.datum
FROM {$table} d
LEFT JOIN {$table}_prirazeni dpr ON d.id = dpr.id_dokumentu
LEFT JOIN kategorie_popis kp ON kp.id_kategorie = dpr.id_kategorie
ORDER BY dpr.id";
*/
$query = "SELECT d.velikost, d.id id, d.popis, d.nazev, d.seo_nazev, d.pripona, d.datum, d.stav, d.obrazek
FROM dokumenty d
ORDER BY d.datum, d.id";
$result = mysql_query($query);
if ($result) {
$num_rows = mysql_num_rows($result);
} else {
$num_rows = 0;
}
if ($num_rows > $this->pagesize) {
$query .= " LIMIT $recordstart, $this->pagesize";
$result = mysql_query($query);
}
//$this->debug($query);
//echo "<br />celkem zaznamu: " . $num_rows . "<br />\n";
$this->totalpages = ceil($num_rows / $this->pagesize);
//echo "celkem stranek: " . $totalpages . "<br />\n";
$this->currentpage = ($recordstart / $this->pagesize) + 1;
if ($num_rows == 0) {
echo "<tr>";
echo "<td colspan='8'>Nejsou založeny žádné dokumenty</td>";
echo "</tr>";
} else {
while ($row = mysql_fetch_assoc($result)) {
echo "<tr>";
echo '<td><input type="checkbox" name="checkbox[]" value="' . $row['id'] . '" id="" ></td>';
//echo "<td><a href=\"http://lab.nej-recepty.cz". PROJEKT . "/docs/".$row['nazev'].".".$row['pripona']."\" title=\"". $row['nazev']. "\">". $row['nazev']. "</a></td>";
echo '<td>';
echo "<a href=\"{$table}_edit.php?id=" . $row['id'] . "\" title=\"Editovat\">" . $row['nazev'] . "</a><br />";
if ($row['obrazek'] != 1) {
echo '<span class="url">http://' . $_SERVER['SERVER_NAME'] . PROJEKT . DOKUMENTY_PATH . $row['seo_nazev'] . "." . $row['pripona'] . "</span>";
}
echo "</td>";
echo '<td>';
if (file_exists("images/iko/" . $row['pripona'] . ".png")) {
echo "<img src=\"images/iko/" . $row['pripona'] . ".png\" title=\"" . $row['pripona'] . "\" />";
} else {
echo $row['pripona'];
}
echo '</td>';
echo "<td>" . Tools::format_size($row['velikost'], 1) . "</td>";
echo "<td>" . datum($row['datum']) . "</td>";
$stav = $row['stav'] == '1' ? "Ano" : "Ne";
echo "<td><a href=\"?id={$row['id']}&stav=$stav\">$stav</a></td>";
$query = "SELECT kp.nazev kp_nazev, dpr.id_kategorie
FROM {$table} d
LEFT JOIN {$table}_prirazeni dpr ON d.id = dpr.id_dokumentu
LEFT JOIN kategorie_popis kp ON kp.main_id = dpr.id_kategorie
WHERE dpr.id_dokumentu = '" . $row['id'] . "'
ORDER BY dpr.id";
$prirazeni = mysql_query($query);
echo '<td>';
while ($prir_kategorie = mysql_fetch_array($prirazeni)) {
echo "<a href=\"kategorie_edit.php?id=" . $prir_kategorie['id_kategorie'] . "\" title=\"Editovat\">" . $prir_kategorie['kp_nazev'] . "</a>";
}
echo '</td>';
echo "<td><a href=\"{$table}_edit.php?id=" . $row['id'] . "\" title=\"Editovat\"><img src=\"images/iko/note_edit.png\" alt=\"Editovat\" /></a>";
echo "<a href=\"http://" . $_SERVER['SERVER_NAME'] . PROJEKT . "/docs/" . $row['seo_nazev'] . "." . $row['pripona'] . "\" target=\"_blank\" title=\"" . $row['nazev'] . "\"><img src=\"images/iko/computer.png\" alt=\"Prohlédnout\" /></a>";
echo '<a href="?smazat=' . $row['id'] . '" class="potvrzujiciLink" title="Smazat"><img src="images/iko/remove.png" alt="Smazat" /></a></td>';
echo "</tr>";
}
}
}
public function getTypOption($id, $kategorie='fotogalerie') {
$query = "SELECT {$kategorie}_typ.id, {$kategorie}_typ.nazev, {$kategorie}_typ.lang
FROM {$kategorie}_typ
WHERE {$kategorie}_typ.lang = '" . $_SESSION['jazyk'] . "'
";
if (self::getNumRows($query) != '0') {
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
printf("<option name=\"%d\" id=\"%d\" value=\"%d\" %s>%s</option>\n", $row['id'], $row['id'], $row['id'], $id == $row['id'] ? "SELECTED" : "", $row['nazev']);
}
if (isset($result)) {
mysql_free_result($result);
}
} else {
printf("<option value=\"default\">---</option>\n");
}
}
public function getDokumentyOption($kategorie='kategorie', $id="") {
$query = "SELECT k.id, k.hloubka, kp.nazev AS nazev
FROM {$kategorie} k
LEFT JOIN {$kategorie}_popis kp ON k.id = kp.main_id
WHERE kp.lang = '" . $_SESSION['jazyk'] . "'
AND k.hloubka>0
ORDER BY k.lft ASC";
//$this->debug($query);
printf("<option value=\"default\">---</option>\n");
if (self::getNumRows($query) != '0') {
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
printf("<option name=\"%d\" id=\"%d\" value=\"%d\">%s</option>\n", $row['id'], $row['id'], $row['id'], str_repeat(" ", $row['hloubka'] * 3) . $row['nazev']);
}
if (isset($result)) {
mysql_free_result($result);
}
}
}
public function povolit($id='-1', $kategorie='dokumenty') {
$query = "UPDATE {$kategorie}_popis SET stav = '1' WHERE id = '" . intval($id) . "'";
$result = mysql_query($query);
if (isset($result)) {
mysql_free_result($result);
}
}
public function zakazat($id='-1', $kategorie='fotogalerie') {
$query = "UPDATE {$kategorie}_popis SET stav = '0' WHERE id = '" . intval($id) . "'";
$result = mysql_query($query);
if (isset($result)) {
mysql_free_result($result);
}
}
public function getPrirazeni($id=0, $table='dokumenty') {
if (isset($_SESSION['listuj']))
$this->pagesize = $_SESSION['listuj'];
$recordstart = (isset($_GET['recordstart'])) ? (int) $_GET['recordstart'] : 0;
$query = "SELECT dp.nazev, dp.seo_nazev, dp.pripona, kp.nazev kp_nazev, dpr.id dpr_id, dpr.id_dokumentu, dpr.id_kategorie, dp.velikost
FROM {$table}_prirazeni dpr
LEFT JOIN {$table} dp ON dp.id = dpr.id_dokumentu
LEFT JOIN kategorie_popis kp ON kp.main_id = dpr.id_kategorie
WHERE dpr.id_dokumentu = $id
ORDER BY dpr.id";
//$this->debug($query);
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
if ($num_rows == '0' || empty($num_rows)) {
echo '<tr><td colspan="4">Dokument není přiřazen žádné kategorii.</td></tr>';
} else {
if ($num_rows > $this->pagesize) {
$query .= " LIMIT $recordstart, $this->pagesize";
}
$result = mysql_query($query);
//echo "<br />celkem zaznamu: " . $num_rows . "<br />\n";
$this->totalpages = ceil($num_rows / $this->pagesize);
//echo "celkem stranek: " . $totalpages . "<br />\n";
$this->currentpage = ($recordstart / $this->pagesize) + 1;
while ($row = mysql_fetch_assoc($result)) {
echo "<tr>";
echo '<td><input type="checkbox" name="checkbox[]" value="' . $row['dpr_id'] . '" id="" ></td>';
echo "<td><a href=\"" . PROJEKT . "/docs/" . $row['seo_nazev'] . "." . $row['pripona'] . "\" title=\"{$row['nazev']}\">" . $row['nazev'] . "</a></td>";
//echo "<td>". $row['pripona']. "</td>";
//echo "<td>". ($row['velikost']/1000) . "KB</td>";
echo "<td><a href=\"kategorie_edit.php?id={$row['id_kategorie']}\">" . $row['kp_nazev'] . "</a></td>";
echo '<td><a href="?zrusit_prirazeni=' . $row['dpr_id'] . '" class="potvrzujiciLinkPrirazeni" title="Zrušit přiřazení"><img src="images/iko/remove.png" alt="Zrušit přiřazení" /></a></td>';
echo '</tr>';
}
}
}
public function getPrirazeniSablona($page_id = false) {
if (!$page_id) {
return false;
}
if (isset($_SESSION['listuj']))
$this->pagesize = $_SESSION['listuj'];
$recordstart = (isset($_GET['recordstart'])) ? (int) $_GET['recordstart'] : 0;
$query = "SELECT *
FROM dokumenty_prirazeni a , kategorie_popis b
WHERE b.url = '$page_id' AND b.main_id = a.id_kategorie";
$rows = dibi::query($query);
$pocetZaznamu = count($rows);
//NDebugger::barDump($pocetZaznamu, 'PocetNovinek');
//NDebugger::barDump($this->pagesize, 'Pagesize');
if ($pocetZaznamu > $this->pagesize) {
$this->totalpages = ceil($pocetZaznamu / $this->pagesize);
$this->currentpage = ($recordstart / $this->pagesize) + 1;
return $rows->fetchAll($recordstart, $this->pagesize);
} else {
return $rows->fetchAll();
}
}
public function zakazatCelouKategorii($id='-1', $kategorie='dokumenty') {
$query = "UPDATE {$kategorie} SET stav = '0' WHERE id = '" . intval($id) . "'";
//$this->debug($query);
$result = mysql_query($query);
}
public function povolitCelouKategorii($id='-1', $kategorie='dokumenty') {
$query = "UPDATE {$kategorie} SET stav = '1' WHERE id = '" . intval($id) . "'";
$result = mysql_query($query);
}
public function zrusitPrirazeni($id, $table='dokumenty') {
// Tato funkce rusi pouze prirazeni kategorii
$query = "DELETE FROM {$table}_prirazeni WHERE id = '" . intval($id) . "'";
//$this->debug($query);
$result = mysql_query($query);
if ($result) {
$_SESSION['message_ok'][] = "Zrušení přiřazení proběhlo v pořádku.";
header("Location: " . $_SERVER['HTTP_REFERER']);
exit();
} else {
$_SESSION['message_ko'][] = "Zrušení přiřazení se nepovedlo.";
header("Location: " . $_SERVER['HTTP_REFERER']);
exit();
}
}
public function updateNazevDokumentu($id, $nazev) {
$this->getInfo($id);
if ($this->obrazek == 1) {
/*
$original = ROOT . DOCS_ADMIN_PATH . $this->seo_nazev . "." . $this->pripona;
$newfile = ROOT . DOCS_ADMIN_PATH . $id . "_" . NStrings::webalize($nazev) . "." . $this->pripona;
$original = ROOT . DOCS_F_L_PATH . $this->seo_nazev . "." . $this->pripona;
$newfile = ROOT . DOCS_F_L_PATH . $id . "_" . NStrings::webalize($nazev) . "." . $this->pripona;
*/
} else {
$original = ROOT . DOKUMENTY_PATH . $this->seo_nazev . "." . $this->pripona;
$newfile = ROOT . DOKUMENTY_PATH . $id . "_" . NStrings::webalize($nazev) . "." . $this->pripona;
}
rename($original, $newfile);
}
public function updateDokumenty($id, $nazev, $stav, $popis) {
//dibi::query('UPDATE dokumenty', $arr);
$seo_nazev = $id . "_" . NStrings::webalize($nazev);
$query = "UPDATE dokumenty SET nazev = '$nazev', seo_nazev='" . $seo_nazev . "', stav='$stav', popis='$popis' WHERE id = '$id'";
mysql_query($query);
}
public function priraditDokument($id, $id_kategorie) {
$id = intval($id);
$id_kategorie = intval($id_kategorie);
$query = "SELECT * FROM dokumenty_prirazeni WHERE id_dokumentu = $id AND id_kategorie = $id_kategorie LIMIT 1";
$result = mysql_query($query);
//echo $query;
if (mysql_num_rows($result) < 1) {
$query = "INSERT INTO dokumenty_prirazeni (id_dokumentu, id_kategorie) VALUES('$id', '$id_kategorie')";
//echo $query;
mysql_query($query);
} else {
$_SESSION['message_info'][] = "Dokument je již této kategorii přiřazen.";
}
}
public function update() {
$Dokumenty->updateNazevDokumentu($_POST['id'], $_POST['id'] . "_" . $_POST['nazev']);
$Dokumenty->updateDokumenty($_POST['id'], $_POST['id'] . "_" . $_POST['nazev'], isset($_POST['stav']) ? 1 : 0);
$Dokumenty->zrusitPrirazeni($_POST['id']);
$Dokumenty->priraditDokument($_POST['id'], $_POST['kategorie']);
}
public function getInfo($id=0, $lang=-1, $kategorie='dokumenty') {
$id = intval($id);
if ($lang == -1) {
$lang = $_SESSION['jazyk'];
}
$query = "SELECT d.id AS idDokumentu, d.nazev, d.seo_nazev, d.pripona, d.velikost, d.stav, dp.id_kategorie, d.datum, d.obrazek,d.popis
FROM dokumenty d
LEFT JOIN dokumenty_prirazeni dp ON d.id = dp.id_dokumentu
WHERE d.id = '$id'
LIMIT 1";
//echo $query;
$result = mysql_query($query);
if (mysql_num_rows($result) != 0) {
while ($row = mysql_fetch_assoc($result)) {
$this->idDokumentu = $row['idDokumentu'];
$this->idKategorie = $row['id_kategorie'];
$this->nazev = $row['nazev'];
$this->seo_nazev = $row['seo_nazev'];
$this->pripona = $row['pripona'];
$this->stav = $row['stav'];
$this->velikost = $row['velikost'];
$this->datum = $row['datum'];
$this->obrazek = $row['obrazek'];
$this->popis = $row['popis'];
}
} else {
$this->idDokumentu = '';
$this->idKategorie = '';
$this->nazev = '';
$this->seo_nazev = '';
$this->pripona = '';
$this->stav = '';
$this->velikost = '';
$this->datum = '';
$this->popis = '';
$this->obrazek = '';
}
}
public function delDokument($id) {
$query = "DELETE FROM dokumenty WHERE id = $id";
mysql_query($query);
}
public function delSoubor($id) {
$query = "SELECT id, nazev, seo_nazev, pripona FROM dokumenty WHERE id = $id LIMIT 1";
$result = mysql_query($query);
if ($result) {
$hodnoty = mysql_fetch_row($result);
//$this->debug($hodnoty);
$nazev = ROOT . "/docs/" . $hodnoty[2] . "." . $hodnoty[3];
//$this->debug($nazev);
if (unlink($nazev)) {
return true;
} else {
return false;
}
} else {
return false;
}
}
public function delPrirazeni($id) {
$query = "DELETE FROM dokumenty_prirazeni WHERE id_dokumentu = '" . $id . "'";
//$this->debug($query);
$result = mysql_query($query);
}
}
$Dokumenty = new Dokumenty();
?>
ACC SHELL 2018