AngusIM navigation

Ranking Check

Kostenloser Ranking Service.
Jetzt anmelden und testen!
www.private-ranking.de


Abonnieren

RSS 2.0

Archiv

Suchmaschinenoptimierung
Veröffentlicht in: Typo3
09.09.2009

Wie installiere ich t3blog? Ein Tutorial.

T3Blog mit Templavoila, die Zweite

Das zweite Problem mit Templavoila ist die Sortierung der Inhaltselemente. Die wird nämlich bei jedem neuen Blogbeitrag komplett durcheinandergewürfelt (bzw. vertauscht). Das ist natürlich maximal nervig. Das ist ein Templavoila-Internes Problem, dem man so schnell nicht Herr wird. Johannes hat das Problem ausführlich beschrieben, das brauch' ich hier nicht zu wiederholen.

Man kommt also nicht drum herum, das Templavoila-Skript zu modifizieren. Ich habe mir allerdings eine Lösung ausgesucht, die ein bisschen weniger Code und Includes benötigt. Wie bei Johannes fügt man zu Beginn der Funktion correctSortingAndColposFieldsForPage in "typo3conf/ext/templavoila/class.tx_templavoila_tcemain.php" ab Zeile 422 zusätzlichen Code ein:


  1. // TSconfig auslesen
  2. $ModTSconfig=t3lib_BEfunc::getModTSconfig($pid,'mod.'.$this->MCONF['name']);
  3. // Check ob Sortierung stattfinden soll oder nicht
  4. if($ModTSconfig['properties']['web_txtemplavoilaM1.']['disableReordering'])
  5.   return;

Dann muss in der TSconfig der Blog-Hauptseite noch folgender Eintrag gemacht werde:

  1. mod.web_txtemplavoilaM1.disableReordering = 1

Vielen Dank an Lina an dieser Stelle.

Fazit

Viel zu tun, wenn man so einen Blog einrichtet, trotz der Extension. Aber dafür ist dieser Beitrag da: Zeit sparen beim nächsten Mal. Ich hoffe ja, dass das ein oder andere noch nachgebessert wird. Vor allem beim Archiv-Widget vermisse ich die einfache Darstellung nach Jahren, ohne Klicki-Ausklapp-Javascript-Menü.

Freue mich auf Kommentare!

Anpassen des Designs

Die Darstellung der Blogwidgets wird über Typoscript geregelt. Hierfür liegen Vorlagendateien (setup.txt) in den Widget-Ordern in /typo3conf/ext/t3blog/pi1/widgets/widgetname. Diese Dateien kann man anpassen und damit das Aussehen bzw. die Darstellung verändern. Jetzt wird der ein oder andere bestimmt sagen:

"Hey, das macht man aber nicht, einfach in den Vorlagen rumzulöschen. Mach das gefälligst sauber über eigenes Typoscript!"

Da sag ich nur: Das muss jeder selbst entscheiden. Die Dinger sind zum Teil kilometerlang. Wenn man in den Dateien selber rumbaut, sollte man von jeder setup-Datei eine Originalkopie hinterlegen. Ansonsten kann man per Typoscript die Bereiche ansprechen und eventuell abstellen oder nachbearbeiten

  1. plugin.tx_t3blog_pi1.categories.categories.5.wrap = <ul class="green">|</ul>

Wie gesagt, das muss jeder selber wissen, was er für einfacher hält. Wenn Ihr in den Dateien selbst rumspielt, müsst Ihr nach jeder Änderung den Cache löschen, sonst tut sich nix.

 

RSS Feed

Damit hatte ich mit Abstand die meisten Probleme.

Die Konfiguration des RSS möchte ich hier nicht wiederholen, die kann man super bei Lina nachlesen. Die RSS-Konfiguration für RealURL ist in meinem Code oben schon mit drin.

 

Problem: Keine Feedausgabe bei eingeloggtem User
Es gibt in der class.rss.php eine Funktionalität, die überprüft, ob bestimmte User einen Beitrag lesen dürfen oder nicht, je nach User-Kategorie. Das klappt leider nicht. Bei eingeloggtem Zustand werden keine Beiträge ausgegeben. Also ändern wir ab Zeile 209 und 415:

  1. <?php
  2. // checks for posts only available on specific fe-users
  3. $fe_groupCheck = $GLOBALS['TSFE']->fe_user->groupData[uid];
  4.  
  5. $where.= ' AND '.$table.'.fe_group = "0"';
  6.  
  7. /*if(empty($fe_groupCheck)) {
  8.  
  9.   $where.= ' AND '.$table.'.fe_group = "0"';
  10. } else {
  11.   $where.= ' AND ('.$table.'.fe_group = 0 OR '.$table.'.fe_group = '.$fe_groupCheck['1'].')';
  12. }   */
  13. ?>
  14.  

dann geht’s. In diesem Zusammenhang finde ich eine Funktionalität sehr nett, die ein SEO-Kollege in seiner Blogsoftware eingebunden hat. Dort werden standardmäßig alle Blogbeiträge im RSS gekürzt bzw. angeteasert. Das soll verhindern, dass fremde Webseiten den Inhalt klauen und veröffentlichen, was sich – neben dem Klauen selbst - negativ auf das Ranking auswirken kann. Er bietet jetzt die Möglichkeit an, sich als registrierter Nutzer einen Key zu besorgen, mit dem man sich den kompletten Feed holen kann, etwa um ihn offline zu lesen oder im Online-Reader. So bleiben die Content-Diebe außen vor und regelmäßige Leser können bequem den ganzen Feed „bestellen“.

Einbinden der Widgets

Soll ja vorkommen, dass man Plugins nicht per Content-Element einbindet...  Ich möchte meine Plugins per Typoscript in einem bestimmten Bereich der Seite haben. Naja, normalerweise sollte das ja per

  1. lib.boxLinks < plugin.tx_t3blog_pi1.xyz

gehen. Tuts aber nicht... Auch nicht per plugin.tx_t3blog_pi2. Ich bin zugegebenermaßen kein Experte in Typoscript, bin nun auch schon seit Jahren dabei, aber ich hab es nicht hinbekommen. Beim Typoscript bin ich auch gerne mal betriebsblind und mache sehr dumme Fehler. Ich freue mich daher sehr über den rettenden Hinweis in den Kommentaren! Mein Workaround sieht jedenfalls genauso aus wie beim Templavoila. Die Plugins zu Fuss irgendwo als Vorlage über die Content-Funktion einbinden, ID merken und dann den RECORD per Typoscript einbinden:

  1. # Widgets einbinden
  2. # Letzte Beiträge
  3. lib.boxLinks = COA
  4. lib.boxLinks.1 = RECORDS
  5. lib.boxLinks.1.source = 75
  6. lib.boxLinks.1.tables = tt_content
  7.  
  8. # RSS
  9. lib.boxLinks.2 = RECORDS
  10. lib.boxLinks.2.source = 76
  11. lib.boxLinks.2.tables = tt_content
  12.  
  13. # Blogroll
  14. lib.boxLinks.3 = RECORDS
  15. lib.boxLinks.3.source = 77
  16. lib.boxLinks.3.tables = tt_content

T3Blog mit Templavoila, die Erste

Das von Snowflake vorgeschlagene Prinzip, irgendwo ein Extra-Template liegen zu haben, das komplett ausserhalb der Engine läuft, hat mir von Anfang an nicht behagt. Alles kopieren, im HTML rumwühlen, Marker setzen, und bei jeder Änderung alles zweimal anfassen? Wenn man mit Templavoila arbeitet, ist man superflexibel, was die Einbindung von Inhalten und Plugins betrifft, da man per Mausklick Inhaltsbereiche auf Typoscript-Mapper legen kann. Das wollte ich unbedingt beibehalten. Und die Lösung ist denkbar einfach (gefunden bei Joachim Weinbrenner).

Man dupliziert das bestehende Template in der TemplateVoila-Konfiguration. Dann wird die Kopie so umgemappt, dass dort, wo vorher der Content-Bereich war, per Typoscript Object Path der T3Blog eingebunden wird (hier lib.t3blog). Über diesen Pfad könnte man dann auf der Blog-Seite das blogList Widget für die Ausgabe der Blogbeiträge einbinden (könnte, wenn es doch so einfach wäre).

Ein zweites Problem ist die Inhaltsausgabe, die bei der Verwendung mit Templavoila doppelt ausfallen kann. Auch hierfür hat Joachim eine Lösung: Unter der Blog-Seite wird eine neue Inhaltsseite angelegt. In diese wird das blogList Widget als Plugin eingefügt. Die  ID dieses Elements wird nun per Typoscript in dasTemplate der Blog-Seite eingebunden:

  1. lib.t3blog = RECORDS
  2. lib.t3blog.source = 560
  3. lib.t3blog.tables = tt_content


Jetzt geht’s! Vielen Dank an Joachim an dieser Stelle!

Installation

Typo3 4.2.8
DAM 1.0.15
Typoscripttools 0.0.2
sfpantispam 0.0.0
T3Blog 0.6.2 -> (auf neue Version 0.8.1 dringend updaten!)
Pagebrowse 1.1.0 -> neu seit 0.8.1

In obiger Reihenfolge wurden die Extensions installiert. So weit, so gut. Der Installation nach Manual bin ich bis Schritt 5 gefolgt. Ab Schritt 6 habe ich lediglich die 2 statischen Templates für die Blogfunktionalität eingebunden (main configuration, functionalities on your website), da ich – erster Sonderfall – mein Typo3 mit Templavoila betreibe und den Blog im bestehenden Template laufen lassen möchte.

Realurl

Gerade für einen Blog sind suchmaschinentaugliche URLs Pflicht. Deshalb hier die komplette Konfiguration für Realurl. Sie beinhaltet die Grundkonfig und die Erweiterung für RSS:

  1. <?php
  2. 'fileName' => array (
  3.   'defaultToHTMLsuffixOnPrev' => 1,
  4.   'index' => array(
  5.   'page.html' => array(
  6.   'keyValues' => array (
  7.   'type' => 1,
  8.   ),
  9.   ),
  10.   'rss.xml' => array(
  11.       'keyValues' => array (
  12.       'type' => 100,
  13.       ),
  14.     ),
  15.   ),
  16.   ),
  17.   'fixedPostVarSets' => array(),
  18.   'postVarSets' => array(
  19.   '_DEFAULT' => array(
  20.   'blog-post' => array(
  21.        
  22.     'year' => array(
  23.       'GETvar' => 'tx_t3blog_pi1[blogList][year]',
  24.     ),
  25.     'month' => array(
  26.       'GETvar' => 'tx_t3blog_pi1[blogList][month]' ,
  27.     ),
  28.     'day' => array(
  29.       'GETvar' => 'tx_t3blog_pi1[blogList][day]',
  30.     ),     
  31.     'entry' => array (
  32.       'GETvar' => 'tx_t3blog_pi1[blogList][showUid]',
  33.       'lookUpTable' => array(
  34.         'table' => 'tx_t3blog_post',
  35.         'id_field' => 'uid',
  36.         'alias_field' => 'title',
  37.         'addWhereClause' => ' AND NOT deleted AND NOT hidden',
  38.         'useUniqueCache' => 1,
  39.         'useUniqueCache_conf' => array(
  40.           'strtolower' => 1,
  41.           'spaceCharacter' => '-',
  42.         ),
  43.       ),
  44.     ),
  45.   ),
  46.   'blog-category' => array (
  47.     'cat' => array (
  48.       'GETvar' => 'tx_t3blog_pi1[blogList][category]',
  49.       'lookUpTable' => array (
  50.         'table' => 'tx_t3blog_cat',
  51.         'id_field' => 'uid',
  52.         'alias_field' => 'catname',
  53.         'addWhereClause' => ' AND NOT deleted AND NOT hidden',
  54.         'useUniqueCache' => 1,
  55.         'useUniqueCache_conf' => array(
  56.           'strtolower' => 1,
  57.           'spaceCharacter' => '-',
  58.         ),
  59.       ),
  60.     )
  61.   ),     
  62.   'blog-from' => array (
  63.     'from' => array(
  64.       'GETvar' => 'tx_t3blog_pi1[blogList][datefrom]',
  65.     )
  66.   ),
  67.   'tags' => array (
  68.     'from' => array(
  69.       'GETvar' => 'tx_t3blog_pi1[blogList][tags]',
  70.     )
  71.   ),
  72.   'author' => array (
  73.     'from' => array(
  74.       'GETvar' => 'tx_t3blog_pi1[blogList][author]',
  75.     )
  76.   ),
  77.   'tstmp' => array (
  78.     'from' => array(
  79.       'GETvar' => 'tx_t3blog_pi1[tstmp]',
  80.     )
  81.   ),   
  82.   'blog-to' => array (
  83.     to => array(
  84.       'GETvar' => 'tx_t3blog_pi1[blogList][dateto]',
  85.     )
  86.   ),
  87.   'rssType' => array (
  88.     to => array(
  89.       'GETvar' => 'tx_t3blog_pi1[rss][feed_id]',
  90.     )
  91.   ),
  92.   'rssContent' => array (
  93.     to => array(
  94.       'GETvar' => 'tx_t3blog_pi1[rss][value]',
  95.     )
  96.   ),
  97.   'trackback' => array (
  98.       array(
  99.       'GETvar' => 'tx_t3blog_pi1[trackback]',
  100.     ),
  101.   ),
  102.   'insert' => array (
  103.         array(
  104.       'GETvar' => 'tx_t3blog_pi1[blogList][insert]',
  105.       'valueMap' => array (
  106.         'no' => '0',
  107.         'comment' => '1',
  108.       ),
  109.     ),
  110.  
  111.   ),
  112.   'editComment' => array (
  113.     'from' => array(
  114.       'GETvar' => 'tx_t3blog_pi1[blogList][editCommentUid]',
  115.           ),
  116.  
  117.   ),
  118.   'into' => array (
  119.         array(
  120.       'GETvar' => 'tx_t3blog_pi1[blogList][uid]',
  121.           ),
  122.  
  123.   ),
  124. ?>

Um eins vorwegzunehmen: Die Jungs von Snowflake haben sich wirklich Mühe gegeben, die unhaltbaren Zustände der fehlenden Blog-Funktionalität in Typo3 zu beenden. Die Extension t3blog ist extrem cool, bei allem was noch fehlt oder zu kritisieren ist! Die Bedienung ist einfach und das System läuft stabil.

Deshalb ist dies auch kein Läster- und Beschwerbeitrag, sondern eine Erinnerung für mich und alle anderen, was zu beachten ist, wenn man sich einen Blog installiert. Das ist nämlich eine ganze Menge.

Trackback-Link
Views: 2088
  • 9 Kommentare
Felix
08.01.2010
11:56

Anscheinend hat sich das TV Sortierungsproblem erledigt. Zumindest bei meinem TV 1.4.1 und TYPO3 4.3

Dankr und Grüße

Lina
19.01.2010
19:54

Ein sehr interessantes Tutorial, vielen Dank auch für die Links auf meinen Blog. Hast Du irgendwelche Erfahrungen mit dem Einsatz von TV's flexiblen Contentelementen innerhalb von T3Blog-Posts?

Christopher
28.02.2010
13:20

Danke für das ausführliche Tutorial!
Eine Sache ist mir bei der RealURL Einbindung aufgefallen. Wenn du die Liste bei dir oben durchblätterst wird noch ein Hash-Wert angezeigt und keine klare Adresse.

Harald
28.03.2010
17:58

Tolle Beschreibung! Erstmal vielen Dank, hat mir sehr geholfen!
Könntest Du eventuell noch etwas genauer darauf eingehen wie Du die Widgets eingebunden hast?
Ich kann den Blog nun im Main Content erfolgreich darstellen, würde aber gerne die Kategorien- und LastPosts-Widgets in meiner rechten Spalte anzeigen.

Wo hast Du den Content eingefügt für die Widgets?

Vielen Dank und Grüsse

Fabian
29.03.2010
16:36

Hallo Harald,

schön, dass ich Dir damit helfen konnte.

Die Widgets habe ich als Plugins in meinen Sys-Ordner gelegt. Wenn Du mit der Maus über das Plugin fährst in der List-Ansicht, wird Dir die ID angezeigt. Die musst Du im Template für lib.boxLinks.1.source = ID einsetzen.

Felix Nagel
29.03.2010
17:08

@Lina

Ich hab etwas Erfahrung mit TV FCEs innerhalb von t3blog. Das geht soweit ganz gut, nur wird es schwierig wenn du FCEs in FCEs setzen willst, also zum Beispiel COs (Container for elements). Normale FCEs in denen du Texte, Bilder, Links etc. einsetzt sind keinerlei Problem.

renate
05.04.2010
17:01

vielen Dank das ist echt eine grosse Hilfe

(Bin eigentlich darauf gestossen weil ich eine Lösung suche warum bei meinem Blog der Seitenbaum nicht auf und zuklappt - dazu kann ich nirgends eine Lösung finden)

verstehe jedoch nicht wo das Realurl phpScript hin soll
in die localconf.php oder in das setup im Typo3?
ein Hinweis dazu wäre toll
renate

Fabian Jaeckert
06.04.2010
10:46

Hallo Renate,

normalerweise direkt in die localconf.php.

Felix Nagel
27.07.2010
19:02

Hallo,

mich würde wirklich brennend interessieren ob du diesen Bug derzeit noch bestätigen kannst. Meiner Meinung nach ist er immer noch ein Problem.
Zumindest meine TYPO3 Installation mit dem aktuellen T3Blog und TYPO3 macht immer noch Ärger.

Ich hatte da schon mal kurz Kontakt zu Dimitry Dulepov der konnte das damals nicht bestätigen und meinte falls ich mir sicher bin soll ich einen neuen Bug aufmachen. Allerdings bin ich mir um meiner Einbindungsmethodik unter TemplaVoila nicht völlig sicher. Es gibt ja ein paar Varianten und ich vermute fast das es relevant ist wie T3Blog eingebunden wird.

Um ein Feedback wäre ich sehr dankbar.

Grüße
Felix

ps: bitte verzeiht das crossposting bei http://www.johannesdoerr.de/techblog/blog-post/2009/07/05/templavoila-t3blog.html aber die Thematik eurer Posts und die Lösung sind funktional identisch.

Mein Kommentar

Benachrichtige mich, wenn jemand einen Kommentar zu dieser Nachricht schreibt.

Zurück