Вы не зашли.
Страницы 1
Версия? Качайте fixpack1.
Не в сети
Live, официально ещё не выложен, это версия "для тестирования", успешно прошедшая тесты.
Можешь взять из этой темы
p.s. Чуть позже будет выложен сам FixPack 01, но туда будут включены ещё пара дополнительных правок. Поэтому после выхода тебе надо будет его заново скачать и установить.
Не в сети
vitaly, спасибо! Очень оперативно работаете
Последний вопрос - если я хардкорно пропишу в шаблоне ссылку на категорию, будет ли работать {if_active} в этом случае? или только в {categories} это работает?
проверил - не работает возможно ли это каким нибудь образом реализовать?
Изменено Live (2010-01-05 08:18:17)
Не в сети
Live, нельзя.
Но есть очень хочется, то можно.
1. открываем engine/includes/inc/functions.inc.php
2. находим (строка ~935):
//
// New category menu generator
function generateCategoryMenu(){
global $mysql, $catz, $tpl, $config, $CurrentHandler, $SYSTEM_FLAGS;
последнюю строку меняем на:
global $mysql, $catz, $tpl, $template, $config, $CurrentHandler, $SYSTEM_FLAGS;
3. чуть ниже находим:
$tvars['vars'] = array(
'if_active' => (isset($SYSTEM_FLAGS['news']['currentCategory.id']) && ($v['id'] == $SYSTEM_FLAGS['news']['currentCategory.id']))?'active_cat':'',
перед ней вставляем:
$template['vars']['ifactive:'.$v['alt']] = (isset($SYSTEM_FLAGS['news']['currentCategory.id']) && ($v['id'] == $SYSTEM_FLAGS['news']['currentCategory.id']))?'active_cat':'';
После этого в шаблоне main.tpl должны появиться переменные вида ifactive:альт_имя, которые будут принимать значение 'active_cat' для активной категории и '' (т.е. пустое) для остальных категорий.
Например, есть категории с альт. именами abc, def, news.
Тогда появятся переменные: {ifactive:abc}, {ifactive:def}, {ifactive:news}
p.s. Не проверял, но 90% должно работать сходу
Не в сети
еще раз спасибо
появился еще один вопрос - а если ссылка на статичную страницу или плагин - такое можно как то реализовать?
---> пример : http://pupkin_vasya.xxx/plugin/feedback/?id=1
Изменено hot (2010-01-11 06:38:17)
Не в сети
Live, нет.
Но такое делается достаточно просто средствами JS - ведь достаточно проверить равенство текущего URL'а и URL'а, прописанного в ссылке и на основании этого менять стиль (класс) ссылки.
Не в сети
Лови. Проверялось под FF, "полёт нормальный":
<html>
<body>
<!-- описание стилей. есс-но лучше делать во внешней CSS, но для демонстрации можно и тут -->
<style>
.linkActive { background: red; }
</style>
<!-- блоку со ссылками даём идентификатор. если блок будет в виде <ul><li>..</li></ul>, то работать надо будет немного по другому -->
<span id="mLinks">
<a href="/">Home</a><br/>
<a href="/guest.html">Guest</a><br/>
<a href="/mail">Mailbox</a><br/>
<a href="/x.html">my active link</a><br/>
</span>
<!-- вот этот скрипт пихаем _обязательно_ после блока с ссылками -->
<script language="javascript">
{
// Открываем блок со ссылками (тот у которого id="mlinks")
var llist = document.getElementById('mLinks');
if (llist) {
// Берём список вложенных объектов
var children = llist.childNodes;
// Проходим по списку
var i;
for (i=0; i<children.length; i++) {
// Пропускаем всё кроме ссылок (тег: `A`)
if ((children[i].nodeName != 'A')&&(children[i].nodeName != 'a'))
continue;
// !!! Проверяем текущий URL !!!
if (children[i].href == document.location) {
// А вот тут - прописываем стиль - `linkActive`
children[i].className = 'linkActive';
}
}
}
}
</script>
Не в сети
Live, тут древовидная структура, поэтому надо будет сначала найти UL (если id назначать ему, то искать уже не надо), потом в нём найти все li, а потом в каждом LI искать A ... в общем, получится несколько вложенных циклов.
Не в сети
Live, можно почти так как ты хочешь.
В шаблоне categories.tpl есть переменная {level} (уже минут 5 как есть в SVN версии - changeset 521), категории назначается либо пустой класс, либо - класс active_cat (в зависимости от того активна ли категория)
Зная всё это ты легко сможешь создать нужные классы.
Не в сети
Лови. Проверялось под FF, "полёт нормальный":
<html> <body> <!-- описание стилей. есс-но лучше делать во внешней CSS, но для демонстрации можно и тут --> <style> .linkActive { background: red; } </style> <!-- блоку со ссылками даём идентификатор. если блок будет в виде <ul><li>..</li></ul>, то работать надо будет немного по другому --> <span id="mLinks"> <a href="/">Home</a><br/> <a href="/guest.html">Guest</a><br/> <a href="/mail">Mailbox</a><br/> <a href="/x.html">my active link</a><br/> </span> <!-- вот этот скрипт пихаем _обязательно_ после блока с ссылками --> <script language="javascript"> { // Открываем блок со ссылками (тот у которого id="mlinks") var llist = document.getElementById('mLinks'); if (llist) { // Берём список вложенных объектов var children = llist.childNodes; // Проходим по списку var i; for (i=0; i<children.length; i++) { // Пропускаем всё кроме ссылок (тег: `A`) if ((children[i].nodeName != 'A')&&(children[i].nodeName != 'a')) continue; // !!! Проверяем текущий URL !!! if (children[i].href == document.location) { // А вот тут - прописываем стиль - `linkActive` children[i].className = 'linkActive'; } } } } </script>
А можно такой же пример, но для <ul><li>..</li></ul>?
Не в сети
Страницы 1