28. März 2012

Zeichen ersetzen per TypoScript

Um per TypoScript Zeichen oder Worte durch andere (oder auch bestimmte Zeichenfolgen durch ein Bild) zu ersetzen, kann man mit folgendem Snippet arbeiten (hier am Beispiel des gesamten Page-Bereichs):

page.stdWrap.parseFunc.short.meineFirma  = <span class="highlight">meineFirma</span>

Diese Zeile bewirkt, dass überall auf der Seite, wo „meineFirma“ vorkommt, dieser Name mit der angegebenen Phrase („<span class="highlight">meineFirma</span>“) ersetzt wird. Natürlich sind auch Mehrfachanweisungen möglich:

page.stdWrap.parseFunc.short {
	alterFirmenname  = <span class="highlight">neuerFirmenname</span>
	alterGeschaeftsfuehrer = <span class="highlight">neuerGeschaeftsfuehrer</span>
	schreipfeler = Schreibfehler
}

Valider Facebook-Like-Button

Da es kein HTML-Tag "<fb:like>" gibt, schlägt der Validator Alarm. Abhilfe schafft hierbei mal wieder ein Schnipsel JavaScript, indem wir einfach das Element im DOM erzeugen:

<div id="fb-root"></div>
<script type="text/javascript" src="http://connect.facebook.net/de_DE/all.js#xfbml=1"></script><script type="text/javascript">
// <![CDATA[
var c = document.getElementById('fb-root');
var e = document.createElement('fb:like');
e.setAttribute('action', 'like');
e.setAttribute('width', '100');
e.setAttribute('layout', 'button_count');
e.setAttribute('send', 'false');
e.setAttribute('href', '');
e.setAttribute('show_faces', 'false');
e.setAttribute('font', '');
c.appendChild(e);
// ]]>
</script>

Das war´s schon. Nach einem erneuten Validitäts-Check sollte nun (zumindest an dieser Stelle des Quellcodes) kein Fehler mehr auftauchen.

14. Dezember 2011

Probleme mit RealUrl und jQuery Tabs

Bei der Arbeit mit jQuery Tabs in Verbindung mit RealUrl tauchte das Phänomen auf, dass im aktiven Tabinhalt die Seite selbst dargestellt wurde. Dies setzte sich endlos fort, bis der Browser voll lief. Nach einiger Recherche wurde klar, dass sich RealUrl und jQuery Tabs nur bedingt vertragen.

Hier nun die Lösung:

Direkt vor dem Initialisieren der Tabs mittels

$('.tabsContainer').tabs();

müssen die Link-href´s per jQuery überschrieben werden:

$(".tabsContainer > ul a").attr("href", function() {
if ($(this).attr("href").indexOf("#") > -1) { return "#" + $
(this).attr("href").split("#")[1]; } else { $(this).attr("href"); }
});
21. November 2011

Datum der tt_news als Grafik darstellen

Möchte man das Datum in der Latest-, List- oder/und Single-Ansicht der tt_news als Grafik darstellen, so ist etwas TypoScript-Arbeit nötig. Mit folgendem Schnipsel (am Beispiel Latest-Ansicht) ist dies aber kein (größeres) Problem.

plugin.tt_news {
	displayLatest {
		date_stdWrap.strftime >
		date_stdWrap.cObject = IMAGE
		date_stdWrap.cObject.titleText.field = title
		date_stdWrap.cObject.altText.field = title
		date_stdWrap.cObject.file = GIFBUILDER
		date_stdWrap.cObject.file {
			# Groesse der zu erzeugenden Grafik
			XY = 49, 49
			# Format der Grafik
			format = jpg
			# Qualitaet der Grafik
			quality = 95
			# Daten fuer die Hintergrundgrafik
			10 = IMAGE
			# Pfad zum Hintergrundbild - hier ist der Pfad in einer Konstanten gespeichert
			10.file = {$filepaths.images}news-latest-date.jpg
			# Daten fuer den Tag
			20 = TEXT
			# Das Datumsfeld der tt_news verwenden
			20.text.field = datetime
			# Aus dem Datumsfeld wird nur der Tag verwendent
			20.text.date = d
			# Pfad zur Schriftart (ttf) - hier ist der Pfad in einer Konstanten gespeichert
			20.fontFile = {$filepaths.fonts}arial.ttf
			# Schriftgroesse
			20.fontSize = 18
			# Schriftfarbe
			20.fontColor = #ffffff
			# Abstand (links, oben)
			20.offset = 0, 25
			# Schrift formatieren
			20.antiAlias = 1
			20.niceText = 1
			# Ausrichtung des Datums
			20.align = center
			# Daten fuer Monat und Jahr
			# aus den Einstellungen vom Tag erben
			30 < .20
			# Monat als dreibuchstabige Abkürzung und zweistelliges Jahr
			30.text.date = M.y
			# Schriftgroesse
			30.fontSize = 9
			# Abstand (links, oben)
			30.offset = 0, 40
		}
	}
}
13. Oktober 2011

IE-Bug: Weißer Hintergrund bei Hover

Nach langer Suche aufgedeckt: Bei :hover ändert sich im IE (7) die Hintergrundfarbe nicht auf Weiß (#FFFFFF).

Beispiel:

HTML:
<div><a href=“#“>Mouseover</a></div>
CSS:
DIV {background-color:#000000;}
A {width:100%;display:block;border:1px solid #000000;color:#DDDDDD;}
A:HOVER {background-color:#FFFFFF;color:#000000;}
5. Oktober 2011

Kopieren von Inhaltselementen (Content Elements)

Wer kennt das nicht: beim Kopieren von Inhaltselementen ergänzt TYPO3 die Überschrift der Kopie mit einem unschönen „(copy 1)“ – bzw. „(Kopie 1)“.

Abhilfe schafft hierbei eine Zeile TypoScript im Page TSconfig der Root-Seite:

TCEMAIN.table.tt_content.disablePrependAtCopy = 1

Außerdem werden Kopien per default immer versteckt eingefügt.

Auch hierfür gibt es Abhilfe, die man ebenso im Page TSconfig der Root-Seite einfügt:

TCEMAIN.table.tt_content.disableHideAtCopy = 1

Es ist natürlich auch möglich, den TypoScript-Code ins UserTSConf eines speziellen BE-Users zu schreiben.

 

Natürlich gilt diese Vorgehensweise auch für das Kopieren von Seiten. Hier muss man nur die entsprechende Tabelle ändern (tt_content durch pages ersetzen):

TCEMAIN.table.pages.disablePrependAtCopy = 1
22. September 2011

TYPO3-Extensions vor Update schützen

Hat man z.B. eine bestehende TYPO3-Extension modifiziert (sollte man vermeiden; besser: die Extension mit einem Hook erweitern), möchte man natürlich, dass diese Extension bei einem eventuellen Update nicht mit einbezogen wird und man Gefahr läuft, dadurch alle Änderungen zu überschreiben.

Dies erreicht man recht einfach, indem man in der ext_emconf.php der jeweiligen Extension den ‘state’ auf ‘excludeFromUpdates’ setzt.

 

21. September 2011

Google-Maps-Fehlermeldung

Sollte es plötzlich bei Nutzung von Google-Maps-Karten mit Cluster Markers zu folgender Fehlermeldung kommen:

 

this.map_.mapTypes[this.map_.getMapTypeId()] is undefined

 

Beim Einbinden der Google-Maps-Api der Source

 

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

 

die Google-Maps-Version als Parameter mitgeben:

 

<script type="text/javascript" src="http://maps.google.com/maps/api/js?v=3.5&sensor=false"></script>
18. Juli 2009

Counterize-Funktionen

Um den aktuellen Zählerstand auch im Frontend ausgeben zu lassen, gibt es ein paar nützliche Funktionen, die einfach nur ins Template (sidebar, footer etc.) eingebaut werden müssen.

Folgende Funktionen können dabei benutzt werden:

counterize_getamount() – gibt die Gesamtzahl der Seitenaufrufe zurück
counterize_gethitstoday() – gibt die Gesamtzahl der Seitenaufrufe des aktuellen Tages zurück
counterize_getlatest7days() – gibt die Gesamtzahl der Seitenaufrufe innerhalb der letzten 7 Tage zurück
counterize_getuniqueamount() – gibt die Gesamtzahl der eindeutigen Besucher (verschiedene IPs) zurück
counterize_getfromcurrentip() – gibt die Gesamtzahl der Seitenaufrufe der aktuellen IP zurück
counterize_getuniquehitstoday() – gibt die Gesamtzahl der verschiedenen IPs des aktuellen Tages zurück
counterize_gethitstodayfromcurrentip() – gibt die Gesamtzahl der Seitenaufrufe des aktuellen Tages der aktuellen IP zurück

30. April 2009

Sidebar dynamisch ein- und ausblenden

Header:

var j = jQuery.noConflict();

j(document).ready(function() {

	j("a#toggleSidebar").click().toggle(function(){
		j('#sidebar').animate({
			width: 'hide',
			opacity: 'hide'
		}, 'slow');
		j(this).toggleClass('sidebarcollapse');
		j(this).toggleClass('sidebarexpand');
	}, function(){
		j('#sidebar').animate({
			width: 'show',
			opacity: 'show'
		}, 'slow');
		j(this).toggleClass('sidebarcollapse');
		j(this).toggleClass('sidebarexpand');
	});

});

Content:

<a id="toggleSidebar" class="sidebarexpand" title="ein-/ausblenden" href="#">X</a>

CSS:

#toggleSidebar {margin:1em;float:right;text-decoration:none;width:15px;height:15px;}
    .sidebarcollapse {height:15px;text-align:right;background:url(images/arrow_l.png) no-repeat;}
    .sidebarexpand {height:15px;text-align:right;background:url(images/arrow_r.png) no-repeat;}
« Neuere BeiträgeÄltere Beiträge »
TYPO3 Internetagentur Dresden
Diese Webseite verwendet Cookies. Weitere Informationen.