2012-04-12 2 views
-3

Я пытаюсь закодировать многоуровневую навигацию по страницам, но не работает корректно, и я сомневаюсь, что это как-то связано с линией RecursiveIteratorIterator, любая помощь будет оценена. Я думал в таком решении, но, возможно, я ушел далеко. Спасибо за помощь. Вот мой код:Попытка сделать многоуровневое динамическое меню на PHP с помощью RecursiveIteratorIterator

<ul id="nav"> 
     <?php 
//searchWebsitePagesPath("blog.php"); 
?> 
     <li><a href="<?php echo searchWebsitePagesPath('index.php'); ?>">Home</a></li> 
<!--  <li><a href="index.php" id="here">Home</a></li>  --> 
     <li><a href="<?php echo searchWebsitePagesPath('blog.php'); ?>">Journal</a></li> 
     <li><a href="<?php echo searchWebsitePagesPath('gallery.php'); ?>">Gallery</a></li> 
     <li><a href="<?php echo searchWebsitePagesPath('files_upload.php'); ?>">Upload</a></li> 
     <li><a href="<?php echo searchWebsitePagesPath('contact.php'); ?>">contact</a></li> 
     <li><a href="<?php echo searchWebsitePagesPath('register.php'); ?>">Register</a></li> 
    </ul> 
<?php 

    function searchWebsitePagesPath($pageName){ 
     // echo ("$pageName"); 
     // $files = ""; 
     $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('.')); 

     $my_path=""; 
     $myArray=""; 
     $pathReplace=""; 
     $finalPathReplace=""; 
     foreach ($files as $file) { 

      if($file->getFilename() === $pageName){ 
       $pathReplace=str_replace (str_replace('/','\\',$_SERVER['DOCUMENT_ROOT']),'',$file->getRealPath()); 
       $finalPathReplace = $pathReplace ; 
       //   echo $finalPathReplace; 
       $myArray=explode("\\",$pathReplace) ; 
       $count= count($myArray); 
       $reverted = new ArrayIterator(array_reverse($myArray)); 
       $server_path="" ; 
       for($i=1;$i<$count;$i=$i+1) { 
        $server_path =$server_path."../"; 
       } 

       $my_path=$server_path.$reverted[$count-1]; 
      } 

     } 

     $my_path="\"$my_path\"" ; 
     $files = ""; 
     $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("$my_path")); 
     foreach ($files as $file) { 

      if($file->getFilename() === $pageName){ 
       $pathReplace=str_replace (str_replace('/','\\',$_SERVER['DOCUMENT_ROOT']),'',$file->getRealPath()); 
       $finalPathReplace ='/'.str_replace ('\\','/',$pathReplace) ; 
       return $finalPathReplace; 
      } 

     } 

    } 

    ?> 
+0

Уточните его до уровня _relevant_ и четко укажите свой _question_. –

ответ

0

Если у вас есть ресурсоемкие коды, как это для генерации меню, это будет серьезно влиять на производительности сервера.

+0

Есть ли лучший способ сделать динамическое меню навигации динамически, поэтому вам не нужно вводить весь путь? Спасибо . – user1207965

+0

Меню состоит из множества предметов. это не просто название пункта меню и ссылка. В идеале вы также должны использовать параметры alt и title в

Смежные вопросы