public function execute() { $tp = SJB_System::getTemplateProcessor(); $errors = array(); $location = new SJB_Location($_REQUEST); if (SJB_Request::getVar('state', false)) { $location->state_code = SJB_StatesManager::getStateCodeByStateName(SJB_Request::getVar('state', '')); } else { $location->state_code = ''; } $formSubmitted = 'add' == SJB_Request::getVar('action', false); $locationAdded = false; if ($formSubmitted) { if ($location->isDataValid($errors)) { if (SJB_LocationManager::saveLocation($location)) { $location = new SJB_Location(); $locationAdded = true; } else { $errors['Name'] = 'NOT_UNIQUE_VALUE'; } } } $countries = SJB_CountriesManager::getAllCountriesCodesAndNames(); $locationInfo = $location->getInfo(); $tp->assign('locationAdded', $locationAdded); $tp->assign('countries', $countries); $tp->assign('errors', $errors); $tp->assign('location_info', $locationInfo); $tp->display('add_location.tpl'); }
public function execute() { $template_processor = SJB_System::getTemplateProcessor(); $location_sid = SJB_Request::getVar('sid', null); $errors = null; $field_errors = null; $location_info = SJB_LocationManager::getLocationInfoBySID($location_sid); if (!is_null($location_info)) { $form_is_submitted = SJB_Request::getVar('action'); $location_info = array_merge($location_info, $_REQUEST); $location = new SJB_Location($location_info); $location->setSID($location_sid); if (SJB_Request::getVar('state', false)) { $location->state_code = SJB_StatesManager::getStateCodeByStateName(SJB_Request::getVar('state', '')); } else { $location->state_code = ''; } if ($form_is_submitted && $location->isDataValid($field_errors)) { if (SJB_LocationManager::saveLocation($location)) { if ($form_is_submitted == 'save_info') { $redirect_url = SJB_System::getSystemSettings('SITE_URL') . '/geographic-data/'; SJB_HelperFunctions::redirect($redirect_url); } } else { $field_errors['Name'] = 'NOT_UNIQUE_VALUE'; } } } elseif (is_null($location_sid)) { $errors['LOCATION_SID_IS_NOT_SPECIFIED'] = 1; } else { $errors['WORNG_LOCATION_SID_IS_SPECIFIED'] = 1; } $countries = SJB_CountriesManager::getAllCountriesCodesAndNames(); $template_processor->assign("location_info", $location_info); $template_processor->assign("countries", $countries); $template_processor->assign("errors", $errors); $template_processor->assign("field_errors", $field_errors); $template_processor->assign("location_sid", $location_sid); $template_processor->display("edit_location.tpl"); }
public function execute() { $tp = SJB_System::getTemplateProcessor(); $errors = array(); $location = new SJB_Location($_REQUEST); $action_name = SJB_Request::getVar('action_name', false); $action = SJB_Request::getVar('action', false); $action = $action_name ? $action_name : $action; $paginator = new SJB_GeographicDataPagination(); $search = ''; $params = array(); $locationAdded = false; switch ($action) { case 'add': if ($location->isDataValid($errors)) { if (SJB_LocationManager::saveLocation($location)) { $location = new SJB_Location(); $locationAdded = true; } else { $errors['Name'] = 'NOT_UNIQUE_VALUE'; } } break; case 'delete': $location_sid = SJB_Request::getVar('location_sid', false); if (!$location_sid) { $locations_sids = SJB_Request::getVar('locations', false); if ($locations_sids) { foreach ($locations_sids as $l_sid => $value) { SJB_LocationManager::deleteLocationBySID($l_sid); } } } else { SJB_LocationManager::deleteLocationBySID($location_sid); } SJB_HelperFunctions::redirect(SJB_System::getSystemSettings("SITE_URL") . '/geographic-data/'); break; case 'clear_data': SJB_LocationManager::deleteAllLocations(); SJB_HelperFunctions::redirect(SJB_System::getSystemSettings("SITE_URL") . '/geographic-data/'); break; case 'search': $searchParams = SJB_Request::getVar('search', false); $search .= 'WHERE 1 '; if (!empty($searchParams['name'])) { $search .= "AND l.`name` LIKE ?s"; $params[] = "%{$searchParams['name']}%"; } if (!empty($searchParams['longitude'])) { $search .= " AND l.`longitude` LIKE ?s"; $params[] = "%{$searchParams['longitude']}%"; } if (!empty($searchParams['latitude'])) { $search .= " AND l.`latitude` LIKE ?s"; $params[] = "%{$searchParams['latitude']}%"; } if (!empty($searchParams['city'])) { $search .= " AND l.`city` LIKE ?s"; $params[] = "%{$searchParams['city']}%"; } if (!empty($searchParams['state'])) { $search .= " AND l.`state` LIKE ?s"; $params[] = "%{$searchParams['state']}%"; } if (!empty($searchParams['state_code'])) { $search .= " AND l.`state_code` LIKE ?s"; $params[] = "%{$searchParams['state_code']}%"; } if (!empty($searchParams['country_sid'])) { $search .= " AND l.`country_sid` = ?n"; $params[] = "{$searchParams['country_sid']}"; } $tp->assign('search', $searchParams); $searchQuery['action'] = 'search'; $searchQuery['search'] = $searchParams; $paginator->setUniqueUrlParam(trim(http_build_query($searchQuery))); break; } $countries = SJB_CountriesManager::getAllCountriesCodesAndNames(); $location_info = $location->getInfo(); $paginator->setItemsCount(SJB_LocationManager::getLocationNumber($search, $params)); $location_collection = SJB_LocationManager::getLocationsInfoWithLimit(($paginator->currentPage - 1) * $paginator->itemsPerPage, $paginator->itemsPerPage, $search, $paginator->sortingField, $paginator->sortingOrder, $params); unset($_REQUEST['zip_codes_per_page']); $tp->assign('paginationInfo', $paginator->getPaginationInfo()); $tp->assign('locationAdded', $locationAdded); $tp->assign('countries', $countries); $tp->assign('query', http_build_query($_REQUEST)); $tp->assign('errors', $errors); $tp->assign('location_info', $location_info); $tp->assign('location_collection', $location_collection); $tp->display('geographic_data.tpl'); }