Facebook Sharebutton + Ajax + jQuery
Hallo liebe Contao-Gemeinde,
ich habe ein interessantes Problem, das wohl am ehesten für die Tüftler hier gedacht ist.
Folgendes Szenario (kann leider keinen Link einstellen, da vorerst nur lokal):
Eine Seite wird via Ajax mit Content befüllt, Navigation erfolgt quasi über Tabs.
Um das zu erreichen, habe ich die jQueryTools ("Tabs" und "History") von flowplayer.org eingebunden. Damit das ganze noch mit Deeplinking funktioniert, werden Anker in die URLs gesetzt.
Dadurch wird zB aus
http://www.beispiel.de/index.php/seite.html
das hier
http://www.beispiel.de/#index.php/seite.html
Hintergrund ist der, dass jeder Tabinhalt per Share-Button auf Facebook gepostet werden können muss und zugleich von außen direkt aufrufbar sein muss. Lässt man bei einem solchen Link nämlich die Raute weg, landet man direkt beim Inhaltselement, nicht auf der Seite in der das Inhaltselement eingebettet ist.
Das gleiche noch für Twitter...
Hier ist mein Lösungsansatz:
Habe mir die share.php vorgenommen und dort folgendes reingeschrieben...
Code:
/**
* Facebook
*/
if ($in->get('p') == 'facebook')
{
$query = '?u=' . rawurlencode($in->get('u'));
$query .= '&t=' . rawurlencode($in->get('t'));
$Raute = rawurlencode('#');
$partOne = substr($query,0,40);
$partTwo = substr($query,40);
$query = $partOne.$Raute.$partTwo;
header('Location: http://www.facebook.com/sharer.php' . $query);
exit;
}
/**
Ähnliches natürlich auch für Twitter...
Der Witz dabei ist aber, dass es beim Twitter-Button perfekt funktioniert.
Beim Facebook-Button tritt allerdings der Effekt auf, dass der Link bei ALLEN Inhaltsseiten stets nur auf den zu allererst gewählten Inhalt verweist.
Beispiel:
Inhalt = .../#index.php/seite_1.html
FB-Link = .../#index.php/seite_1.html
Inhalt = .../#index.php/seite_2.html
FB-Link = .../#index.php/seite_1.html usw...
Also der zu postende Link ändert sich schlichtweg nicht. Warum???
Beim Twitter-Button ändert er sich schon.
Weiß jemand Rat?
Workaround, anderer Lösungsansatz?
Ok, dann haben wir das Problem ja mal erkannt. Nun zur Lösung. Du schreibst:
Zitat:
Lässt man bei einem solchen Link nämlich die Raute weg, landet man direkt beim Inhaltselement, nicht auf der Seite in der das Inhaltselement eingebettet ist.
Nun ist die Frage, warum ist das so?
Nutzt du Contao/TYPOlight? Wenn ja, welche Version?
Wie werden denn die Links der Seite/Inhaltselements in die Buttons eingebunden(?)-> Du schreibst ja in die URL unter "u=" die URL deiner Zielseite/Inhaltselements rein. Wie passiert das? Dort müsstest du die URL von der Zielseite, nicht die des Inhaltselements einfügen.
Dann brauchst du den Rautenkram nicht.