From a4b8b95203238d711631908585f7206a715d3dab Mon Sep 17 00:00:00 2001
From: pbarroca <pbarroca@git-test.afi-sa.fr>
Date: Fri, 4 May 2012 15:15:10 +0000
Subject: [PATCH] =?UTF-8?q?OAI:=20Refacto=20verb=20inconnu=20est=20trait?=
 =?UTF-8?q?=C3=A9=20via=20MVC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitattributes                                       |  1 +
 .../modules/opac/controllers/OaiController.php       | 12 +++++++++---
 .../opac/views/scripts/oai/bad-verb.xml.phtml        |  8 ++++++++
 3 files changed, 18 insertions(+), 3 deletions(-)
 create mode 100644 application/modules/opac/views/scripts/oai/bad-verb.xml.phtml

diff --git a/.gitattributes b/.gitattributes
index 413e07fa6d0..17f2b321693 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -582,6 +582,7 @@ application/modules/opac/views/scripts/java/protoflow.phtml -text
 application/modules/opac/views/scripts/java/slide_show.phtml -text
 application/modules/opac/views/scripts/module.phtml -text
 application/modules/opac/views/scripts/noticeajax/notice.phtml -text
+application/modules/opac/views/scripts/oai/bad-verb.xml.phtml -text
 application/modules/opac/views/scripts/oai/get-record.xml.phtml -text
 application/modules/opac/views/scripts/oai/identify.xml.phtml -text svneol=unset#text/plain
 application/modules/opac/views/scripts/oai/list-identifiers.xml.phtml -text
diff --git a/application/modules/opac/controllers/OaiController.php b/application/modules/opac/controllers/OaiController.php
index 160d92ca007..e73471db088 100644
--- a/application/modules/opac/controllers/OaiController.php
+++ b/application/modules/opac/controllers/OaiController.php
@@ -27,6 +27,7 @@ class OaiController extends Zend_Controller_Action {
 			->addActionContext('list-records', 'xml')
 			->addActionContext('list-sets', 'xml')
 			->addActionContext('get-record', 'xml')
+			->addActionContext('bad-verb', 'xml')
 			->initContext();
 	}
 
@@ -48,9 +49,8 @@ class OaiController extends Zend_Controller_Action {
 			return;
 		}
 
-		$request = Class_WebService_OAI_ResponseFactory::verbAndBaseUrl($this->_getParam('verb'),
-																																		$this->buildBaseUrl());
-		$this->_response->setBody($request->xml($this->_request->getParams()));
+		$this->_forward('bad-verb', null, null, 
+										$this->_request->getParams() + array('format' => 'xml'));
 	}
 
 
@@ -171,6 +171,12 @@ class OaiController extends Zend_Controller_Action {
 		}
 		$this->view->builder = $builder;
 	}
+
+
+	public function badVerbAction() {
+		$this->getHelper('ViewRenderer')->setLayoutScript('empty.phtml');
+		$this->view->baseUrl = $this->buildBaseUrl();
+	}
 }
 
 ?>
\ No newline at end of file
diff --git a/application/modules/opac/views/scripts/oai/bad-verb.xml.phtml b/application/modules/opac/views/scripts/oai/bad-verb.xml.phtml
new file mode 100644
index 00000000000..40a97c6da17
--- /dev/null
+++ b/application/modules/opac/views/scripts/oai/bad-verb.xml.phtml
@@ -0,0 +1,8 @@
+<?php echo '<?xml version="1.0" encoding="UTF-8"?>';?>
+<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
+	<responseDate><?php echo date('c');?></responseDate>
+	<request><?php echo $this->baseUrl;?></request>
+	<error code="badVerb">Illegal OAI verb</error>
+</OAI-PMH>
-- 
GitLab