Search code examples
phpmysqldrupal-6

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


Solution

  • 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>';
    }