Link Опубликовано 22 Ноября 2005 Жалоба Поделиться Опубликовано 22 Ноября 2005 Вообще такое уже реализовано стандартно через ssi но уж очень тупо сделано.Вообщем я просто решил сделать что-то похожее, но уже с разбивкой на страницы при большом числе новых тем с новостями. И чтобы новости сразу заносились в календарь конечно =)Только вот столкнулся с такой проблемкой.Вывожу новости через ssi.php, там в ssi у меня контроль показа новостей(из топика) на главной идет вот таким кодом:... $parser = new post_parser(); $perpage = intval($ibforums->input['show']) > 0 ? intval($ibforums->input['show']) : 10; $perpage = ( $perpage > $max_show ) ? $max_show : $perpage; // Load the template... ...а мне нужно чтобы можно было выводить не только 10 последних новостей, а и чтобы если из всего скажем 30, то чтобы они разбились на 3 страницы, 10 новостей на каждую. Как этого добиться? Если непонятно объяснил, то вот полный код стандартного вывода новостей. Нужно чтобы новости на главной разбивались на страницы и выводили на каждую определенное кол-во новостей. function do_news() { global $DB, $ibforums, $root_path, $templates_dir, $std, $max_show; if ( (! $ibforums->vars['news_forum_id']) or ($ibforums->vars['news_forum_id'] == "" ) ) { fatal_error("No news forum assigned"); } require $root_path."sources/lib/post_parser.php"; $parser = new post_parser(); $perpage = intval($ibforums->input['show']) > 0 ? intval($ibforums->input['show']) : 10; $perpage = ( $perpage > $max_show ) ? $max_show : $perpage; // Load the template... $template = load_template("news.html"); $to_echo = ""; // Get the topics, member info and other stuff $DB->query("SELECT m.name as member_name, m.id as member_id,m.title as member_title, m.avatar, m.avatar_size, m.posts, t.*, p.*, g.g_dohtml, f.use_html FROM ibf_topics t LEFT JOIN ibf_posts p ON (p.new_topic=1 AND p.topic_id=t.tid) LEFT JOIN ibf_members m ON (m.id=t.starter_id) LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup) LEFT JOIN ibf_forums f ON (t.forum_id=f.id) WHERE t.forum_id={$ibforums->vars['news_forum_id']} AND t.approved=1 ORDER BY t.tid DESC LIMIT 0, $perpage"); if ( ! $DB->get_num_rows() ) { fatal_error("Could not get the information from the database"); } while ( $row = $DB->fetch_row() ) { $row['post'] = str_replace( '<br>', '<br />', $row['post'] ); $rt = $row['title']; $ttt = strlen($rt); $t1=$ttt+10; $t2= (90 - $t1); $to_echo .= parse_template( $template, array ( 'profile_link' => $ibforums->base_url."?act=Profile&CODE=03&MID=".$row['member_id'], 'member_name' => $row['member_name'], 'post_date' => $std->get_date( $row['start_date'], 'LONG' ), 'topic_title' => $row['title'], 'post' => $parser->post_db_parse($row['post'], ($row['use_html'] AND $row['g_dohtml']) ? 1 : 0 ), 'comments' => $row['posts'], 't1' => $t1, 't2' =>$t2, 'view_all_link' => $ibforums->base_url."?act=ST&f={$row['forum_id']}&t={$row['tid']}" ) ); } echo $to_echo; exit(); }Вот собственно и первый трабл. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.