Вимикаємо підтримку Mootools у Virtuemart
- Детальна інформація
- Опубліковано: Середа, 24 листопада 2010 12:58
- Автор Gruz
Якщо Mootools від Joomla! конфліктує з Mootols від Virtuemart, або з чимось іншим, то правильний спосіб його вимкнути є у шаблоні Virtuemart.
Принаймні це працює в Virtuemart 1.1.5 і 1.1.6.
А саме, у файлі
/components/com_virtuemart/themes/YOURTHEME/theme.php
орієнтовно в рядку 37 починається функція
function vmTheme() {
parent::vmTemplate();
vmCommonHTML::loadMooTools();
}
От, власне, можна закоментувати:
//##my Закоментовано за непотрібністю. Було: vmCommonHTML::loadMooTools();
Проте тоді "поламається" javascript'овий функціонал магазину - перестане працювати аяксова корзина і т.д.
Тому ліпше не закоментовувати, а додати у тему відповідні сучасні файли javascript і змінити дещо, як буде зазначено.
Отже завантажуємо потрібні файли::
- виправлений
mooPrompt.js (моє виправлення відносно рідної віртумартівської версії позначено ##my, а розробник закинув розробку цього скрипта ) - сучасну версію
slimbox.js (з сайту розробника) - або разом архівом:
mooPrompt.js + slimbox.js
Отримані в результаті розрахівування файли розташуємо у шаблоні:
/components/com_virtuemart/themes/YOURTHEME/js/mooPrompt.js
/components/com_virtuemart/themes/YOURTHEME/js/slimbox.js
А тепер у файлі /components/com_virtuemart/themes/YOURTHEME/theme.php заміняємо
vmCommonHTML::loadMooTools();
На таке:
/*##my#2010-12-14 18:49:45 { Fix mootools
//It was:
vmCommonHTML::loadMooTools();
//It became: */
global $mosConfig_live_site, $vm_mainframe, $VM_LANG;
if( !defined( "_MOOTOOLS_LOADED" )) {
$vm_mainframe->addScriptDeclaration( 'var cart_title = "'.$VM_LANG->_('PHPSHOP_CART_TITLE').'";var ok_lbl="'.$VM_LANG->_('CMN_CONTINUE').'";var cancel_lbl="'.$VM_LANG->_('CMN_CANCEL').'";var notice_lbl="'.$VM_LANG->_('PEAR_LOG_NOTICE').'";var live_site="'.$mosConfig_live_site.'";' );
$vm_mainframe->addScript( VM_THEMEURL .'/js/mooPrompt.js' );
$vm_mainframe->addStyleSheet( $mosConfig_live_site .'/components/'. VM_COMPONENT_NAME .'/js/mootools/mooPrompt.css' );
define ( "_MOOTOOLS_LOADED", "1" );
}
if( !defined( '_SLIMBOX_LOADED' )) {
$vm_mainframe->addScriptDeclaration( 'var slimboxurl = \''.VM_THEMEURL.'/js/\';');
$vm_mainframe->addScript( VM_THEMEURL .'/js/slimbox.js' );
$vm_mainframe->addStyleSheet( $mosConfig_live_site .'/components/'. VM_COMPONENT_NAME .'/js/slimbox/css/slimbox.css' );
define ( '_SLIMBOX_LOADED', '1' );
}
/*##my#2010-12-14 18:49:45 } */
Таким чином, не лише оновлено Mootools від Joomla!, але оновлюються сумісні ява-скрипти Slimbox'a для спливаючих зображень і спливаючого вікна додавання в корзину.
Джерело: http://gruz.org.ua

