<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TYPO3 Blog - für TYPO3 Entwickler von TYPO3 Experten &#187; Sven</title>
	<atom:link href="http://blog.marit.ag/author/sven/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.marit.ag</link>
	<description>TYPO3 Entwicklung, TYPO3 Extensions, TypoScript, TYPO3 Installation und vieles mehr</description>
	<lastBuildDate>Fri, 27 Jan 2012 10:30:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>TYPO3 Ländermenü mit CSS Sprites</title>
		<link>http://blog.marit.ag/2010/10/06/typo3-landermenu-mit-css-sprites/</link>
		<comments>http://blog.marit.ag/2010/10/06/typo3-landermenu-mit-css-sprites/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 13:53:13 +0000</pubDate>
		<dc:creator>Sven</dc:creator>
				<category><![CDATA[TYPO3 Technik]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[HMENU]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[ländermenü]]></category>
		<category><![CDATA[sprachmenü]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://blog.marit.ag/?p=996</guid>
		<description><![CDATA[Im Blogbeitrag auf webstandard.kulando.de „CSS Sprite &#8211; Ladegeschwindigkeit optimieren und HTTP-Requests verringern“ habe ich beschrieben, wie man die Ladegeschwindigkeit durch den Einsatz von zusammengefügten Bildern optimieren kann. Diesen Quell-Code nehmen wir als Ausgangsbasis um die Länder- oder Sprachauswahl in TYPO3 umzusetzen. Sprachen in TYPO3 anlegen In TYPO3 müssen zuerst die verschiedenen Sprachen als Datensätze auf [...]]]></description>
			<content:encoded><![CDATA[<p>Im Blogbeitrag auf webstandard.kulando.de „<a href="http://webstandard.kulando.de/post/2010/05/26/css-sprite-ladegeschwindigkeit-optimieren-http-requests-verringern">CSS Sprite &#8211; Ladegeschwindigkeit optimieren und HTTP-Requests verringern</a>“ habe ich beschrieben, wie man die Ladegeschwindigkeit durch den Einsatz von zusammengefügten Bildern optimieren kann. Diesen Quell-Code nehmen wir als Ausgangsbasis um die Länder- oder Sprachauswahl in TYPO3 umzusetzen.<span id="more-996"></span></p>
<h3>Sprachen in TYPO3 anlegen</h3>
<p>In TYPO3 müssen zuerst die verschiedenen Sprachen als Datensätze auf der Rootebene angelegt werden. Wir verwenden hier den Single-Tree-Ansatz für die Sprachwahl, nachlesen kann man das unter: <a href="http://typo3.org/documentation/tips-tricks/multi-language-sites-in-typo3" target="_blank">http://typo3.org/documentation/tips-tricks/multi-language-sites-in-typo3</a> (Englisch).</p>
<p>Für das Tutorial habe ich zu der default-Sprache <em>Englisch</em> noch 4 weitere Sprachen eingerichtet. Die Bezeichner des Menüs legen wir im <em>root-template</em> in den Typoscript-Constants an:</p>
<pre class="brush: plain; title: ; notranslate">
text {
 lang0 = Groß Britannien
 lang1 = Italien
 lang2 = Deutschland
 lang3 = Frankreich
 lang4 = Spanien

 langId0 = gb
 langId1 = it
 langId2 = de
 langId3 = fr
 langId4 = es
}
</pre>
<p>Zudem müssen einige Parameter im Typoscript-Setup für die richtige Ausgabe der Sprache eingerichtet werden.</p>
<pre class="brush: plain; title: ; notranslate">
#default-Sprache Groß Britannien (englisch)
config {
 uniqueLinkVars = 1
 linkVars = L(1-4)
 sys_language_uid = 0
 sys_language_overlay = 1
 sys_language_mode = content_fallback
 language = en
 locale_all = en_GB.UTF-8
 htmlTag_langKey = en
}
</pre>
<p>Desweiteren müssen dann für die weiteren Sprachen <em>Typoscript-Conditions</em> im Setup angelegt werden.</p>
<pre class="brush: plain; title: ; notranslate">
#Italien
[globalVar = GP:L = 1]
config {
 htmlTag_langKey = it
 sys_language_uid = 1
 language = it
 locale_all = it_IT
}
# Überschreiben des aktuellen Menüpunktes, wenn Sprache ausgewählt - muss natürlich aufs eigene System angepasst werden
page.10.subparts.languageMenu.1.ACT.linkWrap = &lt;strong class=&quot;flags&quot; id=&quot;{$text.langId1}&quot;&gt; |&lt;/strong&gt;
[global]

#Deutschland
[globalVar = GP:L = 2]
config {
 htmlTag_langKey = de
 sys_language_uid = 2
 language = de
 locale_all = de_DE
}
page.10.subparts.languageMenu.1.ACT.linkWrap = &lt;strong class=&quot;flags&quot; id=&quot;{$text.langId2}&quot;&gt; |&lt;/strong&gt;
[global]

#Frankreich
[globalVar = GP:L = 3]
...
[global]

#Spanien
[globalVar = GP:L = 4]
...
[global]
</pre>
<h3>Länderauswahl mit Typoscript erstellen</h3>
<p>Das Menü ist eine Spezialform vom Typ „language“. An das HMENU müssen die Web-Site-Sprache IDs bei <em>value</em> eingetragen werden (die default-Sprache 0 &amp; die weiteren Sprach-IDs die angelegt wurden, bzw. angezeigt werden sollen). Hier das Typoscript im Ganzen:</p>
<pre class="brush: plain; title: ; notranslate">
lib.flagmenu = HMENU
lib.flagmenu {
 #Spezialform von HMENU - language
 special = language
 #Web-Site-Sprache IDs der zu verwendenden Datensätze
 special.value = 0,1,2,3,4

 1 = TMENU
 1 {
  wrap = &lt;ul class=&quot;flagmenu&quot;&gt;|&lt;/ul&gt;
  noBlur = 1
  NO {
   #die Bezeichner werden mithilfe der Konstanten neu generiert
   #der Optionsplit &quot;||&quot; trennt die Menüpunkte voneinander
   stdWrap.cObject = TEXT
   stdWrap.cObject.value = {$text.lang0} || {$text.lang1} || {$text.lang2} || {$text.lang3} || {$text.lang4}

   allWrap = &lt;li&gt;|&lt;/li&gt;
   #zu den Links werden Parameter über die dataWrap Funktion eingefügt – die Klasse „flags“ sowie die eindeutige Link-ID
   ATagParams.dataWrap = class=&quot;flags&quot; id=&quot;{$text.langId0}&quot;| || class=&quot;flags&quot; id=&quot;{$text.langId1}&quot;| || class=&quot;flags&quot; id=&quot;{$text.langId2}&quot;| || class=&quot;flags&quot; id=&quot;{$text.langId3}&quot;| || class=&quot;flags&quot; id=&quot;{$text.langId4}&quot;|
  }

  #Aktiver Zustand
  ACT &lt; .NO
  ACT {
   allWrap = &lt;li class=&quot;active&quot;&gt;|&lt;/li&gt;
   #aktive Sprachen werden nicht verlinkt
   doNotLinkIt = 1
   #der Bezeichner wird mit strong gewrappt
   linkWrap = &lt;strong class=&quot;flags&quot; id=&quot;{$contentpage.langId0}&quot;&gt;|&lt;/strong&gt;
  }

  #Spezialfall – wenn Übersetzung nicht vorhanden
  #die Generierung des Menüpunktes wird „entfernt“
  USERDEF1 &lt; .NO
  USERDEF1 {
   #keinen Wrap
   allWrap = |
   #Bezeichner auf leer setzen
   stdWrap.cObject.value =
   #keinen Link erzeugen
   doNotLinkIt = 1
  }
 }
}
</pre>
<div id="attachment_1005" class="wp-caption alignnone" style="width: 210px"><img class="size-full wp-image-1005" title="TYPO3 Sprachmenü" src="http://blog.marit.ag/wp-content/uploads/screen4.png" alt="" width="200" height="94" /><p class="wp-caption-text">Das fertige Menü könnte so aussehen</p></div>
<h3>Fazit:</h3>
<p>Für ein Sprachauswahl bietet TYPO3 über die Spezialform des HMENUs mittlerweile eine gute Möglichkeit per Typoscript ein Menü zu generieren. Es sind keine zusätzlichen PHP-Skripte oder Extensions mehr nötig. Durch CSS und Optionsplit im Typoscript kann man auch verschiedene Flaggen zu den Links einfügen, die auch auf Ladezeit der Website optimiert sind.</p>
<p>Dieser Artikel ist die Kurzform meines Original-Tutorial aus dem  TYPO3-Magazin TY-MA 03. Im Artikel sind auch einige Tipps zur Einrichtung der Sprachen im TYPO3 Backend  beschrieben.<br />
<a title="TYPO3 Magazin" href="http://ty-ma.de/">Das TYPO3-PDF-Magazin kann man direkt auf http://ty-ma.de bestellen.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marit.ag/2010/10/06/typo3-landermenu-mit-css-sprites/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Facebook-Share und Twitter-Update Button mit Typoscript</title>
		<link>http://blog.marit.ag/2010/07/08/facebook-share-und-twitter-update-button-mit-typoscript/</link>
		<comments>http://blog.marit.ag/2010/07/08/facebook-share-und-twitter-update-button-mit-typoscript/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 07:52:58 +0000</pubDate>
		<dc:creator>Sven</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[TYPO3 Technik]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[share]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[typo3]]></category>
		<category><![CDATA[typoscript]]></category>

		<guid isPermaLink="false">http://blog.marit.ag/?p=855</guid>
		<description><![CDATA[Gute Blog-Artikel oder Webseiten mit anderen Menschen in Sozialen Netzwerken wie Facebook, Xing oder Twitter mitteilen zu können, ist nicht nur &#8220;modern&#8221;, sondern hilft auch vielen im Wust der aber-milliarden Websites die &#8220;guten&#8221; heraus zu finden. Manchmal kann man für eine umfangreiche Bookmark- oder Share-Liste auch Extensions für TYPO3 installieren. Dazu später mehr. Facebook Typoscript [...]]]></description>
			<content:encoded><![CDATA[<p>Gute Blog-Artikel oder Webseiten mit anderen Menschen in Sozialen Netzwerken wie Facebook, Xing oder Twitter mitteilen zu können, ist nicht nur &#8220;modern&#8221;, sondern hilft auch vielen im Wust der aber-milliarden Websites die &#8220;guten&#8221; heraus zu finden.</p>
<p><span id="more-855"></span></p>
<p>Manchmal kann man für eine umfangreiche Bookmark- oder Share-Liste auch Extensions für TYPO3 installieren. Dazu später mehr.</p>
<h3>Facebook Typoscript &#8211; Gefällt mir!</h3>
<p><strong>Ich möchte hier aber die Möglichkeit der Einbindung über Typoscript vorstellen.</strong></p>
<p>In der Designvorlage sind drei Icons abgebildet, also es sollen drei Links zu <a href="http://www.facebook.de">Facebook</a>, <a href="http://twitter.com">Twitter</a> und <a href="http://www.mister-wong.de">Mister Wong</a> generiert werden, die per Klick die URL und den Titel der Seite übermitteln sollen.</p>
<p><img class="alignnone size-full wp-image-870" title="typo3-share designvorlage" src="http://blog.marit.ag/wp-content/uploads/typo3-share-designvorlage.png" alt="TYPO3 Share image" width="280" height="80" /></p>
<h4>HTML-Struktur</h4>
<p>Ein einfacher DIV-Block mit den jeweiligen Links.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=&quot;shareBlock&quot;&gt;
 &lt;a class=&quot;facebookLink&quot; href=&quot;#&quot;&gt;Facebook&lt;/a&gt;
 &lt;a class=&quot;twitterLink&quot; href=&quot;#&quot;&gt;Twitter&lt;/a&gt;
 &lt;a class=&quot;wongLink&quot; href=&quot;#&quot;&gt;Mister Wong&lt;/a&gt;
&lt;/div&gt;
</pre>
<h4>CSS mit Sprite-Image</h4>
<p>Auch, wenn es in dem Beispiel &#8220;nur&#8221; drei Icons sind, macht es Sinn, diese als <a title="CSS Sprite - Ladegeschwindigkeit optimieren und HTTP-Requests verringern" href="http://webstandard.kulando.de/post/2010/05/26/css-sprite-ladegeschwindigkeit-optimieren-http-requests-verringern">CSS-Sprites</a> anzulegen. Es ist durchaus denkbar, dass später noch weitere Social-Dienste angefügt werden. Aus Performance-Gründen werden hierbei die HTTP-Request auf einem niedrigen Niveau gehalten und alle Icons in eine Grafik gepackt. Aus diesem Grund erhalten alle Links im CSS den gleichen Hintergrund (social-icons.png) und im Anschluss wird über <em>background-position</em> der jeweilige Bereich der Sprite-Grafik angezeigt.</p>
<pre class="brush: plain; title: ; notranslate">
.shareBlock {
	background: url(teilen.png) no-repeat 0 50%;
	clear: both;
	margin: 0 0 20px -17px;
	padding: 3px 0 5px 100px;
}
.twitterLink, .facebookLink, .wongLink {
	background: #fff url(http://blog.marit.ag/wp-content/uploads/social-icons.png) no-repeat;
	display: inline-block;
	height: 32px;
	width: 32px;
	text-indent: -9999px
}
.facebookLink {background-position: 0 0}
.twitterLink {background-position: 0 -50px}
.wongLink {background-position: 0 -100px}
</pre>
<p>Der Einfachheit halber habe ich die Icons in der Sprite-Grafik in einem Raster von 50px angelegt &#8211; so kann man die <em>background-position</em> leichter &#8220;finden&#8221;.</p>
<p>Das Arbeiten mit CSS-Sprite-Grafiken hat mehrere Vorteile:</p>
<ul>
<li>nur 1 Bild für alle Icons wird geladen</li>
<li>nur 1 HTTP-Request</li>
<li>die Dateigröße dieser Datei ist viel geringer als die Summe mehrerer Icon-Grafiken</li>
<li>barrierearm, da Textlink mit Hintergrund-Grafik</li>
</ul>
<h4>Typoscript-Snippet</h4>
<pre class="brush: plain; title: ; notranslate">
#| sociallinks |#

lib.sociallinks = COA
lib.sociallinks {
	wrap = &lt;div class=&quot;shareBlock&quot;&gt;|&lt;/div&gt;

	10 = TEXT
	10 {
		value = Facebook
		typolink.title = Auf Facebook teilen
		typolink.ATagParams = class=&quot;facebookLink&quot;
		typolink.parameter.cObject = COA
		typolink.parameter.cObject {
			10 = TEXT
			10.dataWrap = http://www.facebook.com/sharer.php?u={$baseURL}|
			10.typolink.parameter.data = TSFE:id
			10.typolink.returnLast = url
			10.typolink.addQueryString = 1
			10.typolink.addQueryString.exclude = id

			20 = TEXT
			20.data = page:title
			20.wrap = &amp;t=|
			20.rawUrlEncode = 1
		}
	}

	20 = TEXT
	20 {
		value = Twitter
		typolink.title = Tweet it!
		typolink.ATagParams = class=&quot;twitterLink&quot;
		typolink.parameter.cObject = COA
		typolink.parameter.cObject {
			10 = TEXT
			10.data = page:title
			10.noTrimWrap = |ließt%20grad:%20||
			10.dataWrap = http://twitter.com/home/?status=|
			10.rawUrlEncode = 1

			20 = TEXT
			20.dataWrap = %20-%20{$baseURL}|
			20.typolink.parameter.data = TSFE:id
			20.typolink.returnLast = url
			20.typolink.addQueryString = 1
			20.typolink.addQueryString.exclude = id
		}
	}

	30 = TEXT
	30 {
		value = Mister Wong
		typolink.title = Wong it!
		typolink.ATagParams = class=&quot;wongLink&quot;
		typolink.parameter.cObject = COA
		typolink.parameter.cObject {
			10 = TEXT
			10.dataWrap = http://www.mister-wong.de/index.php?action=addurl&amp;bm_url={$baseURL}|
			10.typolink.parameter.data = TSFE:id
			10.typolink.returnLast = url
			10.typolink.addQueryString = 1
			10.typolink.addQueryString.exclude = id

			20 = TEXT
			20.data = page:title
			20.wrap = &amp;bm_description=|
			20.rawUrlEncode = 1
		}
	}
}
</pre>
<h3>Typoscript am Beispiel Facebook</h3>
<pre class="brush: plain; title: ; notranslate">
	10 = TEXT
	10 {
</pre>
<p>ein <em>cObject TEXT</em> wird initiiert</p>
<pre class="brush: plain; title: ; notranslate">
		value = Facebook
</pre>
<p>Der Wert &#8220;<strong>Facebook</strong>&#8221; wird festgelegt (Ankertext)</p>
<pre class="brush: plain; title: ; notranslate">
		typolink.title = Auf Facebook teilen
</pre>
<p>ein Link (a-Tag) wird drumherum generiert und das title-Attribut vom Link wird mit &#8220;<strong>Auf Facebook teilen</strong>&#8221; gefüllt</p>
<pre class="brush: plain; title: ; notranslate">
		typolink.ATagParams = class=&quot;facebookLink&quot;
</pre>
<p>eine Link-Klasse &#8220;<strong>facebookLink</strong>&#8221; wird über ATagParams eingesetzt</p>
<pre class="brush: plain; title: ; notranslate">
		typolink.parameter.cObject = COA
		typolink.parameter.cObject {
</pre>
<p>für den Typolink-Parameter (href) wird ein neues cObject vom Typ <em>COA</em> initiiert</p>
<pre class="brush: plain; title: ; notranslate">
			10 = TEXT
			10.dataWrap = http://www.facebook.com/sharer.php?u={$baseURL}|
</pre>
<p>erster Teil des href: der externe Link zur sharer.php-Funktion von Facebook mit dem u-Parameter der Typoscript-Konstante &#8220;<em>$baseURL</em>&#8221; direkt als dataWrap (in den Typoscript-Constants muss diese Konstante vorhanden sein, Beispiel: baseURL = http://blog.marit.ag/)</p>
<pre class="brush: plain; title: ; notranslate">
			10.typolink.parameter.data = TSFE:id
</pre>
<p>die aktuelle Seiten-ID wird ausgelesen</p>
<pre class="brush: plain; title: ; notranslate">
			10.typolink.returnLast = url
</pre>
<p>die URL wird als String zurückgegeben</p>
<pre class="brush: plain; title: ; notranslate">
			10.typolink.addQueryString = 1
</pre>
<p>alle weiteren URL-Parameter werden ausgelesen, Beispiel tt_news oder L-Parameter für die Sprachwahl</p>
<pre class="brush: plain; title: ; notranslate">
			10.typolink.addQueryString.exclude = id
</pre>
<p>die zusätzliche Seiten-ID wird hier ausgeschlossen</p>
<pre class="brush: plain; title: ; notranslate">
			20 = TEXT
</pre>
<p>zweiter Teil des Links</p>
<pre class="brush: plain; title: ; notranslate">
			20.data = page:title
</pre>
<p>der Seitentitel wird ausgelesen</p>
<pre class="brush: plain; title: ; notranslate">
			20.wrap = &amp;t=|
</pre>
<p>dieser Wert wird als Wert für den Parameter t des href gewrappt</p>
<pre class="brush: plain; title: ; notranslate">
			20.rawUrlEncode = 1
</pre>
<p>kodiert den übergebenen String entsprechend RFC 1738 zur sauberen Übergabe</p>
<pre class="brush: plain; title: ; notranslate">
		}
	}
</pre>
<p>und alle Klammern wieder schließen <img src='http://blog.marit.ag/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Extensions die man installieren kann</h3>
<ul>
<li><a href="http://typo3.org/extensions/repository/view/socialplugins/current/">Facebook Social Plugins</a> (socialplugins)</li>
<li><a href="http://typo3.org/extensions/repository/view/wt_socialbookmarks/current/">Links for Social bookmarking and social network</a> (wt_socialbookmarks)</li>
<li><a href="http://typo3.org/extensions/repository/view/form4_socialmedialinks/current/">Social Media Links</a> (form4_socialmedialinks)</li>
<li><a href="http://typo3.org/extensions/repository/view/form4_socialmedialinks/current/">Sexy-Bookmarks</a> (sexybookmarks)</li>
</ul>
<h3>Fazit</h3>
<p>Für den Einsatz von Facebook-Share oder Twitter-Button kann man durchaus Typoscript verwenden. Eine schlanke schnelle Lösung auch wenn man weitere Bookmark-Dienste oder Soziale Netzwerke hinzufügen möchte. Ich würde dabei immer den Weg über CSS-Sprites mit allen Icons in einer Grafik gehen, schon aus Performance-Gründen.</p>
<p>Ein kurzer Satz über den Unterschied zwischen der Facebook-Like! Funktion und Share. Für mich persönlich ist die Share-Funktion aktuell für diesen Zweck des &#8220;Verbreitens/Teilens&#8221; bei Facebook besser geeignet. Ich kann beim Prozess auf Facebook noch zusätzliche Kommentare hinzufügen und ein Vorschaubild auswählen (das direkt aus der Seite ausgelesen wird), sofern eines vorhanden ist. Bei der Like-Funktion (Gefällt mir!) wird bei Facebook lediglich ein Satz abgespeichert &#8220;Sven gefällt Marit AG TYPO3 Blog Facebook-Share und Twitter-Update Button mit Typoscript&#8221; ohne weitere Kommentar-Möglichkeiten.</p>
<style>
/* <![CDATA[ */
.shareBlock { 	background: url(http://blog.marit.ag/wp-content/uploads/teilen.png) no-repeat 0 50%;  	clear: both;  	margin: 0 0 20px;  	padding: 3px 0 5px 100px; } .twitterLink, .facebookLink, .wongLink { 	background: #fff url(http://blog.marit.ag/wp-content/uploads/social-icons.png) no-repeat; 	display: inline-block; 	margin: 0 3px; 	height: 32px; 	width: 32px; 	text-indent: -9999px; } .facebookLink {background-position: 0 0} .twitterLink {background-position: 0 -50px} .wongLink {background-position: 0 -100px} 			
/* ]]&gt; */
</style>
<h4>Natürlich jetzt nicht vergessen diesen Artikel zu teilen</h4>
<h4>
<div class="shareBlock"><a class="facebookLink" title="Auf Facebook teilen" href="http://www.facebook.com/sharer.php?u=http://blog.marit.ag/2010/07/08/facebook-share-und-twitter-update-button-mit-typoscript/&amp;t=Marit AG TYPO3 Blog Facebook-Share und Twitter-Update Button mit Typoscript">Facebook</a><a class="twitterLink" title="Tweet it!" href="http://twitter.com/home/?status=ließt%20grad:%20Marit AG TYPO3 Blog Facebook-Share und Twitter-Update Button mit Typoscript - http://blog.marit.ag/?p=855">Twitter</a><a class="wongLink" title="Wong it!" href="http://www.mister-wong.de/index.php?action=addurl&amp;bm_url=http://blog.marit.ag/2010/07/08/facebook-share-und-twitter-update-button-mit-typoscript/&amp;bm_description=Marit AG TYPO3 Blog Facebook-Share und Twitter-Update Button mit Typoscript">Mister Wong</a></div>
</h4>
]]></content:encoded>
			<wfw:commentRss>http://blog.marit.ag/2010/07/08/facebook-share-und-twitter-update-button-mit-typoscript/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Teaserboxen mit Verlauf ohne Bilder (CSS3 linear-gradient)</title>
		<link>http://blog.marit.ag/2010/05/04/teaserboxen-mit-verlauf-ohne-bilder-css3-linear-gradient/</link>
		<comments>http://blog.marit.ag/2010/05/04/teaserboxen-mit-verlauf-ohne-bilder-css3-linear-gradient/#comments</comments>
		<pubDate>Tue, 04 May 2010 06:30:46 +0000</pubDate>
		<dc:creator>Sven</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[TYPO3 Technik]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[linear-gradient]]></category>

		<guid isPermaLink="false">http://blog.marit.ag/?p=688</guid>
		<description><![CDATA[Wie man in Zukunft Hintergrundverläufe mit CSS erstellt, möchte ich heute vorstellen. Da die Browserunterstützung für die Verläufe noch nicht sehr fortgeschritten ist, ist es eher ein Blick in die Zukunft, es sei denn, man kann auf eine browserweite optische Gleichheit verzichten oder man macht ein Workaround mit Bildern. Der aktuelle Stand der CSS3-Eigenschaft &#8220;linear-gradient&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Wie man in Zukunft Hintergrundverläufe mit CSS erstellt, möchte ich heute vorstellen.</strong></p>
<p>Da die Browserunterstützung für die Verläufe noch nicht sehr fortgeschritten ist, ist es eher ein Blick in die Zukunft, es sei denn, man kann auf eine browserweite optische Gleichheit verzichten oder man macht ein Workaround mit Bildern. Der aktuelle Stand der CSS3-Eigenschaft &#8220;linear-gradient&#8221; ist <a title="CSS3 linear-gradient Spec" href="http://dev.w3.org/csswg/css3-images/#linear-gradients">hier nachzulesen</a>. Die Vorreiter in der Entwicklung sind &#8211; wie gewohnt &#8211; Webkit (Safari ab 4.0, Chrome 4) und Gecko (Mozilla Firefox ab 3.6). Opera unterstützt die Eigenschaft bisher nicht. Die Internet Explorer kann zwar seit IE 5.5 über die filter-Eigenschaft bedient werden, aber das ist weder performant noch zielführend &#8211; da nur ein einfacher Verlauf erzeugt werden kann.</p>
<p>In der aktuellen Ausgabe des <a title="TYPO3 Magazin" href="http://ty-ma.de">TYPO3 Onlinemagazins TY-MA</a> habe ich beschrieben, wie man solche Teaserboxen in TYPO3 4.3  über die Inhaltsrahmen (<em>section_frames</em>) der Contentelemente erstellt.</p>
<p><span id="more-688"></span></p>
<p>Dabei werden für die Teaserboxen CSS-Klassen vergeben. Über CSS-Background-Images für die Überschrift und für den Inhaltsbereich wird dann der DIV-Block optisch zur Teaserbox. Da die Teaser-Boxen ein feste Breite haben, kann dabei 1 Bild für den Teaser-Top-Bereich und 1 Bild für den Teaser-Bottom-Bereich verwendet werden. So bleibt die Teaserbox in der Höhe flexibel.</p>
<p>Allerding werden wie schon erwähnt 2 Bilder, in unserem Fall also rund 2Kb Bilddaten geladen. Zudem sind das 2 HTTP-Request, die man in Zukunft mit dem Einsatz von CSS-Gradients einsparen kann &#8211; somit wird die Website beim Aufruf noch schneller. Als Vergleich folgende Übersicht der verschiedenen Varianten, 1x das Original mit 2 Bilddateien, 1x als CSS3 Version mit nur einem kleinen Bild und 1x ohne jegliche Bilder.</p>
<p><strong><img class="alignnone" title="Übersicht CSS3  linear-gradient Teaserbox" src="/wp-content/uploads/overview.png" alt="overview css3 linear-gradient" width="640" height="509" /></strong></p>
<p>Man kann sehen, dass der optische Unterschied zwischen der reinen CSS Umsetzung nur sehr gering ist. Dreieckige Objekte lassen sich bisher nur schwerlich mit CSS implementieren.</p>
<p><strong>Wir nehmen folgenden HTML-Schnippet als Basis:</strong></p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=&quot;css-block&quot;&gt;
 &lt;h3&gt;Block teaser blue&lt;/h3&gt;
 &lt;div class=&quot;css-block-inner&quot;&gt;
  &lt;p&gt;
  Cras tortor turpis, vulputate non, accumsan a, pretium in, magna.
  Cras turpis turpis, pretium pulvinar, pretium vel, nonummy eu, leo.
  Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus.
  Curabitur augue nibh, iaculis eget, suscipit ut, sodales in, lectus.
  &lt;/p&gt;
 &lt;/div&gt;
&lt;/div&gt;
</pre>
<p><strong>Das CSS dazu ist folgendes:</strong></p>
<pre class="brush: css; title: ; notranslate">
.css-block {
 /*
 W3C Spec
 background: linear-gradient(top, yellow, blue 20%, #0f0);
 */
 background: -moz-linear-gradient(top, #fff 0, #fff 67%, #d2d2d2 100%);
 background: -webkit-gradient(linear,
  left top, left bottom,
  color-stop(0, #fff),
  color-stop(0.67, #fff),
  color-stop(1, #d2d2d2));
 padding: 1px;

 border-radius: 5px;
 -moz-border-radius: 5px;
 -webkit-border-radius: 5px;

 box-shadow: 0 15px 20px -10px #e1e1e1;
 -moz-box-shadow: 0 15px 20px -10px #e1e1e1;
 -webkit-box-shadow: 0 15px 20px -10px #e1e1e1;
 }

.css-block-inner {
 background-color: #ebebeb; /*fallback color*/
 background: url(img/arrow.png) no-repeat, -moz-linear-gradient(top,
  #8598aa 0,
  #fff 17%,
  #fff 83%,
  #ebebeb 99%,
  #fff 100%);
 background: url(img/arrow.png) no-repeat, -webkit-gradient(linear,
  left top, left bottom,
  color-stop(0, #8598aa),
  color-stop(0.17, #fff),
  color-stop(0.83, #fff),
  color-stop(0.99, #ebebeb),
  color-stop(1, #fff));
 padding: 10px;
 border-radius: 5px;
 -moz-border-radius: 5px;
 -webkit-border-radius: 5px;
}

.css-block h3 {
 background-color: #2b4c6b;
 background: -moz-linear-gradient(top,
  #6b8298 0,
  #6b8298 50%,
  #2b4c6b 50%,
  #2b4c6b 100%);
 background: -webkit-gradient(linear,
  left top, left bottom,
  color-stop(0, #6b8298),
  color-stop(0.5, #6b8298),
  color-stop(0.5, #2b4c6b),
  color-stop(1, #2b4c6b));
 padding: 1px;
 border-radius: 5px;
 -moz-border-radius: 5px;
 -webkit-border-radius: 5px;
 border: 1px solid #2b4c6b;
 color: #fff;
 padding: 7px 10px;
 margin: 0;
 }
</pre>
<p>Der äußere DIV-Block &#8220;.css-block&#8221; erhält einen Verlauf von <em>#fff</em> (weiß) zu <em>#d2d2d2</em> (helles grau). Dabei sind für die Eigenschaft &#8220;<em>background</em>&#8221; folgende  Werte zugewiesen:</p>
<pre class="brush: css; title: ; notranslate">
background: -moz-linear-gradient(top, #fff 0%, #fff 67%, #d2d2d2 100%);
</pre>
<p><em>-moz-linear-gradient()</em> ist die Wertzuweisung für Mozilla (Firefox), die kommagetrennten Werte in der Klammer bedeuten dann folgendes</p>
<ul>
<li><em>top</em> = Verlauf beginnend oben</li>
<li><em>#fff  0</em> = start bei 0% mit der Farbe <em>#fff </em>(weiß), wobei man den Initialwert (0%) auch weglassen kann</li>
<li><em>#fff  67%</em> = bis 67% mit der Farbe <em>#fff</em> (weiß) weitermachen</li>
<li><em>#d2d2d2 100%</em> = Verlaufsende bei 100% mit der Farbe <em>#d2d2d2</em> (helles grau), wobei man den Endwert (100%) auch weglassen kann</li>
</ul>
<p>Die Anweisung für Webkits ist leicht unterschiedlich im Syntax:</p>
<pre class="brush: css; title: ; notranslate">
background: -webkit-gradient(linear,
  left top, left bottom,
  color-stop(0, #fff),
  color-stop(0.67, #fff),
  color-stop(1, #d2d2d2));
</pre>
<p>Der innere DIV-Block &#8220;.css-block-inner&#8221; mit einem zusätzlichen Bild erhält für unser Beispiel nun diese Werte für den Hintergrund:</p>
<pre class="brush: css; title: ; notranslate">
background-color: #ebebeb; /*fallback color*/
background: url(img/arrow.png) no-repeat, -moz-linear-gradient(top,
 #8598aa 0,
 #fff 17%,
 #fff 83%,
 #ebebeb 99%,
 #fff 100%);
</pre>
<p>Wir weisen eine &#8220;Fallback&#8221;-Farbe zu (<em>background-color: #ebebeb</em>) &#8211; für Browser, die Verläufe noch nicht darstellen können. Dann weisen wir ein Hintergrundbild zu &#8211; <em>url(img/arrow.png) no-repeat</em> &#8211; das ist der kleine Pfeil, der von der Überschrift in den Haupttext &#8220;ragt&#8221;. Hinter dem Komma wird der Verlauftshintergrund definiert. Es fängt bei 0 mit der Farbe <em>#8598aa</em> (helles blau) an, geht bis 17% ins <em>#fff</em> (weiß) über, weiter mit <em>#fff</em> bis 83% der Höhe, übergehend zu <em>#ebebeb</em> (helles grau) bis 99% und wieder zu <em>#fff</em> bis 100%. Das ergibt am unterem Rand ein leichtes &#8220;Blitzen&#8221; und wirkt ein wenig 3-Dimensional.</p>
<p><strong>Für die Überschrift h3 wird ebenfalls ein Verlauf benötig, allerdings mit einer &#8220;harten Kante&#8221;:</strong></p>
<pre class="brush: css; title: ; notranslate">
background: -moz-linear-gradient(top,
  #6b8298 0,
  #6b8298 50%,
  #2b4c6b 50%,
  #2b4c6b 100%);
</pre>
<p>Die Farbe <em>#6b8298</em> (mittelblau) geht von 0-50%. Das dunklere blau <em>#2b4c6b</em> geht direkt weiter von 50-100%. Dadurch entsteht beim Verlauf die &#8220;harte Kante&#8221;.</p>
<p>Noch ein wenig &#8220;box-shadow&#8221; und &#8220;border-radius&#8221; und schon ist unsere Teaserbox mit CSS3-Verlauf fertig.</p>
<p><strong>Fazit:</strong></p>
<p>Die Möglichkeiten mit CSS3 sind nahezu unbegrenzt für die Umsetzung moderner Layouts, leider müssen wir mit der Implementierung noch eine Weile warten, bis alle Browser die Eigenschaften unterstützen. Dann lassen sich die netten Effekte aus Photoshop wie Schatten, runde Ecken oder Verlauf ausschließlich mit CSS umsetzen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marit.ag/2010/05/04/teaserboxen-mit-verlauf-ohne-bilder-css3-linear-gradient/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>CSS und Performance Slideshow vom TYPO3Camp in Potsdam</title>
		<link>http://blog.marit.ag/2010/04/26/css-und-performance-slideshow-vom-typo3camp-in-potsdam/</link>
		<comments>http://blog.marit.ag/2010/04/26/css-und-performance-slideshow-vom-typo3camp-in-potsdam/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 07:31:16 +0000</pubDate>
		<dc:creator>Sven</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://blog.marit.ag/?p=671</guid>
		<description><![CDATA[Slideshow extern aufrufen: Performance matters]]></description>
			<content:encoded><![CDATA[<div class="prezi-player"><!-- .prezi-player { width: 640px; } .prezi-player-links { text-align: center; } --><object id="prezi_j37um3mez5mk" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="prezi_j37um3mez5mk" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="prezi_id=j37um3mez5mk&amp;lock_to_path=1&amp;color=ffffff&amp;autoplay=no" /><param name="src" value="http://prezi.com/bin/preziloader.swf" /><embed id="prezi_j37um3mez5mk" type="application/x-shockwave-flash" width="640" height="480" src="http://prezi.com/bin/preziloader.swf" flashvars="prezi_id=j37um3mez5mk&amp;lock_to_path=1&amp;color=ffffff&amp;autoplay=no" bgcolor="#ffffff" allowscriptaccess="always" allowfullscreen="true" name="prezi_j37um3mez5mk"></embed></object><span id="more-671"></span></p>
<div class="prezi-player-links">
<p>Slideshow extern aufrufen: <a title="Web Frontend Performance" href="http://prezi.com/j37um3mez5mk/">Performance matters</a></p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.marit.ag/2010/04/26/css-und-performance-slideshow-vom-typo3camp-in-potsdam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TYPO3 4.3 &#8211; überarbeitetes FE-Editing</title>
		<link>http://blog.marit.ag/2008/10/23/typo3-43-uberarbeitetes-fe-editing/</link>
		<comments>http://blog.marit.ag/2008/10/23/typo3-43-uberarbeitetes-fe-editing/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 06:59:25 +0000</pubDate>
		<dc:creator>Sven</dc:creator>
				<category><![CDATA[TYPO3 Allgemein]]></category>
		<category><![CDATA[TYPO3 Technik]]></category>

		<guid isPermaLink="false">http://blog.marit.ag/?p=187</guid>
		<description><![CDATA[Wer den Vortrag auf der diesjährigen T3CON08 in Berlin verpasst hat, kann sich hier nochmal das beeindruckende Beispiel-Video zum Frontent-Editing ansehen. TYPO3 4.3 &#8211; Frontend-Edit Demo]]></description>
			<content:encoded><![CDATA[<p>Wer den Vortrag auf der diesjährigen T3CON08 in Berlin verpasst hat, kann sich hier nochmal das beeindruckende Beispiel-Video zum Frontent-Editing ansehen.</p>
<p><span id="more-187"></span></p>
<p><a title="TYPO3 4.3 FE-Edit" target="_blank" href="http://www.webempoweredchurch.org/fileadmin/proj/frontendedit/demo.mov">TYPO3 4.3 &#8211; Frontend-Edit Demo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marit.ag/2008/10/23/typo3-43-uberarbeitetes-fe-editing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://www.webempoweredchurch.org/fileadmin/proj/frontendedit/demo.mov" length="11017207" type="video/quicktime" />
		</item>
	</channel>
</rss>

