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

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

Вы не зашли.

#1 2010-02-11 17:23:44

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Добавить ID категорий новости в $CurrentHandler

Обнаружилась проблема в плагине BreadCrumbs. от тянет информацию о категориях, в которые включена новость из $CurrentHandler[params][category]
В случае, если несколько категорий, то движок формирует вот такую последовательность категория1-категория2-...-категорияN
Но, если категория имеет альтернативное имя другие-берега, то новость входящяя в нее и скажем, категорию2 будет иметь вид [category] => другие-берега-категория2. И анализировать на вхождение тире попросту невозможно: три тут категории или две или одна...

Может есть другое решение?

Не в сети

#2 2010-02-14 01:35:44

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Добавить ID категорий новости в $CurrentHandler

UP smile

Не в сети

#3 2010-02-17 02:43:47

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Добавить ID категорий новости в $CurrentHandler

В $SYSTEM_FLAGS кстати есть такой элемент, как [currentCategory.id] => 1 Только жаль, что он отображает не все категории, к которым добавлена новость...

Не в сети

#4 2010-02-18 01:53:14

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Добавить ID категорий новости в $CurrentHandler

В $CurrentHandler информацию закидывает обработчик ЧПУ. И он не понимает где категория, а где что-то ещё.
Самый правильный способ - получать данные из самой новости из SQL таблицы.

Не в сети

#5 2010-02-21 19:54:53

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Добавить ID категорий новости в $CurrentHandler

Посмотри пожалуйста код плагина http://ngcms.ru/forum/viewtopic.php?id=844

Сейчас сделано так:

add_act('index', 'breadcrumbs');
add_act('news_full', 'breadcrumbs');

И функция function breadcrumbs() { .. }

Чтобы получить доступ к массиву $SQLNews я так понимаю надо создать экземпляр класса NewsFilter  и через функцию ShowNews я уже буду иметь доступ к нужному массиву.

Я сейчас добавил в самый конец (на Денвере)

class breadcrumdsNewsFilter extends NewsFilter {
    function showNews($newsID, $SQLnews, &$tvars, $mode = array()) {
	global $mysql, $config, $tpl, $catz, $catmap, $CurrentHandler;
	print_r($SQLnews);
}
}
register_filter('news', 'breadcrumds', new breadcrumdsNewsFilter);

Вроде все хорошо, то есть function breadcrumbs() { .. } занимается выводом путей везде, кроме полной новости а фильтр выводит полный путь только в полной новости  основываясь на $SQLnews['catid']

Работает как надо, но нормально вообще так делать? smile

Изменено Wolverine (2010-02-21 23:14:52)

Не в сети

#6 2010-02-22 00:25:59

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Добавить ID категорий новости в $CurrentHandler

Wolverine, совершенно нормально, новостные фильтры для этого и предназначены.

Не в сети

#7 2010-02-22 12:54:52

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Добавить ID категорий новости в $CurrentHandler

Отлично! Тогда вопрос снят

Не в сети

#8 2011-10-09 18:24:13

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Добавить ID категорий новости в $CurrentHandler

Эту информацию теперь можно получить из $SYSTEM_FLAGS['news']['db.categories']

Не в сети

Подвал раздела

Работает на FluxBB