My second (actually first but took longer to get launched) Drupal-powered site; this one is for a much broader segment than my first (www.ehalseymiles.com). Check out AssignBlame

Comments

merlinofchaos’s picture

And by the way, I am looking for comments and potential authors. I have a few but the more authors the more likely I can get good, regular content out.

-- Merlin

[Read my writing: ehalseymiles.com]
[Read my Coding blog: Angry Donuts]

kbahey’s picture

Looks very unique. Clean design too.

The only thing I would change is the favicon, to something specific to your site.

Did you use the article module for the front page to get the US, International, Politics, ...etc. sections?
--
Drupal development and customization: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

merlinofchaos’s picture

No, I actually wrote some custom code for that. I've thought about trying to modularize it, but it's not easy.

You're right about the favicon.ico -- that was on the todo list and got completely missed!
I hang my head in shame!

-- Merlin

[Read my writing: ehalseymiles.com]
[Read my Coding blog: Angry Donuts]

gtoddv’s picture

Very nice design and a great idea for a site. I will be a frequent visitor!

merlinofchaos’s picture

Excellent to hear! Frequent commentors will likely be made moderators =)

-- Merlin

[Read my writing: ehalseymiles.com]
[Read my Coding blog: Angry Donuts]

rewted’s picture

I like how you've got the 'Newest Editorials, Newest Articles, etc..'. Did you do that with blocks, can you tell me how I could display select content like that?

merlinofchaos’s picture

It's not blocks, but it's a system that's a little bit like blocks. I wrote the code and it's unfortunately somewhat crude. To be properly modulable it would need quite a bit of cleanup.

If you're comfortable with PHP coding, I can post the 'dashboard' code (which basically is a series of themes that make it easy to add and remove content from the 2 column structure). If I'd done it with full flexibility in mind, I would actually use an array and let it be an arbitrary number of columns, not just 2, but I'm not entirely sure how to even manage that properly with CSS!

This is what the code that generates the front page looks like:

  $leadnid = variable_get('private_leadnid', 0);
  if ($leadnid) {
    $node = node_load(array('nid' => $leadnid));
    if ($node->nid)
      $top = theme('dashboard_component', node_view($node, true, false, true), '', 'leadarticle');
  }

  $us = theme('dashboard_component', private_term_list(19), l("U.S.", "articles/us"), "us");
  $pol = theme('dashboard_component', private_term_list(21), l("Politics", "articles/politics"), "politics");
  $law = theme('dashboard_component', private_term_list(22), l("Law", "articles/law"), "law");

  $int = theme('dashboard_component', private_term_list(20), l("International", "articles/international"), "international");
  $edu = theme('dashboard_component', private_term_list(23), l("Education", "articles/education"), "education");
  $bus = theme('dashboard_component', private_term_list(24), l("Business", "articles/business"), "business");
  $art = theme('dashboard_component', private_term_list(11), l("Newest Articles", "articles"), "newest-articles");
  $edi = theme('dashboard_component', private_term_list(12), l("Newest Editorials", "editorials"), "newest-editorials");

  $left = $art . $us . $pol . $bus;
  $right = $edi . $int . $law . $edu;

  $output = theme('dashboard', 'main', $left, $right, $top);

  print theme('page', $output);

This is the dashboard theming code:

// ---------------------------------------------------------------------------
// Dashboard themes

function theme_dashboard($id = '', $left = '', $right = '', $top = '', $bottom = '') {
  if ($id)
    $idstr = " id='component-$id'";
  $output = "<div class='dashboard'$idstr>\n";
  if ($top) 
    $output .= "<div id='top'>$top</div>";
  $output .= "<div id='left'>$left</div>";
  $output .= "<div id='middle'>&nbsp;</div>";
  $output .= "<div id='right'>$right</div>";
  if ($bottom) 
    $output .= "<div id='bottom'>$bottom</div>";

  $output .= "</div>\n";
  return $output;
}

function theme_dashboard_component($comp = '', $title = '', $id = '') {
  if (!$comp)
    return '';

  if ($title)
    $titlestr = "<h2>$title</h2>\n";
  if ($id)
    $idstr = " id='component-$id'";
  return "<div class='component'$idstr>\n$titlestr $comp\n</div>\n";
}

And bah, the input filter is eating my nice indenting. I'm sure there's a way to get it not to, but I dunno what it is.

And the CSS For the dashboard. (My CSS fu is really weak; there are probably more concise ways to do this, and perhaps more 'correct' ways, but I went with what seemed to work).

.dashboard {
  vertical-align: top;
}

.dashboard table {
  width: 520px;
  font-size: 16px;
}

.dashboard ul {
/*  display: block; */
  margin-top: 3px;
}

.dashboard li {
  display: block;
  font-size: 0.8em;
  line-height: 1em; 
}

.dashboard h2 {
  font-size: 0.9em; 
}

.dashboard #top, .dashboard #bottom {
  width: 100%;
}

.dashboard #left {
  float: left;
  width: 48%;
  margin: 0 0 0 0;
  padding: 0 0 0 0;
}

.dashboard #middle {
  float: left;
  width: 4%;
  padding: 0 0 0 0;
  margin: 0 0 0 0;
}
.dashboard #right {
  float: left;
  width: 48%;
  padding: 0 0 0 0;
  margin: 0 0 0 0;
}

.dashboard td {
  vertical-align: top;
}

.dashboard .component {
  margin-bottom: 1.1em;
}

.dashboard p {
  margin-left: 12px;
  font-size: .8em;
}

.dashboard #top p {
  margin-left: 0px;
  font-size: 1em;
}

.dashboard td#middle {
  width: 20px;
}

.dashboard td#left {
  width: 240px;
}

.dashboard td#right {
  width: 240px;
}

#component-main h2 a {
  color: #333;
}

#component-main #left h2 a:hover, #component-main #right h2 a:hover  {
	text-decoration: underline;
	color: #05b;
}

(Also, I like how the <code> doesn't eat spaces, but the PHP one does)

-- Merlin

[Read my writing: ehalseymiles.com]
[Read my Coding blog: Angry Donuts]

merlinofchaos’s picture

I tried to attach the private_term_list() function, but Drupal thinks the input data is suspicious. I'm not sure what in it is suspicious, though. :/

-- Merlin

[Read my writing: ehalseymiles.com]
[Read my Coding blog: Angry Donuts]

merlinofchaos’s picture

I've created a module to encapsulate this functionality. With luck it'll make it through moderation fairly quickly, but you never can tell how long these things will take. In the next few days it should appear as the 'dashboard' module.

-- Merlin

[Read my writing: ehalseymiles.com]
[Read my Coding blog: Angry Donuts]