ACC SHELL

Path : /srv/www/vhosts/centrumlb/administrace/libs/
File Upload :
Current File : /srv/www/vhosts/centrumlb/administrace/libs/dokumenty.class.php

<?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']}&amp;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("&nbsp;", $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