Salve galera. No artigo de hoje vou ensinar a como utilizar as theme functions, espero que gostem!
As theme functions são funções já implementadas que caracterizam em retornar algum tipo de html que vai desde um simples link até uma theme function totalmente personalizada.
Neste link você vai encontrar todas as theme functions já implementadas pelo Core do Drupal, irei explicar dois dos mais utilizados.
theme_link: Retorna um html link
$link = theme('link',
array(
'text' => t('Click Here'),
'path' => 'node/123',
'options' => array(
'attributes' => array(
'class' => array(
'cool-class',
),
'id' => 'cool-id',
),
'html' => FALSE,
),
)
);
print $link;
Retornará
<a href="http://www.teste.com" class="cool-class" id="cool-id" target="_blank">Click Here</a>
themeitemlist: Retorna uma lista html:
$items = array(
array(
'data' => l(t('Informations'), 'node'),
'children' => array(l(t('General Informations'), 'node')),
'class' => array('option1')
),
array(
'data' => l(t('Crew'), 'node'),
'children' => array(
l(t('Cast'), 'node'),
l(t('Crew'), 'node')
),
'class' => array('option2'),
),
);
print theme('item_list',
array(
'items' => $items,
'type' => 'ol',
'title' => t('Movies'),
));
Retornará
<div class="item-list">
<h3>Movies</h3>
<ol>
<li class="option1 first">
<a href="/node" class="active">Informations</a>
<div class="item-list">
<ol class="option1">
<li class="first last">
<a href="/node" class="active">General Informations</a>
</li>
</ol>
</div>
</li>
<li class="option2 last">
<a href="/node" class="active">Crew</a>
<div class="item-list">
<ol class="option2">
<li class="first">
<a href="/node" class="active">Cast</a>
</li>
<li class="last">
<a href="/node" class="active">Crew</a>
</li>
</ol>
</div>
</li>
</ol>
</div>
As theme functions do Drupal, você normalmente pode utilizá-las nos arquivos tpls, tais como:
- node.tpl.php;
- views tpls;
- custom blocks;
- e principalmente nos seus próprios hook_preprocess
No próximo artigo ensinarei como criar suas próprias a theme functions para o drupal.
Para você chegar mais preparado para o próximo artigo recomendo a leitura dos seguintes artigos no Blog do Drupal de Elite: