ä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
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.
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
}
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.
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.
das einbauen eines
favicon ist in typo3 denkbar trivial:page.shortcutIcon = fileadmin/favicon.ico
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 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.
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.
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 == '') {
[...]
scheint ein bug in typo3 zu sein.
$this->tmpl->forceTemplateParsing = 1;
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?
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.