it-swarm.com.de

Wie füge ich Code nach dem Start des Body-Tags richtig hinzu?

Daher habe ich kürzlich das Facebook Javascript SDK zu meiner Website hinzugefügt, um eine Schaltfläche "Gefällt mir" für meine Seiten zu aktivieren.

Facebook empfiehlt, dies direkt nach der Eröffnung hinzuzufügen <body> Etikett. Das einzige, was ich tun konnte, war das index.php Datei meiner Vorlage.

Hier besteht die Gefahr, dass mein Code gelöscht wird, wenn die Vorlage aktualisiert wird. Dies ist keine große Sache, würde aber die Zukunftssicherung der Website erheblich vereinfachen, um dies korrekt durchzuführen.

Also, wie geht das am besten?

2
nizz0k

Ergänzend zu der Antwort von @ veritas399 können Sie auch eine Erweiterung eines Drittanbieters wie EasyScript oder Ähnliches verwenden, um den Code in Ihre Webseite einzufügen, ohne sich Gedanken über zukünftige Vorlagen oder andere Aktualisierungen zu machen, die Ihren Code überschreiben.

Facebook kann empfehlen, dies direkt nach der Eröffnung hinzuzufügen <body> tag but dies ist unter Performance-Gesichtspunkten möglicherweise nicht der beste Ratschlag und ist wahrscheinlich nicht unbedingt erforderlich.

2
Neil Robertson

Wenn Sie die index.php - Datei der Vorlage nicht bearbeiten möchten, empfehlen wir Ihnen, ein Plugin zu verwenden und JApplication zu verwenden, um den Body abzurufen und festzulegen.

In Ihrem Plugin können Sie dann Folgendes verwenden:

public function onAfterRender()
{
    $app = JFactory::getApplication();

    if ($app->isSite())
    {
        $buffer = $app->getBody();

        $insert = '<div>YOUR HTML CODE TO INSERT</div>';

        $buffer = preg_replace('/<body[^>]+>\K/i', $insert, $buffer);

        // Use the replaced HTML body.
        $app->setBody($buffer);
    }
}

Der reguläre Ausdruck findet das öffnende body -Tag und alle darin enthaltenen Attribute und "vergisst die übereinstimmende Zeichenfolge" mit dem Metazeichen \K, Sodass der Text $insert Lautet unmittelbar nach dem öffnenden Body-Tag hinzugefügt (es wird kein Text entfernt).

2
Lodder

Basiert Ihre Vorlage auf einem der gängigen Frameworks? (Gantry 5 von RocketTheme, Warp von YooTheme, T3 von JoomlaArt usw.) Wenn ja, sollte dieser Framework-Anbieter dokumentiert haben, wie und wo Änderungen vorzunehmen sind, die Upgrades überstehen. Beispielsweise können Sie benutzerdefinierten Code für Gantry 5-Vorlagen in den Tags head und body im Admin-Bereich hinzufügen.

1
veritas399

Um die Antwort von @Neil Robertson zu ergänzen - es gibt Unmengen von Plugins/Erweiterungen, die Facebook Like/Share und andere implementieren. Social Sites Integrations - was eine bessere Alternative für Sie sein könnte, da Ihre eigentliche Anforderung darin besteht, einfach FB Like Buttons hinzuzufügen ).

Schauen Sie sich JED an:

Einige Vorlagen bieten solche Funktionen, und Sie müssen lediglich Ihre eigene FB-App-ID hinzufügen. Stellen Sie daher sicher, dass Sie in Ihrer Vorlage nach dieser Möglichkeit suchen.

1
FFrewin

Anstatt ein paar Dinge zu installieren, können Sie sie auch an die gewünschte Stelle platzieren und dann mit der rechten Maustaste klicken und alles auswählen und kopieren und in eine Wordpad-Datei einfügen, speichern und SITE-index-php nennen und dann einfach Kopieren Sie diese Datei jederzeit zurück, wenn ein Update vorliegt. Dauert 1 Minute und nichts anderes zum Installieren oder Herumspielen.

0
Mythic

Die Vorlage wäre normalerweise der richtige Ort dafür. Sie können den Code zu einer separaten facebook.php-Datei in Ihrem Vorlagenverzeichnis hinzufügen und Folgendes über PHP zur index.php-Datei hinzufügen:

<body>
<?php include('facebook.php'); ?>
...
0
YLLW