function fn_rssf_get_items($params, $lang_code = CART_LANGUAGE) { $items_data = $additional_data = $block_data = array(); if (!empty($params['bid']) && !empty($params['sid']) && empty($params['category_id'])) { $block_data = Block::instance()->getById($params['bid'], $params['sid'], array(), $lang_code); if (!empty($block_data['content']['filling']) && $block_data['content']['filling'] == 'products') { $_params = array('sort_by' => $block_data['properties']['filling']['products']['rss_sort_by'] == 'U' ? 'updated_timestamp' : 'timestamp', 'sort_order' => 'desc'); $max_items = !empty($block_data['properties']['max_item']) ? $block_data['properties']['max_item'] : 5; list($products) = fn_get_products($_params, $max_items, $lang_code); fn_gather_additional_products_data($products, array('get_icon' => true, 'get_detailed' => true, 'get_options' => false, 'get_discounts' => false)); $additional_data['title'] = !empty($block_data['properties']['feed_title']) ? $block_data['properties']['feed_title'] : __('products') . '::' . __('page_title', '', $lang_code); $additional_data['description'] = !empty($block_data['properties']['feed_description']) ? $block_data['properties']['feed_description'] : $additional_data['title']; $additional_data['link'] = fn_url('', 'C', 'http', $lang_code); $additional_data['language'] = $lang_code; $additional_data['lastBuildDate'] = !empty($products[0]['updated_timestamp']) ? $products[0]['updated_timestamp'] : TIME; $items_data = fn_format_products_items($products, $block_data['properties']['filling']['products'], $lang_code); } } else { //show rss feed for categories page list($items_data, $additional_data) = fn_format_categories_items($params, $lang_code); } fn_set_hook('generate_rss_feed', $items_data, $additional_data, $block_data, $lang_code); return array($items_data, $additional_data); }
function fn_format_categories_items($params, $lang_code) { $items_data = $additional_data = $timestamps = array(); if (empty($params['category_id'])) { return array($items_data, $additional_data); } else { $params['cid'] = $params['category_id']; $params['sort_by'] = 'updated_timestamp'; $params['sort_order'] = 'desc'; if (Registry::get('settings.General.show_products_from_subcategories') == 'Y') { $params['subcats'] = 'Y'; } } $category_data = fn_get_category_data($params['category_id'], $lang_code, '*'); list($products, ) = fn_get_products($params, Registry::get('addons.rss_feed.category_max_products_items')); fn_gather_additional_products_data($products, array('get_icon' => true, 'get_detailed' => true, 'get_options' => true, 'get_discounts' => true, 'get_features' => false)); $additional_data['title'] = $category_data['category']; $additional_data['description'] = strip_tags(!empty($category_data['description']) ? $category_data['description'] : $additional_data['title']); $additional_data['link'] = fn_url('categories.view?category_id=' . $params['category_id'], 'C', 'current', $lang_code); $additional_data['language'] = $lang_code; $additional_data['lastBuildDate'] = !empty($products[0]['updated_timestamp']) ? $products[0]['updated_timestamp'] : TIME; $items_data = fn_format_products_items($products, array(), $lang_code); return array($items_data, $additional_data); }