Дмитрий Шкуркин, спасибо. Нашел картинку которую когда то видел, внятную - вот тут, в этой статье
В общем пока что сделал так: - весь работающий с базой код перенес в component.php - result_modifier.php остался пустым и свободным - там нечего модифицировать оказалось - в template.php оставил функцию рисования <div>'а одного товара (товары выводятся строчками по 4 штуки, каждый в своем стандартном диве) и ее вызов - переносы строки, <div>-обертку и прочее. - ну и самое главное. Теперь код кэша выглядит вот так:
Код
// Проверяем/создаем кеш
if ( $this->StartResultCache(false, 'catalog'.$arResult['IBLOCK_ID'].$arResult['MAIN_SECTION_ID'].$USER_GROUP.$arResult['NAV_STR'], false) )
{
//START CACHE AREA
$this->IncludeComponentTemplate();
// END CACHE AREA
}
$arResult['NAV_STR'] - и есть строка постранички целиком. Думаю, не лучше ли привязаться к $_GET['PAGEN_1']
Всплыло две проблемы: - не знаю как проверить, создается кэш и работает ли компонент с ним или обращается к базе (на локальном компе разница не особо заметна, списываю на то что мне "хочется чтобы так было"), а если залью сразу на сайт - рискую его уронить (много хостов постоянно ходит). - ссылка в меню (другой компонент) на раздел почему то теперь ведет то на 2-ю страницу выдачи, то на 3-ю, то еще на какую.
d4rkolian пишет: - не знаю как проверить, создается кэш и работает ли компонент с ним или обращается к базе (на локальном компе разница не особо заметна, списываю на то что мне "хочется чтобы так было"), а если залью сразу на сайт - рискую его уронить (много хостов постоянно ходит).
включите кеширование, откройте страницу с компонентом в браузере. после этого измените какой-нибудь из выводимых элементов, обновите страницу с компонентом. не изменится - значит идет из кеша.
Цитата
d4rkolian пишет: - ссылка в меню (другой компонент) на раздел почему то теперь ведет то на 2-ю страницу выдачи, то на 3-ю, то еще на какую.
в component.php до подключения кеша добавьте строку
Евгений Жуков пишет: включите кеширование, откройте страницу с компонентом в браузере. после этого измените какой-нибудь из выводимых элементов, обновите страницу с компонентом. не изменится - значит идет из кеша.
Логично Не подумал сам как-то. Спасибо. Кэш работает.
- не запоминать в сессии номер последней открытой страницы.
А вот тут не захотело работать. Почитал, "main" - это оказался идентификатор модуля. Попробовал и "sale" и "catalog" - ни в какую. Этот параметр ведь относится к модулю целиком? То есть должен начинать работать и без обновления кэша моего компонента? Визуально в панели администрирования он где-то есть? Чтобы можно было проверить, передался ли параметр "N".
Ага, после всех экспериментов именно к такому и пришел + вставил в самое начала component.php Теперь все работает. Спасибо большое. Вроде пока проблем нет больше, буду подключать "наживую" и отлавливать ошибки. Надеюсь тема станет подспорьем для тех кто столкнется с похожей проблемой.
Следующий шаг - написать компонент для фильтра товаров. Хочется сделать универсальным, чтобы можно было выбрать поля по которым фильтруем для каждой конкретной категории, ну и включать\отключать фильтр также для конкретной категории. Вы наверно в курсе - нет еще ничего такого готового? Хотя в любом случае буду писать