Files
zurawik.pl/Admin/controller/MapsController.php
2026-05-15 20:23:25 +02:00

325 lines
9.6 KiB
PHP

<?php
class MapsController extends MainController implements ControllerInterface
{
const ARRAY_MAPS_TYPE = array(1=> 'hean', 2=> 'hebe');
public function IndexAction($param){
$dalData = FkMapsDAL::GetDalDataObj();
$dalData->setCondition(array());
// $dalData->setLimit(10);
$dalData->setSortBy('city');
$arrayMaps = FkMapsDAL::GetResult($dalData);
//Utils::ArrayDisplay($arrayMaps);
$this->smarty->assign('arrayMapsType', self::ARRAY_MAPS_TYPE);
}
public function IndexStructureAction($param){
$this->smarty->assign('arrayMapsType', self::ARRAY_MAPS_TYPE);
$this->smarty->assign('icon', true);
//Utils::ArrayDisplay($param);
if (isset($param['runSharedVariable'])) {
$this->smarty->assign('moduleBoxId', $param['runSharedVariable']);
$this->smarty->assign('moduleName', $param['moduleName']);
}
$lang = SessionProxy::GetValue('lang');
$data = array();
if (isset($param['id'])) {
$data = array('fk_maps.id_structure' => $param['id'], 'lang' => $lang);
} else {
$this->smarty->assign('add', true);
$this->smarty->assign('icon', false);
}
$dalData = FkMapsDAL::GetDalDataObj();
$dalData->setCondition($data);
$dalData->setSortBy('weight');
$arrayMaps = FkMapsDAL::GetResult($dalData);
$this->smarty->assign('arrayObj', $arrayMaps);
//Utils::ArrayDisplay($arrayMaps);
}
public function EditStructureAction($param) {
//Utils::ArrayDisplay($param);
$lang = SessionProxy::GetValue('lang');
$dalData = FkMapsDAL::GetDalDataObj();
$dalData->setCondition(array('lang' => $lang, 'id_structure' => $param['id']));
$dalData->setSortBy('weight');
$arrayMaps = FkMapsDAL::GetResult($dalData);
$this->smarty->assign('arrayObj', $arrayMaps);
}
/**
* Akcja dodawania
*
* @param <type> $param
*/
public function AddAction($param) {
$lang = SessionProxy::GetValue('lang');
$idStructure = SessionProxy::GetValue('idStructure');
if (!$idStructure) {
$this->AddRedirect(Router::GenerateUrl('IndexStructure', array('Structure' => 'Index')), 0);
}
$this->smarty->assign('idStructure', $idStructure);
//$idCategory = SessionProxy::GetValue('idCategory');
// $idCategory = $idStructure;
$arrayMapsType = Utils::GetArrayList('fk_maps_category', 'id_fk_maps_category','name');
$this->smarty->assign('arrayMapsType', $arrayMapsType);
$objMaps = FkMapsDAL::GetEmptyObj();
if(Request::IsPost()) {
$out = array();
$validator = new Validator(Request::GetAllPost());
$data = Request::GetAllPost();
$validator->IsEmpty('name', 'Pole nazwa musi zostać wypełnione.');
//$validator->IsDate('datepublication', 'Pole data publikacji musi zostać wypełnione.');
//$validator->IsEmpty('description', 'Pole opis musi zostać wypełnione.');
$out = $validator->GetErrorList();
$publication = Request::Get('publication');
$publication ? $publication = 1 : $publication = '0';
//$data['timepublication'] = $data['timepublication'] ? $data['timepublication'] : '00';
// $objMaps->SetDate(Utils::GetNowDate());
// //$objMaps->SetDatePublication($data['datepublication']." ".$data['timepublication'].":00:00");
// $objMaps->SetDatePublication(Utils::GetNowDate());
$objMaps->SetName($data['name']);
$objMaps->SetWeight($data['weight']);
$objMaps->SetCity($data['city']);
$objMaps->SetAddress($data['address']);
$objMaps->SetLng($data['lng']);
$objMaps->SetLat($data['lat']);
$objMaps->setPublication($publication);
// $objMaps->SetType($data['type']);
$objMaps->SetIdStructure($idStructure);
$objMaps->SetLang($lang);
// $objMaps->SetDescription($data['description']);
if(empty($out)) {
$iid = FkMapsDAL::Save($objMaps);
$this->smarty->assign('iid', $iid);
//$this->AddRedirect(Router::GenerateUrl('indexMaps', array('Maps'=> 'Index')), 0);
$this->AddRedirect(Router::GenerateUrl('editStructure', array('id' => $idStructure)), 0);
} else {
//$this->content=$this->FormatAjaxOutput($out, $param);
//Utils::ArrayDisplay($out);
$this->smarty->assign('objMaps',$objMaps);
//$datePublished = explode(" ",$objMaps->GetDatePublication());
//
foreach ($out as $item) {
$error[$item['field']] = $item['msg'];
}
$this->smarty->assign('error',$error);
}
}
}
/**
* Akcja dodawania
*
* @param <type> $param
*/
public function EditAction($param) {
//Utils::ArrayDisplay($_POST);
$lang = SessionProxy::GetValue('lang');
$idStructure = SessionProxy::GetValue('idStructure');
$this->smarty->assign('idStructure', $idStructure);
//$idCategory = SessionProxy::GetValue('idCategory');
// $idCategory = $idStructure;
//$arrayMapsType = Utils::GetArrayList('fk_maps_type', 'name', $lang);
//$this->smarty->assign('arrayMapsType', $arrayMapsType);
//$objMaps = FkMapsDAL::GetEmptyObj();
$objMaps = FkMapsDAL::GetById($param['idMaps'], $lang);
if(Request::IsPost()) {
$out = array();
$validator = new Validator(Request::GetAllPost());
$data = Request::GetAllPost();
$validator->IsEmpty('name', 'Pole nazwa musi zostać wypełnione.');
//$validator->IsDate('datepublication', 'Pole data publikacji musi zostać wypełnione.');
//$validator->IsEmpty('description', 'Pole opis musi zostać wypełnione.');
$out = $validator->GetErrorList();
$publication = Request::Get('publication');
$publication ? $publication = 1 : $publication = '0';
$objMaps->SetName($data['name']);
$objMaps->SetWeight($data['weight']);
$objMaps->SetCity($data['city']);
$objMaps->SetAddress($data['address']);
$objMaps->SetLng($data['lng']);
$objMaps->SetLat($data['lat']);
$objMaps->setPublication($publication);
// $objMaps->SetType($data['type']);
$objMaps->SetIdStructure($idStructure);
$objMaps->SetLang($lang);
if(empty($out)) {
$iid = FkMapsDAL::Save($objMaps);
$this->smarty->assign('iid', $iid);
//$this->AddRedirect(Router::GenerateUrl('indexMaps', array('Maps'=> 'Index')), 0);
$this->AddRedirect(Router::GenerateUrl('editStructure', array('id' => $idStructure)), 0);
} else {
//$this->content=$this->FormatAjaxOutput($out, $param);
//Utils::ArrayDisplay($out);
$this->smarty->assign('objMaps',$objMaps);
foreach ($out as $item) {
$error[$item['field']] = $item['msg'];
}
$this->smarty->assign('error',$error);
}
}
$this->smarty->assign('objMaps', $objMaps);
}
public function DeleteAction($param) {
$idStructure = SessionProxy::GetValue('idStructure');
//$logger = LoggerManager::getLogger(__CLASS__);
$idMaps = $param['idMaps'];
if ($idMaps) {
try {
$objMaps = FkMapsDAL::GetById($idMaps);
$dalData = FkMapsDAL::GetDalDataObj();
$dalData->setId($idMaps);
$dalData->setObj($objMaps);
FkMapsDAL::Delete($dalData);
} catch (Exception $e) {
//Utils::ArrayDisplay($e);
$logger->error('bład usunięcia elementu o id: '.$idMaps);
}
}
$this->AddRedirect(Router::GenerateUrl('editStructure', array('id' => $idStructure)), 0);
}
/*
* Import from xml
*
* TODO: Upload file.
*
*/
public function ImportXmlAction($param) {
//ini_set($varname, $newvalue)
$xml = simplexml_load_file(PATH_STATIC_CONTENT . "/sklepy_stacjonarne-ania.xml");
// Utils::ArrayDisplay($xml->marker);
//$arrayXml = XML2Array::createArray($xml->channel);
$k = 0;
foreach ($xml as $key => $entry) {
Utils::ArrayDisplay($entry->attributes('id'));
$arrayAtrib = $entry->attributes();
$objMaps = FkMapsDAL::GetEmptyObj();
$objMaps->setName((string)$arrayAtrib['name']);
$objMaps->SetWeight((string)$arrayAtrib['id']);
$objMaps->SetCity((string)$arrayAtrib['city']);
$objMaps->SetAddress((string)$arrayAtrib['address']);
$objMaps->SetLng((string)$arrayAtrib['lng']);
$objMaps->SetLat((string)$arrayAtrib['lat']);
$objMaps->setPublication(1);
$objMaps->setType(1);
$objMaps->setIdCategory(1);
// $objMaps->SetType($data['type']);
$objMaps->SetIdStructure(3);
$objMaps->SetLang('pl');
Utils::ArrayDisplay($objMaps);
//$iid = FkMapsDAL::Save($objMaps);
$k++;
}
}
/**
* preDispatch
* @param array $param
* @return null
*/
public function preDispatch($param){
$this->Run($param);
$this->AddScript('dropDown.js');
$this->AddScript('structure.js');
$this->AddScript('Dosia.js');
$this->AddScript('Link.js');
$this->AddScript('drag-drop-folder-tree.js');
// //$this->AddScript('Validator.js');
$this->AddScript('calendar.js');
$this->RunShared('Auth', array());
$this->RunShared('Structure', $param);
$this->smarty->assign('arrayMapsType', self::ARRAY_MAPS_TYPE);
$this->smarty->assign('idStucture', SessionProxy::GetValue('idStructure'));
$this->smarty->assign('lang', 'pl');
$this->smarty->assign('titleAdmin', 'Pliki');
$this->smarty->assign('activeTab', 'index');
}
/**
* postDispatch
* @param array $param
* @return null
*/
public function postDispatch($param){
}
}