2015-05-27 2 views
0

У меня есть скрипт PHP, который принимает 2 строки, и я использую mod_rewrite, чтобы разрешить связь с example.com/test/data.html вместо example.com/apage.php?x=example&y=data. Затем страница содержит файл на основе строк. Я хочу, чтобы динамически отмечать текущую страницу в списке навигации.Auto generate navigation

PHP:

$x = htmlspecialchars($_GET["x"]); 
$y = htmlspecialchars($_GET["y"]); 

if (is_file('/www/pages/' . $x . '/' . $y . '.php') { 
    include '/www/pages/' . $x . '/' . $y . '.php'; 
} else { 
    echo '<h1>I dont know that page</h1>'; 
} 

То, что я хочу сделать, это использовать PHP для создания списка ссылок на «X», который я предопределенные с фактически запрашиваемой страницы подсвечивается. Для уточнения: я хочу выводить что-то вроде:

<ul class="nav"> 
    <li class="home">Home</li> 
    <li>Possible</li> 
    <li class="selected">Values</li> 
    <li>of</li> 
    <li>X</li> 
</ul> 

Этот скрипт будет в основном PHP скрипт «apage.php».

Любая помощь пожалуйста?

EDIT:

Это то, что я получил в настоящее время:

<ul> 
<?php 
foreach (glob("/www/pages/*", GLOB_ONLYDIR) as $filename) { 
    $actualname = end(explode('/',$filename)); 

    if ($actualname == $x) { 
     echo '<li class="selected">' . $actualname . '</li>'; 
    } else { 
     echo "<li>" . $actualname . "</li>"; 
    } 
} 
?> 
</ul> 

и с помощью CSS У меня есть название nicly капитализированное. это выводит:

<ul> 
<li>about</li> 
<li>contact</li> 
<li>events</li> 
<li class="selected">home</li> 
<li>info</li> 
</ul> 
+0

'mod_rewrite' может проверить, запрашивается ли файл или каталог. Вы рассмотрели, как пользователь загрузит файлы '.css' и' .js' из своего браузера, например? – rybo111

+0

Я свяжу их с доменом root '/ resources/example.file' – AlexB

+0

Я предполагаю, что могу добавить' elseif' в ловушку 'home', чтобы я мог добавить его вручную, чтобы он появился первым в меню? – AlexB

ответ

0

Получить все возможные значения с помощью $possible_values=glob('/www/pages/*/*.php'); затем разобрать имена файлов с explode('/',$possible_value[N]).

+0

это дает мне любое возможное значение x, которое я могу использовать для создания списка пули, но моя главная проблема заключалась в добавлении «class =» к текущей странице в списке. Я знаю, что javascript может быть использован этим, чтобы быть на 100% -ной стороне сервера, если возможно – AlexB

+0

Когда вы выводите список страниц в цикле, сравнивайте каждый файл с текущим ('' /www/pages/'.$x.'/ '. $ y.'. php'') и пометить его, если совпадение. Для дальнейшего обсуждения добавьте в свой пост цикл, в котором вы выводите список. – umka

+0

Извините, не видел вашего ответа, но хочу, чтобы я хотел здесь меню разделов/catergorys '$ x'. $ y не привязана к меню, потому что мне не нужен список всех php-файлов внутри/страниц – AlexB