× Didn't find what you were looking for? Ask a question
Top Posters
Since Sunday
g
3
3
2
J
2
p
2
m
2
h
2
s
2
r
2
d
2
l
2
a
2
New Topic  
BearPro BearPro
wrote...
Valued Member
Posts: 382
11 years ago
I have to display recent topics on a website using php code and ssi functions of smf powered forum and wordpress powered website.
the things which i want are

1) firstly, wordpress has slow loading times, but it has been built for awesome seo features. I am more inclined to use wordpress for website and smf as forum, will using a portal on smf would be a better choice,

2)
Code:
<?php require("/home/username/public_html/forum/SSI.php");
ssi_recentTopics();
?>

this is the code that is to be used for displaying recent topics using ssi in smf anywhere that uses executable php.
my skills in php are limited and so I am open to any suggestion that I can get.


Read 1633 times
8 Replies
I don't feel like riding until everything blurs.

Ask Me Maths Questions

Related Topics

Replies
wrote...
Educator
11 years ago
firstly, wordpress has slow loading times, but it has been built for awesome seo features. I am more inclined to use wordpress for website and smf as forum, will using a portal on smf would be a better choice,

You could use the WordPress as a blog - or as a front-page to the website. SMF is a good choice if you're starting your community, especially if you're new to coding. SMF codes, believe it or not, are easy to read and not as complicated as other software. If you use a portal along side the forum, such as TinyPortal or SimplePortal, information gets displayed much easier. If you'd like to keep it simple, use SMF as both a blogging system and forum. I know that with TinyPortal, you could designate the front page of the whole website to any one specific topic (or one specific board - a blogging board). As a result, you could designate that one topic as your official blog thread, and add to it.

this is the code that is to be used for displaying recent topics using ssi in smf anywhere that uses executable php.
my skills in php are limited and so I am open to any suggestion that I can get.

To be clear, is that code being using in SMF, or being used outside SMF?
BearPro Author
wrote...
Valued Member
11 years ago
the code is being outside smf
http://domymath.netai.net/
i used a plugin to execute php in text widget for wordpress,
and as you can see, it is looking ugly
some formatting would do it right
I don't feel like riding until everything blurs.

Ask Me Maths Questions

wrote...
Educator
11 years ago
the code is being outside smf
http://domymath.netai.net/
i used a plugin to execute php in text widget for wordpress,
and as you can see, it is looking ugly
some formatting would do it right

I see what you mean. Upload your SSI.php and I'll see what I can do.
wrote...
Educator
11 years ago
I think I know why it didn't work Confounded Face The code was so long that it was truncated after x amount of characters.

You could put the archive the file in a zip file and from there I could download it.
BearPro Author
wrote...
Valued Member
11 years ago
here is the file
 Attached file 
(16.14 KB)
You must login or register to gain access to this attachment.
I don't feel like riding until everything blurs.

Ask Me Maths Questions

wrote...
Educator
11 years ago
Here's the code that needs to be editted:

Code:
// Recent topic list:   [board] Subject by Poster Date
function ssi_recentTopics($num_recent = 8, $exclude_boards = null, $include_boards = null, $output_method = 'echo')
{
global $context, $settings, $scripturl, $txt, $db_prefix, $user_info;
global $modSettings, $smcFunc;

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_last_msg 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 />' => '&#10;')));
if ($smcFunc['strlen']($row['body']) > 128)
$row['body'] = $smcFunc['substr']($row['body'], 0, 128) . '...';

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

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'] . '" />',
);
}
$smcFunc['db_free_result']($request);

// Just return it.
if ($output_method != 'echo' || empty($posts))
return $posts;

echo '
<table border="0" class="ssi_table">';
foreach ($posts as $post)
echo '
<tr>
<td align="right" valign="top" nowrap="nowrap">
[', $post['board']['link'], ']
</td>
<td valign="top">
<a href="', $post['href'], '">', $post['subject'], '</a>
', $txt['by'], ' ', $post['poster']['link'], '
', !$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'] . '" /></a>', '
</td>
<td align="right" nowrap="nowrap">
', $post['time'], '
</td>
</tr>';
echo '
</table>';
}

Specifically:

Code:
<table border="0" class="ssi_table">';
foreach ($posts as $post)
echo '
<tr>
<td align="right" valign="top" nowrap="nowrap">
[', $post['board']['link'], ']
</td>
<td valign="top">
<a href="', $post['href'], '">', $post['subject'], '</a>
', $txt['by'], ' ', $post['poster']['link'], '
', !$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'] . '" /></a>', '
</td>
<td align="right" nowrap="nowrap">
', $post['time'], '
</td>
</tr>';
echo '
</table>';

Have changed it, simply upload the content that is in this ZIP file.

Let me know what you think.
 Attached file 
(16.15 KB)
You must login or register to gain access to this attachment.
BearPro Author
wrote...
Valued Member
11 years ago
I did it with tinyportal , and it is awesome, thanks once again for tinyportal advice.  Slight Smile
I don't feel like riding until everything blurs.

Ask Me Maths Questions

wrote...
Educator
11 years ago
I did it with tinyportal , and it is awesome, thanks once again for tinyportal advice.  Slight Smile


Excellent, you'll have a lot of fun using those portals Wink Face
New Topic      
Explore
Post your homework questions and get free online help from our incredible volunteers
  1051 People Browsing
 125 Signed Up Today
Related Images
  
 125
  
 126
  
 330
Your Opinion