From e6e939c3c969887d76c32db0e07b5a414899cb17 Mon Sep 17 00:00:00 2001
From: alvaro <alvaro@alia.(none)>
Date: Wed, 15 Feb 2012 22:36:25 -0800
Subject: [PATCH] Testing new version of uri renaming

---
 classes/Utils.php                 | 20 ++++++++++++++++++--
 classes/modules/serviceModule.php |  2 +-
 classes/modules/typeModule.php    |  2 +-
 classes/modules/uriModule.php     |  2 +-
 index.php                         | 15 +++++++++++++--
 install.sh                        |  2 +-
 6 files changed, 35 insertions(+), 8 deletions(-)

diff --git a/classes/Utils.php b/classes/Utils.php
index a5116f06..dd6a8d29 100644
--- a/classes/Utils.php
+++ b/classes/Utils.php
@@ -468,10 +468,26 @@ class Utils{
   	  	}*/
   	  }else{
   	  	if(isset($value['uri']) && $value['uri'] == 1){
-  	  	  if($conf['mirror_external_uris']){
+  	  	  if($conf['mirror_external_uris'] != false){
   	  	  	$value['mirroredUri'] = $value['value'];
   	  	  }
-  	  	  $value['value'] = preg_replace("|^".$conf['ns']['local']."|", $conf['basedir'], $value['value']);
+  	  	  if(is_boolean($conf['mirror_external_uris'])){
+  	  	  	$value['value'] = preg_replace("|^".$conf['ns']['local']."|", $conf['basedir'], $value['value']);
+  	  	  }elseif(is_string($conf['mirror_external_uris'])){
+  	  	  	$value['value'] = preg_replace("|^".$conf['mirror_external_uris']."|", $conf['basedir'], $value['value']);
+  	  	  }elseif(is_array($conf['mirror_external_uris'])){
+  	  	  	foreach($conf['mirror_external_uris'] as $v){
+  	  	  	  $aux = preg_replace("|^".$conf['mirror_external_uris']."|", $conf['basedir'], $value['value']);
+  	  	  	  if($aux != $value['value']]){
+  	  	  	  	$value['value'] = $aux;
+  	  	  	  	break;
+  	  	  	  }
+  	  	  	}	  	  	
+  	  	  }else{
+  	  	  	Utils::send500("Error in mirroring configuration");
+  	  	  	exit(1);
+  	  	  }
+  	  	  
   	  	  $value['curie'] = Utils::uri2curie($value['value']);
   	  	  $array[$key] = $value;
   	  	}  	  	  	  	
diff --git a/classes/modules/serviceModule.php b/classes/modules/serviceModule.php
index a791cf23..b4ca8910 100644
--- a/classes/modules/serviceModule.php
+++ b/classes/modules/serviceModule.php
@@ -64,7 +64,7 @@ class ServiceModule extends abstractModule{
   	  $prefixHeader = array();
   	  
   	  for($i=0;$i<sizeof($params);$i++){
-  	  	if($conf['mirror_external_uris']){
+  	  	if($conf['mirror_external_uris'] != false){
   	  	  $altUri = Utils::curie2uri($params[$i]);
   	  	  $altUri = preg_replace("|^".$conf['basedir']."|", $conf['ns']['local'], $altUri);
   	  	  $params[$i] = Utils::uri2curie($altUri);
diff --git a/classes/modules/typeModule.php b/classes/modules/typeModule.php
index 02f6433c..fd13cc9e 100644
--- a/classes/modules/typeModule.php
+++ b/classes/modules/typeModule.php
@@ -47,7 +47,7 @@ class TypeModule extends abstractModule{
   	}
   	
   	$uri = $res;
-  	if($conf['mirror_external_uris']){
+  	if($conf['mirror_external_uris'] != false){
   	  $localUri = preg_replace("|^".$conf['ns']['local']."|", $conf['basedir'], $res);
   	}
   	
diff --git a/classes/modules/uriModule.php b/classes/modules/uriModule.php
index 1bb02a68..e9c22255 100644
--- a/classes/modules/uriModule.php
+++ b/classes/modules/uriModule.php
@@ -67,7 +67,7 @@ class UriModule extends abstractModule{
   	}
   	
   	$uri = $res;
-  	if($conf['mirror_external_uris']){
+  	if($conf['mirror_external_uris'] != false){
   	  $localUri = preg_replace("|^".$conf['ns']['local']."|", $conf['basedir'], $res);
   	}
   	
diff --git a/index.php b/index.php
index 7bd8b7fc..ecf54b9b 100755
--- a/index.php
+++ b/index.php
@@ -59,9 +59,20 @@ if($uri == $conf['basedir']){
 }
 
 //Configure external URIs if necessary
-if($conf['mirror_external_uris']){
-  $uri = $conf['ns']['local'].$_GET['q'];
+if($conf['mirror_external_uris'] != false){
   $localUri = $conf['basedir'].$_GET['q'];
+  
+  if(is_boolean($conf['mirror_external_uris'])){
+  	$uri = $conf['ns']['local'].$_GET['q'];
+  }elseif(is_string($conf['mirror_external_uris'])){
+  	$uri = $conf['mirror_external_uris'].$_GET['q'];
+  }elseif(is_array($conf['mirror_external_uris'])){
+  	$uri = $conf['ns']['local'].$_GET['q'];  	  	
+  }else{
+  	Utils::send500("Error in mirroring configuration");
+  	exit(1);
+  }
+  
 }
 
 
diff --git a/install.sh b/install.sh
index 65619b53..5dfc13d0 100755
--- a/install.sh
+++ b/install.sh
@@ -53,7 +53,7 @@ while [ "$everything_ok" != "y" ]; do
   if [[ "$basedir" =~ ^"$ns" ]]; then
     external="false"
   else
-    external="true"
+    external=$ns
     extra="\$conf['ns']['base']   = '$basedir';"
   fi
   
-- 
GitLab