springe zu: navigation.

google meta verify-v1 in typo3 einbauen

ähnlich einfach wie der einbau des google-analytics-codes funktioniert auch der einbau des meta-tags für die google webmaster tools. das seiten-objekt hat ein array von meta-angaben, das einfach erweitert wird.

page.meta.verify-v1 = x___g_o_o_g_l_e_-_u_u_i_d___x

google analytics code in typo3 einbauen

um den google analytics code in ein typo3-template ohne weitere extension einzubauen, genügt es, im TEMPLATE-objekt (meistens heißt es page, manchmal seite oder was auch immer) folgendes typoscript einfügen:

page.900973 = HTML
page.900973.value (
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("XX-XXXXXX-X");
pageTracker._initData();
pageTracker._trackPageview();
</script>
)

die XXX's natürlich durch den eigenen code ersetzen.

typoscript TEXT mit RTE-parser formatieren

wenn man ein TEXT-objekt hat, aber möchte, dass links darin interpretiert werden und die standard-formatierungen für content-elemente greifen, funktioniert das so:

tmp.obj = TEXT
tmp.obj {
# text-objekt zuweisen
value = Hello World
# RTE-parser zuweisen
stdWrap.parseFunc = < lib.parseFunc_RTE
stdWrap.parseFunc.[...] // besondere einstellungen
}

anker im direct_mail newsletter funktionieren mit outlook nicht

man versucht eine html-e-mail zu versenden, die verweise an anker innerhalb der e-mail enthält. funktioniert überall, nur in outlook nicht? lösung: die anker mithilfe von css-klassen als block-elemente deklarieren - dann funktioniert die geschichte!

 <style type="text/css"> 
.anchorClass {
display: block;
line-height: 1px;
height: 1px;
}
</style>

<a name="c99" id="c99" class="anchorClass" ></a>

... warum auch immer.

content-elemente auf bestimmten seiten deaktivieren

wenn es mal notwendig wird, bestimmte inhalts-typen in typo3 zu deaktivieren, kann man in der PAGE TSConfig (nicht mit dem template verwechseln) einige elemente verstecken. das funktioniert im übrigen ganz allgemein mit listen-elementen:

TCEFORM.tt_content.CType {
removeItems = div, header, list, login, menu, (...), table, uploads, search
}

... allgemein also:

TCEFORM.<table-name>.<column-name>.removeItems = a, b, c

entfernt die optionen a, b und c aus der liste der verfügbaren werte für diese spalte.

favicon in typo3 einbauen

das einbauen eines

favicon ist in typo3 denkbar trivial:
  • grafik hochladen, z.b. unter fileadmin/favicon.ico
  • im template per typoscript in den setup-bereich schreiben:
page.shortcutIcon = fileadmin/favicon.ico

mehrere bilder mit unterschiedlichen verweisen

was machen, wenn man mehrere bilder in einem content-element hat und möchte, dass jedes bild einen anderen verweis hat? einfach die links im feld url bzw link mit kommas voneinander trennen. falls das nicht auf's erste funktioniert (z.b. weil man nicht css_styled_content verwendet) muss noch folgendes unter CONSTANTS ins haupttemplate:

styles.content.imgtext.comment_CSL-LinkList =

fe_mp3player: mp3s größer als 9.8M einbinden

fe_mp3player definiert die maximal erlaubte dateigröße für mp3-dateien nicht aus der globalen konfiguration, sondern überschreibt diese in flexform_ds.xml. daher muss folgender wert aktualisiert werden:

document("flexform_ds.xml")/T3DataStructure/ROOT/el/fields/el/mp3/el/file/TCEforms/config/max_size

da mal schnell drei nullen dahinterhängen und gut. warum kollege extension-autor nicht die globale konfiguration genommen hat wie alle anderen, wird wohl für immer sein geheimnis bleiben.

tt_address: spezielle tabellenspalten im backend anzeigen

standardmäßig sind die felder name, email, www, phone, fax, mobile in der anzeige von tt_address-feldern vorhanden. das ganze ist in typo3_src/sysext/cms/layout/class.tx_cms_layout.php in der methode getTable_tt_address() hartcodiert. das ganze direkt dort zu ändern, wäre eine Bad Idea - denn beim nächsten update ist das ganze verloren. will man nun stattdessen das ganze in der form "vorname, nachname, e-mail" anzeigen, könnte man natürlich das ganze direkt im code ändern - das wäre aber eine Bad Idea, denn beim nächsten update muss man das ganze wieder reinmachen. das gute ist, dass typo3 vor dem ausführen der o.g. methode überprüft, ob es eine spezielle einstellung gibt. der update-fähige weg ist also, die einstellung in typo3conf/extTables.php (oder einer anderen geeigneten stelle, die updatefähig ist und extTables.php erweitert) zu schreiben:

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['cms']['db_layout']['addTables']['tt_address'][0]['fList'] = 'first_name,last_name,email'; 
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['cms']['db_layout']['addTables']['tt_address'][0]['icon'] = false;

das ganze funktioniert im übrigen genau so für alle tabellenansichten in typo3.

tt_products: suche findet nur einträge in der aktuell ausgewählten kategorie

nervig: die suchfunktion sucht nur nach artikeln innerhalb einer kategorie, wenn eine ausgewählt ist (oder per _DEFAULT_PI_VARS gesetzt wurde). die lösung: php-code umbasteln.

File: typo3conf/ext/tt_products/view/class.tx_ttproducts_list_view.php
function &printView([...]
$pid = $this->page->getParamDefault();
// if searching something and
// not in "default" mode, search in all categories
// rather than in one category only.
if ($sword && $theCode == 'SEARCH') {
$whereCat = '';
} else {
$whereCat = $itemTable->addWhereCat($cat, $this->page->pid_list);
}
if ($whereCat == '' && $allowedItems == '') {
[...]

direct_mail rendert nur eine 1 statt plain text des newsletters

scheint ein bug in typo3 zu sein.

$this->tmpl->forceTemplateParsing = 1; 

cache leeren, sobald etwas im BE editiert wird

um das frontend (FE) cache zu leeren, sobald ein neuer eintrag im menübaum gemacht wird, etwas editiert wird, genügt folgende einstellung in der PAGE TSConfig:

TCEMAIN.clearCacheCmd = all

natürlich gilt es zu bedenken, dass damit das caching insgesamt ineffizient wird, aber ganz ehrlich: lieber rechnet der server ein paar sekunden länger als dass man immer wieder seine zeit mit der fehlersuche verschwendet, oder?

upload-limit von 10 MB im backend erhöhen

The uploaded file exceeds the size-limit of xxx bytes

wen das ebenfalls nervt, kann das ganze im typo3 install tool unter "All Configuration > [maxFileSize]" ändern. Der wert wird in KB angegeben

[BE][maxFileSize] = 24000

die php-einstellungen in der php.ini sollten natürlich ähnlich passen - hier sind

post_max_size

und

upload_max_filesize

passend einzurichten. am besten ein stück höher als die in typo3 angegebenen werte - dann kann typo3 zumindest sinnvolle fehlermeldungen ausgeben. ist das maxFileSize von typo3 nämlich höher eingestellt als post_max_size und upload_max_filesize bekommt man schöne weiße seiten zu sehen - oder eben irgendwelche php-fehlermeldungen, die eine backend-benutzerIn unter umständen nicht wirklich versteht.

immer wieder...

versuchen wir das selbe "problem" auf verschiedene arten zu lösen, immer wieder müssen wir danach suchen. diese seite ist ein versuch, einige unserer standardprobleme zu dokumentieren und die lösungen dazu gleich anzubieten.