Frameset in Typo3

Wenn man in typo3 in frameset machen will ist das sie leichteste Lösung 😉

frameSet = PAGE
frameSet{
typeNum = 0
config{
xhtml_cleaning = all
doctype = xhtml_trans
language = de
}
frameSet {
rows = 100%
params = border=”0″ framespacing=”0″ frameborder=”no”

1 = FRAME
1.obj = submain
1.src = http://domain.tld
1.params = scrolling=”auto” id=”main” noresize frameborder=”no”
}
}
}

Layoutslide + Bodytag

# **
# * unique body ids
# ********************
temp.body = COA
temp.body.10 = TEXT
temp.body.10 {
field = uid
wrap =
if.equals = 1
if.value.data = levelfield:-1,layout,slide
}

temp.body.20 < temp.body.10 temp.body.20.wrap =
temp.body.20.if.equals = 2

temp.body.30 < temp.body.10 temp.body.30.wrap =
temp.body.30.if.equals = 3

temp.body.40 < temp.body.10 temp.body.40.wrap =
temp.body.40.if.equals = 4

page.bodyTagCObject < temp.body [/code] Was macht das Script?
Es Slidet das Seitenlayout auf die Unterseiten.

Wofür braucht man das?
Man hat ein Template und möchte nur auf bestimmten Seiten durch die <body class> etwas durch sein CSS verändern.

Vorteil?
1 Template aber X möglichkeiten nur per CSS einfluss dadrauf zu nehmen 🙂

Danke Bernhard

TYPO3: Pagetitle GIFBUILDER (Seitentitel als Bild)

Mit dem Snipped können Sie schnell und einfach ihren aktuellen Seitentitel als Grafik schreiben.
Kurzinformation zum Snipped.

  • alttext = ALT-TAG
  • titleText = Title-Tag
  • levelfield :-1, title, slide = Aktuelle Seite wird herausgesucht und die Titleinformation ausgeben.
  • backColor & transparentColor = dieser Wert sollte gleich sein, wenn ihr eine Transparent für euren aktuellen Hintergrund wollt.
lib.getPageTitle = IMAGE
lib.getPageTitle {
	altText.data= levelfield :-1, title, slide
  	titleText.data= levelfield :-1, title, slide
	wrap = |
	
	file = GIFBUILDER
	file {
	XY = [10.w]+5,[10.h]+10
	backColor = #89BDD3
	transparentColor = #89BDD3
	
   10 = TEXT
   10 {
	text.data = levelfield :-1, title, slide
	fontFile = fileadmin/fonts/LTe50046.ttf  
        fontSize = 40
        offset = 0,40
        fontColor = #4d4d4d
        niceText = 1
   	}
   }
}

Der rest sollte bekannt sein 🙂
Viel Spaß damit.

TYPO3: Jquery und eine Imagemap (MAP AREA) + TemplaVoila

Wer schon immer mal eine Grafik mit Dynamischen Inhalten aus Typo3 haben wollte,
kann dies leicht mit Typo3 & TemplaVoila machen und ein bisschen Jquery (Danke Bernhard).
Zuerst muss man im TemplaVoila ein HTML-Template anlegen.
Das muss wie im Bild angelegt werden.
templavoila

<body>
<div id="maptext">
<div class="classattribute">Text</div>
</div>
</body>

Feld1: CO = CONTENT OBJECT (id=”maptext”)
Feld2: AT = ATTRIBUTE (class=”classattribute”)
+ Mapping Type: Attribute
+ Title: CSS Attribut
+ Editing Type: Plain Input Field

Feld3: EL = ELEMENT (class=”classattribute”)

>> Speichern unter >> CONTENT ELEMENT!!!

Dieses Element kann man nun im Typo3 als Flexibles Content Elment einfügen 😉
+ Beim Einfügen, daran denken CSS Attribute “maptext maptext1”, 2te Box: “maptext maptext2” usw. einzugeben

Typo3Script zum einbinden des Jquery
jQuery ist statt $ verwendet worden, damit alles immer 100% läuft.

page.headerData.95 = TEXT
page.headerData.95 = TEXT
page.headerData.95.value (	
	<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
    <script type="text/javascript">
    jQuery(document).ready(function(){
		
		jQuery('area').click(function() { 
			jQuery('div.maptextshow').hide('fast');
			jQuery('div.maptextshow').removeClass("maptextshow");
			
			classname = jQuery(this).attr('class');
			jQuery('div.'+classname).show('slow');
			jQuery('div.'+classname).addClass("maptextshow"); 
			
			return false; 
		});
		
    });
    </script>
)

Typo3: Content Element –> Plain HTML

<div id="karte">
<img src="karte.jpg" usemap="#map" />
<map name="map" id="map">
<area shape="circle" coords="235,141,7" href="#" class="maptext1" />
<area shape="circle" coords="265,122,6" href="#" class="maptext2" />
<area shape="circle" coords="287,97,6" href="#" class="maptext3" />
</map>
</div>

So noch ein bisschen CSS, dann ist es schon fertig 🙂

.maptext {display:none;}
.maptext1 {}
.maptext2 {}

Viel Spaß beim ausprobieren 🙂

TYPO3: Mailform BlindCopy an den Absender (recipient_copy)

In Typo3 werden viele Möglichkeiten gegeben ein Mailform zu verschicken, leider ist es immer noch ein großes Fragezeichen wieso die Funktion mit einer Blindcopy an den Absender noch nicht eingebaut wurde. Wer dies aber haben will, kann hier diese Möglichkeit nutzen. Es ist zwar nicht der sauberste was man machen kann, aber dafür macht dieser Dreizeiler genau das was man braucht. Eine dirkete Kopie von der Mail an den Absender.

Nehmen wir ein einfach Mailform und modifizieren dies um eine Zeile

Name | Name=input
Telefon | Telefon=input
Ihre E-Mail | email=input
Nachricht | Nachricht=textarea
 | formtype_mail=submit | abschicken
 | html_enabled=hidden | 1
 | recipient_copy=hidden | 1 
 | subject=hidden | Mail von XYZ

Das Geheimnis an der Blindcopy liegt in dieser Zeile | recipient_copy=hidden | 1 .

Dazu müssen wir im zweiten Schritt im Typo3 Order ([typo3Source]/t3lib/class.t3lib_formmail.php.),
die class.t3lib.formmail.php bearbeiten

Gesucht wird diese Anweisung:
if (isset($V[‘recipient’])){

davor diesen Code einfügen

if (trim($V['recipient_copy']) == '1') {
         $V['recipient_copy'] = $V['email'];
} 

Viel Spaß 😉

TYPO3: Cache oder nicht Cache…

Wem plagt es denn nicht auch immer das man jedes mal wenn man im Backend arbeitet und den Cache leeren muss. Man könnte natürlich den Cache abschalten, aber das wäre natürlich für den Frontend – Besucher zum Nachteil, daher einfach in sein Haupttemplate diese 3 Zeilen reinkopieren und sich nie mehr ärgern 🙂

[globalVar = TSFE : beUserLogin > 0]
config.no_cache = 1
[global]

Ich finde man muss sich nicht immer das Leben so schwer machen, und daher 🙂
Beachtet auch meinen Speedup Beitrag welches ergänzend zu diesem hier ist.
>> Link

TYPO3: SR_feuser_reg + Newloginbox & MD5 Password

Ja wer wollte nicht das es eine richtige MD5 Verschlüssellung gibt bei einer Frontend Userregestrierung…?
Es gibt ein paar Zeilen Code die man bearbeiten muss um dies möglich zu machen.

Also, wenn das noch nicht gemacht wurde, die HTML-Vorlage der Erweiterung newloginbox nach fileadmin/templates kopieren, und per TS einbinden.

plugin.tx_newloginbox_pi1 {
        storagePid = [PID mit den FE-Usern]
        templateFile = fileadmin/templates/html/newloginbox.html
 }

Dann bei der HTML-Vorlage aus dem input type=”password” ein input type=”hidden..” / machen und ein neues input type=”password” einfügen.

Also so etwas: (bei TEMPLATE_LOGIN)

Orginal:

<input type="password" id="pass" name="pass" value="" />

Angepasst:

<input type="hidden" id="pass" name="pass" value="" />
<input type="password" id="pass_fe" name="pass_fe" value="" />

Dann muss man leider den Code der Erweiterung bearbeiten.
Und zwar die Datei class.tx_kbmd5fepw_newloginbox.php
in typo3conf/ext/kb_md5fepw

Dort wird ab Zeile 63 das JavaScript definiert, welches bei der Seite eingefügt wird.

Und zwar muss man aus dem
var pass = form.pass.value;
ein
var pass = form.pass_fe.value;
machen

Also so etwas dann:

function superchallenge_pass(form) {
        var pass = form.pass_fe.value;
        if (pass) {
                var enc_pass = MD5(pass);
                var str = form.user.value+":"+enc_pass+":"+form.challenge.value;
                form.pass.value = MD5(str);
                return true;
        } else {
                return false;
        }
}

Wenn wir das so laufen lassen wird wohl das Passwort wieder im Klartext mit übermittelt. Bei meiner Site ist das nicht so wichtig, weil sie noch per SSL (https) geschützt ist. Wir setzen die kb_md5fepw ein, damit im Backend und in der Datenbank die Passwörter nicht als Reintext sichtbar sind.

Okay, hoffe es hilft.
Gebt doch feedbacks, wenns bei euch auch funktioniert. (oder wenn es nicht funktioniert)

TYPO3: Code säubern und Tuneup

Generell ist es ja so das man in Typo3 viele Sachen hat die für die Ladezeit nicht immer 100% super ist, daher gibt es ein paar nette Tipps um das alles zu verringern. Generell sollte man vorallem damit anfangen den CACHE einzuschalten. Da dieser einen netten Schub von der Ladezeit gibt. Desweiteren habe ich ein paar weitere ipps im verlauf dieses Artikels verfasst.

{codesnipped}

Wer hatte nicht schon immer Kopf das man ein paar zu viele DIVs in seinem Typo3 hat, mit der einstellung kann man ein paar davon entfernen. Somit kann man den HTML-Code um 10-20% verringern.

# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Speedup Config
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Text wenn die Seite neu geladen wird
config.message_page_is_being_generated = Die Seite wird geladen.

#Standardheader (h1 = h3, csc-header entfernen, Überschrift ohne Zusätze)
lib.stdheader {
	stdWrap.dataWrap >	
	10.1.fontTag = <h3>|</h3>
	2.headerStyle >
	3.headerClass >
	}

#noch mehr entfernen (Anker)
#tt_content.stdWrap.dataWrap = <a id="c{field:uid}"></a>
	tt_content.stdWrap.dataWrap =

#Grafik divs entfernen
tt_content.image.20 {
	imageStdWrap.dataWrap >
	imageColumnStdWrap.dataWrap >
	layout.default.value = ###IMAGES######TEXT###
	rendering.dl.oneImageStdWrap.dataWrap >
	rendering.dl.imgTagStdWrap.wrap >
	}

#RTE Inhalte entfernen (class="bodytext" entfernen, ummandlung, Tabellenzellen entfernen, Tabellen zulassen)
lib.parseFunc_RTE {
	nonTypoTagStdWrap.encapsLines.addAttributes.P.class >
	nonTypoTagStdWrap.encapsLines.encapsTagList = cite, div, p, pre, hr, h1, h2, h3, h4, h5, h6,table,tr,td
	externalBlocks.table.stdWrap.HTMLparser.removeTags = p
	externalBlocks.table.stdWrap.HTMLparser.tags.table.fixAttrib.class.list >
	}

 

{ext typo3}

Wenn man nun noch die EXT:scriptmerger installiert kann dafür sorgen, dass alle Scripts zusammen gefasst werden in einer komprimierten Version. Das kann dann noch mal dafür sorgen, dass man bis zu 15% weniger Ladezeiten hat.

  1. installieren
  2. ins Roottemplate einbinden
  3. fertig

Viel Spaß damit