Blogg

Alfresco och ECM

Disable a page in Alfresco Share

jun 23 2011

Kategorier : Tips och Tricks, Handledning

Du har nu lyckats med att installera Alfresco Share och vill nu göra Share tillgänglig över internet så att du kan samarbeta med extern användare. Men du vill av olika anledningar inte att de skall komma åt vissa sidor, som till exempel Arkiv (Repository). Det första du gör är att ta bort den från verktygsfältet, genom att följa instruktionerna på Alfresco wiki sida [Share Header][1].

Det tar bort alla länkar till sidan, men som den erfarna Alfresco användaren du är så vet du att du fortfarande kan komma åt sidan genom att skriva den kompletta url:en till sidan, för repository är den <servernamn>/share/page/repository. Och det här är något du vill inaktivera.

Det är faktiskt enkelt att göra, url:en kommer fortfarande vara tillgänglig, men sidan visar inget annat än verktygsraden och ett meddelande.

Share disable page

Börja med att lägga till i

tomcat/shared/classes/alfresco/web-extension

de här mapparna och undermappar

site-data/pages
site-data/template-instances
templates


Vad du vill göra är att hitta definitionsfilen för den sida som du vill inaktivera och kopiera till site-data/pages. För sidan som används i det här exemplet, repository, är det tomcat/webapps/share/WEB-INF/classes/alfresco/site-data/pages/repository.xml
Efter kopiering, redigera sidan så att den ser ut så här

<?xml version='1.0' encoding='UTF-8'?>
<page>
   <title>Repository Browser</title>
   <title-id>page.repository.title</title-id>
   <description>Browse content across the whole Repository</description>
   <description-id>page.repository.description</description-id>
   <template-instance>disabled</template-instance>
   <authentication>user</authentication>
</page>

Den viktiga ändringen här är <template-instance>disabled</template-instance>, vi säger till sidan att använda en ny mall, som vi nu måste skapa.
Skapa filen site-data/template-instances/disabled.xml med innehåll.

<?xml version='1.0' encoding='UTF-8'?>
<?xml version='1.0' encoding='UTF-8'?>
<template-instance>
   <template-type>disabled</template-type>
</template-instance>

och den faktiska mallfilen site-data/templates/disabled.ftl med innehåll

<#include "/org/alfresco/include/alfresco-template.ftl" />
<@templateHeader />

<@templateBody>
   <div id="alf-hd">
      <@region id="header" scope="global" protected=true />
   </div>
<hr/>
This page is not available.
</@>

<@templateFooter>
   <div id="alf-ft">
      <@region id="footer" scope="global" protected=true />
   </div>
</@>

Du kan naturligtvis lämna vilket meddelande du vill.
Ladd om webscripten eller start om din server, och sidan är inaktiverad.
För varje ytterligare sida som du vill inaktivera så kan du återanvända mallen. Allt du behöver göra är första steget att kopiera definitionsfilen för sida, och ändra referensen till den nya sida. För att vet vilken fil det är, navigera till den sidan som du vill inaktivera, det som står efter /page/ är oftast lika med deinitionsfilen med filändelsen xml.

Och naturligtvis går detta att göra mer avancerat så som att lägga till response status 404, lägga till I18N stöd, eller inludera component webscripts. Men det här är en bit på vägen.