Index: webapp/cms/skins/demo/conf/link-themes.xml
===================================================================
--- webapp/cms/skins/demo/conf/link-themes.xml	(revision 0)
+++ webapp/cms/skins/demo/conf/link-themes.xml	(revision 0)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+    <!-- Configure the template's link directory inputdata here  -->
+
+<!-- <link-themes> -->
+<!-- 	<themes templates="index" configurable="true"> -->
+<!--         <theme id="THEME_NAME"/> -->
+<!-- 	</themes> -->
+<!-- </link-themes> -->
\ No newline at end of file
Index: webapp/cms/skins/demo/i18n/messages.xml
===================================================================
--- webapp/cms/skins/demo/i18n/messages.xml	(revision 29382)
+++ webapp/cms/skins/demo/i18n/messages.xml	(working copy)
@@ -60,6 +60,12 @@
 	<message key="SKIN_NEWSLETTER_SUBMIT">Subscription</message>
 
 	<message key="SKIN_DIRECTACCESS_TITLE">Direct access</message>
+	
+	<message key="SKIN_LINKDIRECTORY_TITLE">Link directory</message>
+    <message key="SKIN_LINKDIRECTORY_CONFIGURE_THUMBNAILS_TITLE_BO">This service can be customized by any connected user</message>
+    <message key="SKIN_LINKDIRECTORY_CONFIGURE_THUMBNAILS_TITLE">Customize</message>
+    <message key="SKIN_LINKDIRECTORY_SEE_LESS">See less</message>
+    <message key="SKIN_LINKDIRECTORY_SEE_MORE">See more</message>
 
 	<message key="SKIN_ACCESSIBILITY_LINKS_GOTO_CONTENT">Go to content</message>
 	<message key="SKIN_ACCESSIBILITY_LINKS_GOTO_MENU">Go to menu</message>
Index: webapp/cms/skins/demo/i18n/messages_fr.xml
===================================================================
--- webapp/cms/skins/demo/i18n/messages_fr.xml	(revision 29382)
+++ webapp/cms/skins/demo/i18n/messages_fr.xml	(working copy)
@@ -60,6 +60,12 @@
 	<message key="SKIN_NEWSLETTER_SUBMIT">Inscription</message>
 
 	<message key="SKIN_DIRECTACCESS_TITLE">Accès directs</message>
+	
+	<message key="SKIN_LINKDIRECTORY_TITLE">Annuaire de liens</message>
+	<message key="SKIN_LINKDIRECTORY_CONFIGURE_THUMBNAILS_TITLE_BO">Ce service est personnalisable par tout utilisateur connecté</message>
+	<message key="SKIN_LINKDIRECTORY_CONFIGURE_THUMBNAILS_TITLE">Personnaliser</message>
+	<message key="SKIN_LINKDIRECTORY_SEE_LESS">Voir moins</message>
+	<message key="SKIN_LINKDIRECTORY_SEE_MORE">Voir plus</message>
 
 	<message key="SKIN_ACCESSIBILITY_LINKS_GOTO_CONTENT">Aller au contenu</message>
 	<message key="SKIN_ACCESSIBILITY_LINKS_GOTO_MENU">Aller au menu</message>
Index: webapp/cms/skins/demo/resources/css/services/link-directory.css
===================================================================
--- webapp/cms/skins/demo/resources/css/services/link-directory.css	(revision 29382)
+++ webapp/cms/skins/demo/resources/css/services/link-directory.css	(working copy)
@@ -1,79 +0,0 @@
-/*
- *  Copyright 2012 Anyware Services
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-.linkdirectory ul {
-	margin: 0;
-	padding: 0;
-}
-
-.linkdirectory ul > li
-{
-	list-style-type: none;
-	background-image: none;
-	padding: 10px;
-}
-
-.linkdirectory .links {
-    margin-top: 10px;
-}
-
-.linkdirectory .link .link-picture {
-    float: left;
-}
-
-.art-blockcontent-body .linkdirectory .link .link-picture {
-    float: none;
-}
-
-.linkdirectory .link a {
-    display: block;
-}
-
-.linkdirectory .link .link-end {
-   clear: both;
-}
-
-.linkdirectory div.link-infos {
-	margin-left: 110px;
-}
-
-.art-blockcontent-body div.link-infos {
-	margin-left: 0;
-}
- 
-.linkdirectory div.link-themes ul {
-    list-style-image: none;
-    list-style-type: none;
-    margin: 0;
-    padding: 0;
-    display: inline-block;
-}
-
-.linkdirectory div.link-themes p, .linkdirectory div.link-themes ul li {
-    display: inline-block;
-}
-
-.linkdirectory div.link-themes {
-	padding: 5px 0 0 0;
-}
-
-.linkdirectory div.link-themes ul li {
-    background-image: url("../../img/services/links/tag.png");
-    background-position: left center;
-    background-repeat: no-repeat;
-    margin: 0 0 0 5px;
-    padding: 0 0 0 18px;
-}
Index: webapp/cms/skins/demo/resources/css/services/linkdirectory-default.css
===================================================================
--- webapp/cms/skins/demo/resources/css/services/linkdirectory-default.css	(working copy)
+++ webapp/cms/skins/demo/resources/css/services/linkdirectory-default.css	(working copy)
@@ -1,5 +1,5 @@
 /*
- *  Copyright 2012 Anyware Services
+ *  Copyright 2015 Anyware Services
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -14,47 +14,52 @@
  *  limitations under the License.
  */
 
-.linkdirectory ul {
-	margin: 0;
-	padding: 0;
-}
-
-.linkdirectory ul > li
+.linkdirectory-default .service-title
 {
-	list-style-type: none;
-	background-image: none;
-	padding: 10px;
+    padding-top: 2.5px;
 }
 
-.linkdirectory .links {
+.linkdirectory-default .links {
     margin-top: 10px;
 }
 
-.linkdirectory .link .link-picture {
+.linkdirectory-default ul > li
+{
+    list-style-type: none;
+    background-image: none;
+    padding: 10px;
+}
+
+.linkdirectory-default .link .link-picture {
     float: left;
 }
 
-.art-blockcontent-body .linkdirectory .link .link-picture {
+.art-blockcontent-body .linkdirectory-default .link .link-picture {
     float: none;
 }
 
-.linkdirectory .link a {
+.linkdirectory-default .link a {
     display: block;
+    overflow: hidden;
+}
+
+.linkdirectory-default .link-text {
+    overflow: hidden;
 }
 
-.linkdirectory .link .link-end {
+.linkdirectory-default .link .link-end {
    clear: both;
 }
 
-.linkdirectory div.link-infos {
-	margin-left: 110px;
+.linkdirectory-default div.link-infos {
+    margin-left: 110px;
 }
 
 .art-blockcontent-body div.link-infos {
-	margin-left: 0;
+    margin-left: 0;
 }
- 
-.linkdirectory div.link-themes ul {
+
+.linkdirectory-default div.link-themes ul {
     list-style-image: none;
     list-style-type: none;
     margin: 0;
@@ -62,18 +67,34 @@
     display: inline-block;
 }
 
-.linkdirectory div.link-themes p, .linkdirectory div.link-themes ul li {
+.linkdirectory-default div.link-themes p, .linkdirectory-default div.link-themes ul li {
     display: inline-block;
 }
 
-.linkdirectory div.link-themes {
-	padding: 5px 0 0 0;
+.linkdirectory-default div.link-themes {
+    padding: 5px 0 0 0;
 }
 
-.linkdirectory div.link-themes ul li {
+.linkdirectory-default div.link-themes ul li {
     background-image: url("../../img/services/links/tag.png");
     background-position: left center;
     background-repeat: no-repeat;
     margin: 0 0 0 5px;
     padding: 0 0 0 18px;
 }
+
+.linkdirectory-default .configure-links-service-button
+{
+    float: right;
+    margin-right: 25px;
+}
+
+.linkdirectory-default .configure-links-service-button img
+{
+    border: none !important;
+}
+
+.configure-links-dialog-text
+{
+    margin-bottom: 10px;
+}
Index: webapp/cms/skins/demo/resources/css/services/linkdirectory-inputdata-index.css
===================================================================
--- webapp/cms/skins/demo/resources/css/services/linkdirectory-inputdata-index.css	(revision 0)
+++ webapp/cms/skins/demo/resources/css/services/linkdirectory-inputdata-index.css	(revision 0)
@@ -0,0 +1,92 @@
+/*
+ *  Copyright 2015 Anyware Services
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+/* This file gathers mutual css class definitions from the link directory service and the link directory input data */
+
+.linkdirectory-inputdata-index {
+    padding-top: 20px;
+    padding-bottom: 15px;
+    padding-left: 35px;
+    padding-right: 35px;
+}
+
+.linkdirectory-inputdata-index ul > li
+{
+    list-style-type: none;
+    background-image: none;
+}
+
+.linkdirectory-inputdata-index ul.links > li.link
+{
+    background-image: none;
+    padding: 4px;
+
+    width: 8%;
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+    
+    display: inline-block;
+    height: 73px;
+    
+    text-align: center;
+    vertical-align: bottom;
+}
+
+.linkdirectory-inputdata-index ul.links > li.link a {
+    display: inline-block;
+    overflow: hidden;
+    height: 100%;
+    width: 100%;
+    text-align: center;
+    vertical-align: bottom;
+    white-space: nowrap;
+}
+
+.linkdirectory-inputdata-index ul.links > li.link span.picture {
+    display: block;
+    min-width: 50px;
+    height: 50px;
+    line-height: 50px;
+}
+
+.linkdirectory-inputdata-index ul.links > li.link span.picture img {
+    vertical-align: middle;
+}
+    
+.linkdirectory-inputdata-index ul.links > li.link span.text {
+    display: block;
+    white-space: nowrap;
+}
+
+.linkdirectory-inputdata-index ul.links > li.link span.text.nopicture {
+    margin-top: 50px;
+}
+
+.linkdirectory-inputdata-index .see-more-less
+ {
+     border: none;
+ }
+
+.configure-links-inputdata-button
+{ 
+    float: right; 
+    padding-right : 8px;
+}
+
+.configure-links-dialog-text {
+    margin-bottom: 10px;
+}
Index: webapp/cms/skins/demo/resources/css/services/linkdirectory-inputdata.css
===================================================================
--- webapp/cms/skins/demo/resources/css/services/linkdirectory-inputdata.css	(revision 0)
+++ webapp/cms/skins/demo/resources/css/services/linkdirectory-inputdata.css	(revision 0)
@@ -0,0 +1,110 @@
+/*
+ *  Copyright 2015 Anyware Services
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+/* This file gathers mutual css class definitions from the link directory service and the link directory input data */
+
+.linkdirectory-inputdata ul {
+    margin: 0;
+    padding: 0;
+}
+
+.linkdirectory-inputdata ul > li
+{
+    list-style-type: none;
+    background-image: none;
+    padding: 10px;
+}
+
+.linkdirectory-inputdata ul.links > li.link
+{
+    background-image: none;
+    padding: 4px;
+
+    width: 25%;
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+    
+    display: inline-block;
+    height: 73px;
+    
+    text-align: center;
+    vertical-align: bottom;
+}
+
+.linkdirectory-inputdata ul.links > li.link a {
+    display: inline-block;
+    overflow: hidden;
+    height: 100%;
+    width: 100%;
+    text-align: center;
+    vertical-align: bottom;
+    white-space: nowrap;
+}
+
+.linkdirectory-inputdata ul.links > li.link span.picture {
+    display: block;
+    min-width: 50px;
+    height: 50px;
+    line-height: 50px;
+}
+.linkdirectory-inputdata ul.links > li.link span.picture img {
+    vertical-align: middle;
+}
+    
+.linkdirectory-inputdata ul.links > li.link span.text {
+    display: block;
+    white-space: nowrap;
+}
+
+.linkdirectory-inputdata ul.links > li.link span.text.nopicture {
+    margin-top: 50px;
+}
+
+.linkdirectory-inputdata .see-more-less 
+ {
+     border: none;
+ }
+
+.linkdirectory-inputdata div.configuration-error
+{
+    padding-left: 15px;
+    padding-right: 17px;
+}
+
+.configure-links-inputdata-button
+{
+	float: right;
+	
+	margin-top: 0.5px;
+	height: 22px;
+    
+    border: 1px solid black;
+    background-color: white;
+    
+    -webkit-border-radius: 15px;
+	-moz-border-radius: 15px;
+	border-radius: 15px;
+}
+
+.configure-links-inputdata-button:hover {
+    background-color: #F0F0F0;
+}
+
+.configure-links-dialog-text
+{
+    margin-bottom: 10px;
+}
Index: webapp/cms/skins/demo/resources/css/services/linkdirectory-thumbnails.css
===================================================================
--- webapp/cms/skins/demo/resources/css/services/linkdirectory-thumbnails.css	(revision 0)
+++ webapp/cms/skins/demo/resources/css/services/linkdirectory-thumbnails.css	(revision 0)
@@ -0,0 +1,98 @@
+/*
+ *  Copyright 2015 Anyware Services
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+ 
+ .linkdirectory-thumbnails .service-title
+{
+    padding-top: 2.5px;
+}
+ 
+.linkdirectory-thumbnails ul.links {
+    margin: 0px;
+    padding: 0px;
+    list-style-type: none;
+}
+
+.linkdirectory-thumbnails ul.links > li.link
+{
+    background-image: none;
+    padding: 10px;
+
+    width: 25%;
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+    
+    display: inline-block;
+    height: 140px;
+    
+    text-align: center;
+    vertical-align: bottom;
+}
+
+.linkdirectory-thumbnails ul.links > li.link a {
+	display: inline-block;
+	overflow: hidden;
+	height: 100%;
+	width: 100%;
+    text-align: center;
+    vertical-align: bottom;
+}
+
+.linkdirectory-thumbnails ul.links > li.link span.picture {
+	display: block;
+	min-width: 100px;
+	height: 100px;
+	line-height: 100px;
+}
+.linkdirectory-thumbnails ul.links > li.link span.picture img {
+	vertical-align: middle;
+}
+	
+.linkdirectory-thumbnails ul.links > li.link span.text {
+    display: block;
+    white-space: nowrap;
+}
+
+.linkdirectory-thumbnails ul.links > li.link span.text.nopicture {
+    margin-top: 100px;
+}
+
+.linkdirectory-thumbnails .see-more
+ {
+     border: none;
+ }
+
+.linkdirectory-thumbnails .configure-links-service-button
+{
+    float: right;
+    margin-right: 25px;
+}
+
+.linkdirectory-thumbnails .configure-links-service-button img
+{
+    border: none !important;
+}
+
+.art-sidebar1 .linkdirectory-thumbnails ul.links > li.link,
+.art-sidebar2 .linkdirectory-thumbnails ul.links > li.link
+{
+	width: 100%;
+}
+
+.configure-links-dialog-text
+{
+    margin-bottom: 10px;
+}
\ No newline at end of file
Index: webapp/cms/skins/demo/services/link-directory/pages/services/directory/directory_1.0.xsl
===================================================================
--- webapp/cms/skins/demo/services/link-directory/pages/services/directory/directory_1.0.xsl	(revision 29382)
+++ webapp/cms/skins/demo/services/link-directory/pages/services/directory/directory_1.0.xsl	(working copy)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-   Copyright 2012 Anyware Services
+   Copyright 2015 Anyware Services
 
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
@@ -24,7 +24,7 @@
     <!-- Used in common.xsl -->
     <xsl:template name="common-service-head-css">
         <link rel="stylesheet" type="text/css" href="{ametys:skinURL('css/services/search.css')}" media="screen, print, handheld"/>    
-        <link rel="stylesheet" type="text/css" href="{ametys:skinURL('css/services/link-directory.css')}" media="screen, print, handheld"/>    
+        <link rel="stylesheet" type="text/css" href="{ametys:skinURL('css/services/linkdirectory-default.css')}" media="screen, print, handheld"/>
         
 <!--          <xsl:comment>[if IE 7]&gt;&lt;link rel="stylesheet" href="<xsl:value-of select="ametys:skinURL('css/services/link-directory.ie7.css')" />" type="text/css" /&gt;&lt;![endif]</xsl:comment> -->
     </xsl:template>
Index: webapp/cms/skins/demo/services/link-directory/pages/services/directory/thumbnails_1.1.xsl
===================================================================
--- webapp/cms/skins/demo/services/link-directory/pages/services/directory/thumbnails_1.1.xsl	(revision 0)
+++ webapp/cms/skins/demo/services/link-directory/pages/services/directory/thumbnails_1.1.xsl	(revision 0)
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Copyright 2015 Anyware Services
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+   -->
+<xsl:stylesheet version="1.0"
+        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+        xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
+        xmlns:ametys="org.ametys.web.transformation.xslt.AmetysXSLTHelper">
+
+    <xsl:import href="plugin:link-directory://pages/services/directory/thumbnails_1.1.xsl"/> 
+    
+    <!-- Used in common.xsl -->
+    <xsl:template name="common-service-head-css">
+	    <link rel="stylesheet" type="text/css" href="{ametys:skinURL('css/services/search.css')}" media="screen, print, handheld"/>    
+	    <link rel="stylesheet" type="text/css" href="{ametys:skinURL('css/services/linkdirectory-thumbnails.css')}" media="screen, print, handheld"/> 
+	    
+    </xsl:template>
+    
+</xsl:stylesheet>       
Index: webapp/cms/skins/demo/services/link-directory/pages/services/directory/utils/config_utils.xsl
===================================================================
--- webapp/cms/skins/demo/services/link-directory/pages/services/directory/utils/config_utils.xsl	(revision 0)
+++ webapp/cms/skins/demo/services/link-directory/pages/services/directory/utils/config_utils.xsl	(revision 0)
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Copyright 2015 Anyware Services
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+   -->
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:ametys="org.ametys.web.transformation.xslt.AmetysXSLTHelper"
+                xmlns:i18n="http://apache.org/cocoon/i18n/2.1">
+                
+    <xsl:import href="plugin:link-directory://pages/services/directory/utils/config_utils.xsl"/>
+    
+    <!-- Service or input data configure links button -->
+    <xsl:template name="configure-links-btn">
+        <xsl:param name="height"/>
+        <xsl:param name="width"/>
+        <xsl:param name="buttonId"/>
+        
+        <xsl:choose>
+            <xsl:when test="$rendering-context = 'front' and not(ametys:user())">
+                <!-- The user is not connected: the button is not displayed -->
+            </xsl:when>
+            <xsl:when test="$rendering-context != 'front'">
+	            document.writeln("&lt;a id=\"configure-links-hyperlink-<xsl:value-of select="$buttonId"/>-disabled\" class=\"configure-links-service-button\" title=\"<i18n:text i18n:key="SKIN_LINKDIRECTORY_CONFIGURE_THUMBNAILS_TITLE_BO" i18n:catalogue="skin.{$skin}"/>\" i18n:attr=\"title\"&gt;");
+	               document.writeln("&lt;img alt=\"<i18n:text i18n:key="PLUGINS_LINKDIRECTORY_CONFIGURE_THUMBNAILS" i18n:catalogue="plugin.link-directory"/>\" src=\"<xsl:value-of select="ametys:skinImageURL('img/services/link-directory/gears.png', $height, $width)"/>\"/&gt;");
+	            document.writeln("&lt;/a&gt;");
+            </xsl:when>
+            <xsl:otherwise>
+	            document.writeln("&lt;a id=\"configure-links-hyperlink-<xsl:value-of select="$buttonId"/>\" class=\"configure-links-service-button\" href=\"javascript:void(0)\" title=\"<i18n:text i18n:key="SKIN_LINKDIRECTORY_CONFIGURE_THUMBNAILS_TITLE" i18n:catalogue="skin.{$skin}"/>\" i18n:attr=\"title\"&gt;");
+	                document.writeln("&lt;img alt=\"<i18n:text i18n:key="PLUGINS_LINKDIRECTORY_CONFIGURE_THUMBNAILS" i18n:catalogue="plugin.link-directory"/>\" src=\"<xsl:value-of select="ametys:skinImageURL('img/services/link-directory/gears.png', $height, $width)"/>\"/&gt;");
+	            document.writeln("&lt;/a&gt;");
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+
+</xsl:stylesheet>
+    
\ No newline at end of file
Index: webapp/cms/skins/demo/services/link-directory/pages/services/directory/utils/inputdata_utils.xsl
===================================================================
--- webapp/cms/skins/demo/services/link-directory/pages/services/directory/utils/inputdata_utils.xsl	(revision 0)
+++ webapp/cms/skins/demo/services/link-directory/pages/services/directory/utils/inputdata_utils.xsl	(revision 0)
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Copyright 2015 Anyware Services
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+   -->
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:ametys="org.ametys.web.transformation.xslt.AmetysXSLTHelper"
+                xmlns:resolver="org.ametys.cms.transformation.xslt.ResolveURIComponent"
+                xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
+                xmlns:exsl="http://exslt.org/common">
+                
+    <xsl:import href="plugin:link-directory://pages/services/directory/utils/inputdata_utils.xsl"/>
+    
+    <!-- See more/less links for a link directory input data -->
+    <xsl:template name="show-less-picture">
+        <xsl:param name="height"/>
+        <xsl:param name="width"/>
+
+        document.write("&lt;span class=\"picture\"&gt;&lt;img src=\"<xsl:value-of select="ametys:skinImageURL('img/services/link-directory/zoom_out.png', $height, $width)"/>\" class=\"see-more-less\" type=\"image/png\" alt=\"<i18n:text i18n:key="SKIN_LINKDIRECTORY_SEE_LESS" i18n:catalogue="skin.{$skin}"/>\"/&gt;&lt;/span&gt;");
+
+    </xsl:template>
+   
+    <xsl:template name="show-more-picture">
+        <xsl:param name="height"/>
+        <xsl:param name="width"/>
+        
+        document.write("&lt;span class=\"picture\"&gt;&lt;img src=\"<xsl:value-of select="ametys:skinImageURL('img/services/link-directory/zoom_in.png', $height, $width)"/>\" class=\"see-more-less\" type=\"image/png\" alt=\"<i18n:text i18n:key="SKIN_LINKDIRECTORY_SEE_MORE" i18n:catalogue="skin.{$skin}"/>\"/&gt;&lt;/span&gt;");
+    
+    </xsl:template>
+    
+    <!-- Input data configure links button -->
+    <xsl:template name="configure-links-btn">
+        <xsl:param name="height"/>
+        <xsl:param name="width"/>
+        <xsl:param name="buttonId"/>
+        
+	        <xsl:choose>
+	            <xsl:when test="$rendering-context != 'front'">
+	                Rendering for a configure links button for an input data in BO/preview/live : no rendering
+	            </xsl:when>
+	            <xsl:otherwise>
+                    <xsl:if test="ametys:user()">
+		                document.writeln("&lt;a id=\"configure-links-hyperlink-<xsl:value-of select="$buttonId"/>\" class=\"configure-links-inputdata-button\" href=\"javascript:void(0)\" title=\"<i18n:text i18n:key="SKIN_LINKDIRECTORY_CONFIGURE_THUMBNAILS_TITLE" i18n:catalogue="skin.{$skin}"/>\" i18n:attr=\"title\"&gt;");
+		                    document.writeln("&lt;img alt=\"<i18n:text i18n:key="PLUGINS_LINKDIRECTORY_CONFIGURE_THUMBNAILS" i18n:catalogue="plugin.link-directory"/>\" src=\"<xsl:value-of select="ametys:skinImageURL('img/services/link-directory/gears.png', $height, $width)"/>\"/&gt;");
+		                document.writeln("&lt;/a&gt;");
+	                </xsl:if> 
+	            </xsl:otherwise>
+	        </xsl:choose>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
Index: webapp/cms/skins/demo/services/link-directory/pages/services/directory/utils/thumbnails_utils.xsl
===================================================================
--- webapp/cms/skins/demo/services/link-directory/pages/services/directory/utils/thumbnails_utils.xsl	(revision 0)
+++ webapp/cms/skins/demo/services/link-directory/pages/services/directory/utils/thumbnails_utils.xsl	(revision 0)
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Copyright 2015 Anyware Services
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+   -->
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:ametys="org.ametys.web.transformation.xslt.AmetysXSLTHelper"
+                xmlns:i18n="http://apache.org/cocoon/i18n/2.1">
+                
+    <xsl:import href="plugin:link-directory://pages/services/directory/utils/thumbnails_utils.xsl"/>
+    
+    <!-- See more/less links for a link directory service in thumbnails mode -->
+    <xsl:template name="show-less-picture">
+        <xsl:param name="height"/>
+        <xsl:param name="width"/>
+        
+        document.write("&lt;span class=\"picture\"&gt;&lt;img src=\"<xsl:value-of select="ametys:skinImageURL('img/services/link-directory/zoom_out.png', $height, $width)"/>\" class=\"see-more-less\" type=\"image/png\" alt=\"<i18n:text i18n:key="SKIN_LINKDIRECTORY_SEE_LESS" i18n:catalogue="skin.{$skin}"/>\"/&gt;&lt;/span&gt;");
+    
+    </xsl:template>
+   
+    <xsl:template name="show-more-picture">
+        <xsl:param name="height"/>
+        <xsl:param name="width"/>
+        
+        document.write("&lt;span class=\"picture\"&gt;&lt;img src=\"<xsl:value-of select="ametys:skinImageURL('img/services/link-directory/zoom_in.png', $height, $width)"/>\" class=\"see-more-less\" type=\"image/png\" alt=\"<i18n:text i18n:key="SKIN_LINKDIRECTORY_SEE_MORE" i18n:catalogue="skin.{$skin}"/>\"/&gt;&lt;/span&gt;");
+    
+    </xsl:template>
+    
+</xsl:stylesheet>
+    
\ No newline at end of file
Index: webapp/cms/skins/demo/stylesheets/main.xsl
===================================================================
--- webapp/cms/skins/demo/stylesheets/main.xsl	(revision 29382)
+++ webapp/cms/skins/demo/stylesheets/main.xsl	(working copy)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-   Copyright 2012 Anyware Services
+   Copyright 2015 Anyware Services
 
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
@@ -34,17 +34,16 @@
 	<xsl:import href="others.xsl" />
 	
 	<xsl:variable name="uniqueId" select="substring-after(math:random(), '.')"/>
-	
 	<!-- + 
 	     | BASE
 	     + -->
 	<xsl:template name="template">
 		<html class="accessible-on">
 			<xsl:call-template name="head"/>
+			
 			<body>
 				<xsl:call-template name="template-title"/>
-				
-<xsl:call-template name="accessibility-links"/>
+                <xsl:call-template name="accessibility-links"/>
 				<xsl:call-template name="mobileswitch-links"/>
 				
 				<div id="art-page-background-glare">
@@ -98,14 +97,15 @@
 						</xsl:call-template>
 				</div>
 				</div>
+				
+                    
 				<div class="cleared reset-box"></div>
 				<div class="art-content-layout">
+				
 				    <div class="art-content-layout-row">
 				<xsl:if test="$template != 'index' and ($conf-layout-columns-hide1whenempty = 'false' or $rendering-context = 'back' or /cms/page/pageContents/zone[@name='invisible-zone-sidebar1']/zoneItem/html/body/node() or /cms/html/body[@id='invisible-zone-1']/node() or /cms/page/pageContents/zone[@name='zone-1'or @name='about']/zoneItem/html/body/node() or /cms/html/body[@id='zone-1']/node() or /cms/page/pageContents/zone[@name='zone-2'or @name='aside']/zoneItem/html/body/node() or /cms/html/body[@id='zone-2']/node())"><div class="art-layout-cell art-sidebar1">
 				
 				
-				
-				
 				<xsl:if test="$menu-vertical-node"><div class="art-vmenublock">
 				    <div class="art-vmenublock-tl"></div>
 				    <div class="art-vmenublock-tr"></div>
@@ -127,8 +127,6 @@
 				<xsl:text/><xsl:value-of select="/cms/inputData/sitemap/page[@sitemap:in-path='true']/@sitemap:title"/><xsl:text/>
 						
 				
-				
-				
 				<!-- AMETYS BEGIN NormalBlockHeader -->
 						</div>
 					</div>
@@ -149,7 +147,7 @@
 						<div class="cleared"></div>
 				    </div>
 				</div>
-				</xsl:if><xsl:if test="/cms/inputData/sitemap//page[@PLUGIN_TAGS_DIRECTACCESS]"><div class="art-block">
+				</xsl:if><xsl:if test="not($conf-layout-block-hidedirectaccess = 'true') and /cms/inputData/sitemap//page[@PLUGIN_TAGS_DIRECTACCESS]"><div class="art-block">
 				    <div class="art-block-tl"></div>
 				    <div class="art-block-tr"></div>
 				    <div class="art-block-bl"></div>
@@ -160,36 +158,74 @@
 				    <div class="art-block-cr"></div>
 				    <div class="art-block-cc"></div>
 				    <div class="art-block-body">
-				<!-- AMETYS BEGIN NormalBlockHeader -->
-				<div class="art-blockheader">
-						    <div class="l"></div>
-					    <div class="r"></div>
-						    <div class="t">
-				<!-- AMETYS END NormalBlockHeader -->
-				
-				
-				
-				<xsl:text/><i18n:text i18n:key="SKIN_DIRECTACCESS_TITLE" i18n:catalogue="skin.{$skin}"/><xsl:text/>
-						
-				
-				
-				
-				<!-- AMETYS BEGIN NormalBlockHeader -->
+						<!-- AMETYS BEGIN NormalBlockHeader -->
+						<div class="art-blockheader">
+	                       <div class="l"></div>
+							    <div class="r"></div>
+								    <div class="t">
+						<!-- AMETYS END NormalBlockHeader -->
+						<xsl:text/><i18n:text i18n:key="SKIN_DIRECTACCESS_TITLE" i18n:catalogue="skin.{$skin}"/><xsl:text/>
+								
+					   <!-- AMETYS BEGIN NormalBlockHeader -->
+							</div>
+						</div>
+						<!-- AMETYS END NormalBlockHeader -->
+						<div class="art-blockcontent">
+						    <div class="art-blockcontent-body">
+						      <xsl:call-template name="directaccess"/>
+							  <div class="cleared"></div>
+						    </div>
 						</div>
+					    <div class="cleared"></div>
+					    </div>
 					</div>
-				<!-- AMETYS END NormalBlockHeader -->
-				<div class="art-blockcontent">
-				    <div class="art-blockcontent-body">
-				<xsl:call-template name="directaccess"/>
-				
-						<div class="cleared"></div>
-				    </div>
-				</div>
+				</xsl:if>
 				
-						<div class="cleared"></div>
-				    </div>
-				</div>
-				</xsl:if><xsl:if test="$rendering-context = 'back' or /cms/page/pageContents/zone[@name='zone-1'or @name='about']/zoneItem/html/body/node() or /cms/html/body[@id='zone-1']/node()"><div class="art-block">
+				<!-- Link directory for all templates but index -->
+				<xsl:if test="/cms/inputData/linkDirectory/@applicable = 'true'"> 
+        				<div class="linkdirectory-inputdata">
+		                    <div class="art-block">
+		                        <div class="art-block-tl"></div>
+			                    <div class="art-block-tr"></div>
+			                    <div class="art-block-bl"></div>
+			                    <div class="art-block-br"></div>
+			                    <div class="art-block-tc"></div>
+			                    <div class="art-block-bc"></div>
+			                    <div class="art-block-cl"></div>
+			                    <div class="art-block-cr"></div>
+			                    <div class="art-block-cc"></div>
+			                    <div class="art-block-body">
+					                <div class="art-blockheader">
+					                  <div class="l"></div>
+					                  <div class="r"></div>
+					                  <div class="t">
+					                      <!-- The configure links button -->
+		                                 <xsl:call-template name="display-configure-links-btn-inputdata">
+		                                     <xsl:with-param name="maxCheckedLinks" select="7"/>
+		                                     <xsl:with-param name="height" select="20"/>
+		                                     <xsl:with-param name="width" select="20"/>
+		                                 </xsl:call-template>
+		                                 
+					                      <xsl:text/><i18n:text i18n:key="SKIN_LINKDIRECTORY_TITLE" i18n:catalogue="skin.{$skin}"/><xsl:text/>
+			                          </div>
+				                    </div>
+					                <div class="art-blockcontent">
+		                                 <!--  The links -->
+		                                 <xsl:call-template name="links-thumbnails-inputdata">
+		                                     <xsl:with-param name="moreThreshold" select="8"/>
+		                                     <xsl:with-param name="height" select="50"/>
+		                                     <xsl:with-param name="width" select="50"/>
+		                                 </xsl:call-template>
+					                    <div class="cleared"/>
+					                </div>
+				                    <div class="cleared"/>
+			                    </div>
+			                </div>
+		                </div>
+                </xsl:if>
+                <xsl:call-template name="linkdirectory-configuration-error"/>
+                
+                <xsl:if test="$rendering-context = 'back' or /cms/page/pageContents/zone[@name='zone-1'or @name='about']/zoneItem/html/body/node() or /cms/html/body[@id='zone-1']/node()"><div class="art-block">
 				    <div class="art-block-tl"></div>
 				    <div class="art-block-tr"></div>
 				    <div class="art-block-bl"></div>
@@ -237,9 +273,9 @@
 				<!-- AMETYS END ZoneBlockHeader -->
 				
 				
-				
 				<div class="art-blockcontent">
 				    <div class="art-blockcontent-body">
+				    
 				<xsl:call-template name="zone-1"/>
 				
 						<div class="cleared"></div>
@@ -249,6 +285,7 @@
 						<div class="cleared"></div>
 				    </div>
 				</div>
+				
 				</xsl:if><xsl:if test="$rendering-context = 'back' or /cms/page/pageContents/zone[@name='zone-2'or @name='aside']/zoneItem/html/body/node() or /cms/html/body[@id='zone-2']/node()"><div class="art-block">
 				    <div class="art-block-tl"></div>
 				    <div class="art-block-tr"></div>
@@ -263,7 +300,7 @@
 				
 				
 				<!-- AMETYS BEGIN ZoneBlockHeader -->
-					<xsl:variable name="blockHeaderZoneId"><xsl:text/>
+	            <xsl:variable name="blockHeaderZoneId"><xsl:text/>
 				<!-- AMETYS END ZoneBlockHeader -->
 				
 				<xsl:text/>zone-2<xsl:text/>
@@ -296,8 +333,6 @@
 					</xsl:if>
 				<!-- AMETYS END ZoneBlockHeader -->
 				
-				
-				
 				<div class="art-blockcontent">
 				    <div class="art-blockcontent-body">
 				<xsl:call-template name="zone-2"/>
@@ -313,9 +348,9 @@
 				  <div class="cleared"></div>
 				
 				<!-- AMETYS BEGIN Sidebars -->
-					<div class="art-block">
-						<xsl:call-template name="invisible-zone-sidebar1"/>
-					</div>	
+				<div class="art-block">
+					<xsl:call-template name="invisible-zone-sidebar1"/>
+				</div>	
 				  <div class="cleared"></div>
 				<!-- AMETYS END Sidebars -->
 				
@@ -332,6 +367,30 @@
                     <xsl:call-template name="send-by-mail"/>
                 </div>
 				<xsl:call-template name="bread-crumb"/>
+                
+                <!-- Link directory for the template index -->
+                <xsl:if test="$template = 'index'">
+		                <xsl:if test="/cms/inputData/linkDirectory/@applicable = 'true'">
+                            <div class="linkdirectory-inputdata-index">
+		                         <!-- The configure links button -->
+		                         <xsl:call-template name="display-configure-links-btn-inputdata">
+		                             <xsl:with-param name="maxCheckedLinks" select="11"/>
+                                     <xsl:with-param name="height" select="20"/>
+                                     <xsl:with-param name="width" select="20"/>
+		                         </xsl:call-template>
+		                         
+		                         <!--  The links -->
+					  	         <xsl:call-template name="links-thumbnails-inputdata">
+						             <xsl:with-param name="moreThreshold" select="12"/>
+						             <xsl:with-param name="height" select="50"/>
+						             <xsl:with-param name="width" select="50"/>
+						         </xsl:call-template>
+		                         
+		                         <div class="cleared"></div> 
+                             </div>
+		                 </xsl:if>
+                         <xsl:call-template name="linkdirectory-configuration-error"/>        
+                </xsl:if>
                 <div class="cleared"></div>
 				<!-- AMETYS END Content -->
 				
@@ -339,7 +398,10 @@
 				<div class="art-post">
 				    <div class="art-post-body">
 				<div class="art-postcontent">
+				
+				
 				<xsl:call-template name="main-zone"/>
+				
 				</div>
 				<div class="cleared"></div>
 				
@@ -400,6 +462,9 @@
 	<xsl:template name="template-title">		
 		<h1 class="hidden-L"><xsl:value-of select="/cms/page/@title"/></h1>
 	</xsl:template>
-
+    
+    <xsl:template name="additionnal-css">
+        <link rel="stylesheet" type="text/css" href="{ametys:templateURL('css/index.css')}"/>
+    </xsl:template>
 	
 </xsl:stylesheet>
Index: webapp/cms/skins/demo/templates/blog/stylesheets/template.xsl
===================================================================
--- webapp/cms/skins/demo/templates/blog/stylesheets/template.xsl	(revision 29382)
+++ webapp/cms/skins/demo/templates/blog/stylesheets/template.xsl	(working copy)
@@ -24,7 +24,8 @@
 		exclude-result-prefixes="sitemap ametys">
 
 	<xsl:import href="skin://stylesheets/main.xsl" />
-
+	<xsl:import href="skin://services/link-directory/pages/services/directory/utils/inputdata_utils.xsl"/>
+	
 	<xsl:template name="zone-1">
 		<xsl:variable name="blockHeaderZoneTitle" select="/cms/page/pageContents/zone[@name='about']/zoneItem[1]/html/head/title"/>
 		<xsl:variable name="level">
Index: webapp/cms/skins/demo/templates/course/stylesheets/template.xsl
===================================================================
--- webapp/cms/skins/demo/templates/course/stylesheets/template.xsl	(revision 29382)
+++ webapp/cms/skins/demo/templates/course/stylesheets/template.xsl	(working copy)
@@ -24,5 +24,6 @@
 		exclude-result-prefixes="sitemap ametys">
 
 	<xsl:import href="skin://stylesheets/main.xsl" />
+    <xsl:import href="skin://services/link-directory/pages/services/directory/utils/inputdata_utils.xsl"/>
 
 </xsl:stylesheet>
\ No newline at end of file
Index: webapp/cms/skins/demo/templates/index/stylesheets/template.xsl
===================================================================
--- webapp/cms/skins/demo/templates/index/stylesheets/template.xsl	(revision 29382)
+++ webapp/cms/skins/demo/templates/index/stylesheets/template.xsl	(working copy)
@@ -24,6 +24,7 @@
 		exclude-result-prefixes="sitemap ametys">
 
 	<xsl:import href="skin://stylesheets/main.xsl" />
+	<xsl:import href="skin://services/link-directory/pages/services/directory/utils/inputdata_utils.xsl"/>
 		
 	<xsl:template name="template-title">		
 		<h1 class="hidden-L"><i18n:text i18n:key="SKIN_TITLE" i18n:catalogue="skin.{$skin}"/> - <i18n:text i18n:key="SKIN_SUBTITLE" i18n:catalogue="skin.{$skin}"/></h1>
@@ -49,6 +50,7 @@
 	
 	<xsl:template name="additionnal-css">
 		<link rel="stylesheet" type="text/css" href="{ametys:templateURL('css/index.css')}"/>
+		<link rel="stylesheet" type="text/css" href="{ametys:skinURL('css/services/linkdirectory-inputdata-index.css')}" media="screen, print, handheld"/>
 	</xsl:template>
 	
 	
Index: webapp/cms/skins/demo/templates/mypage/stylesheets/template.xsl
===================================================================
--- webapp/cms/skins/demo/templates/mypage/stylesheets/template.xsl	(revision 29382)
+++ webapp/cms/skins/demo/templates/mypage/stylesheets/template.xsl	(working copy)
@@ -23,6 +23,7 @@
 		xmlns:date="http://exslt.org/dates-and-times" extension-element-prefixes="date"
 		exclude-result-prefixes="sitemap ametys">
 
-	<xsl:import href="skin://stylesheets/main.xsl" />
-
+	<xsl:import href="skin://stylesheets/main.xsl"/>
+    <xsl:import href="skin://services/link-directory/pages/services/directory/utils/inputdata_utils.xsl"/>
+    
 </xsl:stylesheet>
\ No newline at end of file
Index: webapp/cms/skins/demo/templates/page/stylesheets/template.xsl
===================================================================
--- webapp/cms/skins/demo/templates/page/stylesheets/template.xsl	(revision 29382)
+++ webapp/cms/skins/demo/templates/page/stylesheets/template.xsl	(working copy)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-   Copyright 2012 Anyware Services
+   Copyright 2015 Anyware Services
 
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
@@ -24,5 +24,11 @@
 		exclude-result-prefixes="sitemap ametys">
 
 	<xsl:import href="skin://stylesheets/main.xsl" />
+	<xsl:import href="skin://services/link-directory/pages/services/directory/utils/inputdata_utils.xsl"/>
+    
+    <xsl:template name="additionnal-css">
+        <link rel="stylesheet" type="text/css" href="{ametys:skinURL('css/services/linkdirectory-inputdata.css')}" media="screen, print, handheld"/>
+    </xsl:template>
 
+    
 </xsl:stylesheet>
\ No newline at end of file
Index: webapp/cms/skins/demo/templates/page/template.xml
===================================================================
--- webapp/cms/skins/demo/templates/page/template.xml	(revision 29382)
+++ webapp/cms/skins/demo/templates/page/template.xml	(working copy)
@@ -19,7 +19,6 @@
     <description i18n="true">SKIN_BO_ZONING_PAGE_DESCRIPTION</description> 
 
     <thumbnail> 
-        <medium>thumbnail_32.png</medium> 
         <large>thumbnail_48.png</large>
     </thumbnail> 
     
Index: webapp/cms/skins/demo/templates/program-list/stylesheets/template.xsl
===================================================================
--- webapp/cms/skins/demo/templates/program-list/stylesheets/template.xsl	(revision 29382)
+++ webapp/cms/skins/demo/templates/program-list/stylesheets/template.xsl	(working copy)
@@ -24,5 +24,6 @@
 		exclude-result-prefixes="sitemap ametys">
 
 	<xsl:import href="skin://stylesheets/main.xsl" />
+	<xsl:import href="skin://services/link-directory/pages/services/directory/utils/inputdata_utils.xsl"/>
 
 </xsl:stylesheet>
\ No newline at end of file
Index: webapp/cms/skins/demo/templates/program/stylesheets/template.xsl
===================================================================
--- webapp/cms/skins/demo/templates/program/stylesheets/template.xsl	(revision 29382)
+++ webapp/cms/skins/demo/templates/program/stylesheets/template.xsl	(working copy)
@@ -24,5 +24,6 @@
 		exclude-result-prefixes="sitemap ametys">
 
 	<xsl:import href="skin://stylesheets/main.xsl" />
+    <xsl:import href="skin://services/link-directory/pages/services/directory/utils/inputdata_utils.xsl"/>
 
 </xsl:stylesheet>
\ No newline at end of file
