ACC SHELL
<?php
//NDebugger::dump($_POST);NDebugger::dump($_FILES);exit;
//Typ reklamniho modulu
$arr['typ'] = isset($_POST['typ']) ? $_POST['typ'] : 1;
$arr['modifikace'] = new DateTime;
$arr['id_zvolene_kat'] = isset($_POST['kategorie']) ? $_POST['kategorie'] : 0;
//Nazev reklamniho mista
$arr['nazev'] = NStrings::trim($_POST['nazev']);
if (empty($arr['nazev'])) {
Tools::message('Reklamní místo musí mít název.', 'ERR');
return false;
}
//Umisteni v sablone
$arr['umisteni'] = isset($_POST['umisteni']) ? $_POST['umisteni'] : 1;
// Pokud je typ stejny a jedna se o obrazky pak pridam obsah ke stavajicimu
// v jinem pripade prepisu stavajici obsah
if (isset($_POST['id_reklamy']) && !empty($_POST['id_reklamy'])) {
$arr['id'] = $_POST['id_reklamy'];
// test na stavajici typ, pokud souhlasi se zvolenym v editaci, pak nahrany obrazek "priplacnu" ke stavajicimu
$t = dibi::select('typ*1 as typ, obsah')->from('reklama')->where('id=%i', $arr['id'])->fetch();
if ($t->typ == $arr['typ']) {
$arr['obsah'] = $_POST['obsah'];
}
} else {
$arr['obsah'] = '';
}
$arr['stav'] = isset($_POST['stav']) ? '1' : '0';
switch ($arr['typ']) {
// samostatna fotka nebo vice fotek
case 1:
$allowed_im = array('image/jpg', 'image/jpeg', 'image/png', 'image/gif');
$pocet_souboru = count($_FILES['file']['tmp_name']);
for ($i = 0; $i < $pocet_souboru; $i++):
if (isset($_FILES['file']) && !empty($_FILES['file'])) {
if ($_FILES['file']['error'][$i] !== 4) {
if (in_array($_FILES['file']['type'][$i], $allowed_im)) {
$nazev = Tools::generujHeslo() . NStrings::webalize($_FILES['file']['name'][$i], '.');
$image = NImage::fromFile($_FILES['file']['tmp_name'][$i]);
//NDebugger::dump($_FILES);NDebugger::dump($pocet_souboru);exit;
$image->resizeMedium(REKLAMA_F_M_WIDTH, REKLAMA_F_M_HEIGHT, NImage::STRETCH | NImage::ENLARGE);
if (!is_dir(ROOT . REKLAMA_CESTA)) {
mkdir(ROOT . REKLAMA_CESTA, null, true);
}
$image->save(ROOT . REKLAMA_CESTA . $nazev);
$file[$i]['nazev'] = $nazev;
$file[$i]['url'] = htmlspecialchars($_POST['url_obrazku'][$i]);
$file[$i]['title'] = htmlspecialchars($_POST['titulek_obrazku'][$i]);
$file[$i]['obsah'] = htmlspecialchars($_POST['obsah_obrazku'][$i]);
$file[$i]['priorita'] = $i;
} else {
Tools::message('Obrázek ' . $_FILES['file']['name'][$i] . ' nemá povolený formát.', 'ERR');
}
}
} else {
Tools::message('Obrázek se nepovedlo zpracovat', 'ERR');
return false;
}
endfor;
break;
// slideshow z katalogu
case 2:
//$arr['obsah'] = $_POST['katalog'];
break;
// flashovy banner
case 3:
if ($_FILES['banner']['type'] != 'application/x-shockwave-flash') {
$_SESSION['message_ko'][] = 'Zvolený soubor není flash.';
return false;
}
if (isset($_FILES['banner']) && !empty($_FILES['banner'])) {
//$test = explode('.', $_FILES['banner']['tmp_name'];
if ($_FILES['banner']['error'] !== 4) {
$nazev = Tools::generujHeslo() . NStrings::webalize($_FILES['banner']['name'], '.');
$move = move_uploaded_file($_FILES['banner']['tmp_name'], ROOT . REKLAMA_CESTA . $nazev);
//$arr['obsah'] .= $nazev . ';' . $_POST['url_obrazku'] . ';' . $_POST['titulek_obrazku'];
$file[$i]['nazev'] = $nazev;
$file[$i]['url'] = $_POST['url_obrazku'][$i];
$file[$i]['title'] = $_POST['titulek_obrazku'][$i];
if (!$move) {
Tools::message('Banner se nepovedlo zpracovat', 'ERR');
return false;
}
//exit;
}
} else {
Tools::message('Banner se nepovedlo zpracovat', 'ERR');
return false;
}
break;
// externi reklama (url z google)
case 4:
//$arr['obsah'] = $_POST['ext_reklama'];
break;
}
// Zalozeni reklamy
// 1. jestlize je rodicovsky prvek index, updatuj vsechny zalozene
// 2. jestlize je rodicovsky prvek konkretni kategorie, updatuj vsechny vnorene
//
// Update reklamy
// 3. jestlize je rodicovsky prvek index, updatuj vsechny zalozene, ktere nemaji prirazenou reklamu
// 4. jestlize je rodicovsky prvek konkretni kategorie, updatuj vsechny vnorene, ktere nemaji prirazenou reklamu
$Reklama = new Reklama();
if (isset($arr['id'])) {
//pro update kategorie potrebuju cislo umisteni a id reklamy
$Reklama->update($arr, 'reklama');
if ($_POST['kategorie'] != 'ignore') {
$Reklama->insertPrirazeni($arr['id'], $arr['id_zvolene_kat'], isset($_POST['plati_pro_vnorene']) ? true : false);
}
$num = dibi::query('SELECT max(priorita) FROM reklama_obsah WHERE main_id=%i', $arr['id'])->fetchSingle();
//NDebugger::dump($num);
foreach ($file as $f) {
$f['main_id'] = $arr['id'];
$f['priorita'] = ++$num;
//NDebugger::dump($f['priorita']);
$id = Query::insert($f, 'reklama_obsah');
dibi::query('UPDATE reklama_obsah SET banner_id=%i', $id, ' WHERE id=%i', $id);
}
} else {
$arr['id'] = Query::insert($arr, 'reklama');
if ($arr['id'] && $_POST['kategorie'] != 'ignore') {
$Reklama->insertPrirazeni($arr['id'], $arr['id_zvolene_kat'], isset($_POST['plati_pro_vnorene']) ? true : false);
}
foreach ($file as $f) {
$f['main_id'] = $arr['id'];
$id = Query::insert($f, 'reklama_obsah');
dibi::query('UPDATE reklama_obsah SET banner_id=%i', $id, ' WHERE id=%i', $id);
//exit;
}
}
if (isset($_POST['odeslat_a_zavrit'])) {
Tools::redirect("reklama.php");
} else {
Tools::redirect("reklama_show.php?id=" . $arr['id']);
}
ACC SHELL 2018