Definition list
Categories
Component ID
Component name
Component type
Maintenance status
Development status
Component security advisory coverage
Downloads
Component created
Component changed
Component body
Overview
This module exposes theme_definition_list, which will theme an array as a definition list.
Usage
Function theme_definition_list accepts a single keyed array as an argument:
theme('definition_list', $variables);
In its simplest form, $variables only requires an 'items' array:
PHP input:
$variables = array(
'items' => array(
array('term' => 'Term 1', 'desc' => 'Definition 1'),
array('term' => 'Term 2', 'desc' => 'Definition 2'),
),
);
theme('definition_list', $variables);HTML output:
<div class="definition-list">
<dl>
<div class="first">
<dt>Term 1</dt>
<dd>Definition 1</dd>
</div>
<div class="last">
<dt>Term 2</dt>
<dd>Definition 2</dd>
</div>
</dl>
</div>
An optional 'title' key will add a title to the output:
PHP input:
$variables = array(
'items' => array(
array('term' => 'Term 1', 'desc' => 'Definition 1'),
array('term' => 'Term 2', 'desc' => 'Definition 2'),
),
'title' => 'This is the title for my definition list',
);
theme('definition_list', $variables);HTML output:
<div class="definition-list">
<h3>This is the title for my definition list</h3>
<dl>
<div class="first">
<dt>Term 1</dt>
<dd>Definition 1</dd>
</div>
<div class="last">
<dt>Term 2</dt>
<dd>Definition 2</dd>
</div>
</dl>
</div>A further 'attributes' key can optionally be included, which will passed on to drupal_attributes() to allow custom attributes to be added to the dl html element such as class:
PHP input:
$variables = array(
'attributes' => array(
'class' => 'dl_class',
),
'items' => array(
array('term' => 'Term 1', 'desc' => 'Definition 1'),
array('term' => 'Term 2', 'desc' => 'Definition 2'),
)
);
theme('definition_list', $variables);HTML output:
<div class="definition-list">
<dl class="dl_class">
<div class="first">
<dt>Term 1</dt>
<dd>Definition 1</dd>
</div>
<div class="last">
<dt>Term 2</dt>
<dd>Definition 2</dd>
</div>
</dl>
</div>
Each term and desc can be passed as a single value (as shown above), or an array when the value is the 'data' key. Additional keys are passed on to drupal_attributes() to allow custom attributes to be added the corresponding dt/dd html elements such as class or style. First and last classed are added by default:
PHP input:
$variables = array(
'items' => array(
array(
'term' => array(
'data' => 'Term 1',
'class' => 'term_1_class',
'style' => 'color:red;',
),
'desc' => array(
'data' => 'Definition 1',
'class' => 'desc_1_class',
'style' => 'color:blue;',
),
),
array('term' => 'Term 2', 'desc' => 'Definition 2'),
)
);
theme('definition_list', $variables);HTML output:
<div class="definition-list">
<dl>
<div class="first">
<dt class="term_1_class" style="color:red;">Term 1</dt>
<dd class="desc_1_class" style="color:blue;">Definition 1</dd>
</div>
<div class="last">
<dt>Term 2</dt>
<dd>Definition 2</dd>
</div>
</dl>
</div>
As of release 7.x-1.1, attributes can now be added to the dt/dl wrapping div.
Adding an array key by 'wrap' on any of $items array will result in the array
being passed on to drupal_attributes() for the wrapping div element. Should a
class key be added as a wrap attribute, first and last classes will be appended
as values.
PHP input:
$variables = array(
'items' => array(
array(
'term' => array(
'data' => 'Term 1',
'class' => 'term_1_class',
'style' => 'color:red;',
),
'desc' => array(
'data' => 'Definition 1',
'class' => 'desc_1_class',
'style' => 'color:blue;',
),
'wrap' => array(
'class' => 'bar',
'key1' => 'value1',
),
),
array(
'wrap' => array(
'key2' => array(
'value2a',
'value2b'
)
),
'term' => 'Term 2',
'desc' => 'Definition 2'
),
)
);
theme('definition_list', $variables);
HTML output:
<div class="definition-list">
<dl>
<div key1="value1" class="bar first">
<dt class="term_1_class" style="color:red;">Term 1</dt>
<dd class="desc_1_class" style="color:blue;">Definition 1</dd>
</div>
<div key2="value2a value2b" class="last">
<dt>Term 2</dt>
<dd>Definition 2</dd>
</div>
</dl>
</div>
