FalconFour wrote:Seriously: fixed-defining the positions of elements to "fake" a table out of a list element isdoin it rong. Very "rong".
No, that is a very correct and valid way to use CSS, it is EXTREMELY well documented and tested (although Informer has not perfected their Oxygen css yet).
FalconFour wrote:Seeing as though, thanks to the genius that decided to inject CSS into every aspect of PunBB, the whole page layout is constructed in CSS, all I could really do is recycle and abuse other existing CSS classes and hope it doesn't break.
Right, the entire page styling is SUPPOSED to be in CSS, because if you drop all the CSS files, you are given a cleanly printed page which follows a logical top-to-bottom (vertical) progression of sentences which make sense. This is ideal for web-pages because it lends itself well to being printed on a wide variety of screen types, sizes and resolutions. A 1990's style rigid table design of this same page could NEVER be printed properly on a PDA or cell phone screen... this one can, if you drop the CSS or write a PDA appropriate CSS.
You're complaining too much, and projecting your frustration. Truth of the matter is that your work wasn't perfect, either, but it was also nearly good enough. Study more, and blame less, please.
That said, thanks for the extension, sir. I like it, was inspired to fix it, and am inspired to consider improvements after I study it more.
Update:
* Closed a <div> that was breaking sibling <div>.
* Added the requested <h2>
<?xml version="1.0" encoding="utf-8"?>
<extension engine="1.0">
<id>active_topics</id>
<title>Active Topics List on Index</title>
<version>1.2.1</version>
<description>This will add the x most recent posts to the index page of the forum for easy navigation and attention-grabbing.</description>
<author>Slavok, FalconFour and whatrevolution</author>
<minversion>1.3</minversion>
<maxtestedon>1.3</maxtestedon>
<install>
<![CDATA[
]]>
</install>
<uninstall>
<![CDATA[
]]>
</uninstall>
<hooks>
<hook id="in_main_output_start"><![CDATA[
$topics_count = 5;
$query_active_topics= array(
'SELECT' => 't.id AS tid, t.poster, t.subject, t.posted AS has_posted, t.last_post, t.last_post_id, t.num_replies, t.num_views, t.closed, t.sticky, t.forum_id, t.last_poster',
'FROM' => 'topics AS t',
'JOINS' => array(
array(
'INNER JOIN' => 'forums AS f',
'ON' => 'f.id=t.forum_id'
),
array(
'LEFT JOIN' => 'forum_perms AS fp',
'ON' => '(fp.forum_id=f.id AND fp.group_id='.$forum_user['g_id'].')'
)
),
'WHERE' => '(fp.read_forum IS NULL OR fp.read_forum=1)',
'ORDER BY' => 't.last_post DESC',
'LIMIT' => $topics_count
);
$result_active = $forum_db->query_build($query_active_topics) or error(__FILE__, __LINE__);
if ($forum_db->num_rows($result_active) == 0) {
?>
<div class="main-content main-message">
<p>There are no active topics.</p>
</div>
<?php
} else {
require_once FORUM_ROOT.'lang/'.$forum_user['language'].'/forum.php';
?>
<div class="main-head">
<h2 class="hn"><span>Most Recent Posts</span></h2>
</div>
<div class="main-subhead">
<p class="item-summary">
<span>
<strong class="subject-title"><?php echo $lang_index['Topics']; ?></strong>
<strong class="info-replies"><?php echo $lang_forum['Replies']; ?></strong>
<strong class="info-views"><?php echo $lang_forum['Views']; ?></strong>
<strong class="info-lastpost"><?php echo $lang_index['last post']; ?></strong>
</span>
</p>
</div>
<div class="main-content main-forum">
<?php
$item_num = 1;
while ($cur_set = $forum_db->fetch_assoc($result_active))
{
// Start from scratch
$item_subject = $item_body = $item_status = $item_nav = $item_title = array();
$item_indicator = '';
if (!empty($item_nav))
$item_title['nav'] = '<span class="item-nav">'.sprintf($lang_forum['Topic navigation'], implode('  ', $item_nav)).'</span>';
if ($cur_set['sticky'] == '1')
{
$item_subject_status['sticky'] = $lang_forum['Sticky'];
$item_status['sticky'] = 'sticky';
}
if ($cur_set['closed'] != '0')
{
$item_subject_status['closed'] = $lang_forum['Closed'];
$item_status['closed'] = 'closed';
}
if (!empty($item_subject_status))
$item_title['status'] = '<span class="item-status">'.sprintf($lang_forum['Item status'], implode(' ', $item_subject_status)).'</span>';
$item_title['link'] = '<a href="'.forum_link($forum_url['post'], $cur_set['last_post_id']).'">'.forum_htmlencode($cur_set['subject']).'</a>';
if (!$forum_user['is_guest'] && $forum_config['o_show_dot'] == '1' && $cur_set['has_posted'] > 0)
{
$item_title['posted'] = '<span class="posted-mark">'.$lang_forum['You posted indicator'].'</span>';
$item_status['posted'] = 'posted';
}
$item_body['subject']['title'] = '<h3 class="hn"><span class="item-num">'.forum_number_format(++$item_num).'</span> '.implode(' ', $item_title).'</h3> <em> by '.forum_htmlencode($cur_set['poster']).'</em>';
// Does this topic contain posts we haven't read? If so, tag it accordingly.
if (!$forum_user['is_guest'] && $cur_set['last_post'] > $forum_user['last_visit'] && (!isset($tracked_topics['topics'][$cur_set['tid']]) || $tracked_topics['topics'][$cur_set['tid']] < $cur_set['last_post']) && (!isset($tracked_topics['forums'][$cur_set['forum_id']]) || $tracked_topics['forums'][$cur_set['forum_id']] < $cur_set['last_post']))
{
$item_status['new'] = 'new';
}
$item_body['subject']['desc'] = implode(' ', $item_subject);
if (empty($item_status))
$item_status['normal'] = 'normal';
$item_style = (($item_num % 2 != 0) ? ' odd' : ' even').(($item_num == 1) ? ' main-first-item' : '').((!empty($item_status)) ? ' '.implode(' ', $item_status) : '');
$item_body['info']['replies'] = '<li class="info-replies"><strong>'.forum_number_format($cur_set['num_replies']).'</strong> <span class="label">'.(($cur_set['num_replies'] == 1) ? $lang_forum['Reply'] : $lang_forum['Replies']).'</span></li>';
$item_body['info']['views'] = '<li class="info-replies"><strong>'.forum_number_format($cur_set['num_views']).'</strong> <span class="label">'.(($cur_set['num_views'] == 1) ? $lang_forum['View'] : $lang_forum['Views']).'</span></li>';
$item_body['info']['last_post'] = '<li class="info-lastpost"><span class="label">'.$lang_index['Last post'].'</span> <strong><a href="'.forum_link($forum_url['post'], $cur_set['last_post_id']).'">'.format_time($cur_set['last_post']).'</a></strong> <cite>'.sprintf($lang_index['Last poster'], forum_htmlencode($cur_set['last_poster'])).'</cite></li>';
?>
<div class="main-item<?php echo $item_style ?>">
<span class="icon <?php echo implode(' ', $item_status) ?>"><!-- --></span>
<div class="item-subject">
<?php echo implode("\n\t\t\t\t", $item_body['subject'])."\n" ?>
</div>
<ul class="item-info">
<?php echo implode("\n\t\t\t\t", $item_body['info'])."\n" ?>
</ul>
</div>
<?php
}
?>
</div>
<?php
}
]]>
</hook>
</hooks>
</extension>