naeluh naeluh - 3 months ago 12
MySQL Question

Create 2 links l() instead of one for drupal 6 to add 2 link classes

Hi I am trying to create a pager for drupal 6

I have this function to create a pager

function mytheme_prev_next($current_node = NULL, $op = 'p')
{
// Node types to include in paging
$node_types = array('type');

if ($op == 'p') {
$sql_op = '<';
$order = 'DESC';
} elseif ($op == 'n') {
$sql_op = '>';
$order = 'ASC';
} else {
return NULL;
}

$output = NULL;
foreach($node_types as $type) {
$quoted_types[] = "'" . $type . "'";
}
$sql = "SELECT nid, title, created FROM {node} n
WHERE created $sql_op %s
AND type IN (" . implode(',', $quoted_types) . ")
AND status = 1
ORDER BY created $order
LIMIT 1";
$result = db_query($sql, $current_node->created, $type);
$data = db_fetch_object($result);
if (!isset($data->nid) || !$data->nid) {
return NULL;
}
$options = array('attributes' => array('class' => 'prev'));
return l($data->title, "node/$data->nid", $options , array('html' => TRUE));
}


Basically what I am trying to do is break this out into 2 l() functions that still display the same info I just need to add a different link classes to them This is a function in the theme template

<a href class="prev"><span class="arrowLeft"><?php print mytheme_prev_next($node, 'p'); ?></span></a>
<a href class="next"><span class="arrowRight"><?php print mytheme_prev_next($node, 'n'); ?></span></a>


The html markup above is what I am trying to achieve

Answer

Returning the html string instead of l()

// Instead of using the l()
if ($op == 'p') {
return '<a href="node/' . $data->nid . '" class="prev"><span class="arrowLeft"></span>         
</a>';
} else {
return '<a href="node/' . $data->nid . '" class="next"><span class="arrowRight"></span>   
</a>';
}