Themen
Letzte Nachrichten
- TYPO3 und Bilder bei Facebook Links
- 12.05.2012 18:35
- Google Analytics und die Datenschutzaufsicht
- 07.05.2012 13:19
- "Nervige" Title-Tags bei Links in TYPO3
- 26.02.2012 10:58
- TYPO3 Install Tool und session.auto-start is enabled
- 20.02.2012 21:28
Kategorien
- Commerce (7)
- Design (4)
- Technology (18)
Blogrolls
Letzte Kommentare
- Inline
- 04.02.2011 13:09
Meist gelesene Posts
- Wochentag lokalisiert mit Fluid aus einem DateTime Objekt...
- 918 mal angeschaut
- 03.02.2011 15:38
- TYPO3 Backend Layouts
- 675 mal angeschaut
- 27.04.2011 23:57
- TYPO3 4.5 und kb_nescefe und Security Token
- 658 mal angeschaut
- 18.03.2011 17:43
- JQuery und IE9
- 625 mal angeschaut
- 24.03.2011 10:31
automatische Sprachwahl bei der Integration von TYPO3 in Facebook
Automatische Sprachwahl bei der Integration von TYPO3 in Facebook
In unserem letzten Blog Eintrag haben wir beschrieben, wie man TYPO3 in Facebook integrieren kann. Dieser Beitrag erklärt, wie man zusätzlich noch die Sprache der integrierten TYPO3 Site automatisch auf die in Facebook gewählte Sprache schaltet.
Vorbereitung
Zunächst legt man ganz gewöhnlich die Sprachen in TYPO3 an und übersetzt die Seiten. Wir zeigen hier ein Beispiel für einen Single-Tree, dieses läßt sich aber auch auf den Multi-Tree Ansatz übertragen. Das TYPOScript sollte schon soweit funktionieren, dass sich die Sprache über einen Parameter auswählen läßt, d.h. es sollte etwas in diese Art im TYPOScript zu finden sein:
config.linkVars = L
#English, sys_language.uid = 0
[globalVar = GP:L = 0]
config.sys_language_uid = 0
config.language = en
config.locale_all = en_GB
config.htmlTag_langKey = en
#German, sys_language.uid = 1
[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = de
config.locale_all = de_DE
config.htmlTag_langKey = de
[global]
Die ausgwählte Sprache von Facebook abfragen
Die Sprache, die der Facebook User eingestellt hat, läßt sich über eine User Funktion in TYPOScript abfragen.
Hierzu benötigt man zunächst ein entsprechendes Skript. Da der TYPO3 Core die localconf.php teilweise öfter ausführt kommt es zu Fehlern, wenn man die Funktion direkt dort hineinschreibt. Daher erstellt man ein neues File in typo3conf, z.B. facebook.php mit folgenden Inhalt:
<?php
function parse_signed_request($signed_request, $secret)
{
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
// decode the data
$sig = base64_url_decode($encoded_sig);
$data = json_decode(base64_url_decode($payload), true);
if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
error_log('Unknown algorithm. Expected HMAC-SHA256');
return null;
}
// check sig
$expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
if ($sig !== $expected_sig) {
error_log('Bad Signed JSON signature!');
return null;
}
return $data;
}
function base64_url_decode($input)
{
return base64_decode(strtr($input, '-_', '+/'));
}
function user_facebook($lan)
{
$app_secret = "f170ea8186b8acf89a511a4295148f27";
$data = parse_signed_request($_REQUEST['signed_request'], $app_secret);
$page_user = $data['user'];
if ($lan == $page_user['locale']) {
return true;
} else {
return false;
}
}
?>
diese wir dann in der localconf.php inkludiert:
include_once('facebook.php');
(wichtig: include_once verwenden!)
TYPOScript anpassen
Im letzten Schritt wird über eine UserFunc die Facebook Locale abgefragt und dementspechend die Sprache gesetzt:
[userFunc = user_facebook(de_DE)]
config.sys_language_uid = 1
config.language = de
config.locale_all = de_DE
config.htmlTag_langKey = de
[end]
(das PHP File muss vorher nicht über TYPOScript inkludiert werden, der Eintrag in der localconf.php reicht aus)
- 0 Kommentar(e)