ACC SHELL
<?php
/**
*
* @version 1.0
* @copyright 4.3.2012
*/
class Reklama {
function __construct() {
}
public function update($arr, $table=false) {
if (!$table) {
return false;
}
$result = dibi::query('UPDATE ', $table, ' SET ', $arr, 'WHERE `id`=%i', $arr['id']);
if ($result) {
$_SESSION['message_ok'][] = "Úprava proběhla v pořádku.";
return true;
} else {
$_SESSION['message_ko'][] = "Úprava neproběhla.";
return false;
}
}
public function fetchSingle($id) {
if (intval($id) == 0) {
return false;
}
//return dibi::query('SELECT * FROM reklama a LEFT JOIN reklama_obsah b ON a.id=b.main_id WHERE a.id=%i', $id, ' ORDER BY priorita ASC')->fetchAll();
return dibi::select('id, nazev, umisteni, typ, typ*1 AS typ_id, obsah, stav, id_zvolene_kat')->from('reklama')->where('id=%i', $id)->fetch();
}
public function fetchDetail($id, $lang = 1) {
if (intval($id) == 0) {
return false;
}
return dibi::query('SELECT * FROM reklama a LEFT JOIN reklama_obsah b ON a.id=b.main_id WHERE a.id=%i', $id, ' AND b.lang=%i', $lang, ' ORDER BY b.priorita ASC')->fetchAll();
//return dibi::select('id, nazev, umisteni, typ, typ*1 AS typ_id, obsah, stav, id_zvolene_kat')->from('reklama')->where('id=%i', $id)->fetch();
}
/**
*
* @param type $id id banneru ulozeneho v DB
* @param type $lang
* @return type
*/
public function fetchSingleBanner($id, $lang = 1) {
if (intval($id) == 0) {
return false;
}
return dibi::query('SELECT * FROM reklama_obsah WHERE banner_id=%i', $id, ' AND lang=%i', $lang, ' LIMIT 1')->fetch();
}
public function fetchAll() {
return dibi::select('*')->from('reklama')->fetchAll();
}
public function delete($id) {
dibi::query('DELETE FROM reklama WHERE id=%i', $id);
dibi::query('DELETE FROM reklama_obsah WHERE main_id=%i', $id);
dibi::query('DELETE FROM reklama_prirazeni WHERE id_reklamy=%i', $id);
return true;
}
/**
*
* @param type $id id reklamy
* @param type $kategorie id kategorie, ktere prirazuju reklamu
* @param type $subkategorie - true pokud prirazuju i podkategoriim
*/
public function insertPrirazeni($id, $kategorie, $subkategorie = false) {
$prirazeni['id_reklamy'] = $id;
$Kategorie = new Kategorie();
// default == priradit vsem
if ($kategorie == 'default') {
$parents = dibi::query('SELECT main_id FROM kategorie_popis WHERE id>9')->fetchAll();
foreach ($parents as $id_kategorie):
if ($id_kategorie == ID_KATEGORIE_UVOD) {
$prirazeni['id_kategorie'] = '1';
} else {
$prirazeni['id_kategorie'] = $id_kategorie;
}
dibi::query('INSERT IGNORE INTO reklama_prirazeni ', $prirazeni);
endforeach;
} else {
// Zvolena reklama bud platit i pro vnorene kategorie
if ($subkategorie) {
$parents = $Kategorie->getNodes($kategorie);
foreach ($parents as $id_kategorie):
if ($id_kategorie == ID_KATEGORIE_UVOD) {
$prirazeni['id_kategorie'] = '1';
} else {
$prirazeni['id_kategorie'] = $id_kategorie;
}
dibi::query('INSERT IGNORE INTO reklama_prirazeni ', $prirazeni);
endforeach;
}
// Reklama bude platna jen pro zvolenou kategorii
else {
if (kategorie == ID_KATEGORIE_UVOD) {
$prirazeni['id_kategorie'] = '1';
} else {
$prirazeni['id_kategorie'] = $kategorie;
}
dibi::query('INSERT IGNORE INTO reklama_prirazeni ', $prirazeni);
}
}
}
public function deletePrirazeni($id, $id_prirazeni) {
if (intval($id) == 0 && isset($id_prirazeni)) {
if (dibi::query('DELETE FROM reklama_prirazeni WHERE id=%i', $id_prirazeni)) {
return true;
}
} else {
if (dibi::query('DELETE FROM reklama_prirazeni WHERE id_reklamy=%i', $id)) {
return true;
}
}
return false;
}
public function deleteObsah($id) {
$file = dibi::query('SELECT nazev FROM reklama_obsah WHERE id=%i', $id)->fetchSingle();
if (dibi::query('DELETE FROM reklama_obsah WHERE banner_id=%i', $id)) {
unlink(ROOT . REKLAMA_CESTA . $file);
//NDebugger::dump(ROOT.REKLAMA_CESTA.$file);exit;
return true;
} else {
return false;
}
}
public function fetchPrirazeni($id) {
if (intval($id) == 0) {
return false;
}
return dibi::query('
SELECT b.main_id id_kategorie, b.nazev, a.id, c.nazev as typ
FROM reklama_prirazeni a
LEFT JOIN kategorie_popis b ON a.id_kategorie=b.main_id
LEFT JOIN kategorie_typ c ON b.typ=c.id
WHERE b.lang=1 AND a.id_reklamy=%i', $id)->fetchAll();
}
public function moveUp($id, $table) {
if (intval($id) == 0) {
return false;
}
$my = dibi::query('SELECT main_id, priorita FROM reklama_obsah WHERE id=%i', $id, ' LIMIT 1')->fetch();
//NDebugger::dump($my);
if ($my) {
$switch = dibi::query('SELECT id, priorita FROM reklama_obsah WHERE priorita<%i', $my->priorita, ' AND main_id=%i', $my->main_id, ' ORDER BY priorita DESC LIMIT 1')->fetch();
//NDebugger::dump($switch);
if ($switch) {
dibi::query('UPDATE reklama_obsah SET priorita=%i', $switch->priorita, ' WHERE banner_id=%i', $id);
dibi::query('UPDATE reklama_obsah SET priorita=%i', $my->priorita, ' WHERE banner_id=%i', $switch->id);
return true;
} else {
return false;
}
} else {
return false;
}
}
public function moveDown($id, $table) {
if (intval($id) == 0) {
return false;
}
$my = dibi::query('SELECT main_id, priorita FROM reklama_obsah WHERE id=%i', $id, ' LIMIT 1')->fetch();
//NDebugger::dump($my);
if ($my) {
$switch = dibi::query('SELECT id, priorita FROM reklama_obsah WHERE priorita>%i', $my->priorita, ' AND main_id=%i', $my->main_id, ' ORDER BY priorita ASC LIMIT 1')->fetch();
//NDebugger::dump($switch);
if ($switch) {
dibi::query('UPDATE reklama_obsah SET priorita=%i', $switch->priorita, ' WHERE banner_id=%i', $id);
dibi::query('UPDATE reklama_obsah SET priorita=%i', $my->priorita, ' WHERE banner_id=%i', $switch->id);
return true;
} else {
return false;
}
} else {
return false;
}
}
}
ACC SHELL 2018