Angenommen, Sie haben bereits eine CMS-Seite erstellt und der Name dieser Seite ist About Us
dieser Name sollte enthalten seinif ($headBlock->getModuleName() == 'Mage_Page' && $headBlock->getTitle() =='your_page_name'):
Fügen Sie nun diesen Code in Ihr app/design/frontend/your_package/your_theme/template/page/html/head.phtml
<?php $headBlock = $this->getLayout()->getBlock('head');
if ($headBlock->getModuleName() == 'Mage_Page' && $headBlock->getTitle() =='About Us'):
?>
<link rel="stylesheet"href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script type="text/javascript">jQuery.noConflict();</script>
<script type="text/javascript"> jQuery(function() { jQuery( "#tabs" ).tabs(); });</script>
<?php endif; ?>
Öffnen Sie dann den Inhaltsbereich Ihrer CMS-Seite.
<div style="float: right; width: 200px;">
<p>{{block type="tag/popular" template="tag/popular.phtml"}}</p>
</div>
<div id="tabs" style="width: 680px;">
<ul>
<li><a href="#tabs-1">You text here.</a></li>
<li><a href="#tabs-2">You text here.</a></li>
<li><a href="#tabs-3">You text here.</a></li>
</ul>
<div id="tabs-1">
<p>You text here.</p>
</div>
<div id="tabs-2">
<p>You text here.</p>
</div>
<div id="tabs-3">
<p>You text here.</p>
<p>You text here.</p>
</div>
</div>
Fügen Sie diesen Code ein und es werden JQuery-Registerkarten in Ihrem Frontend erstellt. Hoffentlich hilft dies.
Hier ist ein Referenzlink, wenn Sie irgendwelche Zweifel haben.
Ich würde nicht vorschlagen, Ihre
head.phtml
Vorlage dafür zu bearbeiten . In den meisten Fällen benötigen Sie keine benutzerdefinierte Kopfvorlage in Ihrem eigenen Thema, da die Kernvorlage bereits ihre Arbeit erledigt.Auch persönlich schreibe ich keinen Code, der auf Ausnahmen basiert (wenn A, dann mache ich das, wenn B das mache). Wenn Sie viele verschiedene Javaskripte auf vielen verschiedenen Seiten benötigen, sind Sie
head.phtml
mit vielen if-Anweisungen gefüllt.Ich würde vorschlagen, jQuery über Layout-XML hinzuzufügen. Mit CMS-Seiten haben Sie die Möglichkeit, beim Bearbeiten der Seite dem Administrator zusätzliches Layout-XML hinzuzufügen. Hier finden Sie ein Beispiel, in dem eine andere Vorlage als auf der Seite "Über uns" festgelegt wird. Auf die gleiche Weise können Sie der Seite "Über uns" jQuery hinzufügen. Fügen Sie dieses Layout-XML hinzu:
quelle
Oder kopieren Sie einfach Ihr Theme-Verzeichnis
skin\frontend\[your theme]\default\js\
und fügen Sie es Ihrem Theme hinzupage.xml
:quelle
Okay, ich habe einen Weg gefunden, Prototyp, jQuery und Bootstrap zum Laufen zu bringen, ohne sich gegenseitig zu stören und ohne sie zu verwenden
jQuery.noConflict()
. Mein Layout-Setup (page.xml
) war wie folgt (zum leichteren Lesen entfernt):Ich habe folgende Fehler erhalten:
Ich wollte mich nicht
$
überall ändern . Also habe ich drei Javascript-Dateien wie folgt erstellt:Wie Sie wahrscheinlich bereits erraten können, weist das erste Skript
$
einer temporären Variablen namens die aktuelle Variable (im Besitz des Prototyps) zu$tempPrototypeDollar
. Zweiter Skript ordnet einfachjQuery
zu$
. Das dritte Skript weist den Inhalt von$tempPrototypeDollar
back to zu$
.Ich habe diese drei Skripte in der folgenden Reihenfolge eingefügt:
Dies löste alle Probleme für mich und jetzt scheinen JQuery, Bootstrap und Prototyp gut zu funktionieren.
quelle
Fügen Sie oben auf der Entwurfsseite Folgendes ein
Und verwenden Sie jQuery als
$j
anstelle von$(Eg:$j('.class').hide();)
PS: Sie können jede andere Variable anstelle von
j
var verwenden$j
quelle