ACC SHELL
<?php
/**
*
* @version 1.0
* @copyright 2012
* @name Modul doprava
*/
class Doprava {
/**
* Constructor
*/
function __construct() {
}
/**
*
* @param type $id v adminu id kategorie, na vystupu seo-url
* @param type $lang id jazyka
* @param type $admin jedna se o hledani na frontendu(false) nebo backendu (true) ?
* @return array
*/
public function fetchSingle($id, $lang = false, $admin = true) {
$id = intval($id);
$lang = intval($lang) == 1 ? $lang : $_SESSION['jazyk'];
$query = "SELECT
a.id, a.hloubka, a.parent_id, a.lft, a.rgt,a.hodnota_nakupu, a.doprava_cena_pod, a.doprava_cena_nad,
b.nazev AS nazev, b.id as id_popisu, b.stav AS stav, b.datum,
b.obsah,b.obrazek,
j.kod
FROM doprava a
LEFT JOIN doprava_popis b ON a.id = b.main_id
LEFT JOIN jazyk j ON b.lang = j.id
WHERE b.lang =". $lang;
$query .= isset($admin) ? " AND b.id = $id" : " AND b.seo_url = $id";
$query .= " LIMIT 1";
return dibi::query($query)->fetch();
}
/**
*
* @param type $lang id jazykove verze
* @param type $onlyActive true pokud chci jen aktivni
* @return type
*/
public function fetchAll($lang = false, $onlyActive = false) {
if (!$lang) {
$lang = $_SESSION['jazyk'];
}
$active = $onlyActive == true ? 'AND b.stav = 1' : '';
$query = "SELECT a.id, a.hloubka, b.nazev AS nazev, b.stav AS stav, b.datum, b.obsah, j.kod,
a.lft, a.rgt, a.parent_id, a.hloubka, a.hodnota_nakupu, a.doprava_cena_pod, a.doprava_cena_nad
FROM doprava a
LEFT JOIN doprava_popis b ON a.id = b.main_id
LEFT JOIN jazyk j ON b.lang = j.id
WHERE b.lang = '" . $lang . "'
$active
ORDER BY a.lft ASC";
return dibi::query($query)->fetchAll();
}
public function getAdminTable() {
$result = $this->fetchAll();
//NDebugger::dump($result);
if (!$result) {
return false;
}
//Zjisteni minimalni a maximalni hodnoty pro kazdou kategorii
$query = "SELECT parent_id, min(lft) lft, max(rgt) rgt FROM doprava group by parent_id";
$test = mysql_query($query);
while ($test1 = mysql_fetch_assoc($test)) {
$showMove[$test1['parent_id']]['lft'] = $test1['lft'];
$showMove[$test1['parent_id']]['rgt'] = $test1['rgt'];
}
foreach ($result as $row) {
echo '<tr>';
echo '<td><input type="checkbox" name="checkbox[]" value="' . $row->id . '" id="" ></td>';
echo '<td>';
/*
if ($row->obrazek != null) {
$foto_small = DISKOGRAFIE_F_M_PATH . $row->obrazek;
$foto_large = DISKOGRAFIE_F_L_PATH . $row->obrazek;
echo '<a href="#"><img class="vypis_nahled" src="' . $foto_small . '" alt="" title="' . $row->nazev . '" /></a>';
}
*
*/
echo '</td>';
echo '<td><a href="doprava_edit.php?id=' . $row->id . '">' . $row->nazev . '</a><br />';
$query = "SELECT kp.lang, j.nazev, j.obrazek, j.kod
FROM doprava_popis kp
LEFT JOIN jazyk j ON j.id = kp.lang
WHERE kp.main_id = $row->id
ORDER BY j.id";
$langs = dibi::query($query)->fetchAll();
// jazykove mutace
$flags = Query::getLanguageFlags($row['id'], 'doprava');
echo "<td>";
foreach ($flags as $f) {
echo "<img class=\"vypis_jazyky\" src=\"images/flags/$f->obrazek\" alt=\"$f->nazev\" title=\"$f->nazev\" />";
}
echo "</td>";
// end of jazykove mutace
$stav = $row['stav'] == '1' ? "Ano" : "Ne";
echo '<td><a href="?doprava&id=' . $row->id . '&stav=' . $stav . '">' . $stav . '</a></td>';
echo '<td>' . datum($row['datum']) . '</td>';
echo '<td>';
if ($showMove[$row['parent_id']]['lft'] != $row['lft']) {
echo '<a href="?doprava&up=' . $row->id . '" title="Posun nahoru"><img src="images/iko/up.png" alt="Posun nahoru" /></a>';
}
if ($showMove[$row['parent_id']]['rgt'] != $row['rgt']) {
echo '<a href="?doprava&down=' . $row->id . '" title="Posun dolů"><img src="images/iko/down.png" alt="Posun dolů" /></a>';
}
echo '</td>';
echo '<td>';
echo '<a href="doprava_edit.php?id=' . $row->id . '" title="Editovat"><img src="images/iko/note_edit.png" alt="Editovat" /></a>';
echo '<a href="?doprava&smazat=' . $row->id . '" class="potvrzujiciLink" title="Smazat"><img src="images/iko/remove.png" alt="Smazat" /></a></td>';
echo '</tr>';
}
return true;
}
/**
*
* @param type $id id dopravy
* @param type $lang id jazyka //TODO
* @return pole plateb, ktere jsou svazany s konkretni dopravou
*/
public function getPrirazenePlatby($id=false, $lang=1) {
if (!$id) {
return false;
} else {
$query = "SELECT *
FROM doprava_prirazeni a
WHERE a.id_dopravy = '" . $id . "'";
return dibi::query($query)->fetchAll();
}
}
/**
*
* @param type $id id platebni metody, kterou chceme zrusit z konkretni dopravy
*/
public function zrusitPrirazeni($id_dopravy, $id_platby) {
dibi::query('DELETE FROM doprava_prirazeni WHERE id_dopravy=%i', $id_dopravy, ' AND id_platby=%i', $id_platby);
}
}
ACC SHELL 2018