diff options
author | Antonio Gallo <tonicucoz@gmail.com> | 2011-04-07 20:20:44 +0000 |
---|---|---|
committer | Antonio Gallo <tonicucoz@gmail.com> | 2011-04-07 20:20:44 +0000 |
commit | 5a90d52724c9afa5499a27b65a05033ae6b924b8 (patch) | |
tree | 7f36e3a3f8ed69fbd39620ae5e37fd4868b30968 | |
parent | 105117ebccdf5cecb3e33416287bec3f44e6cf2b (diff) |
h-source: improved the way errors are shown
-rw-r--r-- | h-source/Application/Controllers/GenericController.php | 64 | ||||
-rw-r--r-- | h-source/Application/Views/xml_response.php | 28 |
2 files changed, 77 insertions, 15 deletions
diff --git a/h-source/Application/Controllers/GenericController.php b/h-source/Application/Controllers/GenericController.php index b6a5aac..31271b9 100644 --- a/h-source/Application/Controllers/GenericController.php +++ b/h-source/Application/Controllers/GenericController.php @@ -65,6 +65,8 @@ class GenericController extends BaseController $clean['token'] = sanitizeAlphanum($token); $data['notice'] = null; + $data['submission_response'] = 'error'; + $data['tree'] = $this->getSpecHardLink() . " » " . " <span class='last_tree_element'>insert</span>"; $this->s['registered']->checkStatus(); @@ -103,7 +105,12 @@ class GenericController extends BaseController } } + if ($this->m['HardwareModel']->queryResult) + { + $data['submission_response'] = 'executed'; + } $this->viewRedirect($this->m['HardwareModel']->lastId); + } } } @@ -115,12 +122,21 @@ class GenericController extends BaseController $data['values'] = $this->m['HardwareModel']->getFormValues('insert','sanitizeHtml'); $this->append($data); - - $this->load('top_left'); - $this->load('license_notice'); - $this->load('form'); - $this->load('bottom_left'); - $this->right(); + + if (!isset($_POST['from_client'])) + { + $this->load('top_left'); + $this->load('license_notice'); + $this->load('form'); + $this->load('bottom_left'); + $this->right(); + } + else + { + header ("Content-Type:text/xml"); + $this->clean(); + $this->load('xml_response'); + } } else { @@ -196,6 +212,8 @@ class GenericController extends BaseController $clean['token'] = sanitizeAlphanum($token); $data['notice'] = null; + $data['submission_response'] = 'error'; + $this->s['registered']->checkStatus(); if (isset($_POST['id_hard'])) @@ -238,6 +256,10 @@ class GenericController extends BaseController //carry out the update database action $this->m['HardwareModel']->updateTable('update'); + if ($this->m['HardwareModel']->queryResult) + { + $data['submission_response'] = 'executed'; + } $this->viewRedirect($this->m['HardwareModel']->lastId); } } @@ -252,12 +274,21 @@ class GenericController extends BaseController $data['hiddenInput'] = "<input type='hidden' name='id_hard' value='".$clean['id_hard']."'>\n"; $this->append($data); - - $this->load('top_left'); - $this->load('license_notice'); - $this->load('form'); - $this->load('bottom_left'); - $this->right(); + + if (!isset($_POST['from_client'])) + { + $this->load('top_left'); + $this->load('license_notice'); + $this->load('form'); + $this->load('bottom_left'); + $this->right(); + } + else + { + header ("Content-Type:text/xml"); + $this->clean(); + $this->load('xml_response'); + } } else { @@ -344,11 +375,14 @@ class GenericController extends BaseController protected function viewRedirect($id) { $clean['id'] = (int)$id; - + if ($this->m['HardwareModel']->queryResult) { - $name = encodeUrl($this->m['HardwareModel']->getTheModelName($clean['id'])); - $this->redirect($this->controller.'/view/'.$this->lang.'/'.$clean['id'].'/'.$name.$this->viewStatus); + if (!isset($_POST['from_client'])) + { + $name = encodeUrl($this->m['HardwareModel']->getTheModelName($clean['id'])); + $this->redirect($this->controller.'/view/'.$this->lang.'/'.$clean['id'].'/'.$name.$this->viewStatus); + } } } diff --git a/h-source/Application/Views/xml_response.php b/h-source/Application/Views/xml_response.php new file mode 100644 index 0000000..2c51b88 --- /dev/null +++ b/h-source/Application/Views/xml_response.php @@ -0,0 +1,28 @@ +<?php if (!defined('EG')) die('Direct access not allowed!'); ?> +<?php echo "<?xml version='1.0' encoding='UTF-8'?>\n";?> +<user_info> + <status><?php echo $submission_response;?></status> + <notice> + <![CDATA[<?php echo strip_tags($notice); ?>]]> + </notice> +</user_info> + +<?php +// h-source, a web software to build a community of people that want to share their hardware information. +// Copyright (C) 2010 Antonio Gallo (h-source-copyright.txt) +// +// This file is part of h-source +// +// h-source is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// h-source is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with h-source. If not, see <http://www.gnu.org/licenses/>. +?> |