Вы не вошли.
Страницы 1
Версия? Качайте fixpack1.
Вне форума
Live, официально ещё не выложен, это версия "для тестирования", успешно прошедшая тесты.
Можешь взять из этой темы
p.s. Чуть позже будет выложен сам FixPack 01, но туда будут включены ещё пара дополнительных правок. Поэтому после выхода тебе надо будет его заново скачать и установить.
Вне форума
vitaly, спасибо! Очень оперативно работаете ![]()
Последний вопрос - если я хардкорно пропишу в шаблоне ссылку на категорию, будет ли работать {if_active} в этом случае? или только в {categories} это работает?
проверил - не работает
возможно ли это каким нибудь образом реализовать?
Отредактировано Live (2010-01-05 07: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 05: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
[ Сгенерировано за 0.037 сек, 8 запросов выполнено - Использовано памяти: 596.27 Кбайт (Пик: 633.27 Кбайт) ]