DrupalBin
Submit Code
About
Recent Posts
Fix for Allow HTML in <i> node titles</i> for Drupal 6.x
Template Pre-proccessing
Testing Ubercart donation product
dave's menu screenshot
Code
Modify user profile page theme
Modify user profile page
Fix for Fix for Code
Fix for Code
Code
more
User login
Log in using OpenID:
What is OpenID?
Username:
*
Password:
*
Log in using OpenID
Cancel OpenID login
Create new account
Request new password
Tags
CCK
drupal
fapi
jquery
menu
module
php
simpletest
test
theme
user
views
more tags
Home
Fix for Fix for Theme links - print descriptions of primary menu items
View
Fix
November 15, 2009 - 11:06am — Anonymous
<?php
/**
* Return a themed set of links.
* An override of theme_links()
* Modified to use simple text styling instead of HTML & CSS
*
* @see theme_links
*/
function
phptemplate_links
(
$links
,
$attributes
=
array
(
'class'
=
>
'links'
)
)
{
$output
=
''
;
// Change the way primary links are rendered
if
(
$attributes
[
'class'
]
==
'links primary-links'
)
{
$linklist
=
array
(
)
;
$href
=
$link
[
'href'
]
==
"<front>"
?
base_path
(
)
:
base_path
(
)
.
$link
[
'href'
]
;
foreach
(
(
array
)
$links
as
$key
=
>
$link
)
{
$linklist
[
]
=
'<a href="'
.
$href
.
'"><span class="menu-items"><h3>'
.
$link
[
'title'
]
.
'</h3>'
.
$link
[
'attributes'
]
[
'title'
]
.
'</span></a>'
;
}
// Return the links joined by a '|' character
return
join
(
$linklist
)
;
}
if
(
count
(
$links
)
>
0
)
{
$output
=
'<ol'
.
drupal_attributes
(
$attributes
)
.
'>'
;
$num_links
=
count
(
$links
)
;
$i
=
1
;
foreach
(
$links
as
$key
=
>
$link
)
{
$class
=
$key
;
// Add first, last and active classes to the list of links to help out themers.
if
(
$i
== 1
)
{
$class
.=
' first'
;
}
if
(
$i
==
$num_links
)
{
$class
.=
' last'
;
}
if
(
isset
(
$link
[
'href'
]
)
&&
(
$link
[
'href'
]
==
$_GET
[
'q'
]
||
(
$link
[
'href'
]
==
'<front>'
&&
drupal_is_front_page
(
)
)
)
)
{
$class
.=
' active'
;
}
$output
.=
'<li'
.
drupal_attributes
(
array
(
'class'
=
>
$class
)
)
.
'>'
;
if
(
isset
(
$link
[
'href'
]
)
)
{
// Pass in $link as $options, they share the same keys.
$output
.=
l
(
$link
[
'title'
]
,
$link
[
'href'
]
,
$link
)
;
}
else
if
(
!
empty
(
$link
[
'title'
]
)
)
{
// Some links are actually not links, but we wrap these in <span> for adding title and class attributes
if
(
empty
(
$link
[
'html'
]
)
)
{
$link
[
'title'
]
=
check_plain
(
$link
[
'title'
]
)
;
}
$span_attributes
=
''
;
if
(
isset
(
$link
[
'attributes'
]
)
)
{
$span_attributes
=
drupal_attributes
(
$link
[
'attributes'
]
)
;
}
$output
.=
'<span'
.
$span_attributes
.
'>'
.
$link
[
'title'
]
.
'</span>'
;
}
$i
++;
$output
.=
"</li>
\n
"
;
}
$output
.=
'</ol>'
;
}
return
$output
;
}
primary links
template.php
Submit Fix
Summary:
Tags:
Any tags you'd like to associate with your code, delimitered by commas (example: Views, CCK, Module, etc).
Show summary in full view
<?php /** * Return a themed set of links. * An override of theme_links() * Modified to use simple text styling instead of HTML & CSS * * @see theme_links */ function phptemplate_links($links, $attributes = array('class' => 'links')) { $output = ''; // Change the way primary links are rendered if($attributes['class'] == 'links primary-links') { $linklist = array(); $href = $link['href'] == "<front>" ? base_path() : base_path() . $link['href']; foreach ((array)$links as $key => $link) { $linklist[] = '<a href="'. $href .'"><span class="menu-items"><h3>'. $link['title'].'</h3>'.$link['attributes']['title'].'</span></a>'; } // Return the links joined by a '|' character return join($linklist); } if (count($links) > 0) { $output = '<ol'. drupal_attributes($attributes) .'>'; $num_links = count($links); $i = 1; foreach ($links as $key => $link) { $class = $key; // Add first, last and active classes to the list of links to help out themers. if ($i == 1) { $class .= ' first'; } if ($i == $num_links) { $class .= ' last'; } if (isset($link['href']) && ($link['href'] == $_GET['q'] || ($link['href'] == '<front>' && drupal_is_front_page()))) { $class .= ' active'; } $output .= '<li'. drupal_attributes(array('class' => $class)) .'>'; if (isset($link['href'])) { // Pass in $link as $options, they share the same keys. $output .= l($link['title'], $link['href'], $link); } else if (!empty($link['title'])) { // Some links are actually not links, but we wrap these in <span> for adding title and class attributes if (empty($link['html'])) { $link['title'] = check_plain($link['title']); } $span_attributes = ''; if (isset($link['attributes'])) { $span_attributes = drupal_attributes($link['attributes']); } $output .= '<span'. $span_attributes .'>'. $link['title'] .'</span>'; } $i++; $output .= "</li>\n"; } $output .= '</ol>'; } return $output; }
Syntax highlighting mode:
ActionScript
ColdFusion
Diff
Drupal 5
Drupal 6
HTML
INI
Javascript
MySQL
PHP
Python
robots.txt
SQL
Text
Select the syntax highlighting mode to use.
See Also:
Order
Title:
URL:
-1
0
1
Title:
URL:
-1
0
1
Any links you'd like to have associated with the post (Drupal.org issue, Wikipedia article, etc).
File attachments
Changes made to the attachments are not permanent until you save this post. The first "listed" file will be included in RSS feeds.
Attach new file:
The maximum upload size is
1 MB
. Only files with the following extensions may be uploaded:
jpg jpeg gif png txt doc xls pdf ppt pps odt ods odp
.