2013-02-25 97 views
0

我想在Concrete5中的下拉菜單中結合兩件事情,並且似乎無法使其工作並想知道是否有人可以幫助我。將nav-selected添加到混凝土的下拉菜單中5

我有此代碼爲菜單

<? 
    defined('C5_EXECUTE') or die(_("Access Denied.")); 
    $aBlocks = $controller->generateNav(); 
    global $c; 

    if ($c->isEditMode()) { 
      echo("<div class=\"menu\" style=\"position:inherit!important;\"><ul>"); 
    } 
    else { 
      echo("<div class=\"menu\"><ul>"); 
    } 

    $nh = Loader::helper('navigation'); 

    foreach($aBlocks as $ni) { 
      $_c = $ni->getCollectionObject(); 
      if (!$_c->getCollectionAttributeValue('exclude_nav')) { 

        $thisLevel = $ni->getLevel(); 

        if ($thisLevel > $lastLevel) { 
          echo("<!--[if IE 7]><!--></a><!--<![endif]-->\n<!--[if lte IE 6]><table><tr><td><![endif]-->\n<ul>\n"); 
        } else if ($thisLevel < $lastLevel) { 
          for ($j = $thisLevel; $j < $lastLevel; $j++) { 
            echo("</a></li>\n</ul>\n<!--[if lte IE 6]></td></tr></table></a><![endif]--></li>\n"); 
          } 
        } 

        if ($thisLevel == $lastLevel && $i >0) { 
         echo "</a></li>\n"; 
        } 

        $pageLink = false; 

        if ($_c->getCollectionAttributeValue('replace_link_with_first_in_nav')) { 
          $subPage = $_c->getFirstChild(); 
          if ($subPage instanceof Page) { 
            $pageLink = $nh->getLinkToCollection($subPage); 
          } 

        } 

        if (!$pageLink) { 
          $pageLink = $ni->getURL(); 
        } 

         if ($_c->getCollectionAttributeValue('placeholder')) { 
          $pageLink="javascript:void(0)"; 
        } 


        echo '<li><a href="'.$pageLink.'">' . $ni->getName(); 

        $lastLevel = $thisLevel; 
        $i++; 
      } 
    } 

    $thisLevel = 0; 
    for ($i = $thisLevel; $i <= $lastLevel; $i++) { 
      echo("</a></li></ul>"); 
    } 
    echo '</div>'; 
    ?>   

,但還沒有任何運氣造型的導航選擇,所以我想線下加開始的foreach:

$classes = array(); 

    if ($ni->isCurrent) { 
      //class for the page currently being viewed 
      $classes[] = 'nav-selected'; 
    } 

    if ($ni->inPath) { 
      //class for parent items of the page currently being viewed 
      $classes[] = 'nav-path-selected'; 
    } 

從另一個菜單,導航選擇可以風格化,但沒有什麼區別。有沒有人看到我做錯了什麼,或者有人能給我一個提示如何使這項工作?我真的很感謝幫助。謝謝!

回答

0

看起來好像您從兩個不同的地方獲取了代碼並將它們粘貼在一起(很少有效)。我認爲您的第一個代碼示例來自舊模板,第二個代碼示例來自較新的代碼示例。

你最好的賭注這裏是從頭開始用更新,更清潔autonav模板: https://raw.github.com/concrete5/concrete5/master/web/concrete/blocks/autonav/view.php

它不應該是太難以修改,這樣做你想要的。如果您遇到麻煩,請嘗試發佈爲新問題,無論是在此處還是在具體的論壇中(http://concrete5.org/community/forums)。

+0

感謝您的答案喬丹!我確實嘗試過這個模板,並且無法按照我想要的方式工作,這就是爲什麼我試圖拼湊兩件事,但感謝嘗試。 – user691066 2013-02-28 16:57:34

+0

噢,我在5.6.0.2中使用該模板時遇到了一個大錯誤。不知道這是否是我的問題。我只是將該文件原樣複製並加載到root/autonav/templates中。然後我在頁面上看到垃圾。 – user691066 2013-02-28 17:27:01