A customer of ours had created his own news page. It consisted of one big HTMl page that he had added to over the past 15 years. Unfortunately it was one big HTMl page and thus not very practical for Search Engine Optimization. At least we thought we could do more.
To restructure it according to our SEO’s requirements in Typo3 we manually created a page for each news item. That was a bit of work, but I couldn’t think of a better solution. Each new page was then put below a page for the appropriate year to make things easier to find. (And to create more pages for our SEO). I then added a sitemap with abstract to the yearly pages to help the users navigate. But even with all kinds of CSS formating that just didn’t cut it.
The yearly pages themselves were supposed to make the visitors want to go and look at the detail pages a sort of teaser effect. For that we needed a ‘more’ button and a teaser image from the content element. – At first I thought of adding the images to each page resource and then creating a menu from that. We had done that often enough. That would have meant editing each page property though and would have meant more work for the customer when he later adds news items.
So what I did, was to re-write the standard Typo3 sitemap with abstracct. Now the yearly pages look really great and they are easily added to.
OK, so here’s the code:
menu {
news = HMENU
news {
special = directory
special.value.field = pages
wrap = <div>|</div><hr>
1 = TMENU
1 {
NO = 1
NO {
allWrap = <hr><div>|</div>
stdWrap {
htmlSpecialChars = 1
}
ATagParams = target = "_top"
afterWrap = |
linkWrap = <h2>|</h2>
after.cObject = COA
after.cObject {
wrap = |
10 < styles.content.get
10 {
select {
pidInList.field = uid
max = 1
}
renderObj = COA
renderObj {
wrap = <table cellpadding="0" cellspacing="0" border="0"><tr>|</tr></table>
10 = TEXT
10 {
wrap = <td>|</td>
field = bodytext
stdWrap {
crop = 360 | [...]
parseFunc < lib.parseFunc_RTE
parseFunc.nonTypoTagStdWrap.HTMLparser {
keepNonMatchedTags = 0
htmlSpecialChars = 2
allowTags = img,u,ul,ol,b,strong,li,em,i,p,br,h1,h2,h3
removeTags = a
}
}
}
20 = IMAGE
20 {
wrap = <td>|</td>
file {
import = uploads/pics/
import.field = image
width = 110
}
altText.field = header
titleText.field = header
}
}
}
20 = TEXT
20 {
required = 1
data = field : tx_gstaliaspro_aliaspro
wrap = <a href="|">more...</a><br />
}
} # after.cObject
} # NO
target = page
} # 1
} # news
Now overload the standard definition of sitemap 4:
tt_content.menu.20.4 < menu.news
For all those that like me find formating code very important, I excuse myself. WordPress just went and swallowed most of the spaces – as it should according to the HTML definition. One of these days when I have lots of time I will go and find a better solution for posting code.
0 Comments