**'' and ''****'' tags, and probably some more, just get stripped anyway, regardless of what you specify in the ''**allowTags**'' configuration.
In fact, the only way to have your ''****'' tags survive a save-operation, is to link them to a class:
RTE.config.tt_content.bodytext.proc {
allowedClasses=signalWord,H1, H2, H3, P, bodytext, authors
denyTags=font, size
}
- where you also have a css entry:
span.signalWord {background-color:yellow;}
Now, if you select a text in the RTE, you'll see that you can select 'signalWord' in the combobox 'text'. This comes down to applying the css class 'signalWord' to the selected text. The RTE automatically inserts the ''****'' and ''****'' tags around the selected text, and it adds a class attribute to the span tag.
=====File browser extension: moc_filemanager=====
This extension is a bit tricky to install. Here are some points which merit your attention:
*file permissions on the server for the mount point must be 777
*relative path for the mount point is really an //absolute //path from your server root (//not// the webserver's document root, but the real root root) to the directory you want to mount. So:
''**/rootdir/mydir/dir_to_mount/**'' is wrong
''**rootdir/mydir/dir_to_mount **''is right
*relative path must not start nor end with a slash (/)
*deleting directories does not work under Windows
=====Frontend Editing Options for Everyone=====
If you think the Typo3 backend is too complicated or the interface is just not slick enough for most of your users, consider editing your website in the frontend. You can even let ordinary frontend users edit your site.
====Pencils in the frontend: let your backend users edit in the frontend====
Let's start with your backend users. If you want to make the frontend editing options available to your backend users, do the following.
In your template, add the following line:
page.config.admPanel = 1
This will make the admin panel available in all pages that rely on your template. If you're the admin user, you will now always get to see the admin panel. First, you have to log in to the backend. Now you will get to see the admin panel if you access the website through Typo3, for instance by choosing the magnifier-icon for a particular page (show option in page tree).
If you want to make the admin panel available to other backend users, use "Tools > Useradmin" and add the following typoscript code to the "**Tsconfig**" field:
admPanel {
enable.edit = 1
module.edit.forceDisplayFieldIcons = 1
hide = 0
}
But what if you only want to display the pencils, but not the panel itself? Just change ''**hide = 0**'' to ''**hide = 1**''.
====Permissions do not always translate into pencils, or how to avoid irrelevant pencils====
If you do not want to give your users access to all page or content elements, simply deny them the access by setting the relevant "Explicitly allow/deny field values" in the backend, under "List" > "Globe", where you can determine user- and usergroup settings.
The "denied" parts will still be shown with a pencil in the frontend, however. If you would like to //not// show a pencil for a certain content element, you have to resort to a trick: simply leave the "header" field empty.
Of course, if a user does not have any rights at all for a certain page, then no pencils will show up in the frontend.
===Pencil not showing up?===
If the content on a certain page is in fact derived from another page, then the user must have permissions for //both// pages. Otherwise, the pencil will not show up for this content.
Also, make sure that you make the "pencil-editable" page the top-level page in a db-mount! (Or else, give the user the same usergroup which has access rights to the pages above).
====Frontend users editing the website: simulatebe extension====
You can also let your ordinary frontend users edit the website. Just plug in the simulatebe extension. The documentation is a little terse, so here's some additional information on configuring this extension.
For this extension to work, you need to link a backend user to a frontend user account. So, first of all, go through the steps described above. Do not forget to add the backend user specific TS configuration.
Now, find the section in your template where the header is defined. Add the following code:
page.headerData.10 < plugin.tx_simulatebe_pi1
But pay close attention to the context. If you already have header data (which is extremely likely) you will not want to overwrite this. So, here's an example with some more context:
# Copying the content from TEMPLATE for -section:
page.headerData.10 < temp.headTemplate
page.headerData.11 = TEXT
page.headerData.11.value=
page.headerData.12 < plugin.tx_simulatebe_pi1
As you can see, we have changed the dummy key "10" to "12", because "10" was already taken (remember, typoscript is just a way of defining and filling PHP arrays).
Be aware that there are some issues with the simulatebe extension. I have a problem, for example, when I link a frontend user to a random, non-admin backend user. Whenever I log out of the frontend with this user, my admin backend user is logged out too! Even though it is not even linked to the front end user.
20051013: This issue mentioned above only pops up when you're using the same computer, and the same browser. In other words: it's a cookie issue. It should not stop you from using simulatebe extension.
====Note of attention when using RTE====
I haven't had time to confirm this, but I suspect that things go awry if the backend user is configured with another language than the default language of the site. In that case, the RTE is not shown.
====phpMyAdmin under Windows====
If you install Typo3 on a Windows machine, chances are that the newer versions of phpMyAdmin (starting with 2.5.6) do **not** work. If you try to run the module from within Typo3, you'll get an error message:
Error in init.php: Path to TYPO3 main dir could not be resolved correctly.
Solving this is surprisingly easy. Go to the extension's installation directory. This is usually ''**typo3\ext\phpmyadmin**''. Here, find the file ''**conf.php**'', and replace line 13 (or somewhere near) with the following code (should be somewhere near line 13):
$MCONF['phpMyAdminSubDir'] = 'phpmyadmin-2.6.4-pl3/';
The replacement code has all undercast in the right hand side of the assignment.
So, in your directory structure, change the name of the folder to all undercast too. That's all folks!
=====Descriptive urls: realurl extension=====
Use the extension called //realurl //to have your Typo3 page titles used in the urls. E.g.:
[[http://greatcampsites.com/index.php?id=32|http://greatcampsites.com/index.php?id=32]]
will be translated into for instance [[http://greatcampsites.com/france/|http://greatcampsites.com/france/]]
====The Apache side of things====
You are going to need the Apache mod_rewrite module for this to work. Once this module is installed, there are two ways to configure mod_rewrite for a website on Apache:
*.htaccess (a file in the public_html or web root of the site)
*httpd.conf (Apache's configuration file)
I have used the latter method. Here's an example:
ServerName campingbeurs.solin.nl
ServerAlias www.campingbeurs.solin.nl
DocumentRoot /home/solin/domains/campingbeurs.solin.nl/public_html
ErrorLog /home/solin/domains/campingbeurs.solin.nl/logs/error_log
CustomLog /home/solin/domains/campingbeurs.solin.nl/logs/access_log combined
ScriptAlias /cgi-bin/ /home/solin/domains/campingbeurs.solin.nl/cgi-bin/
## Rewriting for realurl
RewriteEngine On
RewriteRule ^/(typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads|showpic\.php)(/.*)?$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^/(.*)$ /index.php [L,E=ORIG_SCRIPT_NAME:/index.php]
Options -Indexes IncludesNOEXEC FollowSymLinks
Please refer to the realurl or Apache documentation to see what it all means exactly.
====The Typo3 side of things====
Put the following in your ''**localconf.php**'' file (you can edit this file with the Typo3 installation module, if you want to):
$TYPO3_CONF_VARS['FE']['addRootLineFields'].= ',tx_realurl_pathsegment,alias,nav_title,title';
$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
'_DEFAULT' => array(
'init' => array(
'enableCHashCache' => 1,
'appendMissingSlash' => 'ifNotFile',
'enableUrlDecodeCache' => 1,
'enableUrlEncodeCache' => 1,
),
'redirects' => array(),
'preVars' => array(
array(
'GETvar' => 'no_cache',
'valueMap' => array(
'nc' => 1,
),
'noMatch' => 'bypass',
),
array(
'GETvar' => 'L',
'valueMap' => array(
'dk' => '2',
'de' => '1',
),
'noMatch' => 'bypass',
),
),
'pagePath' => array(
'type' => 'user',
'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
'spaceCharacter' => '_',
'languageGetVar' => 'L',
'expireDays' => 7,
'rootpage_id' => 472,
),
'fixedPostVars' => array(),
'postVarSets' => array(
'_DEFAULT' => array(
// news archive parameters
'archive' => array(
array(
'GETvar' => 'tx_ttnews[year]' ,
),
array(
'GETvar' => 'tx_ttnews[month]' ,
'valueMap' => array(
'january' => '01',
'february' => '02',
'march' => '03',
'april' => '04',
'may' => '05',
'june' => '06',
'july' => '07',
'august' => '08',
'september' => '09',
'october' => '10',
'november' => '11',
'december' => '12',
)
),
),
// news pagebrowser
'browse' => array(
array(
'GETvar' => 'tx_ttnews[pointer]',
),
),
// news categories
'select_category' => array (
array(
'GETvar' => 'tx_ttnews[cat]',
),
),
// news articles and searchwords
'article' => array(
array(
'GETvar' => 'tx_ttnews[tt_news]',
'lookUpTable' => array(
'table' => 'tt_news',
'id_field' => 'uid',
'alias_field' => 'title',
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-',
),
),
),
array(
'GETvar' => 'tx_ttnews[swords]',
),
),
),
),
// configure filenames for different pagetypes
'fileName' => array(
'index' => array(
'rss.xml' => array(
'keyValues' => array(
'type' => 100,
),
),
'rss091.xml' => array(
'keyValues' => array(
'type' => 101,
),
),
'rdf.xml' => array(
'keyValues' => array(
'type' => 102,
),
),
'print.html' => array(
'keyValues' => array(
'type' => 98,
),
),
'atom.xml' => array(
'keyValues' => array(
'type' => 103,
),
),
),
),
),
);
Set the value for ''**rootpage_id**'' to your actual root page.
In your main template (i.e. the template for the root page), add this:
## Rewrite urls
config.simulateStaticDocuments = 0
config.baseURL = http://greatcampsites.com
config.tx_realurl_enable = 1
config.prefixLocalAnchors = all
Please do not forget to mention the protocol (e.g. http) in ''**config.baseURL**'', or things will go wrong!
====Pitfalls====
20061210
Not only do you need to mention the protocol, set the value for ''**rootpage_id**'', but you also need to:
* set: ''**'enableUrlDecodeCache' => 0,**'' in ''**localconf.php**'', in the array under the key ''**init**''
* set: ''**'firstHitPathCache' => 1,**'' under ''**pagePath**''
You will probably notice a performance decrease when you do not cache the url decoding mechanism, but on one of my clients' sites, I couldn't get realurl to perform decently. I just kept running into:
Error!
Reason: Segment "xxxx" was not a keyword for a postVarSet as expected!
=====Group and Redirect Visitors by Country: dmc_geoip=====
The extension //dmc_geoip// uses a visitor's ip-address to redirect the visitor to a subsite. This works well, and is pretty straightforward. Just include the following code in the page where the redirect should take place. This is usually your home page, or any other page where a language selector resides.
The code should be placed in the //setup// part of your TypoScript template.
modules.tx_dmc_geoip {
country.rootpages {
NL = 9
FR = 11
GB = 10
US = 10
DE = 12
}
## To disable the redirection, uncomment the following line (delete the "##") ~ Verwijder op de volgende regel de "##" om het doorsturen uit te schakelen
##redirect = 0
}
The extension maps the ip-address to a country code, using a database. The country code is used in the TypoScript to establish the redirect to a certain page. For instance, in the code above, all visitors from France (FR) are redirected to the page with the id "11".
====Gotchas====
1. Do not forget to include this code in the page you're redirecting to (e.g. the root page of a subsite):
modules.tx_dmc_geoip {
## To disable the redirection, uncomment the following line (delete the "##") ~ Verwijder op de volgende regel de "##" om het doorsturen uit te schakelen
redirect = 0
}
This code can be added to an extension template, which contains the same TypoScript for each subsite.
2. Make the redirecting page (e.g. your homepage) a non-cached page.
3. If you're using this extension in combination with realurl (pretty urls for typo3), be sure to set ''**redirect = 0**'' on (the typoscript template of) the page where you redirect to. So:
* Home page: redirect = 1 // Here you redirect. E.g.: uk visitors go to /english
* /english page: redirect = 0
=====Adding new products to so_featurematrix=====
Use this query to get all criteria, with the categories in front:
SELECT tx_sofeaturematrix_criteria.uid, tx_sofeaturematrix_categories.label, tx_sofeaturematrix_criteria.label
FROM tx_sofeaturematrix_criteria, tx_sofeaturematrix_categories
WHERE tx_sofeaturematrix_categories.uid = tx_sofeaturematrix_criteria.category