Requesting some code/script to add to a portal block

Started by ɔɔɔɔɔɔuɥoɾ, September 30, 2009, 12:02:04 PM

Previous topic - Next topic

ɔɔɔɔɔɔuɥoɾ

Hi,

I have updated to the new simple portal and currently using the new feature, custom page, together with the custom tab mod, I have created a nifty link on the main forum tabs.

Now, I have a blank page, to which I can add blocks, like another portal, except it dont load at start.

Ok then,

Im looking for some script that will pick out topics from a board and list the top 5 topics, list them by replies or views.
Is this possible?
Thanks in advanced


SMF 2.0 RC5

   
Webhost to New Webhost file transfer service, PM me - Fast transfers

Arantor

Isn't that already a feature of SP? (I use it but have not delved fully into it)

Failing that you should be able to use SSI.php to do it, I believe.
Holder of controversial views, all of which my own.


ɔɔɔɔɔɔuɥoɾ

there are many useful blocks, such as top topics, but it will list topics from all boards, I need a top topic list where I can choose the boards the top topics are picked from


SMF 2.0 RC5

   
Webhost to New Webhost file transfer service, PM me - Fast transfers

Arantor

You might be best asking on the SimplePortal website; they know it better than we do.
Holder of controversial views, all of which my own.


ɔɔɔɔɔɔuɥoɾ

Oh this code is just for use in a simple portal block, Im just using a block instead of adding it to the templates to make it easier

anyway, I have this code below which lists new topics (not replies to topic, only newly created topics) from chosen boards, maybe if someone can change this to sort and choose the top 5 by replies or views
=====================================================================================

 
echo '
<!-- google_ad_section_start --><h3 style="text-decoration: underline; line-height: 1.5em; text-align: center;">YOUR TITLE HERE</h3>'
;


  global
$context, $settings, $scripturl, $txt, $db_prefix, $user_info;
  global
$modSettings, $smcFunc;

 
$num_recent = 5;
 
$exclude_boards = null;
 
$include_boards = array(132, 133, 134);

  if (
$exclude_boards === null && !empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0)
     
$exclude_boards = array($modSettings['recycle_board']);
  else
     
$exclude_boards = empty($exclude_boards) ? array() : (is_array($exclude_boards) ? $exclude_boards : array($exclude_boards));

 
// Only some boards?.
 
if (is_array($include_boards) || (int) $include_boards === $include_boards)
  {
     
$include_boards = is_array($include_boards) ? $include_boards : array($include_boards);
  }
  elseif (
$include_boards != null)
  {
     
$output_method = $include_boards;
     
$include_boards = array();
  }

 
$stable_icons = array('xx', 'thumbup', 'thumbdown', 'exclamation', 'question', 'lamp', 'smiley', 'angry', 'cheesy', 'grin', 'sad', 'wink', 'moved', 'recycled', 'wireless');
 
$icon_sources = array();
  foreach (
$stable_icons as $icon)
     
$icon_sources[$icon] = 'images_url';

 
// Find all the posts in distinct topics.  Newer ones will have higher IDs.
 
$request = $smcFunc['db_query']('substring', '
     SELECT
        m.poster_time, ms.subject, m.id_topic, m.id_member, m.id_msg, b.id_board, b.name AS board_name, t.num_replies, t.num_views,
        IFNULL(mem.real_name, m.poster_name) AS poster_name, '
. ($user_info['is_guest'] ? '1 AS is_read, 0 AS new_from' : '
        IFNULL(lt.id_msg, IFNULL(lmr.id_msg, 0)) >= m.id_msg_modified AS is_read,
        IFNULL(lt.id_msg, IFNULL(lmr.id_msg, -1)) + 1 AS new_from'
) . ', SUBSTRING(m.body, 1, 384) AS body, m.smileys_enabled, m.icon
     FROM {db_prefix}topics AS t
        INNER JOIN {db_prefix}messages AS m ON (m.id_msg = t.id_last_msg)
        INNER JOIN {db_prefix}boards AS b ON (b.id_board = t.id_board)
        INNER JOIN {db_prefix}messages AS ms ON (ms.id_msg = t.id_first_msg)
        LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = m.id_member)'
. (!$user_info['is_guest'] ? '
        LEFT JOIN {db_prefix}log_topics AS lt ON (lt.id_topic = t.id_topic AND lt.id_member = {int:current_member})
        LEFT JOIN {db_prefix}log_mark_read AS lmr ON (lmr.id_board = b.id_board AND lmr.id_member = {int:current_member})'
: '') . '
     WHERE t.id_last_msg >= {int:min_message_id}
        '
. (empty($exclude_boards) ? '' : '
        AND b.id_board NOT IN ({array_int:exclude_boards})'
) . '
        '
. (empty($include_boards) ? '' : '
        AND b.id_board IN ({array_int:include_boards})'
) . '
        AND {query_wanna_see_board}'
. ($modSettings['postmod_active'] ? '
        AND t.approved = {int:is_approved}
        AND m.approved = {int:is_approved}'
: '') . '
     ORDER BY t.id_topic DESC
     LIMIT '
. $num_recent,
     array(
       
'current_member' => $user_info['id'],
       
'include_boards' => empty($include_boards) ? '' : $include_boards,
       
'exclude_boards' => empty($exclude_boards) ? '' : $exclude_boards,
       
'min_message_id' => $modSettings['maxMsgID'] - 35 * min($num_recent, 5),
       
'is_approved' => 1,
     )
  );
 
$posts = array();
  while (
$row = $smcFunc['db_fetch_assoc']($request))
  {
     
$row['body'] = strip_tags(strtr(parse_bbc($row['body'], $row['smileys_enabled'], $row['id_msg']), array('<br />' => '')));
     if (
$smcFunc['strlen']($row['body']) > 128)
       
$row['body'] = $smcFunc['substr']($row['body'], 0, 128) . '...';

     
// Censor the subject.
     
censorText($row['subject']);
     
censorText($row['body']);

     if (
$smcFunc['strlen']($row['subject']) > 30)
       
$row['subject'] = $smcFunc['substr']($row['subject'], 0, 30) . '...';

     if (empty(
$modSettings['messageIconChecks_disable']) && !isset($icon_sources[$row['icon']]))
       
$icon_sources[$row['icon']] = file_exists($settings['theme_dir'] . '/images/post/' . $row['icon'] . '.gif') ? 'images_url' : 'default_images_url';

     
// Build the array.
     
$posts[] = array(
       
'board' => array(
           
'id' => $row['id_board'],
           
'name' => $row['board_name'],
           
'href' => $scripturl . '?board=' . $row['id_board'] . '.0',
           
'link' => '<a href="' . $scripturl . '?board=' . $row['id_board'] . '.0">' . $row['board_name'] . '</a>'
       
),
       
'topic' => $row['id_topic'],
       
'poster' => array(
           
'id' => $row['id_member'],
           
'name' => $row['poster_name'],
           
'href' => empty($row['id_member']) ? '' : $scripturl . '?action=profile;u=' . $row['id_member'],
           
'link' => empty($row['id_member']) ? $row['poster_name'] : '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['poster_name'] . '</a>'
       
),
       
'subject' => $row['subject'],
       
'replies' => $row['num_replies'],
       
'views' => $row['num_views'],
       
'short_subject' => shorten_subject($row['subject'], 25),
       
'preview' => $row['body'],
       
'time' => timeformat($row['poster_time']),
       
'timestamp' => forum_time(true, $row['poster_time']),
       
'href' => $scripturl . '?topic=' . $row['id_topic'] . '.msg' . $row['id_msg'] . ';topicseen#new',
       
'link' => '<a href="' . $scripturl . '?topic=' . $row['id_topic'] . '.msg' . $row['id_msg'] . '#new" rel="nofollow">' . $row['subject'] . '</a>',
       
// Retained for compatibility - is technically incorrect!
       
'new' => !empty($row['is_read']),
       
'is_new' => empty($row['is_read']),
       
'new_from' => $row['new_from'],
       
'icon' => '<img src="' . $settings[$icon_sources[$row['icon']]] . '/post/' . $row['icon'] . '.gif" align="middle" alt="' . $row['icon'] . '" border="0" />',
     );
  }
 
$smcFunc['db_free_result']($request);

 
// Just return it.
 
if (empty($posts))
     return
$posts;

  foreach (
$posts as $post)
     echo
'
     <a href="'
, $post['href'], '">', $post['subject'], '</a>', !$post['is_new'] ? '' : '<a href="' . $scripturl . '?topic=' . $post['topic'] . '.msg' . $post['new_from'] . ';topicseen#new" rel="nofollow"><img src="' . $settings['lang_images_url'] . '/new.gif" alt="' . $txt['new'] . '" border="0" /><!-- google_ad_section_end --></a>', '<br />';

=====================================================================================


SMF 2.0 RC5

   
Webhost to New Webhost file transfer service, PM me - Fast transfers

Advertisement: