1
У меня проблема с drupal _preprocess_block(&$variables)
с bean-шаблоном. У меня есть модуль:Как использовать переменные в шаблоне bean
function kcc_related_releases_preprocess_block(&$variables) {
// select Bean Blocks and ignore other Blocks
if (!empty($variables['block']->module) && isset($variables['elements']['bean'])) {
$bean_array = $variables['elements']['bean'];
$child_key_array = element_children($bean_array);
if(isset($child_key_array)&&!empty($child_key_array)) {
$bean = $bean_array[$child_key_array[0]];
if(!empty($bean['#bundle'])&&$bean['#bundle']=='related_press_releases_block') {
$bean_entity = $bean['#entity'];
$bean = bean_load($bean_entity->bid);
$tax_terms = $bean->field_tax_term;
$related_array = array();
foreach ($tax_terms as $tax_term) {
$name = $tax_term[0]['taxonomy_term']->name;
$tid = $tax_term[0]['tid'];
$tax_term_links[] = theme('tax_term_link',
array(
'name' => $name,
'tid' => $tid,
));
// Get related content.
$query = db_select('node', 'n');
$query->join('field_data_field_tax_term', 'fc', 'n.nid = fc.entity_id');
$query->fields('n', array('nid', 'title', 'uid'))
->condition('fc.field_tax_term_tid', $tid)
->condition('n.status', 1)
->range(0,5);
$result = $query->execute()->fetchAllAssoc('nid');
if ($result) {
$related_array = array_merge($related_array, $result);
}
}
// Tags rendered array.
$variables['tax_term_links'] = implode(', ', $tax_term_links);
// Related rendered array.
foreach ($related_array as $key => $related) {
$related_links_array[$key]['title'] = l($related->title, url('node/' . $related->nid));
}
if (isset($related_links_array) && !empty($related_links_array)) {
$variables['related_terms'] = $related_links_array;
}
else {
$variables['related_terms'] = NULL;
}
}
}
}
}
И шаблон:
if (!empty($related_terms)): ?>
<h4 class="related-title"><?php print render($title); ?></h4>
<div class="related">
<?php foreach($related_terms as $rel_item): ?>
<div class="item">
<div class="title"><?php print render($rel_item['title']); ?></div>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
, но это не работает, в шаблоне, когда я использую print_r($variables);
я могу найти $ related_terms пожалуйста, помогите мне
Я знаю, что это не очень чисто, но вы можете напрямую переместить свой код в файл шаблона. И почему вы не используете модуль views? Это намного проще, чем писать ваши собственные запросы ... – MilanG
После пары проверок и поисков я нашел эту функцию hook HOOK_process_entity (& $ variables) {', и это решило мою проблему после того, как в моих переменных шаблона добавлено по-разному. Надеюсь, это поможет кому-то –
Прохладный. Теперь вы должны ответить на свой вопрос и пометить как разрешенный. – MilanG