+ Antworten
Ergebnis 1 bis 2 von 2

Thema: mosGetMenuLink in mod_exmenu-j15

  1. #1
    Neu an Board Avatar von aaren
    Registriert seit
    03.09.2006
    Beiträge
    34
    Bedankte sich
    5
    1 Danksagung in 1 Beitrag

    Standard mosGetMenuLink in mod_exmenu-j15

    Hallo zusammen,

    ich steh ein wenig auf dem Schlauch und finde einfach nicht die Stelle an der ich folgende Veränderungen einfügen möchte.

    In der Datei /modules/mod_exmenu-j15/exmenu/view/list.menuview.class.php gibt es eine Funktion mit dem Namen '_renderMenuNodeList'. Darin gibt es folgenden Code der die komplette URL mit href ausgibt.

    PHP-Code:
    $linkOutput    $this->mosGetMenuLink($menuNode$level$this->params$itemHierarchy); 
    diese Funktion 'mosGetMenuLink' gibts ja auch im mod_mainmenu, diese wird bei mod_exmenu-j15 in der Datei "/modules/mod_exmenu-j15/exmenu/view/menuview.class.php" umgeschrieben/neu definiert.

    Ich hätte gerne folgende Ausgabe:
    HTML-Code:
    <a href="#"><span class="x"></span><span class="y"></span><span class="z">TEXTLINK</span></a>
    'mosGetMenuLink' gibt aber nur folgendes aus:
    HTML-Code:
    <a href="#">TEXTLINK</a>
    Ich kann auch die span-Tags vor und hinter $linkOutput einfügen aber dann sieht das ganze so aus.
    HTML-Code:
    <span class="x"></span><span class="y"></span><span class="z"><a href="#">TEXTLINK</a></span>
    Aber das will ich nicht, ich will die Span-Tags zwischen dem Href

    Weiß jemand wo ich evtl. diese 'span' Tags zwischen den href einfügen könnte? Ich bin davon ausgegangen, dass diese über die Datei "/modules/mod_exmenu-j15/exmenu/view/menuview.class.php" gemacht wird, aber ich konnte nichts rauslesen.

    Hier ist mal der Code von "menuview.class.php"
    PHP-Code:
    /**
        * Utility function for writing a menu link
        * (modification of the original menu module mosGetMenuLink function)
        */
        
        
    function mosGetMenuLink($menuNode$level=0, &$params$itemHierarchy) {
            global 
    $Itemid$mainframe// only used if it is not Joomla 1.5+

            
    $siteHelper =& $this->getSiteHelper();

            
    $menuItemParametersString = (isset($menuNode->params) ? $menuNode->params '');
            
    $menuItemParameters FALSE;

            
    $txt '';

            
    $gotFinalLink FALSE;

            switch (
    $menuNode->type) {
                case 
    'separator':
                    
    $menuNode->browserNav    3;
                    break;
                case 
    'component_item_link':            
                    break;
                case 
    'content_item_link':
                    if (!
    $this->hasItemid($menuNode->link)) {
                        
    $temp split('&task=view&id='$menuNode->link);
                        if (
    count($temp) != 2) {
                            
    $temp split('&view=article&id='$menuNode->link);
                        }
                        if (((
    $this->callGetItemid) || ($menuNode->id === FALSE)) &&
                                (
    count($temp) == 2)) {
                            
    $contentId $temp[1];
                            if (
    function_exists('jimport')) {
                                require_once(
    JPATH_SITE.DS.'components'.DS.'com_content'.DS.'helpers'.DS.'route.php');
                                
    $menuNode->link ContentHelperRoute::getArticleRoute(
                                        
    $contentId$menuNode->getCategoryId(), $menuNode->getSectionId());
                                
    $gotFinalLink FALSE;
                                
    $id FALSE;
                            } else if (
    $menuNode->id !== FALSE) {
                                
    $_Itemid    $Itemid;
                                
    $Itemid        $menuNode->id;    // getItemid uses the global variable as a default value... use the id of the menu item instead
                                
    $id            $mainframe->getItemid($temp[1]);
                                
    $Itemid        $_Itemid;
                            } else {
                                
    $id            $mainframe->getItemid($temp[1]);
                            }
                        } else {
                            
    $id    $menuNode->id;
                        }
                        if (
    $id 0) {
                            
    $menuNode->link .= '&Itemid='.$id;
                        }
                    }                
                    break;
                case 
    'url':
                    switch(
    $this->addUrlItemidMode) {
                        case 
    'local':
                            
    $rootUri $siteHelper->getUri();
                            if ((
    strpos(strtolower($menuNode->link), 'index.php?') !== FALSE) &&
                                    ((
    $rootUri == '') || (strpos($menuNode->link':') === FALSE) ||
                                            (
    strpos($menuNode->link$rootUri) === 0))) {
                                
    $menuNode->link        $this->addItemid($menuNode->link$menuNode->id);
                            }
                            break;
                        case 
    'default':
                        default:
                            if (
    strpos(strtolower($menuNode->link), 'index.php?') !== FALSE) {
                                
    $menuNode->link        $this->addItemid($menuNode->link$menuNode->id);
                            }
                    }                
                    break;
                case 
    'content_typed':
                default:
                    
    $menuNode->link        $this->addItemid($menuNode->link$menuNode->id);                
                    break;
            }

            
    // Active Menu highlighting
            // why reading the request parameter when there is a global variable?
    //            $current_itemid = trim( mosGetParam( $_REQUEST, 'Itemid', 0 ) );

            
    $title    strip_tags($menuNode->name);

            
    // use a more meaningful name than "id": elementParameters
            
    $elementParameters    '';
            if ((
    $this->hierarchyBasedIds) && (count($itemHierarchy) > 0)) {
                
    $elementParameters    .= ' id="menulink_'.$this->getHierarchyString($itemHierarchy).$this->idSuffix.'"';
            } else if (
    $menuNode->isCurrent()) {
                
    $elementParameters    .= ' id="active_menu'.$this->idSuffix.'"';
            }
            if ((isset(
    $menuNode->accessKey)) && ($menuNode->accessKey != '')) {
                
    $elementParameters    .= ' accesskey="'.$menuNode->accessKey.'"';
                
    $title    .= ' ['.strtoupper($menuNode->accessKey).']';
            }

            if (
    $this->titleAttribute) {
                
    $elementParameters    .= ' title="'.$title.'"';
            }

            if (!
    $gotFinalLink) {
                
    $shouldSefLink = ((strcasecmp(substr($menuNode->link04), 'http') != 0) &&
                        (
    strcasecmp(substr($menuNode->link01), '#') != 0));
                if (
    class_exists('JRoute')) {
                    if (
    $shouldSefLink) {
                        if (!
    is_object($menuItemParameters)) {
                            
    $menuItemParameters =& $this->getParsedParameters($menuItemParametersString);
                        }
                        
    $secure $menuItemParameters->def('secure'0);
                        
    $menuNode->link JRoute::_($menuNode->linktrue$secure);
                    } else {
                        
    $menuNode->link ampReplace($menuNode->link);
                    }
                } else {
                    
    $menuNode->link ampReplace($menuNode->link);
                    if (
    $shouldSefLink) {
                        
    // no secure link support for older versions
                        
    $menuNode->link sefRelToAbs($menuNode->link);
                    }
                }
            }

            
    $menuclass    $this->getLinkMenuClassName($menuNode$level);

            
    $linkBegin    '';
            
    $linkText    $menuNode->name;
            
    $linkEnd    '';

            switch (
    $menuNode->browserNav) {
                
    // cases are slightly different
                
    case 1:
                    
    // open in a new window
                    
    $linkBegin    '<a href="'$menuNode->link .'" target="_blank" class="'$menuclass .'"'$elementParameters .'>';
                    
    $linkEnd    '</a>';
    //                    $txt = '<a href="'. $menuNode->link .'" target="_blank" class="'. $menuclass .'"'. $elementParameters .'>'. $menuNode->name .'</a>';
                    
    break;

                case 
    2:
                    
    // open in a popup window
                    
    $linkBegin    "<a href=\"#\" onclick=\"javascript: window.open('"$menuNode->link ."', '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550'); return false\" class=\"$menuclass\""$elementParameters .">";
                    
    $linkEnd    "</a>\n";
    //                    $txt = "<a href=\"#\" onclick=\"javascript: window.open('". $menuNode->link ."', '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550'); return false\" class=\"$menuclass\"". $elementParameters .">". $menuNode->name ."</a>\n";
                    
    break;

                case 
    3:
                    
    // don't link it
                    
    $linkBegin    '<span class="'$menuclass .'"'$elementParameters .'>';
                    
    $linkText    = ($menuNode->name != '' $menuNode->name '&nbsp;');
                    
    $linkEnd    '</span>';
    //                    $txt = '<span class="'. $menuclass .'"'. $elementParameters .'>'. ($menuNode->name != '' ? $menuNode->name : '&nbsp;') .'</span>';
                    
    break;

                default:    
    // formerly case 2
                    // open in parent window
                    
    $linkBegin    '<a href="'$menuNode->link .'" class="'$menuclass .'"'$elementParameters .'>';
                    
    $linkEnd    '</a>';
    //                    $txt = '<a href="'. $menuNode->link .'" class="'. $menuclass .'"'. $elementParameters .'>'. $menuNode->name .'</a>';
                    
    break;
            }

            
    $txt    $linkBegin.$linkText.$linkEnd;

            if (
    $this->imageEnabled) {
                if (!
    is_object($menuItemParameters)) {
                    
    $menuItemParameters =& $this->getParsedParameters($menuItemParametersString);
                }
                
    $menu_image $menuItemParameters->def('menu_image', -1);
                if ( ( 
    $menu_image <> '-1' ) && $menu_image ) {
                    
    $image '<img src="'.$siteHelper->getUri('images/stories/'.$menu_image).'" border="0" alt="'$menuNode->name .'"/>';
                    switch(
    $this->imageAlignment) {
                        case 
    'image_only':    // does not really make sense
                            
    $txt    $image;
                            break;
                        case 
    'image_only_linked':
                            
    $txt    $linkBegin.$image.$linkEnd;
                            break;
                        case 
    'right':
                            
    $txt    $txt.' '.$image;
                            break;
                        case 
    'right_linked':
                            
    $txt    $linkBegin.$linkText.' '.$image.$linkEnd;
                            break;
                        case 
    'left_linked':
                            
    $txt    $linkBegin.$image.' '.$linkText.$linkEnd;
                            break;
                        case 
    'left':
                        default:
                            
    $txt    $image.' '.$txt;
                    }
                }
            }

            
    $this->lastLinkBegin    $linkBegin;
            
    $this->lastLinkEnd        $linkEnd;

            return 
    $txt;
        } 
    Vielen Dank schonmal für die Mühe
    Grüße
    aaren
    Geändert von aaren (16.06.2010 um 09:56 Uhr) Grund: Hab die besagte Stelle gefunden.

  2. #2
    Neu an Board Avatar von aaren
    Registriert seit
    03.09.2006
    Beiträge
    34
    Bedankte sich
    5
    1 Danksagung in 1 Beitrag

    Standard

    Habs gefunden.

    PHP-Code:
                default:    // formerly case 2
                    // open in parent window
                    
    $linkBegin    '<a href="'$menuNode->link .'" class="'$menuclass .'"'$elementParameters .'>';
                    
    $linkEnd    '</a>';
    //                    $txt = '<a href="'. $menuNode->link .'" class="'. $menuclass .'"'. $elementParameters .'>'. $menuNode->name .'</a>';
                    
    break; 
    dort füg ich es nach <a href...> und </a> ein.

    Grüße
    Aaren

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein