Новости Joomla

Вышли релизы Joomla 6.0.3 и Joomla 5.4.3

Релиз Joomla 6.0.3 и Joomla 5.4.3

Проект Joomla рад сообщить о выпуске Joomla 6.0.3 и Joomla 5.4.3. Это релиз исправлений ошибок и улучшений для серии Joomla 6.0 и Joomla 5.4.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

0 Пользователей и 1 Гость просматривают эту тему.
  • 34 Ответов
  • 8971 Просмотров
*

takes

  • Захожу иногда
  • 84
  • 0 / 0
mod_vm_accordion
« : 23.08.2010, 00:44:44 »
Помогите с этим модулем, дело в том что я перековырял весь phph код и всё отлично настроил в нём, дело в том что есть 1 проблема с ним  я хочу чтобы не при наведение на следующий пункт меню сворачивалось, а при удаление курсора с его области, то есть убрал мышку и оно свернулось, парамент mouseout не помогает mouseleave тоже..
Вот ссылка на сам модуль http://alex-kurteev.ru/index.php?option=com_mtree&task=att_download&link_id=420&cf_id=30
вот мой mod_vm_accordion.php
Код
<?

/*

// Author: Nick Son

// Email: nicksonpro@gmail.com

// Website: www.joomdesign.net - - www.dungson.com

*/

defined('_JEXEC') or die('Restricted access');

$LiveSite = JURI::base();

?>



<style>



.leftmenu li ul li{list-style:none;}

.leftmenu li ul li a{font-family:arial; font-size:11px; text-decoration:none; text-align:left; list-style:none; line-height:25px; padding-left:10px;}



.leftmenu li ul li a:hover{font-family:arial; font-size:11px; color:#000000;  text-decoration:underline; text-align:left; list-style:none; line-height:25px; padding-left:10px;}





.accordionButton {
padding: 2px 4px;
cursor: pointer;
position: relative;
margin:0px;
font-weight:bolder;
color:#000;
border-bottom:5px groove #999999;
}

.accordionButton a{

font-size:10pt;

color:#000000;

}

.accordionContent a{
display:block;
color:#000000;
padding-left:2px;
text-decoration:none;
font-size:10pt;
}

.accordionContent a:hover{

  color: #000000;

  text-decoration:underline;

  }

</style>



<?php





  function get_cat($catID){

       

            $database =& JFactory::getDBO();

             

            $fetchCatQuery = "SELECT * FROM `#__vm_category` WHERE category_id = ".$catID;

           

            $database->setQuery( $fetchCatQuery );

            $fetchCatRow = $database -> loadObjectList(); 

            return $fetchCatRow;

}

       

function recursiveCat($catID) {

       

            $database =& JFactory::getDBO();

             

            $fetchChildCat = "SELECT category_child_id FROM `#__vm_category_xref` WHERE category_parent_id = ".$catID;

           

            $database->setQuery( $fetchChildCat);

            $fetchChildCatRows = $database -> loadObjectList();

           

            if (count($fetchChildCatRows)>0) {

           

                unset($childCatInfo);

               

                echo "<ul class='leftmenu' style='list-style-type: none; padding-left: 5px; padding-bottom: 0px;'>";

                    foreach ($fetchChildCatRows as $rows) {

                        echo "<li>";

                            $childCatInfo = get_cat($rows->category_child_id);

                            echo "<a href='./index.php?option=com_virtuemart&page=shop.browse&category_id=".$childCatInfo[0]->category_id."'>";

                            echo $childCatInfo[0]->category_name;

                            echo "</a>";

                            recursiveCat($rows->category_child_id);

                         

                        echo "</li>";

                    }

                echo "</ul>";

               

            }

            return;

}

       

function category_tree($catType=1) {

            global $database;

            $database =& JFactory::getDBO();

           

            if ($catType == 1)

                $fetchParentCat = "SELECT category_id, category_name FROM #__vm_category WHERE `category_name`='Men'";

            else

                $fetchParentCat = "SELECT category_id, category_name FROM #__vm_category WHERE `category_name`='Women'";

            $database->setQuery( $fetchParentCat);

            $fetchParentCatRows = $database -> loadObjectList();

            foreach ($fetchParentCatRows as $fetchParentCatRowsInfo){

                //echo "<p>".$fetchParentCatRowsInfo->category_id."</p>";

                recursiveCat($fetchParentCatRowsInfo->category_id);

            }

}



function checkParCat($catID) {

            global $database;

            $database =& JFactory::getDBO();

            $fetchParentCat = "SELECT category_parent_id FROM `#__vm_category_xref` WHERE `category_child_id`=".$catID;

            $database->setQuery( $fetchParentCat);

            $fetchParentCatRows = $database -> loadObjectList();

           

            return $fetchParentCatRows[0]->category_parent_id;

}



function displayChildCat($catID){

            global $database;

            $database =& JFactory::getDBO();

           

            $fetchParentCat = "SELECT category_id, category_name FROM #__vm_category WHERE `category_id`=".$catID;

            $database->setQuery( $fetchParentCat);

            $fetchParentCatRows = $database -> loadObjectList();

            foreach ($fetchParentCatRows as $fetchParentCatRowsInfo){

                recursiveCat($fetchParentCatRowsInfo->category_id);

            }

}

function category_list() {

?>

<script type="text/javascript" src="<?php echo JURI::base(); ?>/modules/mod_vm_accordion/jquery.js"> </script>

          <script type="text/javascript">

         



$(document).ready(function()

{



$("div.accordionButton").click(function()

    {

$(this).next("div.accordionContent").slideToggle(50).siblings("div.accordionContent").slideUp("slow");

        $(this).siblings();

});

//slides the element with class "menu_body" when mouse is over the paragraph

$("div.accordionButton").mouseover(function()

    {

     $(this).next("div.accordionContent").slideDown(200).siblings("div.accordionContent").slideUp("slow");

         $(this).siblings();

});

});

</script>









<?php       

$doc =& JFactory::getDocument();

$script = 'if($===jQuery){jQuery.noConflict();}';

$doc->addScriptDeclaration($script);



global $database;

            unset($loop);

                       

            $database =& JFactory::getDBO();

            $fetchParentCat = "SELECT category_id, category_name FROM #__vm_category";

            $database->setQuery( $fetchParentCat);

            $fetchParentCatRows = $database -> loadObjectList();

           

            $loop=0;

            foreach ($fetchParentCatRows as $fetchParentCatRowsInfo){

               

                if( checkParCat($fetchParentCatRowsInfo->category_id) == 0) {

                      $loop++;

                   

                      echo "<div class='accordionButton'>";

                        echo "<a href='./index.php?option=com_virtuemart&page=shop.browse&category_id=".$fetchParentCatRowsInfo->category_id."' style='text-decoration: none;'>".$fetchParentCatRowsInfo->category_name."</a>";

                      echo"</div>";

                      echo "<div id='accCont".$loop."' class='accordionContent' style='display: none;'>";

                           echo '<div class="left_top"></div>';

                     echo '<div class="left_center" style="background:none; width:100%;">';

                              displayChildCat($fetchParentCatRowsInfo->category_id);

                           echo '</div>

                           <div class="left_bottom"></div>';

                      echo "</div>";

                   

                }       

             

            }

           

            ?>

            <script type="text/javascript">

                //alert("<?php echo $loop ?>");

                document.getElementById("accCont<?php echo $loop ?>").style.display = 'block';

            </script>

            <?php           

           

}

category_list();

?>
*

takes

  • Захожу иногда
  • 84
  • 0 / 0
Re: mod_vm_accordion
« Ответ #1 : 23.08.2010, 00:46:11 »
вот мой сайт где наглядно видно это меню(слева)
http://svarkavita.com/
*

takes

  • Захожу иногда
  • 84
  • 0 / 0
Re: mod_vm_accordion
« Ответ #2 : 23.08.2010, 10:07:48 »
я заплачу тому кто сделает это меню так как я хочу
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: mod_vm_accordion
« Ответ #3 : 23.08.2010, 12:32:32 »
Могу помочь вот с этим модулем.
Как добиться поведения, описанного вами я уже разобрался, останется поправить CSS
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

takes

  • Захожу иногда
  • 84
  • 0 / 0
Re: mod_vm_accordion
« Ответ #4 : 23.08.2010, 14:03:35 »
Цитировать
Могу помочь вот с этим модулем.
Как добиться поведения, описанного вами я уже разобрался, останется поправить CSS

Та нет, мне ваш не нужен , вы можете сделать как тут меню http://deglicht.de/
« Последнее редактирование: 23.08.2010, 14:14:20 от takes »
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: mod_vm_accordion
« Ответ #5 : 23.08.2010, 14:42:32 »
Цитировать
вы можете сделать как тут меню http://deglicht.de/
Нет проблем, ставьте модуль mod_virtuemart_categories ,  я прикреплю шаблон аккордиона под ваши нужды. Вам останется только CSS поправить.
тот что на сайте http://deglicht.de/ подглюкивает слегка.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

takes

  • Захожу иногда
  • 84
  • 0 / 0
Re: mod_vm_accordion
« Ответ #6 : 23.08.2010, 15:26:06 »
я передумал..
мне всего лишь нужно одну строку подправьте этом модули, просто скажите или поправьте сами её, больше мне нечего не нужно
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: mod_vm_accordion
« Ответ #7 : 23.08.2010, 15:38:16 »
Не знаю что править. В своем коде мне куда проще разобраться )
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

takes

  • Захожу иногда
  • 84
  • 0 / 0
Re: mod_vm_accordion
« Ответ #8 : 23.08.2010, 15:49:46 »
Нужно править сам скрипт
Код
<script type="text/javascript" src="<?php echo JURI::base(); ?>/modules/mod_vm_accordion/jquery.js"> </script>

          <script type="text/javascript">

         



$(document).ready(function()

{



$("div.accordionButton").click(function()

    {

$(this).next("div.accordionContent").slideToggle(50).siblings("div.accordionContent").slideUp("slow");

        $(this).siblings();

});

//slides the element with class "menu_body" when mouse is over the paragraph

$("div.accordionButton").mouseover(function()

    {

     $(this).next("div.accordionContent").slideDown(200).siblings("div.accordionContent").slideUp("slow");

         $(this).siblings();

});

});

</script>
Я там менял параметры но к добру непревело, поставил как было, тут и нужно ковырять
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: mod_vm_accordion
« Ответ #9 : 23.08.2010, 16:04:42 »
Попробуйте установить модуль, и перекрыть шаблон accordion прикрепленным файлом. Как это сделать описано в шапке темы.

[spoiler title="accordion.php"]<?php

// no direct access
defined('_JEXEC') or die('Restricted access');

if ( ! defined('VMCategoriesAccordionDecoratorDefined') )
{
   function VMCategoriesAccordionDecorator(&$node, &$args)
   {
      $categories = & VMCategories::getInstance();
      $active = $categories->getActive();
      $path = $active ? $active->getPath() : false;

      switch ($node->name())
      {
         case 'ul':
            break;
         case 'li':
            // set parent class
            if (isset($node->ul) && $node->ul) {
               $node->addAttribute('class', 'parent');
            }
            // set current class
            if ($path && $node->attributes('id') == $path[0]) {
               $node->addAttribute('class', $node->attributes('class').' current');
            }
            // set active class
            if ($path && in_array($node->attributes('id'), $path)) {
               $node->addAttribute('class', $node->attributes('class').' active');
            }
            break;
         case 'a':
            break;
      }

      // remove XML attributes
      $node->removeAttribute('id');
      $node->removeAttribute('level');
   }

   define('VMCategoriesAccordionDecoratorDefined', true);
}

// tag id can't be empty
$params->get('tag_id') or $params->set('tag_id', 'accordion');

// render list
$rendered = modVMCategoriesHelper::render($params, 'VMCategoriesAccordionDecorator');

// if module isn't empty
if ($rendered){

   $script = "
   window.addEvent('domready', function(){

      $$($('{$params->get('tag_id')}'), $('{$params->get('tag_id')}').getElements('ul')).each(function(el){
            accParentItems = el.getChildren().filterByClass('parent');
            accTogglers = [];
            accElements = [];
            accParentItems.each(function(element, index){
               accTogglers.push(new Element('span').inject(element));
               accElements.push(element.getChildren().filterByTag('ul')[0]);
               element.index = index;
               element.getChildren().filterByTag('a')[0].addEvent('mouseover', function(){
                  if (this.getNext().offsetHeight == 0) {
                     this.parentNode.parentNode.Accordion.options.wait = false;
                     accTimer = this.parentNode.parentNode.Accordion.display.delay(200, this.parentNode.parentNode.Accordion, $(this.parentNode).index);
                  }
               });
               element.getChildren().filterByTag('a')[0].addEvent('mouseout', function(){
                  if((accTimer != undefined)){clearTimeout(accTimer)};
               });
               element.addEvent('mouseleave', function(){
                  if (element.getChildren().filterByTag('ul')[0].offsetHeight != 0) {
                     element.parentNode.Accordion.display.delay(200, this.parentNode.Accordion, $(this).index);
                  }
               });
               
            });
            if ( accParentItems.length > 0 ){
                  el.Accordion = new Accordion(accTogglers, accElements, {
                           opacity: false,
                           alwaysHide: true,
                           show: $$(accParentItems).indexOf($$(accParentItems).filterByClass('active')[0]),
                           duration: 600,
                           transition: Fx.Transitions.Quart.easeOut,
                           onActive: function(toggler, element){
                                 element.parentNode.parentNode.setStyle('height', 'auto');
                           },
                           onBackground: function(toggler, element){
                                 element.parentNode.parentNode.setStyle('height', 'auto');
                                 element.setStyle('height', element.offsetHeight+'px');
                           }
                        }
                  );
            }
      });

   });
   ";

   // require mootools
   JHTML::_('behavior.mootools');

   // get document
   $document =& JFactory::getDocument();
   $document->addScriptDeclaration($script);
}
[/spoiler]
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

takes

  • Захожу иногда
  • 84
  • 0 / 0
Re: mod_vm_accordion
« Ответ #10 : 23.08.2010, 16:11:07 »
Попробуйте установить модуль, и перекрыть шаблон accordion прикрепленным файлом. Как это сделать описано в шапке темы.

[spoiler title="accordion.php"]<?php



// no direct access
defined('_JEXEC') or die('Restricted access');

if ( ! defined('VMCategoriesAccordionDecoratorDefined') )
{
   function VMCategoriesAccordionDecorator(&$node, &$args)
   {
      $categories = & VMCategories::getInstance();
      $active = $categories->getActive();
      $path = $active ? $active->getPath() : false;

      switch ($node->name())
      {
         case 'ul':
            break;
         case 'li':
            // set parent class
            if (isset($node->ul) && $node->ul) {
               $node->addAttribute('class', 'parent');
            }
            // set current class
            if ($path && $node->attributes('id') == $path[0]) {
               $node->addAttribute('class', $node->attributes('class').' current');
            }
            // set active class
            if ($path && in_array($node->attributes('id'), $path)) {
               $node->addAttribute('class', $node->attributes('class').' active');
            }
            break;
         case 'a':
            break;
      }

      // remove XML attributes
      $node->removeAttribute('id');
      $node->removeAttribute('level');
   }

   define('VMCategoriesAccordionDecoratorDefined', true);
}

// tag id can't be empty
$params->get('tag_id') or $params->set('tag_id', 'accordion');

// render list
$rendered = modVMCategoriesHelper::render($params, 'VMCategoriesAccordionDecorator');

// if module isn't empty
if ($rendered){

   $script = "
   window.addEvent('domready', function(){

      $$($('{$params->get('tag_id')}'), $('{$params->get('tag_id')}').getElements('ul')).each(function(el){
            accParentItems = el.getChildren().filterByClass('parent');
            accTogglers = [];
            accElements = [];
            accParentItems.each(function(element, index){
               accTogglers.push(new Element('span').inject(element));
               accElements.push(element.getChildren().filterByTag('ul')[0]);
               element.index = index;
               element.getChildren().filterByTag('a')[0].addEvent('mouseover', function(){
                  if (this.getNext().offsetHeight == 0) {
                     this.parentNode.parentNode.Accordion.options.wait = false;
                     accTimer = this.parentNode.parentNode.Accordion.display.delay(200, this.parentNode.parentNode.Accordion, $(this.parentNode).index);
                  }
               });
               element.getChildren().filterByTag('a')[0].addEvent('mouseout', function(){
                  if((accTimer != undefined)){clearTimeout(accTimer)};
               });
               element.addEvent('mouseleave', function(){
                  if (element.getChildren().filterByTag('ul')[0].offsetHeight != 0) {
                     element.parentNode.Accordion.display.delay(200, this.parentNode.Accordion, $(this).index);
                  }
               });
               
            });
            if ( accParentItems.length > 0 ){
                  el.Accordion = new Accordion(accTogglers, accElements, {
                           opacity: false,
                           alwaysHide: true,
                           show: $$(accParentItems).indexOf($$(accParentItems).filterByClass('active')[0]),
                           duration: 600,
                           transition: Fx.Transitions.Quart.easeOut,
                           onActive: function(toggler, element){
                                 element.parentNode.parentNode.setStyle('height', 'auto');
                           },
                           onBackground: function(toggler, element){
                                 element.parentNode.parentNode.setStyle('height', 'auto');
                                 element.setStyle('height', element.offsetHeight+'px');
                           }
                        }
                  );
            }
      });

   });
   ";

   // require mootools
   JHTML::_('behavior.mootools');

   // get document
   $document =& JFactory::getDocument();
   $document->addScriptDeclaration($script);
}
[/spoiler]

поставил я ваш модуль, зайдие на мой сайт и взгляните как он работает, он вобще некаким краем не похож на аккорд меню..
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: mod_vm_accordion
« Ответ #11 : 23.08.2010, 16:33:51 »
проставьте настройки, которые указаны в разделе Важно темы
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

takes

  • Захожу иногда
  • 84
  • 0 / 0
Re: mod_vm_accordion
« Ответ #12 : 23.08.2010, 16:39:35 »
проставьте настройки, которые указаны в разделе Важно темы
настроил как ты написал, можеш посмотреть на моём сайте
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: mod_vm_accordion
« Ответ #13 : 23.08.2010, 16:40:38 »
И кстати по вашему сайту: уберите marque, это реально бесит юзеров. Сделайте кнопки чтоб листать взад-вперед, и можно чтобы скрипт сам изредка пролистывал.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: mod_vm_accordion
« Ответ #14 : 23.08.2010, 16:42:39 »
Походу конфликт с jquery, отключи пока модуль свой
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

takes

  • Захожу иногда
  • 84
  • 0 / 0
Re: mod_vm_accordion
« Ответ #15 : 23.08.2010, 16:43:16 »
что такое marque?
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: mod_vm_accordion
« Ответ #16 : 23.08.2010, 16:45:06 »
это ваш "слайдер", который утомительно проматывает товары.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

takes

  • Захожу иногда
  • 84
  • 0 / 0
Re: mod_vm_accordion
« Ответ #17 : 23.08.2010, 16:45:14 »
заработал ваш модуль, но тот чемто лучше...
*

takes

  • Захожу иногда
  • 84
  • 0 / 0
Re: mod_vm_accordion
« Ответ #18 : 23.08.2010, 16:45:41 »
Цитировать
это ваш "слайдер", который утомительно проматывает товары.
его не уберу не в коем случае...
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: mod_vm_accordion
« Ответ #19 : 23.08.2010, 16:50:53 »
здрасьте, выж хотели чтоб категории сворачивались сами. вот они теперь и сворачиваются. а оформление можно подправить через css
плюс избавились от jquery
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

takes

  • Захожу иногда
  • 84
  • 0 / 0
Re: mod_vm_accordion
« Ответ #20 : 23.08.2010, 16:52:26 »
дело не в этом, ваше меню не сразу реагирует на наведение мышки, слишком оно тормозит
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: mod_vm_accordion
« Ответ #21 : 23.08.2010, 16:53:45 »
его не уберу не в коем случае...

дело ваше. у мня глаза от него болят, хорошо можно мышку навести и он остановится. нужно чтобы он отрывисто твигался, тогда будет нормально, да и внимание лучше концентрируется тогда. в прочем думаю вам до этого нет дела..
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: mod_vm_accordion
« Ответ #22 : 23.08.2010, 16:57:10 »
вот без задержки
[spoiler title="accordion.php"]<?php

// no direct access
defined('_JEXEC') or die('Restricted access');

if ( ! defined('VMCategoriesAccordionDecoratorDefined') )
{
   function VMCategoriesAccordionDecorator(&$node, &$args)
   {
      $categories = & VMCategories::getInstance();
      $active = $categories->getActive();
      $path = $active ? $active->getPath() : false;

      switch ($node->name())
      {
         case 'ul':
            break;
         case 'li':
            // set parent class
            if (isset($node->ul) && $node->ul) {
               $node->addAttribute('class', 'parent');
            }
            // set current class
            if ($path && $node->attributes('id') == $path[0]) {
               $node->addAttribute('class', $node->attributes('class').' current');
            }
            // set active class
            if ($path && in_array($node->attributes('id'), $path)) {
               $node->addAttribute('class', $node->attributes('class').' active');
            }
            break;
         case 'a':
            break;
      }

      // remove XML attributes
      $node->removeAttribute('id');
      $node->removeAttribute('level');
   }

   define('VMCategoriesAccordionDecoratorDefined', true);
}

// tag id can't be empty
$params->get('tag_id') or $params->set('tag_id', 'accordion');

// render list
$rendered = modVMCategoriesHelper::render($params, 'VMCategoriesAccordionDecorator');

// if module isn't empty
if ($rendered){

   $script = "
   window.addEvent('domready', function(){

      $$($('{$params->get('tag_id')}'), $('{$params->get('tag_id')}').getElements('ul')).each(function(el){
            accParentItems = el.getChildren().filterByClass('parent');
            accTogglers = [];
            accElements = [];
            accParentItems.each(function(element, index){
               accTogglers.push(new Element('span').inject(element));
               accElements.push(element.getChildren().filterByTag('ul')[0]);
               element.index = index;
               element.getChildren().filterByTag('a')[0].addEvent('mouseover', function(){
                  if (this.getNext().offsetHeight == 0) {
                     this.parentNode.parentNode.Accordion.options.wait = false;
                     this.parentNode.parentNode.Accordion.display($(this.parentNode).index);
                  }
               });
               element.addEvent('mouseleave', function(){
                  if (element.getChildren().filterByTag('ul')[0].offsetHeight != 0) {
                     element.parentNode.Accordion.display($(this).index);
                  }
               });
               
            });
            if ( accParentItems.length > 0 ){
                  el.Accordion = new Accordion(accTogglers, accElements, {
                           opacity: false,
                           alwaysHide: true,
                           show: $$(accParentItems).indexOf($$(accParentItems).filterByClass('active')[0]),
                           duration: 600,
                           transition: Fx.Transitions.Quart.easeOut,
                           onActive: function(toggler, element){
                                 element.parentNode.parentNode.setStyle('height', 'auto');
                           },
                           onBackground: function(toggler, element){
                                 element.parentNode.parentNode.setStyle('height', 'auto');
                                 element.setStyle('height', element.offsetHeight+'px');
                           }
                        }
                  );
            }
      });

   });
   ";

   // require mootools
   JHTML::_('behavior.mootools');

   // get document
   $document =& JFactory::getDocument();
   $document->addScriptDeclaration($script);
}
[/spoiler]
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: mod_vm_accordion
« Ответ #23 : 23.08.2010, 16:59:05 »
ваше jquery.noConflict не срабатывало потому что в тот момент jquery еще не было загружено, потому как <script src="..jquery.js" /> впрыскивается не в шапку, а гдето ниже...
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

takes

  • Захожу иногда
  • 84
  • 0 / 0
Re: mod_vm_accordion
« Ответ #24 : 23.08.2010, 16:59:54 »
попробуйте немного покопаться в моём, всеголиш 1 скрипт, помогите, даже без задержки оно какоето страное и глючное, не прими в обиду, помоги с моим плз
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: mod_vm_accordion
« Ответ #25 : 23.08.2010, 17:05:50 »
ясно, просто подкатегории тоже аккордионизируются, чего не нужно делать. замените вторую строчку скрипта на эту:
      $$($('{$params->get('tag_id')}'), $('{$params->get('tag_id')}').getChildren().filterByTag('ul')).each(function(el){
будет все окей, все глюки пропадают.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

takes

  • Захожу иногда
  • 84
  • 0 / 0
Re: mod_vm_accordion
« Ответ #26 : 23.08.2010, 17:12:48 »
лучше скажи как мой настроить ане твой пожалуйста..
*

takes

  • Захожу иногда
  • 84
  • 0 / 0
Re: mod_vm_accordion
« Ответ #27 : 23.08.2010, 18:32:01 »
народ помогите
« Последнее редактирование: 23.08.2010, 21:48:19 от takes »
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
Re: mod_vm_accordion
« Ответ #28 : 23.08.2010, 21:12:02 »
народ помогите, не будьте
Код
цензура
, прошу
дважды цензура..
« Последнее редактирование: 24.08.2010, 17:32:10 от adjuster »
*

takes

  • Захожу иногда
  • 84
  • 0 / 0
Re: mod_vm_accordion
« Ответ #29 : 23.08.2010, 21:19:24 »
хамло?
тебе что поговорить не о чем? давайте отложим бессмысленные споры кто правее и разберёмся с модулем
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

mod_vm_accordion

Автор terr

Ответов: 1
Просмотров: 2399
Последний ответ 19.09.2011, 01:39:52
от chakivetal