function get_html_results(&$results, &$html_results, &$results_name) { global $CONFIG; $modules = new ModulesDiscoveryService(); $display_all_results = $results_name == 'all' ? true : false; $tpl_results = new Template('search/search_generic_pagination_results.tpl'); $tpl_results->assign_vars(array('RESULTS_NAME' => $results_name, 'C_ALL_RESULTS' => $display_all_results)); $nb_pages = round(count($results) / NB_RESULTS_PER_PAGE) + 1; $nb_results = count($results); if (!$display_all_results) { $module = $modules->get_module(strtolower($results_name)); $results_data = array(); $personnal_parse_results = $module->has_functionality('compute_search_results') && $module->has_functionality('parse_search_result'); if ($personnal_parse_results && $results_name != 'all') { $results_data = $module->functionality('compute_search_results', array('results' => $results)); $nb_results = min($nb_results, count($results_data)); } } for ($num_page = 0; $num_page < $nb_pages; $num_page++) { $tpl_results->assign_block_vars('page', array('NUM_PAGE' => $num_page, 'BLOCK_DISPLAY' => $num_page == 0 ? 'block' : 'none')); for ($i = 0; $i < NB_RESULTS_PER_PAGE; $i++) { $num_item = $num_page * NB_RESULTS_PER_PAGE + $i; if ($num_item >= $nb_results) { break; } if ($display_all_results || !$personnal_parse_results) { $tpl_result = new Template('search/search_generic_results.tpl'); if ($display_all_results) { $module = $modules->get_module($results[$num_item]['module']); $tpl_result->assign_vars(array('C_ALL_RESULTS' => true, 'L_MODULE_NAME' => $module->get_name())); } else { $tpl_result->assign_vars(array('C_ALL_RESULTS' => false, 'L_MODULE_NAME' => $module->get_name())); } $tpl_result->assign_vars(array('TITLE' => $results[$num_item]['title'], 'U_LINK' => url($results[$num_item]['link']))); $tpl_results->assign_block_vars('page.results', array('result' => $tpl_result->parse(TEMPLATE_STRING_MODE))); } else { $tpl_results->assign_block_vars('page.results', array('result' => $module->functionality('parse_search_result', $results_data[$num_item]))); } } } $html_results = $tpl_results->parse(TEMPLATE_STRING_MODE); }
function generate_module_file($module_name, $no_alert_on_error = false) { global $Errorh; import('modules/modules_discovery_service'); $modulesLoader = new ModulesDiscoveryService(); $module = $modulesLoader->get_module($module_name); if ((!$module->get_errors() || $module->got_error(ACCES_DENIED)) && $module->has_functionality('get_cache')) { $this->write($module_name, $module->functionality('get_cache')); } elseif (!$no_alert_on_error) { $Errorh->handler('Cache -> Le module <strong>' . $module_name . '</strong> n\'a pas de fonction de cache!', E_USER_ERROR, __LINE__, __FILE__); } }
$module_id = retrieve(GET, 'm', ''); if (!empty($module_id)) { $feed_name = retrieve(GET, 'name', DEFAULT_FEED_NAME); $category_id = retrieve(GET, 'cat', 0); $feed = null; switch (retrieve(GET, 'feed', 'rss')) { case 'atom': import('content/syndication/atom'); $feed = new ATOM($module_id, $feed_name, $category_id); break; default: import('content/syndication/rss'); $feed = new RSS($module_id, $feed_name, $category_id); break; } if ($feed != null && $feed->is_in_cache()) { echo $feed->read(); } else { import('modules/modules_discovery_service'); $modules_discovery_service = new ModulesDiscoveryService(); $module = $modules_discovery_service->get_module($module_id); if (is_object($module) && $module->got_error() == 0 && $module->has_functionality('get_feed_data_struct')) { $feed->load_data($module->get_feed_data_struct($category_id, $feed_name)); $feed->cache(); echo $feed->export(); } else { redirect('member/error.php?e=e_uninstalled_module'); } } } require_once PATH_TO_ROOT . '/kernel/footer_no_display.php';
<?php require_once '../kernel/begin.php'; require_once '../news/news_begin.php'; require_once '../kernel/header.php'; $is_admin = $User->check_level(ADMIN_LEVEL); if (empty($idnews) && empty($idcat)) { import('modules/modules_discovery_service'); $modulesLoader = new ModulesDiscoveryService(); $module_name = 'news'; $module = $modulesLoader->get_module($module_name); if ($module->has_functionality('get_home_page')) { echo $module->functionality('get_home_page'); require_once '../kernel/footer.php'; exit; } elseif (!$no_alert_on_error) { global $Errorh; $Errorh->handler('Le module <strong>' . $module_name . '</strong> n\'a pas de fonction get_home_page!', E_USER_ERROR, __LINE__, __FILE__); exit; } } elseif (!empty($idnews)) { if (empty($news['id'])) { $Errorh->handler('e_unexist_news', E_USER_REDIRECT); } import('content/comments'); import('content/syndication/feed'); $tpl_news = new Template('news/news.tpl'); $next_news = $Sql->query_array(PREFIX . "news", "title", "id", "WHERE visible = 1 AND id > '" . $idnews . "' " . $Sql->limit(0, 1), __LINE__, __FILE__); $previous_news = $Sql->query_array(PREFIX . "news", "title", "id", "WHERE visible = 1 AND id < '" . $idnews . "' ORDER BY id DESC " . $Sql->limit(0, 1), __LINE__, __FILE__); $tpl_news->assign_vars(array('C_IS_ADMIN' => $is_admin, 'C_NEWS_BLOCK' => true, 'C_NEWS_NAVIGATION_LINKS' => true, 'C_PREVIOUS_NEWS' => !empty($previous_news['id']), 'C_NEXT_NEWS' => !empty($next_news['id']), 'TOKEN' => $Session->get_token(), 'PREVIOUS_NEWS' => $previous_news['title'], 'NEXT_NEWS' => $next_news['title'], 'U_PREVIOUS_NEWS' => url('.php?id=' . $previous_news['id'], '-0-' . $previous_news['id'] . '+' . url_encode_rewrite($previous_news['title']) . '.php'), 'U_NEXT_NEWS' => url('.php?id=' . $next_news['id'], '-0-' . $next_news['id'] . '+' . url_encode_rewrite($next_news['title']) . '.php'), 'L_SYNDICATION' => $LANG['syndication'], 'L_ALERT_DELETE_NEWS' => $LANG['alert_delete_news'], 'L_ON' => $LANG['on'], 'L_DELETE' => $LANG['delete'], 'L_EDIT' => $LANG['edit'])); $tpl_news->assign_block_vars('news', array('C_IMG' => !empty($news['img']), 'C_ICON' => !empty($news['icon']) && $CONFIG_NEWS['activ_icon'] == 1, 'ID' => $news['id'], 'IDCAT' => $news['idcat'], 'ICON' => second_parse_url($news['icon']), 'TITLE' => $news['title'], 'CONTENTS' => second_parse($news['contents']), 'EXTEND_CONTENTS' => second_parse($news['extend_contents']) . '<br /><br />', 'IMG' => second_parse_url($news['img']), 'IMG_DESC' => $news['alt'], 'PSEUDO' => $CONFIG_NEWS['display_author'] ? $news['login'] : '', 'DATE' => $CONFIG_NEWS['display_date'] ? $LANG['on'] . ': ' . gmdate_format('date_format_short', $news['timestamp']) : '', 'U_COM' => $CONFIG_NEWS['activ_com'] == 1 ? Comments::com_display_link($news['nbr_com'], '../news/news' . url('.php?cat=0&id=' . $idnews . '&com=0', '-0-' . $idnews . '+' . url_encode_rewrite($news['title']) . '.php?com=0'), $idnews, 'news') : '', 'U_USER_ID' => url('.php?id=' . $news['user_id'], '-' . $news['user_id'] . '.php'), 'U_NEWS_LINK' => url('.php?id=' . $news['id'], '-0-' . $news['id'] . '+' . url_encode_rewrite($news['title']) . '.php'), 'FEED_MENU' => Feed::get_feed_menu(FEED_URL)));
function get_parsed($module_id, $name = DEFAULT_FEED_NAME, $idcat = 0, $tpl = false, $number = 10, $begin_at = 0) { if (of_class($tpl, 'template')) { $template = $tpl->copy(); } else { import('io/template'); $template = new Template($module_id . '/framework/content/syndication/feed.tpl'); if (gettype($tpl) == 'array') { $template->assign_vars($tpl); } } $feed_data_cache_file = FEEDS_PATH . $module_id . '_' . $name . '_' . $idcat . '.php'; $result = @(include $feed_data_cache_file); if ($result === false) { import('modules/modules_discovery_service'); $modules = new ModulesDiscoveryService(); $module = $modules->get_module($module_id); if ($module->got_error() || !$module->has_functionality('get_feed_data_struct')) { return ''; } $data = $module->functionality('get_feed_data_struct', $idcat); if (!$module->got_error()) { Feed::update_cache($module_id, $name, $data, $idcat); } } if (!DEBUG) { $result = @(include $feed_data_cache_file); } else { if (file_exists($feed_data_cache_file)) { $result = (include $feed_data_cache_file); } else { $result = FALSE; } } if ($result === false) { user_error(sprintf(ERROR_GETTING_CACHE, $module_id, $idcat), E_USER_WARNING); return ''; } $feed = new Feed($module_id, $name); $feed->load_data($__feed_object); return $feed->export($template, $number, $begin_at); }
} $results = array(); $ids_search = array(); get_search_results($search_txt, $search_modules, $modules_args, $results, $ids_search, true); if (empty($ids_search[$module_id])) { $ids_search[$module_id] = 0; } foreach ($ids_search as $module_name => $id_search) { $search->id_search[$module_name] = $id_search; echo 'idSearch[\'' . $module_name . '\'] = ' . $id_search . ';'; } } else { $search->id_search[$module_id] = $id_search; } echo 'var resultsAJAX = new Array();'; $nb_results = $search->get_results_by_id($results, $search->id_search[$module_id]); if ($nb_results > 0) { $module = $modules->get_module($module_id); $html_results = ''; get_html_results($results, $html_results, $module_id); echo 'nbResults[\'' . $module_id . '\'] = ' . $nb_results . '; resultsAJAX[\'nbResults\'] = \'' . $nb_results . ' ' . addslashes($nb_results > 1 ? $LANG['nb_results_found'] : $LANG['one_result_found']) . '\'; resultsAJAX[\'results\'] = \'' . str_replace(array("\r", "\n", '\''), array('', ' ', '\\\''), $html_results) . '\';'; } else { echo 'nbResults[\'' . $module_id . '\'] = 0; resultsAJAX[\'nbResults\'] = \'' . addslashes($LANG['no_results_found']) . '\'; resultsAJAX[\'results\'] = \'\';'; } } else { echo 'var syncErr = true;'; }