SimplePortal

Customization => Custom Coding => Topic started by: FireDitto on May 28, 2013, 08:06:48 AM

Title: Scrolling Articles
Post 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

Code: [Select]
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!
Title: Re: Scrolling Articles
Post by: FireDitto on June 08, 2013, 08:35:29 AM
Any ideas/help?
Title: Re: Scrolling Articles
Post by: ccbtimewiz on June 08, 2013, 11:59:52 PM
I can help push you in the right direction.

Look in PortalArticles.php, you'll find the following:

Code: [Select]
$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.
Title: Re: Scrolling Articles
Post by: FireDitto on June 12, 2013, 05:10:54 AM
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.

SimplePortal 2.3.8 © 2008-2024, SimplePortal