Vårstädning – ta bort gamla inputmallar ur ditt källkodsträd
2010-03-31 17:46 av Niklas Olsson
När din polopolyinstans växer och därmed källkodsträdet kan det vara bra att jämna mellanrum se över och ta bort eventuell kod som inte längre används. En del av detta är inputmallar som blir utdaterade med tiden. Jag tänkte därför tipsa om hur man kan ta bort gamla inputmallar som ligger och skräpar i systemet och det är några steg att hålla i huvudet.
Denna beskrivning är baserad på användandet av ramverket Pluris så alla detaljer kanske inte är relevanta för ditt projekt men principen bör framgå i alla fall.
Här följer en steg för steg beskrivning hur man tar bort en gammal inputmall:
- Börja med att se till att inga instanser finns publicerade i någon contentlista. Det är också bra om man
kan ta bort alla instanser av de mallar du ska ta bort. (dock ej nödvändigt) - Skapa därefter två nya policyklasser, en för artiklar och en för avdelningar som kommer att användas istället för de deprikerade.
package se.kth.ite.cortina.policy.article;
import com.polopoly.cm.policy.ArticlePolicy;
/**
* This policy is used as policy for deprecated templates.
*/
public class DeprecatedArticlePolicy extends ArticlePolicy {}
- I template.xml, sätt policyn till DeprecatedArticlePolicy eller DeprecatedDepartmentPolicy
beroende på om det är en artikel eller avdelning. och ta bort allt som inte längre behövs i mallfilen.
Det går även att t.ex. skapa en DeprecatedContentPolicy som kan användas istället för båda ovanstående.
<?xml version="1.0" encoding="ISO-8859-1"?>
<template-definition version="1.0" xmlns="http://www.polopoly.com/polopoly/cm/app/xml">
<input-template name="it.article.coursesearch" label="template.article.coursesearch.label">
<policy>se.kth.ite.cortina.policy.article.DeprecatedArticlePolicy</policy>
<editor>se.kth.ite.cortina.widget.app.OLocalizedContentTopPolicyWidget</editor>
<viewer>se.kth.ite.cortina.widget.app.OLocalizedContentTopPolicyWidget</viewer>
</input-template>
</template-definition> - I content.xml sätt
<entry mode="remove">för att ta bort mallen ur avdelningen för mallar, på så sätt försvinner den ur alla mallistningar också.
<contentlist>
<!-- REMOVED DUE TO DEPRECATION -->
<entry mode="remove">
<metadata>
<referredContent>
<contentid>
<externalid>it.article.coursesearch</externalid>
</contentid>
</referredContent>
</metadata>
</entry>
</contentlist> - Ta bort controllern, init.xml och all annan kod som enbart dessa använder.Policyn ska vara kvar eftersom polopoly verkar fungera så att för att importera en befintlig mall så måste den gamla policyn finns kvar.
Detsamma gäller förmodligen också eventuella widgets.
Se också till att ta bort externalid från eventuella andra contentcreators och contentwrappers. Sök efter externalid för att vara säker. - Kör en deploy
- Ta bort template.xml, content.xml, policyn och eventuella widgets samt dess dess katalog och andra spår av mallen
Klar!
2010-03-31 21:36
[...] This post was mentioned on Twitter by polopolyforum.se, Patric Jansson. Patric Jansson said: RT @polopolyforum: Nytt inlägg på polopolyforum: Vårstädning – ta bort gamla inputmallar ur ditt källkodsträd http://bit.ly/9xcQVv [...]