/** * Method to get the field input markup. * * @return string The field input markup. * @since 1.6 */ protected function getInput() { // Initialize variables. $html = array(); $time_created = $this->value; if (!strtotime($time_created)) { $time_created = CitybrandingFrontendHelper::convert2UTC(date("Y-m-d H:i:s")); } $hidden = (bool) $this->element['hidden']; if ($hidden == null || !$hidden) { $jdate = new JDate(CitybrandingFrontendHelper::convertFromUTC($time_created)); $pretty_date = $jdate->format(JText::_('DATE_FORMAT_LC2')); $html[] = "<span>" . $pretty_date . "</span>"; } $html[] = '<input type="hidden" name="' . $this->name . '" value="' . $time_created . '" />'; return implode("\n", $html); }
public function poi() { $result = null; $app = JFactory::getApplication(); try { $userid = self::validateRequest(); //get necessary arguments $id = $app->input->getInt('id', null); switch ($app->input->getMethod()) { //fetch existing poi case 'GET': if ($id == null) { throw new Exception('Id is not set'); } //get poi model $poiModel = JModelLegacy::getInstance('Poi', 'CitybrandingModel', array('ignore_request' => true)); //handle unexpected warnings from model set_error_handler(array($this, 'exception_error_handler')); $data = $poiModel->getData($id); restore_error_handler(); if (!is_object($data)) { throw new Exception('Poi does not exist'); } $result = CitybrandingFrontendHelper::sanitizePoi($data, $userid); //check for any restrictions if (!$result->myPoi && $result->moderation) { throw new Exception('Poi is under moderation'); } if ($result->state != 1) { throw new Exception('Poi is not published'); } //be consistent return as array (of size 1) $result = array($result); break; //create new poi //create new poi case 'POST': if ($id != null) { throw new Exception('You cannot use POST to fetch poi. Use GET instead'); } //guests are not allowed to post pois //TODO: get this from settings if ($userid == 0) { throw new Exception('Guests are now allowed to post new pois'); } //get necessary arguments $args = array('catid' => $app->input->getInt('catid'), 'title' => $app->input->getString('title'), 'description' => $app->input->getString('description'), 'address' => $app->input->getString('address'), 'latitude' => $app->input->getString('lat'), 'longitude' => $app->input->getString('lng')); CitybrandingFrontendHelper::checkNullArguments($args); //check if category exists if (is_null(CitybrandingFrontendHelper::getCategoryNameByCategoryId($args['catid']))) { throw new Exception('Category does not exist'); } $args['userid'] = $userid; $args['created_by'] = $userid; $args['stepid'] = CitybrandingFrontendHelper::getPrimaryStepId(); $args['id'] = 0; $args['created'] = CitybrandingFrontendHelper::convert2UTC(date('Y-m-d H:i:s')); $args['updated'] = $args['created']; $args['note'] = 'modality=' . $app->input->getInt('m_id'); $args['language'] = '*'; $args['subgroup'] = 0; $tmpTime = time(); //used for temporary id $imagedir = 'images/citybranding'; //check if post contains files $file = $app->input->files->get('files'); if (!empty($file)) { require_once JPATH_ROOT . '/components/com_citybranding/models/fields/multiphoto/server/UploadHandler.php'; $options = array('script_url' => JRoute::_(JURI::root(true) . '/administrator/index.php?option=com_citybranding&task=upload.handler&format=json&id=' . $tmpTime . '&imagedir=' . $imagedir . '&' . JSession::getFormToken() . '=1'), 'upload_dir' => JPATH_ROOT . '/' . $imagedir . '/' . $tmpTime . '/', 'upload_url' => JURI::root(true) . '/' . $imagedir . '/' . $tmpTime . '/', 'param_name' => 'files', 'citybranding_api' => true); $upload_handler = new UploadHandler($options); if (isset($upload_handler->citybranding_api)) { $files_json = json_decode($upload_handler->citybranding_api); $args['photo'] = json_encode(array('isnew' => 1, 'id' => $tmpTime, 'imagedir' => $imagedir, 'files' => $files_json->files)); $app->enqueueMessage('File(s) uploaded successfully', 'info'); } else { throw new Exception('Upload failed'); } } else { $args['photo'] = json_encode(array('isnew' => 1, 'id' => $tmpTime, 'imagedir' => $imagedir, 'files' => array())); } //get poiForm model and save $poiFormModel = JModelLegacy::getInstance('PoiForm', 'CitybrandingModel', array('ignore_request' => true)); //handle unexpected warnings from model set_error_handler(array($this, 'exception_error_handler')); $poiFormModel->save($args); $insertid = JFactory::getApplication()->getUserState('com_citybranding.edit.poi.insertid'); //call post save hook require_once JPATH_COMPONENT . '/controllers/poiform.php'; $poiFormController = new CitybrandingControllerPoiForm(); $poiFormController->postSaveHook($poiFormModel, $args); restore_error_handler(); $result = array('poiid' => $insertid); break; //update existing poi //update existing poi case 'PUT': case 'PATCH': if ($id == null) { throw new Exception('Id is not set'); } break; default: throw new Exception('HTTP method is not supported'); } echo new JResponseJson($result, 'Poi action completed successfully'); } catch (Exception $e) { header("HTTP/1.0 202 Accepted"); echo new JResponseJson($e); } }