PHP-CSS-HTML нанесение класса на тег через PHP с шаблонами

StackOverflow https://stackoverflow.com/questions/4610287

Вопрос

Как вы угадаете, я новичок в PHP. Спасибо за вашу помощь. У меня есть этот кусок кода в заголовке TPL:

<div class="menu">
            <ul>                                                                         
                <li class="selected"><a href="#">home</a></li>
                <li><a href="#">carta</a></li>
                <li><a href="#">delicias artesanas</a></li>
                <li><a href="#">contacto</a></li>
                <li><a href="#">d&oacute;nde estamos</a></li>
            </ul>
        </div>

Который я хотел бы позвонить с функцией PHP включать. Дело в том, что я хочу назвать это TPL, указывающую, какой из Li будет иметь «выбранный» прикладной класс, как я могу это сделать? Как я уже говорил, легкий кресть для всех с базовым опытом PHP. СПАСИБО.

Это было полезно?

Решение

Вы можете основывать его из переменной, которая устанавливается в вашу зовут (не шаблон) логике. Например, в Smarty вы можете сделать это в PHP:

// Determine which section user is in and pass to tpl
$smarty->assign('location', 'home');

Затем в вашем шаблоне вы можете просто проверить эту переменную:

<li{if $location eq 'home'} class="selected"{/if}><a href="#">home</a></li>
<li{if $location eq 'carta'} class="selected"{/if}><a href="#">carta</a></li>

The держит HTML из вашей логики Biz (PHP) и в вашей логике дисплея (TPL).

Другие советы

Сделайте функцию для этого:

function menu($selected = null) {
    echo '<ul class="menu">';
    $options = array('home', 'carta', 'delicias artesanas', 'contact', 'd&oacute;nde estamos');
    foreach ($options as $li) {
        echo '<li' . ($li == $selected ? ' class="selected"' : '').'><a href="#">'.$li.'</a></li>'."\n";
    }
    echo '</ul>';
}

а потом просто назовите это позже:

menu('d&oacute;nde estamos');
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top