В моем текущем проекте на странице о нас мне нужно добавить вкладки для переключения между различными разделами. Я знаю, что это можно сделать с помощью вкладок Jquery, но я не знаю, как это сделать при интеграции с magento.
10
В моем текущем проекте на странице о нас мне нужно добавить вкладки для переключения между различными разделами. Я знаю, что это можно сделать с помощью вкладок Jquery, но я не знаю, как это сделать при интеграции с magento.
Предполагая, что вы уже создали страницу CMS и имя этой страницы, About Us
это имя должно быть включено вif ($headBlock->getModuleName() == 'Mage_Page' && $headBlock->getTitle() =='your_page_name'):
Теперь добавьте этот код в свой 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; ?>
Затем откройте раздел контента вашей страницы CMS.
<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>
вставьте этот код, и это создаст вкладки jquery в вашем интерфейсе. Надеюсь, это поможет.
Вот ссылка ссылка, если у вас есть какие-либо сомнения.
Я бы не советовал редактировать ваш
head.phtml
шаблон для этого. В большинстве случаев вам не нужен специальный шаблон заголовка в вашей собственной теме, потому что основной уже выполняет свою работу.Также лично мне не нравится писать код, основанный на исключениях (если A, то делай это, если B, то делай это). Если вам нужно много разных javascript-кодов на разных страницах, то вы
head.phtml
будете заполнены множеством операторов if.Я бы предложил добавить jQuery через макет XML. С помощью страниц CMS у вас есть возможность добавить дополнительный макет XML в админку при редактировании страницы. Здесь вы найдете пример установки другого шаблона для страницы о нас. Таким же образом вы можете добавить jQuery на страницу о нас. Добавьте этот макет XML:
источник
Или просто скопируйте в вашу директорию темы, например,
skin\frontend\[your theme]\default\js\
добавьте это к вашей темеpage.xml
:источник
Хорошо, я нашел способ заставить прототип, jQuery и начальную загрузку работать, не мешая друг другу и не используя
jQuery.noConflict()
. Моя настройка макета (page.xml
) была следующей (раздел для удобства чтения):Я получаю ошибки, как следующие:
Я не хотел меняться
$
везде. Итак, я сделал три файла javascript следующим образом:Как вы уже, наверное, догадались, первый скрипт присваивает текущую
$
переменную (принадлежит прототипу) временной переменной с именем$tempPrototypeDollar
. Второй сценарий просто присваиваетjQuery
в$
. Третий скрипт присваивает контент$tempPrototypeDollar
обратно$
.Я включил эти три сценария в следующем порядке:
Это решило все проблемы для меня, и теперь jquery, bootstrap и prototype, похоже, работают нормально.
источник
Включите следующее в верхней части страницы дизайна
И использовать JQuery, а
$j
не$(Eg:$j('.class').hide();)
PS: вы можете использовать любую другую переменную вместо
j
var$j
источник