ООО ЭкоЮнит
FAQSearchMemberlistUsergroupsFilesLog inRegisterГлавная
printer-friendly view
 
AuthorMessage
Lila Gender:Female

Участница


Joined: 23 Oct 2006
Show/Hide

У меня стоит IM Portal. Возник вопрос, как сделать, что на главной странице портала, тоесть portal.php выводились новые темы как тут на главной rc-mir.com/ ?
Back to topOffline View user's profile
Joe_Dou Gender:Male

Постоянный клиент


Joined: 19 Jul 2005
Show/Hide

А здесь адд-оны для IM Portal не смотрели?
Мне кажется Recent Topics (IM Portal) вам подойдет.

_________________
Если у вас есть чёткая программа действий, железный организм и цель в жизнь, значит вы - межконтинентальная баллистическая ракета.
Back to topOffline View user's profile
Lila Gender:Female

Участница


Joined: 23 Oct 2006
Show/Hide

Это блок такой, либо справа либо слева, а мне нежно в середине вывод последних тем!
Back to topOffline View user's profile
Lila Gender:Female

Участница


Joined: 23 Oct 2006
Show/Hide

Я кажется поняла, но мои знания php не достаточны для этого!!!
Значит есть два файла для вывода новостей на страницу портала (по стандарту)
это blocks_imp_forum.php
Code:
<?php
/***************************************************************************
 *                           blocks_imp_forum.php
 *                            -------------------
 *   begin                : Saturday, March 20, 2004
 *   copyright            : (C) 2004 masterdavid - Ronald John David
 *   website              : http://www.integramod.com
 *   email                : webmaster@integramod.com
 *
 *   note: removing the original copyright is illegal even you have modified
 *         the code.  Just append yours if you have modified it.
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

if ( !defined('IN_PHPBB') )
{
    die("Hacking attempt");
}

if(!function_exists(imp_forum_block_func))
{
    function imp_forum_block_func()
    {
        global $phpbb_root_path, $template, $phpEx, $lang, $portal_config,$HTTP_GET_VARS;

        include_once($phpbb_root_path . 'fetchposts.'.$phpEx);

        $template->assign_vars(array(
            'L_COMMENTS' => $lang['Comments'],
            'L_VIEW_COMMENTS' => $lang['View_comments'],
            'L_POST_COMMENT' => $lang['Post_your_comment'],
            'L_POSTED' => $lang['Posted'],
            'L_ANNOUNCEMENT' => $lang['Post_Announcement']
            )
        );

        //
        // Fetch Posts from Announcements Forum
        //
        if(!isset($HTTP_GET_VARS['article']))
        {
            $template->assign_block_vars('welcome_text', array());

            $fetchposts = phpbb_fetch_posts($portal_config['md_news_forum_id'], $portal_config['md_num_news'], $portal_config['md_news_length']);

            for ($i = 0; $i < count($fetchposts); $i++)
            {
                if( $fetchposts[$i]['striped'] == 1 )
                {
                    $open_bracket = '[ ';
                    $close_bracket = ' ]';
                    $read_full = $lang['Read_Full'];
                }
                else
                {
                    $open_bracket = '';
                    $close_bracket = '';
                    $read_full = '';
                }

                $template->assign_block_vars('fetchpost_row', array(
                    'TITLE' => $fetchposts[$i]['topic_title'],
                    'POSTER' => $fetchposts[$i]['username'],
                    'TIME' => $fetchposts[$i]['topic_time'],
                    'TEXT' => $fetchposts[$i]['post_text'],
                    'REPLIES' => $fetchposts[$i]['topic_replies'],
                    'U_VIEW_COMMENTS' => append_sid('viewtopic.' . $phpEx . '?t=' . $fetchposts[$i]['topic_id']),
                    'U_POST_COMMENT' => append_sid('posting.' . $phpEx . '?mode=reply&amp;amp;t=' . $fetchposts[$i]['topic_id']),
                    'U_READ_FULL' => append_sid('portal.' . $phpEx . '?article=' . $i),
                    'L_READ_FULL' => $read_full,
                    'OPEN' => $open_bracket,
                    'CLOSE' => $close_bracket)
                );
            }
        }
        else
        {
            $fetchposts = phpbb_fetch_posts($portal_config['md_news_forum_id'],  $portal_config['md_num_news'], 0);

            $i = intval($HTTP_GET_VARS['article']);

            $template->assign_block_vars('fetchpost_row', array(
                'TITLE' => $fetchposts[$i]['topic_title'],
                'POSTER' => $fetchposts[$i]['username'],
                'TIME' => $fetchposts[$i]['topic_time'],
                'TEXT' => $fetchposts[$i]['post_text'],
                'REPLIES' => $fetchposts[$i]['topic_replies'],
                'U_VIEW_COMMENTS' => append_sid('viewtopic.' . $phpEx . '?t=' . $fetchposts[$i]['topic_id']),
                'U_POST_COMMENT' => append_sid('posting.' . $phpEx . '?mode=reply&amp;amp;t=' . $fetchposts[$i]['topic_id'])
                )
            );
        }
        //
        // END: Fetch Announcements
        //
    }
}

imp_forum_block_func();
?> 


и forum_block.tpl
Code:
 <!-- BEGIN fetchpost_row -->
<table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline">
  <tr>
    <td class="catHead" height="25">
      <table  width="100%" cellpadding="2" cellspacing="1" border="0">
        <td><span class="genmed"><b>{L_ANNOUNCEMENT}: {fetchpost_row.TITLE}</b></span></td>
        <td align="right"><span class="gensmall">{L_POSTED}: <b>{fetchpost_row.POSTER}</b> @ {fetchpost_row.TIME}</span></td>
      </table>
    </td>
  </tr>
  <tr>
    <td class="row1" align="left"><p align="Justify"><span class="gensmall" style="line-height:150%">{fetchpost_row.TEXT}</p>{fetchpost_row.OPEN}<a href="{fetchpost_row.U_READ_FULL}">{fetchpost_row.L_READ_FULL}</a>{fetchpost_row.CLOSE}</span></td>
  </tr>
  <tr>
    <td class="row3" align="left" valign="middle"> <span class="gensmall">{L_COMMENTS}: {fetchpost_row.REPLIES} :: <a href="{fetchpost_row.U_VIEW_COMMENTS}">{L_VIEW_COMMENTS}</a> (<a href="{fetchpost_row.U_POST_COMMENT}">{L_POST_COMMENT}</a>)</span></td>
  </tr>
</table>

<img src="images/spacer.gif" width="6" height="6" border="0"><br>
<!-- END fetch_post_row -->

Вот если за место этого в forum_block.tpl внести данные от мода Top Topics on Index, то все получится, но что писать в blocks_imp_forum.php я не знаю, за основу можно взять мод, который прикреплен!

Добавлено спустя 9 минут 2 секунды:

Либо можно взять кусок вывода новых тем из вайфорум тпл, но что выбрать из вайфорум пхп я не знаю ((


Download 921.zip (2.41 KB). Added/Updated Mon 20 Nov, 2006 22:24. Downloaded 83 Time(s).

Back to topOffline View user's profile
Joe_Dou Gender:Male

Постоянный клиент


Joined: 19 Jul 2005
Show/Hide

Lila, если навскидку. Я бы взял за основу мод Tape forum от XPerta, вычистил все ненужное из tape.php, а получившееся вставил в функцию phpbb_fetch_posts.
То же самое и c кодом для forum_block.tpl. Можно взять из tape_body.tpl этот кусок
Code:
    <!-- BEGIN topicrow -->
    <tr> 
      <td class="row1" align="center" valign="middle" width="20"><img src="{topicrow.TOPIC_FOLDER_IMG}" width="19" height="18" alt="{topicrow.L_TOPIC_FOLDER_ALT}" title="{topicrow.L_TOPIC_FOLDER_ALT}" /></td>
      <td class="row1" width="100%"><span class="topictitle">{topicrow.NEWEST_POST_IMG}{topicrow.TOPIC_TYPE}<a href="{topicrow.U_VIEW_TOPIC}" class="topictitle">{topicrow.TOPIC_TITLE}</a></span><span class="gensmall"><br />
        {topicrow.GOTO_PAGE}</span></td>
      <td class="row2" align="center" valign="middle"><span class="postdetails">{topicrow.REPLIES}</span></td>
      <td class="row3" align="center" valign="middle"><span class="name">{topicrow.TOPIC_AUTHOR}</span></td>
      <td class="row2" align="center" valign="middle"><span class="postdetails">{topicrow.VIEWS}</span></td>
      <td class="row3" align="center" valign="middle" nowrap="nowrap"><span class="postdetails">{topicrow.LAST_POST_TIME}<br />{topicrow.LAST_POST_AUTHOR} {topicrow.LAST_POST_IMG}</span> </td>
    </tr>
    <!-- END topicrow -->
 

Tape forum можно на phpbbguru.net взять.

Добавлено спустя 1 минуту 48 секунд:

вот тема

_________________
Если у вас есть чёткая программа действий, железный организм и цель в жизнь, значит вы - межконтинентальная баллистическая ракета.
Back to topOffline View user's profile
Lila Gender:Female

Участница


Joined: 23 Oct 2006
Show/Hide

Cпасибо, а что из этого мода сюда blocks_imp_forum.php написать?
Back to topOffline View user's profile
Joe_Dou Gender:Male

Постоянный клиент


Joined: 19 Jul 2005
Show/Hide

То, что формирует список тем. Примерно начиная с этого фрагмента
Code:
//
// Grab all the basic data (all topics except announcements)
// for this forum 

Естественно надо переписать запрос. Выкинуть из него условия AND t.topic_type <> " . POST_ANNOUNCE . ". сортировку может переделать и еще много чего выкинуть, например это
Code:

// Checking forums user can post new topics to
.....................
.....................
    $template->assign_block_vars('switch_no_auth_post', array());
}

, дальше код переделать и вставить то, что получилось, в phpbb_fetch_posts

_________________
Если у вас есть чёткая программа действий, железный организм и цель в жизнь, значит вы - межконтинентальная баллистическая ракета.
Back to topOffline View user's profile
Lila Gender:Female

Участница


Joined: 23 Oct 2006
Show/Hide

Спасибо конечно, но у меня не получится...
Back to topOffline View user's profile
Joe_Dou Gender:Male

Постоянный клиент


Joined: 19 Jul 2005
Show/Hide

Lila, попробуйте файлы во вложении.
Скопируйте fetchposts.php в папку с форумом, blocks_imp_forum.php в папку blocks, forum_block.tpl в папку templates/subSilver/blocks

Должно получиться как на rc-mir.com/
Если что, пишите


Download portal.zip (7.01 KB). Added/Updated Mon 27 Nov, 2006 18:38. Downloaded 42 Time(s).
Модифицированный IM Portal


_________________
Если у вас есть чёткая программа действий, железный организм и цель в жизнь, значит вы - межконтинентальная баллистическая ракета.
Last edited by Joe_Dou on Mon 27 Nov, 2006 18:40; edited 1 time in total
Back to topOffline View user's profile
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Show/Hide

Неплохо Smile, только бы код немного подчистить.
И еще предложение. Я бы немного по-другому сделал вывод тем. Дело в том, что темы в portal.php выводятся из форумов, определенных в конфигурации портала ($portal_config['md_news_forum_id'])
Если вам нужны темы из всех, доступных для посетителя, форумов, то можно сделать примерно так

Code:
 
#
#---- [ OPEN ] ---------------
#
blocks/blocks_imp_forum.php

#
#---- [ FIND ] ---------------
#
            $fetchposts = phpbb_fetch_posts($portal_config['md_news_forum_id'], $board_config['topics_per_page'], $portal_config['md_news_length']);

#
#---- [ BEFORE, ADD ] ---------------
#
            $forums_auth = auth(AUTH_ALL, AUTH_LIST_ALL, $userdata);
            $forums_auth_sql = '';
            foreach ($forums_auth as $k=>$v)
            {
                if ( $v['auth_view'] && $v['auth_read'] )
                {
                    $forums_auth_sql .= (( $forums_auth_sql == '' ) ? '': ', ') . $k;
                }
            }

#
#---- [ IN-LINE FIND ] ---------------
#
$portal_config['md_news_forum_id']

#
#---- [ IN-LINE REPLACE WITH ] ---------------
#
$forums_auth_sql


_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Visit poster's website Skype Name
Lila Gender:Female

Участница


Joined: 23 Oct 2006
Show/Hide

Joe_Dou, ура!!!!!! Работает)))))) А как сделать, что только 20 тем на странице портала выводились?
Back to topOffline View user's profile
Joe_Dou Gender:Male

Постоянный клиент


Joined: 19 Jul 2005
Show/Hide

Sergey, спасибо за идею, пожалуй так лучше будет.

Lila, в blocks/blocks_imp_forum.php в строке
Code:
$fetchposts = phpbb_fetch_posts($portal_config['md_news_forum_id'], $board_config['topics_per_page'], $portal_config['md_news_length']);  

$board_config['topics_per_page'] заменить на 20, то есть
Code:
$fetchposts = phpbb_fetch_posts($portal_config['md_news_forum_id'], 20, $portal_config['md_news_length']);  


Добавлено спустя 1 час 33 минуты 47 секунд:

Залил обновленный архив, файлы распиханы по папкам

_________________
Если у вас есть чёткая программа действий, железный организм и цель в жизнь, значит вы - межконтинентальная баллистическая ракета.
Back to topOffline View user's profile
Display posts from previous:   

Summary Rating For >> Портал и все, что с ним связано!
Average Rating: 0.00 :: Min Rating: 0 :: Max Rating: 0 :: Number of Ratings: 0
Choose Rating: 1   2   3   4   5  





All times are UTC + 3 hours
Users browsing this topic:
Registered Users: None

Jump to:   
printer-friendly view
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum
/a
Username:

Password:

Log me on automatically each visit
  Яндекс.Метрика
CrackerTracker © 2004 - 2019 CBACK.de