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

kivik92

  • Новичок
  • 14
  • 0 / 0
Добрый день, проблема следущая:
-шаблон Tx_appy
-megamenu
необходимо добавить в пункты меню itemprop="url"
Код мега меню
Код
<?php 


defined('_JEXEC') or die('Restricted access');
if (!defined ('_EXPOSE_MEGA_MENU')) {
define ('_EXPOSE_MEGA_MENU', 1);
require_once (dirname(__FILE__).DS."basemenu.php");

class ExposeMegaMenu extends ExposeBaseMenu{

        /**
         * Constructor
         *
         * @param array &$params  An array parameter
         *
         * @return void
         */
        function __construct(&$params)
        {
            $params->set('megamenu', 1);
            parent::__construct($params);
            if (!$this->getParam('menuname')) $this->setParam('menuname', 'megamenu');

        }

        /**
         * Echo markup before a menu markup
         *
         * @param int $startlevel  Start menu level
         * @param int $endlevel    End menu level
         *
         * @return void
         */
        function beginMenu($startlevel = 0, $endlevel = 10)
        {
            //echo "<div class=\"megamenu clearfix\" id=\"" . $this->getParam('menuname'). "\">\n";
        }

        /**
         * Echo markup after a menu markup
         *
         * @param int $startlevel  Start menu level
         * @param int $endlevel    End menu level
         *
         * @return void
         */
        function endMenu($startlevel = 0, $endlevel = 10)
        {
            //If rtl, not allow slide and fading effect
           /* $rtl = $this->getParam('rtl');

            if (!$rtl) {
                if (preg_match('/slide/', $animation)) $slide = 1;
                if (preg_match('/fade/', $animation)) $fade = 1;
            }*/
            //echo "\n</div>";
            //Create menu

        }

        /**
         * Echo markup before menu items markup
         *
         * @param int  $pid     Menu item id
         * @param int  $level   Menu item level
         * @param bool $return  Return or not
         *
         * @return mixed  Markup if return = true, otherwise VOID
         */
        function beginMenuItems($pid = 0, $level = 0, $return = false)
        {
            $data = '';
            if ($level) {
                if ($this->items[$pid]->megaparams->get('group')) {
                    $cols = $pid && $this->getParam('megamenu') && isset($this->items[$pid]->cols) && $this->items[$pid]->cols ? $this->items[$pid]->cols : 1;
                    $cols_cls = ($cols > 1)? " cols$cols" : '';
                    //$data = "<div class=\"group-content$cols_cls\">";
                } else {
                    $style = $this->getParam('mega-style', 1);
                    if (!method_exists($this, "beginMenuItems$style")) $style = 1; //default
                    $data = call_user_func_array(array($this, "beginMenuItems$style"), array($pid, $level, true));
                }
                if ($return)
                    return $data;
                else
                    echo $data;
            }
        }

        /**
         * Echo markup after menu items markup
         *
         * @param int  $pid     Menu item id
         * @param int  $level   Menu item level
         * @param bool $return  Return or not
         *
         * @return mixed  Markup if return = true, otherwise VOID
         */
        function endMenuItems($pid = 0, $level = 0, $return = false)
        {
            $data = '';
            if ($level) {
                if ($this->items[$pid]->megaparams->get('group')) {
                    //$data = "</div>";
                } else {
                    $style = $this->getParam('mega-style', 1);
                    if (!method_exists($this, "endMenuItems$style")) $style = 1; //default
                    $data = call_user_func_array(array($this, "endMenuItems$style"), array($pid, $level, true));
                }
                if ($return)
                    return $data;
                else
                    echo $data;
            }
        }

        /**
         * Echo markup before submenu items markup
         *
         * @param int    $pid     Menu id
         * @param int    $level   Level
         * @param string $pos     Position
         * @param int    $i       Index
         * @param string $return  Return or not
         *
         * @return mixed  Markup if return = true, otherwise VOID
         */
        function beginSubMenuItems($pid = 0, $level = 1, $pos = null, $i = 0, $return = false)
        {
            $level = (int) $level + 1;
            $data = '';
            if (isset($this->items[$pid]) && $level)
            {
                $cols = $pid && $this->getParam('megamenu') && isset($this->items[$pid]->cols) && $this->items[$pid]->cols ? $this->items[$pid]->cols : 1;
                if ($this->items[$pid]->megaparams->get('group') && $cols < 2)
                {

                } else {

                    $colw = $this->items[$pid]->megaparams->get('colw' . ($i + 1), 0);

                    if (!$colw) $colw = $this->items[$pid]->megaparams->get('colw', $this->getParam('mega-colwidth', 200));

                    if (is_null($colw) || !is_numeric($colw)) $colw = 200;

                    $style = $colw ? " style=\"width: {$colw}px;\"" : "";
                    $data .= "<div class=\"column col" . ($i + 1). ($pos ? " $pos" : ""). "\"$style>";
                }
            }

            if (@$this->children[$pid]) $data .= "<ul class=\"l$level\">";
            if ($return)
                return $data;
            else
                echo $data;
        }

        /**
         * Echo markup after submenu items markup
         *
         * @param int    $pid     Menu id
         * @param int    $level   Level
         * @param string $return  Return or not
         *
         * @return mixed  Markup if return = true, otherwise VOID
         */
        function endSubMenuItems($pid = 0, $level = 0, $return = false)
        {
            $data = '';
            if (@$this->children[$pid]) $data .= "</ul>";
            if (isset($this->items[$pid]) && $level) {
                $cols = $pid && $this->getParam('megamenu') && isset($this->items[$pid]->cols) && $this->items[$pid]->cols ? $this->items[$pid]->cols : 1;
                if ($this->items[$pid]->megaparams->get('group') && $cols < 2) {
                } else
                    $data .= "</div>";
            }
            if ($return)
                return $data;
            else
                echo $data;
        }

        /**
         * Echo markup before submenu modules markup
         *
         * @param object $item    Menu item
         * @param int    $level   Level
         * @param string $pos     Position
         * @param int    $i       Index
         * @param bool   $return  Return or not
         *
         * @return mixed  Markup if return = true, otherwise VOID
         */
        function beginSubMenuModules($item, $level = 0, $pos = null, $i = 0, $return = false)
        {
            $data = '';
            if ($level) {
                if ($item->megaparams->get('group')) {
                }
                else {
                    $colw = $item->megaparams->get('colw' . ($i + 1), 0);
                    if (!$colw) $colw = $item->megaparams->get('colw', $this->getParam('mega-colwidth', 200));
                    $style = $colw ? " style=\"width: {$colw}px;\"" : "";
                    $data .= "<div class=\"column col" . ($i + 1). ($pos ? " $pos" : ""). "\"$style>";
                }
            }
           
            if ($return)
                return $data;
            else
                echo $data;
        }

        /**
         * Echo markup after submenu modules markup
         *
         * @param object $item    Menu item
         * @param int    $level   Level
         * @param bool   $return  Return or not
         *
         * @return mixed  Markup if return = true, otherwise FALSE
         */
        function endSubMenuModules($item, $level = 0, $return = false)
        {
            $data = '';
            if ($level) {
                if ($item->megaparams->get('group')) {
                } else
                    $data .= "</div>";
            }
            if ($return)
                return $data;
            else
                echo $data;
        }

        /**
         * Generate class item
         *
         * @param object $mitem  Menu item
         * @param int    $level  Menu level
         * @param string $pos    Position
         *
         * @return void
         */
        function genClass($mitem, $level, $pos)
        {
            $cls = '';
            $iParams = new JForm($mitem->params);
            if($level == NULL) $level = 1;

            // Set item id
            $cls .= 'item' . $mitem->id ;

            if (@$this->children[$mitem->id] || (isset($mitem->content) && $mitem->content)) {
                if ($mitem->megaparams->get('group'))
                    $cls .= " grouped";
                else if ($level < $this->getParam('endlevel')) $cls .= " parent";
            }

            // $desc = (string) $mitem->megaparams->get('desc');
            // if( $desc != "&nbsp;" AND !empty($desc) ) $cls .= " has-desc";
           
            // Set active class
            $active = in_array($mitem->id, $this->open);
            if (!preg_match('/grouped/', $cls)) $cls .= ($active ? ' active' : '');

            // additionl class coming from menu admin
            if ($mitem->megaparams->get('class')) $cls .= " " . $mitem->megaparams->get('class');

            // Set position first/last
            $cls .=  ($pos ? " $pos" : '');

            return $cls;
        }

        /**
         * Echo markup before menu item markup
         *
         * @param object $mitem  Menu item
         * @param int    $level  Menu level
         * @param string $pos    Position
         *
         * @return void
         */
        function beginMenuItem($mitem = null, $level = 0, $pos = '')
        {
            $active = $this->genClass($mitem, $level, $pos);
            if ($active) $active = " class=\"$active\"";
            echo "<li $active itemprop='name'>";
            //if ($mitem->megaparams->get('group')) echo "<div class=\"group\">";
        }

        /**
         * Echo markup after menu item markup
         *
         * @param object $mitem  Menu item
         * @param int    $level  Menu level
         * @param string $pos    Position
         *
         * @return void
         */
        function endMenuItem($mitem = null, $level = 0, $pos = '')
        {
            //if ($mitem->megaparams->get('group')) echo "</div>";
            echo "</li>";
        }

        /**
         * Echo markup before menu items markup
         * Sub nav style - 1 - basic (default)
         *
         * @param int $pid     Menu item id
         * @param int $level   Menu item level
         * @param int $return  Return or not
         *
         * @return mixed  String markup data if return = false, otherwise VOID
         */
        function beginMenuItems1($pid = 0, $level = 0, $return = false)
        {
            $cols = $pid && $this->getParam('megamenu') && isset($this->items[$pid]->cols) && $this->items[$pid]->cols ? $this->items[$pid]->cols : 1;
            $width = $this->items[$pid]->megaparams->get('width', 0);
            if (!$width) {
                for ($col = 0; $col < $cols; $col++) {
                    $colw = $this->items[$pid]->megaparams->get('colw' . ($col + 1), 0);
                    if (!$colw) $colw = $this->items[$pid]->megaparams->get('colw', $this->getParam('mega-colwidth', 200));
                    if (is_null($colw) || !is_numeric($colw)) $colw = 200;
                    $width += $colw;
                }
            }
            $style = $width ? " style=\"width: {$width}px;\"" : "";
            $right = $this->items[$pid]->megaparams->get('right')? 'right' : '';
            $data = "<span class=\"dropdown-spacer\"></span><div class=\"dropdown cols$cols $right\" $style>\n";
            if ($return)
                return $data;
            else
                echo $data;
        }

        /**
         * Echo markup after menu items markup
         * Sub nav style - 1 - basic (default)
         *
         * @param int $pid     Menu item id
         * @param int $level   Menu item level
         * @param int $return  Return or not
         *
         * @return mixed  String markup data if return = false, otherwise VOID
         */
        function endMenuItems1($pid = 0, $level = 0, $return = false)
        {
            $data = "</div>\n"; //Close of childcontent-inner
            if ($return)
                return $data;
            else
                echo $data;
        }



 



    }
}



Код самого меню:
Код
<?php 

//prevent direct access
defined ('EXPOSE_VERSION') or die ('resticted aceess');

//import parent gist class
expose_import('core.widget');

class ExposeWidgetMenu extends ExposeWidget{

    public $name = 'menu';

    public function render()
    {
        global $expose;
        $html = '';

        // Assign params values
        $animation = $this->get('animation');
        $animation_sublevel = $this->get('animation-sublevel');
        $startlevel = $this->get('startlevel', 1);
        $endlevel = $this->get('endlevel', -1);

        //$fancy = ($this->get('fancy-animation'))? 'true' : 'false';

        $style = (isset ($_COOKIE[$expose->templateName.'_menu']))? $_COOKIE[$expose->templateName.'_menu'] : $this->get('style','mega');
        if(isset ($_REQUEST['menu'])){
            setcookie($expose->templateName.'_menu',$_REQUEST['menu'],time()+3600,'/');
            $style = $_REQUEST['menu'];
        }

        $fileName = $style.'menu';


        switch($style){

            case 'split':
                $class = 'ExposeSplitMenu';
                break;

            case 'mega':
            default:
                $class = 'ExposeMegaMenu';
                break;
        }

        //import menu file
        expose_import("core.menu.$fileName");

        //set some menu params
        $align = ($expose->direction == 'rtl')? 'right' : 'left';
        $expose->document->params->set('startlevel', $startlevel); //Startlevel
        $expose->document->params->set('endlevel', $endlevel); //endlevel

        $menu = new $class($expose->document->params);

        ob_start();
        ?>

        <nav class="ex-menu hidden-phone hidden-tablet" dropdown-animation="<?php echo $animation; ?>" dropdown-sub-animation="<?php echo $animation_sublevel; ?>" itemscope itemtype="http://schema.org/SiteNavigationElement" >

            <?php $menu->loadMenu(); ?>

            <?php $menu->genMenu(); ?>

        </nav> <!-- menu end -->

        <?php
        return ob_get_clean();
    }

}

Надо сделать что было так:
<a itemprop="url" href="#">Link</a>
Помогите  ! ! ! ! !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Добавить в RSS к тегу <item> аттрибут turbo="true"

Автор ProtectYourSite

Ответов: 7
Просмотров: 344
Последний ответ 10.12.2017, 12:12:14
от Mehanick
Помогите с mod_menu, как выделить родительский пункт меню?

Автор mrN

Ответов: 2
Просмотров: 86
Последний ответ 07.12.2017, 12:30:04
от lesh1j
Как на VM3 добавить единицу измерения товара к определенным товарам? Решено.

Автор Усач911

Ответов: 3
Просмотров: 178
Последний ответ 06.12.2017, 14:59:13
от Усач911
Пункт меню - Блог категорий

Автор Pusr

Ответов: 1
Просмотров: 88
Последний ответ 05.12.2017, 14:24:55
от vitaliybalayan
Не хватает нужного варианта в мега-меню

Автор Zhanadil1509

Ответов: 2
Просмотров: 83
Последний ответ 27.11.2017, 11:03:01
от Zhanadil1509