Index: main/plugin-odf-web/i18n/messages_en.xml
===================================================================
--- main/plugin-odf-web/i18n/messages_en.xml	(revision 32143)
+++ main/plugin-odf-web/i18n/messages_en.xml	(working copy)
@@ -303,4 +303,18 @@
     <message key="PLUGINS_ODFWEB_EXPORT_INDESIGN_DOWNLOAD_INDT_DIALOG_OK">Ok</message>
     <message key="PLUGINS_ODFWEB_EXPORT_INDESIGN_DOWNLOAD_INDT_DIALOG_CANCEL">Cancel</message>
 
+    <!-- Service insert program -->
+    <message key="PLUGINS_ODFWEB_RIGHT_SERVICE_INSERT_PROGRAM_LABEL">Insert program</message>
+    <message key="PLUGINS_ODFWEB_RIGHT_SERVICE_INSERT_PROGRAM_DESCRIPTION">Right to create an insert program service</message>
+    
+    <message key="PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_LABEL">Insert program</message>
+    <message key="PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_DESCRIPTION">The service displays a program of another page (current website or another website).\n After update and validation of program on original page, you will the new version also displayed on current page.</message>
+    <message key="PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_CONTENT">Program to insert</message>
+    <message key="PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_CONTENT_DESC">Name of the program to insert.</message>
+    <message key="PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_METADATASET">View</message>
+    <message key="PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_METADATASET_DESC">Select view for programs digest :&lt;br/&gt;&lt;ul&gt;&lt;li&gt;- &lt;b&gt;abstract&lt;/b&gt; or short view : title, abstract, illustration and linked to program&lt;/li&gt;&lt;li&gt;- &lt;b&gt;link list&lt;/b&gt; : Title et link to program&lt;/li&gt;&lt;li&gt;- &lt;b&gt;complète view&lt;/b&gt; : whole program (title, text, illustration, ...)&lt;/li&gt;&lt;/ul&gt;</message>
+    <message key="PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_XSLT">Display</message>
+    <message key="PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_XSLT_DESC">Select the display to use when displaying this service</message>
+    
+    <message key="PLUGINS_ODFWEB_INSERT_PROGRAM_SERVICE_XSLT_VIEW_LABEL">Default</message>
 </catalogue>
Index: main/plugin-odf-web/i18n/messages_fr.xml
===================================================================
--- main/plugin-odf-web/i18n/messages_fr.xml	(revision 32143)
+++ main/plugin-odf-web/i18n/messages_fr.xml	(working copy)
@@ -303,4 +303,18 @@
     <message key="PLUGINS_ODFWEB_EXPORT_INDESIGN_DOWNLOAD_INDT_DIALOG_OK">Ok</message>
     <message key="PLUGINS_ODFWEB_EXPORT_INDESIGN_DOWNLOAD_INDT_DIALOG_CANCEL">Annuler</message>
 
+    <!-- Service insert program -->
+    <message key="PLUGINS_ODFWEB_RIGHT_SERVICE_INSERT_PROGRAM_LABEL">Afficher une formation</message>
+    <message key="PLUGINS_ODFWEB_RIGHT_SERVICE_INSERT_PROGRAM_DESCRIPTION">Droit de créer un service d'affichage d'une formation</message>
+    
+    <message key="PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_LABEL">Afficher une formation</message>
+    <message key="PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_DESCRIPTION">Ce service permet d'afficher une formation hébergée par une autre page (du site courant ou même d'un autre site).\n Toute modification de la formation de la page d'origine (une fois validée) sera automatiquement répercutée.</message>
+    <message key="PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_CONTENT">Formation à insérer</message>
+    <message key="PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_CONTENT_DESC">Nom de la formation à insérer.</message>
+    <message key="PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_METADATASET">Vue</message>
+    <message key="PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_METADATASET_DESC">Choisissez la vue utilisée pour le rendu de la formation remontée :&lt;br/&gt;&lt;ul&gt;&lt;li&gt;- &lt;b&gt;vue résumé&lt;/b&gt; ou mode réduit : titre, résumé, illustration et lien vers la formation&lt;/li&gt;&lt;li&gt;- &lt;b&gt;vue référencement&lt;/b&gt; : titre et lien vers la formation uniquement&lt;/li&gt;&lt;li&gt;- &lt;b&gt;vue complète&lt;/b&gt; : formation entière (titre, texte, illustration, ...)&lt;/li&gt;&lt;/ul&gt;</message>
+    <message key="PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_XSLT">Affichage</message>
+    <message key="PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_XSLT_DESC">Rendu à utiliser pour l'affichage du service</message>
+    
+    <message key="PLUGINS_ODFWEB_INSERT_PROGRAM_SERVICE_XSLT_VIEW_LABEL">Par défaut</message>
 </catalogue>
Index: main/plugin-odf-web/pages/services/insert-program/view.xml
===================================================================
--- main/plugin-odf-web/pages/services/insert-program/view.xml	(revision 0)
+++ main/plugin-odf-web/pages/services/insert-program/view.xml	(revision 0)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Copyright 2010 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.
+   -->
+<service>
+	<label i18n="true">PLUGINS_ODFWEB_INSERT_PROGRAM_SERVICE_XSLT_VIEW_LABEL</label>
+</service>
\ No newline at end of file
Index: main/plugin-odf-web/pages/services/insert-program/view.xsl
===================================================================
--- main/plugin-odf-web/pages/services/insert-program/view.xsl	(revision 0)
+++ main/plugin-odf-web/pages/services/insert-program/view.xsl	(revision 0)
@@ -0,0 +1,27 @@
+<?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:i18n="http://apache.org/cocoon/i18n/2.1"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    
+    <xsl:param name="skin"/>
+    
+    <xsl:template match="/content">
+        <xsl:copy-of select="html"/>
+    </xsl:template>
+    
+</xsl:stylesheet>
Index: main/plugin-odf-web/plugin.xml
===================================================================
--- main/plugin-odf-web/plugin.xml	(revision 32143)
+++ main/plugin-odf-web/plugin.xml	(working copy)
@@ -668,7 +668,77 @@
             </extension>
         </extensions>
     </feature>
+   
+    <feature name="insert-program-service">
+        <extensions>
+            <extension point="org.ametys.runtime.plugins.core.right.RightsExtensionPoint"
+                       id="org.ametys.odf.service.insert.program.rights">
+                <right id="Odf_Right_Service_InsertProgram">
+                    <label i18n="true">PLUGINS_ODFWEB_RIGHT_SERVICE_INSERT_PROGRAM_LABEL</label>
+                    <description i18n="true">PLUGINS_ODFWEB_RIGHT_SERVICE_INSERT_PROGRAM_DESCRIPTION</description>
+                    <category i18n="true">plugin.web:PLUGINS_WEB_RIGHTS_SERVICE_CREATE_CATEGORY</category>
+                </right>
+            </extension>
+            
+            <extension point="org.ametys.web.service.ServiceExtensionPoint"
+                       class="org.ametys.web.service.StaticService"
+                       id="org.ametys.odf.service.InsertProgram">
+
+                <url>service/insert-program.html</url>
+                <right>Odf_Right_Service_InsertProgram</right>
+                
+                <label i18n="true">PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_LABEL</label>
+                <description i18n="true">PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_DESCRIPTION</description>
+                <category i18n="true">PLUGINS_WEB_SERVICE_CATEGORY_31_ODF</category>
+                <thumbnail>
+                    <small>img/services/insert_program_16.png</small>
+                    <medium>img/services/insert_program_32.png</medium>
+                    <large>img/services/insert_program_48.png</large>
+                </thumbnail>
+                
+                <parameters>
+                    <parameter name="contentId" type="string">
+                        <label i18n="true">PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_CONTENT</label>
+                        <description i18n="true">PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_CONTENT_DESC</description>
+                        <validation>
+                            <mandatory/>
+                        </validation>
+                        <widget>pick-content</widget>
+                        <widget-params>
+                            <param name="menuItems">bySearch</param>
+                            <param name="bySearchFactory">uitool-odf-education</param>
+                        </widget-params>
+                    </parameter>
+                    <parameter name="metadataSetName" type="string">
+                        <label i18n="true">PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_METADATASET</label>
+                        <description i18n="true">PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_METADATASET_DESC</description>
+                        <widget>metadata-set-web</widget>
+                        <validation>
+                            <mandatory/>
+                        </validation>
+                    </parameter>
+                    <parameter name="xslt" type="string">
+                        <label i18n="true">PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_XSLT</label>
+                        <description i18n="true">PLUGINS_ODFWEB_SERVICE_INSERT_PROGRAM_XSLT_DESC</description>
+                        <default-value>pages/services/insert-program/view.xsl</default-value>
+                        <validation>
+                            <mandatory/>
+                        </validation>
+                        <enumeration>
+                            <custom-enumerator class="org.ametys.web.service.ServiceXSLTEnumerator">
+                                <path>pages/services/insert-program</path>
+                            </custom-enumerator>
+                        </enumeration>
+                    </parameter>
+                </parameters>
+            </extension>
+        </extensions>
+    </feature>
     
+    
+    
+    
+    
     <feature name="odf.web.program.list.service.cache.policy">
         <extensions>
             <extension point="org.ametys.web.cache.pageelement.PageElementCachePolicyExtensionPoint/zoneItem"
@@ -945,5 +1015,4 @@
                        class="org.ametys.plugins.odfweb.WebODFMetadataIndexer"/>
         </components>
     </feature>
-    
 </plugin>
Index: main/plugin-odf-web/sitemap.xmap
===================================================================
--- main/plugin-odf-web/sitemap.xmap	(revision 32143)
+++ main/plugin-odf-web/sitemap.xmap	(working copy)
@@ -33,6 +33,8 @@
 			<map:generator name="catalogs" src="org.ametys.plugins.odfweb.generators.CatalogsGenerator"/>
 			<map:generator name="eligible-metadata" src="org.ametys.plugins.odfweb.generators.EligibleMetadataForLevelGenerator"/>
 			<map:generator name="indesign-templates" src="org.ametys.plugins.odfweb.generators.GetInDesignTemplatesGenerator"/>
+			
+			<map:generator name="content-html" src="org.ametys.web.content.HtmlContentGenerator" logger="org.ametys.web.content.HtmlContentGenerator"/>
 		</map:generators>	
 		
 		<map:actions>
@@ -302,6 +304,23 @@
             <map:match pattern="indesign/download/*/*">
                 <map:read src="context://skins/{1}/indesign/{2}"/>
             </map:match>
+            
+            <!-- +
+                 | INSERT PROGRAM Service
+                 + -->
+            <map:match pattern="service/insert-program.html">
+                <map:generate type="content-html" src="{parent-context-attr:contentId}">
+                    <map:parameter name="metadataSetName" value="{parent-context-attr:metadataSetName}"/>
+                </map:generate>
+                <map:transform src="service://@xslt">
+                    <map:parameter name="skin" value="{request-attr:skin}"/>
+                </map:transform>
+                <map:transform type="i18n">
+                    <map:parameter name="locale" value="{request-attr:sitemapLanguage}"/>
+                    <map:parameter name="plugin" value="{request-attr:pluginName}"/>
+                </map:transform>
+                <map:serialize type="xml"/>
+            </map:match>
         </map:pipeline>
     </map:pipelines>
 </map:sitemap>
