<?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>Netzelf Blog &#187; Tips and tricks</title>
	<atom:link href="http://blog.netzelf.de/lang/en/category/tipps-und-tricks/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.netzelf.de</link>
	<description>Ein weiteres tolles WordPress-Blog</description>
	<lastBuildDate>Mon, 19 Sep 2011 22:31:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Facebook Fanpage Tricks Vol. 2</title>
		<link>http://blog.netzelf.de/lang/en/tipps-und-tricks/facebook-fanpage-tricks-vol-2</link>
		<comments>http://blog.netzelf.de/lang/en/tipps-und-tricks/facebook-fanpage-tricks-vol-2#comments</comments>
		<pubDate>Thu, 04 Nov 2010 12:41:47 +0000</pubDate>
		<dc:creator>rreif</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Tips and tricks]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://blog.netzelf.de/?p=99</guid>
		<description><![CDATA[Usability hat zu Recht inzwischen häufig als Faktor in die Konzeption von Projekten Einzug gehalten. Wer sich tiefgreifend mit dieser Materie auseinandersetzt, weiß, dass die Umsetzung häufig viel schwieriger ist, als es die Theorie vermuten lässt. Das liegt auf der Hand, immerhin ist der Weg dorthin steinig und es gibt Vieles zu beachten.]]></description>
			<content:encoded><![CDATA[<p>Usability hat zu Recht inzwischen als Agendapunkt Einzug in die Konzeption von Projekten  gehalten. Wer sich tiefgreifend mit dieser Materie auseinandersetzt, weiß, dass die Umsetzung häufig viel schwieriger ist, als es die Theorie vermuten lässt. Das liegt auf der Hand, immerhin ist der Weg zum nutzergerechten Design oft steinig und es gibt Vieles zu beachten. Macht man sich allerdings die Mühe, so wird das Ergebnis für sich sprechen. Wenn man nun beim Erstellen von Webapplikationen deren Nutzbarkeit größere Aufmerksamkeit schenkt, warum dann beim Erstellen von Fanpages pfuschen?</p>
<p>Wie immer steht und fällt alles mit einem fundierten Konzept. Stichwort Usability: <em>die Spezies Mensch kann am besten mit einer strukturierten Umgebung umgehen</em>. Also die Ärmel hochgekrempelt und ein Plan entwickelt.<br />
Nach der anfänglichen Ideensammlung und -bewertung sieht man sich jedoch zunehmend mit der Entscheidung konfrontiert, zwischen Alternativen der Umsetzung wählen zu müssen. Ein solches Dilemma kann sich bei der Arbeit an Fanpages dadurch ergeben, dass man sich von vornherein in einem fremden Kontext bewegt und präsentiert. Die zu treffende Entscheidung ist also, ob man seine Inhalte stilistisch an Facebook angleicht, oder das Layout betont davon abhebt. Variante eins birgt Homogenität und das Gefühl den gewohnten Nutzungskontext nicht zu verlassen. Variante zwei die Möglichkeit gezielt und differenziert Emotionen anzusprechen. Als sehr gelungene Umsetzung eines facebook-nahen Layoutes kann wohl ohne Zweifel die Shopapplikation gelten, die <a href="http://www.smatch.com/">smatch.com</a> seinen Partnern wie <a href="http://www.frontlineshop.com">frontlineshop.com</a> anbietet.<span id="more-99"></span></p>
<ul>
<li><a href="http://apps.facebook.com/frontlineshop/">http://apps.facebook.com/frontlineshop/</a></li>
</ul>
<p>Dem gegenüber präsentiert sich Mercedes Benz betont differenziert vom Layout der umgebenden Plattform.</p>
<ul>
<li><a href="http://www.facebook.com/MercedesBenz">http://www.facebook.com/MercedesBenz</a></li>
</ul>
<p>Im direkten Vergleich wird die Motivation der unterschiedlichen Umsetzungen offenbar. Mercedes Benz lebt vom Image „mehr“ als nur ein Automobilhersteller zu sein. Es geht bei der Fanpage demnach primär darum, dieses Bild gezielt mit den Mitteln des eigenen Coporate Designs in den Köpfen der Betrachter zu verankern. <a href="http://www.frontlineshop.com" target="_blank">Frontlineshop.com</a> hingegen hat weniger Interesse daran, sich dem potenziellen Kunden gegenüber als Unternehmen zu materialisieren. Der Fokus liegt eben nicht auf der Präsentation der Firma, sondern auf eher den Produkten.</p>
<p>Weiterhin muss überlegt werden, wieviel Informationen man auf einer Fanpage überhaupt unterbringen möchte. Fest steht, je mehr Informationen man unterbringen will, desto höher ist die Gefahr der Unübersichtlichkeit. Gleichzeit steigt die Notwendigkeit einer Struktur, die das Navigieren vereinfacht.</p>
<p>Im Bezug auf Fanpages ist hier die Anzahl an Tabs das zu betrachtende Nadelöhr. Jede Seite einer Fanpage wird über einen Reiter mit maximaler Breite von 106 Pixel angesprochen. Angesichts der verfügbaren Gesamtbreite von 520 Pixel schieben sich „überschüssige“ Reiter in eine Erweiterungsliste, die über das Pfeilsymbol rechts in der Navigation aufgerufen werden kann. Das bedeutet, dass nicht mehr als sechs Reiter zur gleichen Zeit in der Navigation erscheinen. Es besteht also die Eventualität, dass Informationen auf Seiten in der Erweiterungsliste leicht übersehen werden können, da sie nicht im visuellen Fokus stehen. Die Begründung hierfür liegt im Layout der Navigationsleiste. Das Pfeilsymbol hat diesbezüglich mit zwei Nachteilen zu kämpfen. Unglücklicherweise nimmt es den letzten Platz in der Navigationsleiste ein. Zusätzlich präsentieren sich die übrigen Tabs, abgesehen vom aktiven Reiter, in zartem Pastellblau mit dunkelblauer Schrift. Betrachtet man nun Heatmaps, die im Zuge von Usability-Tests via Eyetracking entstanden sind, wird das Problem schnell offenbar. Für gewöhnlich wird der Content einer Webapplikation in Form eines „F“ erfasst.</p>
<div id="attachment_100" class="wp-caption aligncenter" style="width: 310px"><a href="http://hartjes.cc/wp-content/uploads/2008/02/f_reading_pattern_eyetracking.jpg"><img class="size-medium wp-image-100" title="F Reading Pattern Eyetracking" src="http://blog.netzelf.de/wp-content/uploads/2010/11/f_reading_pattern_eyetracking-300x133.jpg" alt="F Reading Pattern Eyetracking" width="300" height="133" /></a><p class="wp-caption-text">F Reading Pattern Eyetracking</p></div>
<p>Anschaulich wird hierbei, dass grundlegend die Position der Navigationsleiste nicht die Schlechteste ist. Problematisch allerdings ist der Umstand, dass die Aufmerksamkeit nach rechts hin abnimmt, soweit kein Item den Blick des Betrachters auf sich zieht.</p>
<p>Im Bezug auf Customtabs erweisen sich deren vorgeschriebene Abmaße als Flaschenhals. 520 Pixel – das ist wahrlich nicht viel, um große Mengen Content nebeneinander unterzubringen. Da liegt ein Argument natürlich auf der Hand, denn die verfügbare Höhe ist nicht beschränkt. Scrollen bedeutet zwar Arbeit, grundsätzlich aber kein Nachdenken. Fest steht allerdings, dass je länger ein Customtab ist, desto mehr Inhalt liefert er. Sofort wird wieder die Erinnerung an Proportionalität zwischen der Informationsmenge und dem Anspruch auf Strukturierung wach.</p>
<p>Ist weniger also mehr oder bringt viel auch viel? Fest steht: dem Erfolgsfaktor Usability muss bereits in der Konzeption mehr Beachtung geschenkt werden. Das darf aber nicht das einzige Mal sein, dass man sich über die Gebrauchstauglichkeit von Applikationen auf Facebook Gedanken macht. Denn die stetige Dynamik bedingt auch eine stetige Anpassung. Dieser Faktor ist speziell im Kontext eines sozialen Netzwerkes erfolgsentscheidend. Immerhin sind Menschen hier noch viel weniger als sonst im Netz explizit auf der Suche nach Informationen, was den Anspruch steigert, sie erst gar nicht suchen lassen zu müssen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.netzelf.de/lang/en/tipps-und-tricks/facebook-fanpage-tricks-vol-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook Fanpage Tricks Vol. 1</title>
		<link>http://blog.netzelf.de/lang/en/tipps-und-tricks/facebook/fanpage-tricks-fbml</link>
		<comments>http://blog.netzelf.de/lang/en/tipps-und-tricks/facebook/fanpage-tricks-fbml#comments</comments>
		<pubDate>Fri, 24 Sep 2010 12:46:26 +0000</pubDate>
		<dc:creator>rreif</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Fanpage]]></category>
		<category><![CDATA[FBML]]></category>

		<guid isPermaLink="false">http://blog.netzelf.de/?p=79</guid>
		<description><![CDATA[Strg+s, Alt+Tab, F5. Kurz gefasst, ist das einer der eingeschleiften Arbeitsabläufe beim Erstellen von HTML- Templates. Erst recht, wenn nach dem groben Behau einer Website-Skulptur deren Makeup via CSS folgt, wird der ständige Wechsel zwischen Editor und Browser zum Mantra. Befasst man sich mit der Thematik Customtabs auf Fanpages zu erstellen wird schnell offenbar, dass dieses Prinzip so nicht funktioniert bzw. um einiges umständlicher ist.]]></description>
			<content:encoded><![CDATA[<p>Strg+s, Alt+Tab, F5.</p>
<p>Kurz gefasst, ist das einer der eingeschleiften Arbeitsabläufe beim Erstellen von HTML- Templates. Erst recht, wenn nach dem groben Behau einer Website-Skulptur deren Makeup via CSS folgt, wird der ständige Wechsel zwischen Editor und Browser zum Mantra.</p>
<p>Befasst man sich mit der Thematik Customtabs auf Fanpages zu erstellen wird schnell offenbar, dass dieses Prinzip so nicht funktioniert bzw. um einiges umständlicher ist. Der von Facebook gelieferte Zugang, um eigenen Content mittels Quelltext zu hinterlegen, ist ein Formular im Browser mit einer Breite von 300 Pixeln. Das bedeutet, dass mit viel gutem Willen knapp 50 Zeichen nebeneinander passen. Dieser Wert kann schwanken, da innerhalb der Eingabemaske kein Monospace-Font verwendet wird. Wer also ansonsten Wert auf sauberen Codestyle legt kommt hier schnell an die Grenzen der Übersichtlichkeit, da Einrückungen und lange Attributsbezeichnungen die Zeile zum Umbrechen veranlassen.Allein diese Gesichtspunkte sind wohl Motivation genug, um sich einen Workflow anzueignen, der eine probate Alternative zum Coding innerhalb des FBML- Formulars darstellt.<span id="more-79"></span></p>
<p>So kommt an erster Stelle wieder der gute alte Editor ins Spiel. Mit vertrauten Eigenschaften wie Monospace- Font, Codehighlighting und einer Zeilenlänge über fast die komplette Bildschirmbreite lässt er für Programmierer ein familiäres Verbundenheitsgefühl aufkommen und ist Garant für systematischen (und somit übersichtlichen) Codestyle. An zweiter Stelle gilt es umzudenken. Um ein HTML- Template im Browser darstellen zu lassen, bedarf es einiger Tags, die beim Erstellen von Customtabs nicht zulässig sind. Die Lösung: ein Dummytemplate. Dieses besteht grundsätzlich aus einem Blockelement innerhalb der Bodytags, welches die essenziellen Styles enthält:</p>
<ul>
<li>eine Breite von 520 Pixeln</li>
<li>overflow: hidden</li>
</ul>
<p>Innerhalb dieses Elementes kann dann munter Quellcode hinterlegt werden, welcher die Inhalte beherbergt, die im Customtab der Fanpage erscheinen sollen. Ist alles auf einem Stand, der zufriedenstellend ist, gilt es lediglich diesen Quellcode zu kopieren und im FBML- Formular einzufügen. Nebenbei bemerkt ist es sinnvoll vor dem Einfügen ein paar Zeilenumbrüche im Formular zu setzen. Die Begründung: Die Darstellung des Formulars inklusive seines Inhaltes funktioniert nicht immer fehlerfrei. So kann es schon mal vorkommen, dass einem die letzte Zeile des Quelltextes nicht angezeigt wird und man annimmt einen Fehler gemacht zu haben, indem man ein Tag nicht geschlossen hat.</p>
<p>Aber HTML ohne CSS ist wie Currywurst ohne Pommes. Der saubere Weg ist demnach, Stylesheets in einer externen Datei zu definieren, auf welche innerhalb des HTML- Templates verwiesen wird. Grundsätzlich kein Problem bei der lokalen Entwicklung über den oben beschriebenen Weg. Im Handumdrehen ist eine Datei angelegt und mit Styledeklararionen befüllt. Einmal eingebunden, werden Änderungen an der Datei anstandslos übernommen und geben direkte Auskunft über das Können ihres Bearbeiters.</p>
<p>Arbeitet man an einer Fanpage, verhält sich die Sache etwas anders. Hat man das Template eines Customtabs inklusive zugehöriger Stylesheets entwickelt, kopiert man nun den Quelltext in das FBML- Formular und verweist auf die CSS- Datei. Nach unten scrollen, speichern, Customtab anklicken und das Ergebnis begutachten. Der beste Fall ist nun, dass alles so ist, wie man es sich wünscht. Hand auf´s Herz… das passiert eher selten. Eigentlich gibt es immer Dinge, die einem erst auffallen, nachdem man seinen Quellcode auf Facebook hinterlegt hat. Das ist der Punkt, an dem man sich selber zur Disziplin ermahnen muss.</p>
<p>Zu frühe Migration des Quellcodes bedeutet häufig, dass man nicht den als umständlich erscheinenden Weg geht, Änderungen am Dummytemplate im Editor vorzunehmen. Man neigt dazu, den Code gleich im Formular ändern zu wollen, immerhin repräsentiert es den kürzesten Weg zwischen Code und Darstellung und führt zu einem schnellen Ergebnis. Beim Anblick des Quelltextes im Formular wird allerdings das eingangs angesprochene Problem wieder offenbar: Der Code ist wüst über Zeilenumbrüche verteilt und die Codestelle zu finden, die es zu ändern gilt, avanciert zur höheren Aufgabe. Eine versehentlich falsche Änderung ist nicht mehr wie im Editor über die vertraute Tastenkombination Strg + z zu revidieren. Hinzu kommt, dass man nun nicht mehr nur eine änderungswürdige Stelle im Code hat, die es zu finden gilt.</p>
<p>In diesem Zusammenhang bedarf es auch eines Umdenkens, was die Deklaration von Stylesheets angeht. Auch bei größter Anstrengung bezüglich der Selbstdisziplin macht es Facebook einem hier nicht so einfach. Spätestens ab dem Moment, in dem man feststellt, dass jede Änderung an der CSS- Datei bezüglich ihrer Wirkung auf die Fanpage effektfrei bleibt, sollte man der Ursache auf den Grund gehen.</p>
<p>Die Erklärung des Phänomens ist einfach. Um den Quelltext in die Plattform einzubinden, durchläuft dieser ein Preparsing. Damit wird gewährleistet, dass Quellcode, der nicht den Vorgaben entspricht (beispielsweise unzulässige Tags enthält), stillschweigend gelöscht wird bevor der Browser beginnt, den Code zu parsen. Genau das geschieht auch mit extern definierten Stylesheets. Diese werden allerdings nicht bei jedem Aufruf des Customtabs neu geparst. Einmal auf eine CSS- Datei verwiesen, wird diese verarbeitet und serverseitig gespeichert. Der Effekt: Ändert man die Datei im Nachhinein, können die Änderungen nicht übernommen werden da lediglich am Dateinamen im Einbindungspfad detektiert werden kann, ob diese Datei schon einmal eingelesen wurde. Ändert man also eine CSS- Datei ohne ihren Namen zu ändern und diesen korrekt im Quelltext einzubinden, besteht kein Anlass die Datei erneut zu parsen.</p>
<p>Ändert man mit jeder Änderung der CSS- Datei also ihren Namen, funktioniert alles zufriedenstellend. Das kostet freilich ein bisschen mehr Zeit und Mühe. Im Gegensatz zum Zeit- und Nervenaufwand, der einen ansonsten erwartet ist das aber sicher zu verschmerzen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.netzelf.de/lang/en/tipps-und-tricks/facebook/fanpage-tricks-fbml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Content-Elemente durchnummerieren</title>
		<link>http://blog.netzelf.de/lang/en/tipps-und-tricks/content-elemente-durchnummerieren</link>
		<comments>http://blog.netzelf.de/lang/en/tipps-und-tricks/content-elemente-durchnummerieren#comments</comments>
		<pubDate>Wed, 23 Jun 2010 00:25:10 +0000</pubDate>
		<dc:creator>Christian Opitz</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[Tips and tricks]]></category>
		<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://blog.netzelf.de/?p=71</guid>
		<description><![CDATA[Von Zeit zu Zeit ist es sinnvoll, die Content-Elemente (&#60;div class=&#8221;csc-default&#8221;&#62;&#124;&#60;/div&#62;) durchgehend zu nummerieren. Dies dient besonders der Formatierung in Abhängigkeit von der Reihenfolge, da die IDs der Content-Elemente nur dann dafür geeignet sind, wenn sie nicht gelöscht oder umsortiert werden. Unter der Voraussetzung, dass CSS-Styled-Content verwendet wird, kann dazu folgender Code verwendet werden: tt_content.stdWrap.innerWrap.cObject.default [...]]]></description>
			<content:encoded><![CDATA[<p>Von Zeit zu Zeit ist es sinnvoll, die Content-Elemente (&#60;div class=&#8221;csc-default&#8221;&#62;&#124;&#60;/div&#62;) durchgehend zu nummerieren. Dies dient besonders der Formatierung in Abhängigkeit von der Reihenfolge, da die IDs der Content-Elemente nur dann dafür geeignet sind, wenn sie nicht gelöscht oder umsortiert werden. Unter der Voraussetzung, dass CSS-Styled-Content verwendet wird, kann dazu folgender Code verwendet werden:<span id="more-71"></span></p>
<div class="code">tt_content.stdWrap.innerWrap.cObject.default {<br />
14 = LOAD_REGISTER<br />
14.counter {<br />
data = register:counter<br />
stdWrap.wrap = &#124;+1<br />
prioriCalc = 1<br />
}<br />
15 {<br />
value = csc-{register:counter} csc-default<br />
insertData = 1<br />
}<br />
}</div>
<p><span>Damit wird jedem der Content-DIVs eine zusätzliche Klasse csc- mit fortlaufender Nummer hinzugefügt.<br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.netzelf.de/lang/en/tipps-und-tricks/content-elemente-durchnummerieren/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>tslib_cObj-&gt;IMAGE im Backend</title>
		<link>http://blog.netzelf.de/lang/en/tipps-und-tricks/tslib_cobj-image-im-backend</link>
		<comments>http://blog.netzelf.de/lang/en/tipps-und-tricks/tslib_cobj-image-im-backend#comments</comments>
		<pubDate>Mon, 10 May 2010 00:50:49 +0000</pubDate>
		<dc:creator>Christian Opitz</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[Tips and tricks]]></category>

		<guid isPermaLink="false">http://blog.netzelf.de/?p=45</guid>
		<description><![CDATA[Für die Website eines Kunden, auf der FE-Nutzer teils recht große Bilder hochladen können, suchte ich nach einer Möglichkeit, die Bilder im Backend anzuzeigen. Dazu fügte ich dem TCA ein USER-Feld hinzu, welche das Foto ausgibt. In dieser Funktion habe ich zunächst auf die Backend-Funktion t3lib_befunc::getThumbnail() zurückgegriffen, was sich allerdings als ungünstig herausstellte, da 1. [...]]]></description>
			<content:encoded><![CDATA[<p>Für die Website eines Kunden, auf der FE-Nutzer teils recht große Bilder hochladen können, suchte ich nach einer Möglichkeit, die Bilder im Backend anzuzeigen. Dazu fügte ich dem TCA ein USER-Feld hinzu, welche das Foto ausgibt. In dieser Funktion habe ich zunächst auf die Backend-Funktion t3lib_befunc::getThumbnail() zurückgegriffen, was sich allerdings als ungünstig herausstellte, da 1. die Qualität sehr schlecht war 2. größere Bilder auf dem Webspace von der Stange häufig nur zur Hälfte erzeugt wurden.<span id="more-45"></span></p>
<p>Daraufhin war die Überlegung, die &#8220;Thumbnails&#8221; nicht über die BE- sondern die FE-Funktion (also IMAGE) zu erzeugen. Zum einen ist es damit möglich, zu erfassen, ob das Bild erfolgreich verkleinert wurde und zum anderen kann man sich so den File-Cache vom Frontend zu Nutze machen Das erste und auch einzig brauchbare Ergebnis, auf das ich bei der Suche nach &#8220;cObject im Backend&#8221; stiess, war dieser <a href="http://www.typo3-scout.de/2008/05/28/cobject-im-backend/" target="_blank">Post</a>. Es hat zwar nicht funktioniert aber immerhin konnte ich mir hier die nötigen Includes zusammenklauben.</p>
<p>Ich hatte ursprünglich vor, die Lösung dort als Kommentar zu hinterlegen. Da ich aber zu Recht als Spam abgewiesen wurde, poste ich sie jetzt hier. Vorweg: Der Titel ist irreführend &#8211; ich habe es nicht geschafft bzw. nicht die Geduld gehabt, das IMAGE-Objekt im Backend zu nutzen. ABER: Um ein Bildchen mit den FE-Methoden zu verkleinern und auszugeben, braucht es nicht unbedingt das IMAGE-Objekt. Die Methode tslib_cObj-&#62;getImgResource() genügt.</p>
<p>Hier also kurz und knackig die Lösung (sorry für die wüste Form):</p>
<div class="code">
<p>&#60;?php<br />
require_once (PATH_site.&#8217;typo3/sysext/cms/tslib/class.tslib_fe.php&#8217;);<br />
require_once (PATH_site.&#8217;typo3/sysext/cms/tslib/class.tslib_content.php&#8217;) ;</p>
<p>class tx_name_tca<br />
{<br />
/**<br />
* Eine User-Funktion für ein TCA-USER-Feld<br />
*<br />
* @param array $PA<br />
* @param t3lib_TCEforms $fobj<br />
* @return string<br />
*/<br />
public function user_source($PA, t3lib_TCEforms $fobj)<br />
{<br />
$tsfe = t3lib_div::makeInstance(&#8216;tslib_fe&#8217;, $GLOBALS['TYPO3_CONF_VARS'], 0, 0);<br />
$tsfe-&#62;initTemplate();<br />
$GLOBALS['TSFE']-&#62;tmpl = $tsfe-&#62;tmpl;</p>
<p>$cwd = getcwd();<br />
chdir(PATH_site);</p>
<p>$cObj = new tslib_cObj();<br />
$conf = array(<br />
//z.B. uploads/tx_name/name.jpg:<br />
&#8216;file&#8217; =&#62; $PA['row']['myFile'],<br />
&#8216;file.&#8217; =&#62; array(<br />
&#8216;maxW&#8217; =&#62; &#8217;550&#8242;,<br />
&#8216;maxH&#8217; =&#62; &#8217;350&#8242;<br />
)<br />
);<br />
$imgResource = $cObj-&#62;getImgResource($conf['file'], $conf['file.']);</p>
<p>chdir($cwd);</p>
<p>return &#8216;&#60;img src=&#8221;../&#8217;.$imgResource[3].&#8217;&#8221; /&#62;&#8217;;<br />
}<br />
}</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.netzelf.de/lang/en/tipps-und-tricks/tslib_cobj-image-im-backend/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>TYPO3 goes WordPress goes TYPO3</title>
		<link>http://blog.netzelf.de/lang/en/tipps-und-tricks/typo3-goes-wordpress-goes-typo3</link>
		<comments>http://blog.netzelf.de/lang/en/tipps-und-tricks/typo3-goes-wordpress-goes-typo3#comments</comments>
		<pubDate>Wed, 14 Oct 2009 12:27:34 +0000</pubDate>
		<dc:creator>Christian Opitz</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[Tips and tricks]]></category>

		<guid isPermaLink="false">http://blog.netzelf.de/?p=39</guid>
		<description><![CDATA[Es ist gelungen: Die Website von Netzelf (TYPO3) wurde in den letzten Tagen erfolgreich mit dem Netzelf-Blog (WordPress) gekoppelt. Da ich im Netz keinerlei Ansätze für dieses Unterfangen finden konnte, möchte ich Entwicklern mit ähnlichen Vorhaben den Lösungsweg nicht vorenthalten. Das grundlegende Problem war, dass das in TYPO3 verwaltete Template bei jeder Änderung in WordPress [...]]]></description>
			<content:encoded><![CDATA[<p>Es ist gelungen: Die Website von Netzelf (TYPO3)  wurde in den letzten Tagen erfolgreich mit dem Netzelf-Blog (WordPress) gekoppelt. Da ich im Netz keinerlei Ansätze für dieses Unterfangen finden konnte, möchte ich Entwicklern mit ähnlichen Vorhaben den Lösungsweg nicht vorenthalten.<span id="more-39"></span></p>
<p>Das grundlegende Problem war, dass das in TYPO3 verwaltete Template bei jeder Änderung  in WordPress manuell adaptiert werden musste. Die Lösung dafür war denkbar einfach: Zunächst wurde ein Skript entwickelt, das das Template von TYPO3 bezieht. Dies funktioniert über eine Kombination aus <a href="http://php.net/manual/de/book.curl.php" target="_blank">cURL</a> und dem <a href="http://typo3.org/documentation/document-library/references/doc_core_tsref/4.2.0/view/1/7/#id4239691" target="_blank">PageType in TYPO3</a>. Dafür wurde das Standard-PAGE-Objekt im TS-Setup dupliziert und für den Seitentyp 300 etwas angepasst:</p>
<div class="code">blog = PAGE<br />
blog &#60; page<br />
blog.config.index_enable = 0<br />
blog.typeNum = 300<br />
blog.headerData.10 &#62;<br />
blog.headerData.10 = TEXT<br />
blog.headerData.10.value = ###HEAD###<br />
blog.10.marks.FOOT.wrap = &#124;###FOOT###<br />
blog.meta &#62;<br />
blog.10.marks.CONTENT &#62;<br />
blog.10.marks.MAINNAV.alwaysActivePIDlist = 3</div>
<p>Das Ergebnis wird im WP-Frontend durch das Skript mittels cURL abgerufen und sieht folgendermaßen aus: <a href="http://netzelf.de/?type=300" target="_blank">Mit TYPO3 generiertes Template</a>. Dies geschieht für jede im Skript konfigurierte Sprache aus Performance-Gründen nur bei Übermittlung eines<em> geheimen Parameters</em>. Anschließend werden die empfangenen Inhalte in temporären Dateien abgelegt.</p>
<p>Nachdem das Skript die richtige Sprache zur Ausgabe im WordPress-Theme gewählt und das passende Template eingelesen hat, passt es mittels preg_replace noch die Links zu CSS- und JS-Dateien und TYPO3-Links an, teilt das Template mittels explode() in Header, Body und Footer auf und schreibt dies in ein $GLOBALS-Array. Die Bestandteile werden schließlich an passender Stelle im Theme ausgegeben.</p>
<p>Damit ist auch schon die optische Kopplung von Website und Blog erledigt. Der zweite und wesentlich anstrengendere Schritt bestand darin, die Suchfunktionen beider Systeme miteinander zu verbinden. Zwei günstige Umstände machten die Vorüberlegungen dazu jedoch relativ einfach: Zum einen erlaubt TYPO3 eine wunderbare Erweiterungsmöglichkeit mittels XCLASS und zum anderen kann in WordPress-Feeds ein Suchbegriff mittels GET ausgewertet werden. Der weitere Weg bestand also darin, die tx_indexedsearch-Klasse mit XCLASS zu erweitern und dabei die Ergebnisse aus WordPress mit Hilfe der wunderbaren Erweiterung <a href="http://typo3.org/extensions/repository/view/tw_rssfeeds/current/" target="_blank">TW RSS Feeds</a> einzubinden. Das Ergebnis lässt sich über die Suche oben rechts bestaunen.</p>
<p>Letztendlich hat die Aktion zwei Tage in Anspruch genommen und läuft weitestgehend stabil. Leider fehlt z.Zt. die Zeit, den Vorgang in einer T3X und einem WordPress-Plugin zu manifestieren. Auf Anfrage veröffentliche ich jedoch gern unbedenkliche Teile des Quellcodes.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.netzelf.de/lang/en/tipps-und-tricks/typo3-goes-wordpress-goes-typo3/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>BugFix for com_gigcal</title>
		<link>http://blog.netzelf.de/lang/en/tipps-und-tricks/joomla-components/bugfix-fur-com_gigcalbugfix-for-com_gigcal</link>
		<comments>http://blog.netzelf.de/lang/en/tipps-und-tricks/joomla-components/bugfix-fur-com_gigcalbugfix-for-com_gigcal#comments</comments>
		<pubDate>Wed, 08 Oct 2008 17:47:49 +0000</pubDate>
		<dc:creator>Christian Opitz</dc:creator>
				<category><![CDATA[Joomla Components]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[gigCal]]></category>
		<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://blog.netzelf.de/?p=10&amp;lang=de</guid>
		<description><![CDATA[There was a bug in the installation-XML of the Joomla-Component com_gigcal 1.0.2. The installation failed because of an error in the SQL-commands. You can now download the fixed version here. Download-Link: com_gigcal-102_fixed_by_netzelf.de.zip]]></description>
			<content:encoded><![CDATA[<p> <span lang="en">There was a bug in the installation-XML of the Joomla-Component com_gigcal 1.0.2. The installation failed because of an error in the SQL-commands. You can now download the fixed version here.</span> <span id="more-10"></span></p>
<p>Download-Link: <a href="http://blog.netzelf.de/wp-content/uploads/2008/10/com_gigcal-102_fixed_by_netzelfde.zip">com_gigcal-102_fixed_by_netzelf.de.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.netzelf.de/lang/en/tipps-und-tricks/joomla-components/bugfix-fur-com_gigcalbugfix-for-com_gigcal/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Automatic category images in XTCommerce</title>
		<link>http://blog.netzelf.de/lang/en/tipps-und-tricks/automatische-kategoriebilder-in-xtcommerce</link>
		<comments>http://blog.netzelf.de/lang/en/tipps-und-tricks/automatische-kategoriebilder-in-xtcommerce#comments</comments>
		<pubDate>Mon, 05 May 2008 16:56:26 +0000</pubDate>
		<dc:creator>Christian Opitz</dc:creator>
				<category><![CDATA[Tips and tricks]]></category>
		<category><![CDATA[XTCommerce]]></category>
		<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[Kategoriebilder]]></category>
		<category><![CDATA[Smarty]]></category>

		<guid isPermaLink="false">http://block.netzelf.de/?p=4</guid>
		<description><![CDATA[Not everyone who uses a XTC system has the time to set a category image for each category &#8211; just as if you have a quiet complex category structure. Apart from that the native XTC category image function has a further problem: The images have to be uploaded for each category. What next if you [...]]]></description>
			<content:encoded><![CDATA[


<p><span lang="en">Not everyone who uses a XTC system has the time to set a category image for each category &#8211; just as if you have a quiet complex category structure.</span></p>
<p><span lang="en">Apart from that the native XTC category image function has a further problem: The images have to be uploaded for each category. What next if you used a product image for a category and the product later possibly does&#8217;nt exist in this category anymore?</span></p>
<p><span lang="en">That&#8217;s why i prefer the automatic output of category images. Where do this images come from? They are product images from a product within the category.</span><span id="more-4"></span></p>



<p><span lang="en">While it&#8217;s quiet complicated to extend XTC with functions like these there is another relatively comfortable way: Through Smarty plugins.</span></p>
<p><span lang="en">The well documented and flexible parsing engine allows to use different plugins and to extend XTC without hacking any core files.</span></p>
<p><span lang="en">How does it work?</span></p>


<p><span lang="en"><strong>Step 1/2 &#8211; install the plugin</strong></span></p>
<p><span lang="en">Download the Smarty plugin <a href="http://blog.netzelf.de/wp-content/uploads/2008/05/modifierauto_category_image.zip">here</a> and extract the file to the directory <em>[XTC-Wurzelverzeichnis]/includes/classes/Smarty_2.6.14/plugins/</em> on your server.</span></p>









<p><span lang="en"><strong>Schritt 2/2 &#8211; Customise your template</strong></span></p>
<p><span lang="en">Open the file</span></p>
<p><span lang="en"><em>[XTC-root directory]/templates/[Your Template]/module/categorie_listing/categorie_listing.html</em></span></p>
<p><span lang="en">find this line</span></p>
<div class="code"><span lang="en">{if $module_data.CATEGORIES_IMAGE} &#60;a href=&#8221;{$module_data.CATEGORIES_LINK}&#8221;&#62;&#60;img src=&#8221;{$module_data.CATEGORIES_IMAGE}&#8221; alt=&#8221;{$module_data.CATEGORIES_NAME}&#8221; /&#62;&#60;/a&#62;{/if}</span></div>
<p><span lang="en">and comment it out. (Simply insert {* before and *} after)</span></p>
<p><span lang="en">After this line insert:</span></p>
<div class="code"><span lang="en">&#60;a href=&#8221;{$module_data.CATEGORIES_LINK}&#8221;&#62;&#60;img src=&#8221;{$module_data.CATEGORIES_LINK&#124;auto_category_image:true}&#8221; alt=&#8221;" /&#62;&#60;/a&#62;</span></div>
<p><span lang="en">and save the file.</span></p>



<p><span lang="en"><strong>Ready</strong></span></p>
<p><span lang="en">The attribute ready stands for the automatic output. It&#8217;s your choice to set it to <strong>true</strong> to output the image at random or to <strong>false</strong> to output first found image.</span></p>
<p><span lang="en"><strong>Attention:</strong> This script searches the database recursively for product images. So if you have a large amount of nested sub categorys without product images within you should not use this script for perfomance reasons.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.netzelf.de/lang/en/tipps-und-tricks/automatische-kategoriebilder-in-xtcommerce/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
	</channel>
</rss>

