Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

rss

Вы не зашли.

Объявление

#1 2010-01-05 01:19:39

Live
Пользователь
Зарегистрирован: 2009-12-04
Сообщений: 181
Рейтинг :   
Профиль

Переменная {if_active}

сабж ето работает? когда я нахожусь в какой нибудь категории - етой категории не присвается класс active_cat как написано в доках.
если это работает - можно пример реализации

Неактивен

 

#2 2010-01-05 01:30:30

infinity237
Модератор
Откуда: Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2674
Рейтинг :   174 
Профиль  Вебсайт

Re: Переменная {if_active}

Версия? Качайте fixpack1.

Неактивен

 

#3 2010-01-05 04:11:44

Live
Пользователь
Зарегистрирован: 2009-12-04
Сообщений: 181
Рейтинг :   
Профиль

Re: Переменная {if_active}

версия - Актуальная версия
0.9.1 Release
24 октября 2009

Неактивен

 

#4 2010-01-05 05:09:06

vitaly
Администратор
Откуда: Россия
Зарегистрирован: 2008-10-08
Сообщений: 2785
Рейтинг :   115 
Профиль

Re: Переменная {if_active}

Live, официально ещё не выложен, это версия "для тестирования", успешно прошедшая тесты.
Можешь взять из этой темы

p.s. Чуть позже будет выложен сам FixPack 01, но туда будут включены ещё пара дополнительных правок. Поэтому после выхода тебе надо будет его заново скачать и установить.

Неактивен

 

#5 2010-01-05 06:30:23

Live
Пользователь
Зарегистрирован: 2009-12-04
Сообщений: 181
Рейтинг :   
Профиль

Re: Переменная {if_active}

vitaly, спасибо! Очень оперативно работаете smile
Последний вопрос - если я хардкорно пропишу в шаблоне ссылку на категорию, будет ли работать {if_active} в этом случае? или только в {categories} это работает?

проверил - не работает sad возможно ли это каким нибудь образом реализовать?

Отредактированно Live (2010-01-05 07:18:17)

Неактивен

 

#6 2010-01-05 14:26:41

Евгений
Модератор
Откуда: Россия
Зарегистрирован: 2009-04-08
Сообщений: 1014
Рейтинг :   38 
Профиль  Вебсайт

Re: Переменная {if_active}

vitaly, тоже очень интересует этот вопрос, возможно ли в шаблоне так же реализовать?


I NGeneration CMS

Неактивен

 

#7 2010-01-05 17:02:19

vitaly
Администратор
Откуда: Россия
Зарегистрирован: 2008-10-08
Сообщений: 2785
Рейтинг :   115 
Профиль

Re: Переменная {if_active}

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% должно работать сходу smile

Неактивен

 

#8 2010-01-06 16:09:48

Live
Пользователь
Зарегистрирован: 2009-12-04
Сообщений: 181
Рейтинг :   
Профиль

Re: Переменная {if_active}

спасибо, работает smile

работает если категория отображается на главной. если не отображается - то не работает

Отредактированно Live (2010-01-06 16:49:12)

Неактивен

 

#9 2010-01-06 17:18:03

vitaly
Администратор
Откуда: Россия
Зарегистрирован: 2008-10-08
Сообщений: 2785
Рейтинг :   115 
Профиль

Re: Переменная {if_active}

Live, тогда код из п. 3 размести перед строкой:

Код:

        if (!substr($v['flags'],0,1)) continue;

и будет работать для всех категорий

Неактивен

 

#10 2010-01-07 01:32:19

Live
Пользователь
Зарегистрирован: 2009-12-04
Сообщений: 181
Рейтинг :   
Профиль

Re: Переменная {if_active}

еще раз спасибо smile


появился еще один вопрос - а если ссылка на статичную страницу или плагин - такое можно как то реализовать? smile

Отредактированно Live (2010-01-07 04:13:42)

Неактивен

 

#11 2010-01-11 05:21:03

hot
Пользователь
Откуда: Россия
Зарегистрирован: 2008-10-26
Сообщений: 173
Профиль

Re: Переменная {if_active}

Live написал:

еще раз спасибо smile
появился еще один вопрос - а если ссылка на статичную страницу или плагин - такое можно как то реализовать? smile

---> пример : http://pupkin_vasya.xxx/plugin/feedback/?id=1

Отредактированно hot (2010-01-11 05:38:17)

Неактивен

 

#12 2010-01-11 12:39:09

Live
Пользователь
Зарегистрирован: 2009-12-04
Сообщений: 181
Рейтинг :   
Профиль

Re: Переменная {if_active}

hot написал:

---> пример : http://pupkin_vasya.xxx/plugin/feedback/?id=1

Не понял, к чему это ты написал?

Неактивен

 

#13 2010-01-11 13:19:24

vitaly
Администратор
Откуда: Россия
Зарегистрирован: 2008-10-08
Сообщений: 2785
Рейтинг :   115 
Профиль

Re: Переменная {if_active}

Live, нет.
Но такое делается достаточно просто средствами JS - ведь достаточно проверить равенство текущего URL'а и URL'а, прописанного в ссылке и на основании этого менять стиль (класс) ссылки.

Неактивен

 

#14 2010-01-11 15:28:44

vitaly
Администратор
Откуда: Россия
Зарегистрирован: 2008-10-08
Сообщений: 2785
Рейтинг :   115 
Профиль

Re: Переменная {if_active}

Лови. Проверялось под 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>

Неактивен

 

#15 2010-01-12 10:37:14

Live
Пользователь
Зарегистрирован: 2009-12-04
Сообщений: 181
Рейтинг :   
Профиль

Re: Переменная {if_active}

vitaly, спасибо, имено то что нужно cool
если работать со списком - то нужно пропускать все, кроме тега А и li ? или разница в чем то другом?

Неактивен

 

#16 2010-01-12 13:13:46

vitaly
Администратор
Откуда: Россия
Зарегистрирован: 2008-10-08
Сообщений: 2785
Рейтинг :   115 
Профиль

Re: Переменная {if_active}

Live, тут древовидная структура, поэтому надо будет сначала найти UL (если id назначать ему, то искать уже не надо), потом в нём найти все li, а потом в каждом LI искать A ... в общем, получится несколько вложенных циклов.

Неактивен

 

#17 2010-01-17 15:43:16

Live
Пользователь
Зарегистрирован: 2009-12-04
Сообщений: 181
Рейтинг :   
Профиль

Re: Переменная {if_active}

Может вопрос не совсем по теме
можно подкатегориям присвоить свои классы или ид?
например подкатегории 2 уровня свой класс или ид, 3 - свои

Неактивен

 

#18 2010-01-19 00:54:42

vitaly
Администратор
Откуда: Россия
Зарегистрирован: 2008-10-08
Сообщений: 2785
Рейтинг :   115 
Профиль

Re: Переменная {if_active}

Live, можно почти так как ты хочешь.
В шаблоне categories.tpl есть переменная {level} (уже минут 5 как есть в SVN версии - changeset 521), категории назначается либо пустой класс, либо - класс active_cat (в зависимости от того активна ли категория)
Зная всё это ты легко сможешь создать нужные классы.

Неактивен

 

#19 2012-09-13 17:21:17

StiCh
Новичок
Зарегистрирован: 2012-09-13
Сообщений: 2
Рейтинг :   
Профиль

Re: Переменная {if_active}

vitaly написал:

Лови. Проверялось под 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>?

Неактивен

 

Board footer

Powered by FluxBB

[ Generated in 0.021 seconds, 27 queries executed ]