SimplePortal
Customization => Custom Coding => Topic started by: FireDitto on May 28, 2013, 08:06:48 AM
-
Hi!
How can I make the following code call Articles, rather than topics? I feel like I've tried everything but I've yet to figure it out ><
Using SMF 2.0.4 and SP 2.3.5
global $settings, $txt, $scripturl, $post;
$array = ssi_recentTopics(20, array(47,41,85,10,54), null, 'array');
echo '<table width="100%" border="0"><tr align="center" valign="middle"><td width="15%" height="100%"><a href="http://katila.second-pass.net/index.php?topic=187.0"><img src="http://katila.second-pass.net/images/timeline.png" /></a><br /></td><td width="85%" height=100%"><marquee scrollamount="4" class="moving" onmouseover="this.stop()" onmouseout="this.start()">';
foreach ($array as $post)
{ if (!empty($post['new']) )
echo'';
else
echo'<img src="' . $settings['lang_images_url'] . '/new.gif" class="new_posts" alt="" />';echo'<div class="triangle-isosceles" id="a', $post['topic'], '" style="display: none">', $post['preview'], '</div><a href="'. $post['href']. '" target="_self" onmouseover="document.getElementById(\'a', $post['topic'], '\').style.display = \'block\'" onmouseout="document.getElementById(\'a', $post['topic'], '\').style.display = \'none\'">', $post['short_subject'], '</a>';
}
echo '</marquee></td></tr></table>
<style type="text/css">
marquee.moving a
{
font-size:12px;
font-weight:bold;
margin-right:50px;
marjin-bottom:50px;
}
.triangle-isosceles {
position: fixed;
top: 50%;
left: 50%;
z-index:1000;
padding:15px;
margin:1em 0 3em;
color:#fff;
max-width: 400px;
border: 1px solid #ccc;
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px;
-moz-box-shadow: 1px 1px 0px 0px #777;
-webkit-box-shadow: 1px 1px 0px 0px #777;
box-shadow: 1px 1px 0px 0px #777;
background: -moz-linear-gradient(top, rgba(41,137,216,0.9) 0%, rgba(30,87,153,0.9) 94%, rgba(30,87,153,0.9) 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(41,137,216,0.9)), color-stop(94%,rgba(30,87,153,0.9)), color-stop(100%,rgba(30,87,153,0.9)));
background: -webkit-linear-gradient(top, rgba(41,137,216,0.9) 0%,rgba(30,87,153,0.9) 94%,rgba(30,87,153,0.9) 100%);
background: -o-linear-gradient(top, rgba(41,137,216,0.9) 0%,rgba(30,87,153,0.9) 94%,rgba(30,87,153,0.9) 100%);
background: -ms-linear-gradient(top, rgba(41,137,216,0.9) 0%,rgba(30,87,153,0.9) 94%,rgba(30,87,153,0.9) 100%);
background: linear-gradient(top, rgba(41,137,216,0.9) 0%,rgba(30,87,153,0.9) 94%,rgba(30,87,153,0.9) 100%);
}
</style>';
Thank you so much!
-
Any ideas/help?
-
I can help push you in the right direction.
Look in PortalArticles.php, you'll find the following:
$article_request = $smcFunc['db_query']('','
SELECT
a.id_article, a.id_category, a.id_message, a.approved, c.name as cname, c.picture, m.id_member,
IFNULL(mem.real_name, m.poster_name) AS poster_name, m.icon, m.subject, m.body, m.poster_time,
m.smileys_enabled, t.id_topic, t.num_replies, t.num_views, t.locked, b.id_board, b.name as bname,
mem.avatar, at.id_attach, at.attachment_type, at.filename
FROM {db_prefix}sp_articles AS a
INNER JOIN {db_prefix}sp_categories AS c ON (c.id_category = a.id_category)
INNER JOIN {db_prefix}messages AS m ON (m.id_msg = a.id_message)
INNER JOIN {db_prefix}topics AS t ON (t.id_first_msg = a.id_message)
INNER JOIN {db_prefix}boards AS b ON (b.id_board = m.id_board)
LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = m.id_member)
LEFT JOIN {db_prefix}attachments AS at ON (at.id_member = mem.id_member)
WHERE {query_see_board}
AND a.approved = {int:approved}
AND publish = {int:publish}
ORDER BY a.id_message DESC' . (empty($modSettings['articleperpage']) ? '' : '
LIMIT {int:start}, {int:end}'),
array(
'approved' => 1,
'publish' => 1,
'start' => $context['start'],
'end' => $modSettings['articleperpage'],
)
);
$context['get_articles'] = 'sportal_articles_callback';
Meaning you can access the articles using $context['get_articles'] being referenced as a function. From there you can filter your data and display what you want.
-
Using 'sp_articles' (where it says 'ssi_recentTopics') is the closest I've gotten. Anything else breaks the code, but all that does is list the articles above the marquee and that's not what I'm aiming for XD
I have no idea how to write code, so I honestly have no idea how to write in a context call and get it to work. I was just hoping for an easy-ish 'change this word here and thigns will work' which is how I manage most of my portal blocks haha.