Ну я обычно делаю как-то так:
global $COMPONENT_BUS;
$COMPONENT_BUS['component.name']['PARAM1'] = $var;
и в месте где нужна переменная:
global $COMPONENT_BUS; ну и далее. А так - да, именно так.
Это конечно не очень хорошо - засорять глобальную область, но что поделаешь.
Только нужно убедится что $arResult['SECTION']['UF_SECTION_PARAMS'] попадает в кэш параметров. Или вообще выключите кэш для первого компонента, если это допустимо.
Javier Nazari: а что в этом сложного? Кнопка всего лишь инициирует переход по ссылке. По сути надо разобрать GET запрос, парсить письмо и получив из него параметры выполнять этот запрос.
Матвей Мамонов: э... лажа какая-то.
Ну не должно так быть. Т.е. если взять и закоментить mail("to@where.what", "code", "123876"); то выхлоп есть, а если раскомментировать то нет?
Матвей Мамонов: у тебя перед этим буферезация случаем не запущена?
Ведь сам подумай - не может такого быть - print уже выкинула в стандартный вывод данные, и не важно что будет потом. Если ПОТОМ влияет - вероятнее всего ты буферезуешь вывод.
Логично?
Javier Nazari: если ее не видно, не значит что ее там нет. Сайлент-регистрация.
Т.е. тихая и прозрачная. Возможно даже каждая покупка регается под отдельнгого пользователя, иначе будут проблемы со связыванием аккаунт+заказ+платеж.
Хотя если система полностью самописная можно и без регистрации.
Андрей Чечкин: Ну так выньте разделы с сортировкой по SORT. И вообще не надо так доставать разделы. У вас же есть ID разделов у элементов? Пробежите в цикле по элементам, отберите ID разделов (прямо на этом же шаге разбрасывая элементы по разделам). Затем за один запрос достаньте их отсортированными с помощью CIBlockSection::GetList
Mouseman: Согласен - не отменяет. И да - выключать будет сложно. Придется открыть каждый источник и нажать кнопку Выключить. Это задалбывает. (и даже не думайте через gconf-editor скопировать ключи выключенных групп и добавить через него же - надо именно руками отключать, чтобы глюков не было) Но в конце-концов она же досталась вам на халяву, а Макр тоже кушать хочет.
Андрей Чечкин:
foreach ($arResult['ITEMS_BY_GROUP'] as $idGroup => $arItemsGroup) {
?>
Здесь выводите название группы с id == $idGroup
<?php
foreach ($arItemsGroup as $key) {
$arItem = $arResult['ITEMS'][$key]
?>
Здесь выводите все что вам надо о айтоме.
<?php
}
}
Mouseman: Ничерта вы не настраивали. Зачем вы врете? Вы ясно пишите о том что использовали фильтр источников - все правильно он сбрасывается. И было бы странно если бы это было не так.
Вы должны отключить источники которые вам не нужны, а не играться с фильтром.
Андрей Чечкин:
Ну перебирайте теперь $arResult['ITEMS_BY_GROUP']
Ключ будет ID раздела - по нему достанете раздел. Результат будет массив ключей ITEMS - перебирайте его и выдергивайте по ключу элементы из $arResult['ITEMS']