Contentdokter

houdt uw content gezond...

Skip navigation.

CMS Blog

Better Google ranking with WEC Discussion Forum

I found out that my cms-blog was not very high up in the google-rankings. Even if you would search for the exact blog-item title you could still only find me on the 4th page or so. We can do better then this.

So to improve my ranking I wanted to change two things to the default install of the Typo3 WEC Discussion Forum. I wanted the blog title to show in the page title, I want to have the item title in the url and, while we are at it, I want the home-link to link to '/' instead of something like '/Home.2.0.html'.

Here we go:

1. Add the blogitem title to the page title

Add this code to the page template of your page that contains the wec plugin. NOTE: do not add this to the root-page of your website!:


config.noPageTitle = 2
page.headerData.20 = TEXT
page.headerData.20.value = Your site title
page.headerData.20.wrap = <title>|
page.headerData.30 = TEXT
page.headerData.30.value = Your Blog title
page.headerData.30.noTrimWrap=| - ||
page.headerData.40 = TEXT
page.headerData.40.value = Overview
page.headerData.40.noTrimWrap=| - ||
page.headerData.50 = TEXT
page.headerData.50.value = </title>

[globalVar = HTTP_GET_VARS|tx_wecdiscussion|single>0]
page.headerData.40 = CONTENT
page.headerData.40{
table=tx_wecdiscussion_post
# wrap the whole element
wrap=|
# the SQL-Query
select{
max=1
selectFields=subject
pidInList = 21
andWhere.data = global:HTTP_GET_VARS|tx_wecdiscussion|single
andWhere.wrap = uid='|'
}
renderObj=COA
renderObj{
5=TEXT
5{
noTrimWrap=| - ||
field=subject
}
}
}


What this does, in short, is, if the url contains the 'single' get-variable, if queries the wec-table for the item title and add this to the page-title. Simple enough, isn't?

The inspiration for this trick came from Infohit

2. Give our blog a pretty url (in the single item view)

First install and enable the realurl extension, if you haven't done so already. The manual describes this well enough.

Then you need to add this code to your existing realurl configuration (in localconfig.conf):


'postVarSets' => array(
'_DEFAULT' => array (
'view' => array(
array(
'GETvar' => 'tx_wecdiscussion[single]',
'lookUpTable' => array(
'table' => 'tx_wecdiscussion_post',
'id_field' => 'uid',
'alias_field' => 'subject',
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-',
),
),
),
),
'archive' => array(
array(
'GETvar' => 'tx_wecdiscussion[show_date]',
),
array(
'GETvar' => 'tx_wecdiscussion[archive]',
'valueMap' => array(null => '1'),
),
),
),
),


This code above will give you a url like '/cms-blog/view/top-6-of-badly-designed-teamsite-features/', just what the doctor ordered.

3. Make your home links link to '/'

This is not so easy with realurl, unfortunately. You'll need some php code. :-(

First you need to add this class to an existing (or create new) php-library file, normally located under /fileadmin:


class user_tweakMenu {
function replace( $I, $conf ) {
$I[ 'parts' ][ 'ATag_begin' ] = preg_replace(
'{' . $conf['searchFor'] . '}',
$conf['replaceWith'] ? $conf['replaceWith'] : "",
$I[ 'parts' ][ 'ATag_begin' ] );
return $I;
}
}


Then, in your template (at the site root level) you'll need to add this code (customise it to your situation and needs):


includeLibs.include1 = fileadmin/my_include.inc
temp.menu.1{
IProcFunc = user_tweakMenu->replace
IProcFunc.searchFor = /home/"
IProcFunc.replaceWith = /"
}


This trick is well described by Hannes Schmidt

Posted on Apr 03, 2008 Category: Typo3 Add Comment

Top 6 of badly designed teamsite features

OK, now for some items that c(sh)ould be improved. I've created this Top 6 for you:

1. The biggest design miss is the templating design. I really can't see why Interwoven has not hidden the concept of a dcr for the end-user of Teamsite. Have you ever met a cms-user that cared where his content was stored? Or understood why (s)he had to regenerate a file? Me neither. All they (should) care about is, data entry, approve in preview and submit. The implications of this design flaw are large: end-user are required to name both a dcr and a generated file, end-user need to be trained to always submit a dcr & the generated file together (and still forget to do so), developers need to write the same custom code that generates a file from a dcr over and over and over again, one has to be very careful when merging dcr's and/or generated files, etc. And all this could easily have been prevented if Interwoven would have hidden (or made transparent) the concept of a dcr.

2. a second design flaw is that there is no proper way to define "business rules" for the templating data (except formapi but we all know that javascript is not robust enough to enforce business rules). The only place where you are able to check that f.i. begin-date <= end-date is in the presentation-template, at which point you are far too late to signal this to the user.

3. another design miss is the generic lack for error handling. Consider for instance the (absence of) error handling in the 'command line tools' (clt's). At best these tools will write a user-readable error message back to STDOUT. The problem with this is that these clt's are most often used by a machine, a perl script for instance. And how is a perl script to know whether the return-string on STDOUT is an error? Why doesn't Interwoven use a unified error-messaging in there clt's: either begin all errors with 'ERROR-<id>:' which makes it possible to parse the message in perl? Btw, this behaviour is not restricted to clt's, in fact it is the common norm with Teamsite interfaces.

4. another award should go to the documentation that is often lacking enough detail. Two simple examples:
- where does it explain when a user has access to a branch/workarea/directory?
- for an wft-external task: "owner — specifies the owner of the task", so what does that mean?
The devil is often in the details, well Interwoven documentation is not fit for the details.

5. Before we finish I want to mention that a lot of the Teamsite code leaves "quick&dirty" impression and that the logging is scattered all over the place.

6. But I want ot finish with the fact that Interwoven is completely ignoring the devnet (devnet.interwoven.com) as a input-source for valuable feedback from the people who use Teamsite as a development platform on a day 2 day basis. It could be so simple. Spend an hour or two per week to read the forums and you know in what direction your tool should go.

Posted on Mar 01, 2008 Category: Teamsite Add Comment

Top 4 of best designed teamsite features

Maybe it is good to share with you want I think are the best features in the design of teamsite, and sure I'll also include the design area where teamsite should improve in a next blog.

But in this months issue the good teamsite stuff:

1. This must really be the branching and versioning system of Teamsite. What they did, or what it looks like they did, is taken the idea (and maybe even the code) of cvs and build a web-gui around it. This versioning can't be beaten. It gives you a detailed history of every file and roll-back options at both the file and full website level. Using the branching structure multiple websites (or releases) can be managed on the same server without any dependencies.

2. Runner-up must be the workflow system. It's strong, robust and very flexible. And it offers a wide range of different tasks: for user or group actions, to execute a command or cgi, to submit or update files/folders. However, what I deeply miss is easy support for email-notifications and unlocking (not by an external task as is the current use)

3. Another award must go to the complete openness of teamsite in every sense: input, processing and output. Any content can be uploaded via a file-mount, processing is open via command-line tools, java-api, soap and output can flow to every OS and web-technology (html, xml, jsp, php, asp.net, ruby, database, what ever you want)

4. And finally we should not forget the customisation options on offer. One can define custom cgi, workflows, scripts, templates, deployments.

Posted on Feb 11, 2008 Category: Teamsite Add Comment
Your language: Nederlands In english Auf deutsch En français