RSS-стрічка усіх новин
rss_other
Twitter
Twitter

Вимикаємо підтримку Mootools у Virtuemart

Вимикаємо підтримку Mootools у VirtuemartЯкщо 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 і змінити дещо, як буде зазначено.

Отже завантажуємо потрібні файли::

  • виправлений zip  mooPrompt.js  (моє виправлення відносно рідної віртумартівської версії позначено ##my, а розробник закинув розробку цього скрипта )
  • сучасну версію zip  slimbox.js (з сайту розробника)
  • або разом архівом: zip  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

Теги: Mootools  Virtuemart  JS  JavaScript  JQuery