Aug 25
Seit TYPO3 4.4 werden beim Einfügen von CSS-Dateien mittels includeCSS Zeitstempel an den Dateinamen angehängt um die Eindeutigkeit zu garantieren und Cache-Problemen vorzubeugen. Die Konfiguration für ältere TYPO3-Versionen sieht wie folgt aus:
pdf_generator = PAGE
pdf_generator {
includeCSS.pdf = fileadmin/templates/blogix/css/pdf.css
}
Die Ausgabe im Frontend von TYPO3 4.4 mit Zeitstempel sieht dann in etwa wie folgt aus:
<link rel="stylesheet" type="text/css" href="fileadmin/templates/blogix/css/pdf.css?1282730709" media="all" />
Der PDF Generator bzw. das verwendete html2ps können damit leider nicht umgehen und das CSS wird deshalb im PDF nicht verwendet. Abhilfe schafft man, indem man die Konfiguration um zwei Zeilen erweitert und eine Ersetzung mittels regulärem Ausdruck (RegExp) durchführt:
pdf_generator = PAGE
pdf_generator {
includeCSS.pdf = fileadmin/templates/blogix/css/pdf.css
config.pdf_generator2 {
regexp_search1 = /pdf\.css\?([0-9]{10})/
regexp_replace1 = pdf.css
}
}
May 24
Mit den Sub-Templates von TemplaVoilà ist es möglich Layouts für spezielle Ansichten (z.B. Druckversion) festzulegen. Hierfür legt man im Modul TemplaVoilà ein neues “TemplaVoilà Template Object” an und wählt für “Make this a sub-template of” das Template aus, für das die spezielle Ansicht gültig sein soll. Für “Select a type of rendering” wählt man die gewünschte spezielle Ansicht aus. Vordefiniert ist neben der Standardansicht “Default output” nur eine Druckversion “Printer friendly”. Das ist z.B. dann nicht ausreichend, wenn auf einer Webseite auch PopUps für Hilfetexte benötigt werden.
Um nun eine PopUp-Ansicht erstellen zu können, muss zuerst ein neuer “type of rendering” definiert werden. Hierfür fügt man in der “TSconfig” der Rootpage (im Page-Modul das Kontextmenü der Rootpage öffnen und “Edit page properties” auswählen; Registerkarte “Options” anklicken) eine neue Zeile ein:
TCEFORM.tx_templavoila_tmplobj.rendertype.addItems.popup = PopUp
“PopUp” ist die Bezeichnung, die in “Select a type of rendering” angezeigt wird, “popup” ist die ID, mit welcher der “type of rendering” mit TypoScript im “Setup” angesprochen werden kann. Nach dem Speichern kann im Sub-Template der soeben erstellte “type of rendering” ausgewählt werden.
Nun muss noch die Ansicht formatiert werden. Hierfür legt man mittels TypoScript im “Setup” (im Template-Modul “Setup” der Rootpage bearbeiten) einen neuen Seiten-Typ fest:
popup = PAGE
popup < page
popup {
typeNum = 123
10 = USER
10 {
childTemplate = popup
userFunc = tx_templavoila_pi1->main_page
}
}
Für “childTemplate” muss die zuvor angegebene ID angegeben werden. Mit “typeNum” legt man die Type-ID fest über die die spezielle Ansicht im Browser aufgerufen werden kann (z.B.: http://www.blogix.net/page?type=123). Damit nicht alle Einstellungen für die Page “popup” erneut festgelegt werden müssen, können diese mit “popup < page” übernommen werden.
Jan 24
In der Standardkonfiguration von TYPO3 werden externe Links mit target=”_blank” versehen, entsprechen somit nicht mehr dem XHTML 1.0 Strict-Standard und überschreiben die Browser-Voreinstellungen des Benutzers. Anstelle von XHTML 1.0 Strict könnte man den DOCTYPE wechseln, z.B. XHTML 1.0 Transitional verwenden. Meine Meinung ist allerdings, dass man als Webentwickler nicht in die bevorzugten Einstellungen der Benutzer eingreifen sollte und deshalb sollte man unter anderem target=”_blank” nicht verwenden. In TYPO3 sind zahlreiche Einstellungen mittels TypoScript vorzunehmen, um (alle) target=”_blank” aus den Links zu entfernen. Folgende Einstellungen sind hierfür erforderlich und müssen in das “CONSTANTS”-Feld des Templates der Root-Page eingefügt werden:
PAGE_TARGET =
content.pageFrameObj =
styles.content {
links {
extTarget =
target =
}
loginform.target =
mailform.target =
searchresult {
resultTarget =
target =
}
}
Jan 23
Möchte man in vBulletin die Checkbox “Lesebestätigung für diese Nachricht anfordern” beim Erstellen von Privaten Nachrichten vorausgewählt haben, so ist der offizielle Weg das Template “pm_newpm” zu bearbeiten. Eine nette Erweiterung wäre es, wenn jeder Benutzer selbst entscheiden kann, ob beim Versenden von Privaten Nachrichten die Checkbox für die Lesebestätigung vorausgewählt ist, das lässt sich auch sehr einfach umsetzen:
Im AdminCP von vBulletin erstellt man unter “Profilfelder > Profilfeld hinzufügen” ein neues Feld (hier: vom Typ “Checkbox mit Mehrfachauswahl”) – diese Felder erscheinen im Kontrollzentrum des Benutzers unter “Mein Profil > Profil bearbeiten”. Nach der Erstellung eines neuen Feldes kann unter “Profilfelder > Profilfelder verwalten” der automatisch vergebene Name eingesehen werden (hier: “field5″).
Damit diese Einstellung auch beim Erstellen von Privaten Nachrichten für jeden Benutzer ihre Wirkung zeigt, muss noch das Template “pm_newpm” modifiziert werden. Hierfür navigiert man zu “Styles & Templates > Styles verwalten” und erweitert den aktivierten Style mit einem Klick auf den Button “<< >>”. Daraufhin öffnet sich eine Liste mit diversen Bereichen. Mit einem Doppelklick erweitert man “Private Nachrichten (Private Message)” und mit einem weiteren Doppelklick auf “pm_newpm” gelangt man in den Bearbeitungsmodus. Im Template sucht man nun nach “<input type=”checkbox” name=”receipt” value=”1″ id=”cb_receipt” $checked[receipt] />” und ersetzt es mit “<input type=”checkbox” name=”receipt” value=”1″ id=”cb_receipt” $checked[receipt] <if condition=”$bbuserinfo[field5][0] == 1″>checked=”checked” </if>/>”. Wird ein anderer Feld-Typ als der oben genannte verwendet, muss selbstverständlich auch die Condition entsprechend angepasst werden.
Dec 15
Um einzelnen Inhaltselementen (Content Elements) ein unterschiedliches Aussehen verpassen zu können gibt es in TYPO3 die Eigenschaft “Rahmen” (“Border” im englischen Backend ). Diese können mit ein paar Zeilen TypoScript einfach hinzugefügt werden. Zuerst muss in der “TSconfig” (Web > Seite; “Seiteneigenschaften bearbeiten”; Registerkarte “Optionen”) der Hauptseite (Rootpage) der neue Rahmen definiert werden:
TCEFORM.tt_content.section_frame {
removeItems = 1,5,6,10,11,12,20,21
addItems {
100 = Roter Teaser
110 = Blauer Teaser
}
}
Standardmäßig vorhandene Rahmen werden mit “removeItems” entfernt, neue mit “addItems” hinzugefügt – in diesem Fall werden ein “Roter Teaser” mit der ID 100 und ein “Blauer Teaser” mit der ID 110. Es empfiehlt sich IDs über 100 zu verwenden, damit es zu keinen Überschneidungen mit den vordefinierten Rahmen kommt, sollten diese auch verwendet/benötigt werden.
Als nächstes muss im “Setup” (Web > Template; “Setup bearbeiten”) der Hauptseite das nötige HTML mittels TypoScript hinzugefügt werden, damit das Inhaltselement mit dem ausgewählten “Rahmen” dargestellt werden kann:
tt_content.stdWrap.innerWrap.cObject = CASE
tt_content.stdWrap.innerWrap.cObject {
key.field = section_frame
100 = TEXT
100.value = <div class="teaser-red"> | </div>
110 = TEXT
110.value = <div class="teaser-blue"> | </div>
}
Im CSS, das bereits eingebunden sein sollte, kann nun das Aussehen der beiden Teaser festgelegt werden:
div.teaser-red {
border: 1px solid #ff0000;
color: #ff0000;
}
div.teaser-blue {
border: 1px solid #0000ff;
color: #0000ff;
}
Recent Comments