Blocco in una views, si può?
ciao a tutti ho bisogno del vostro aiuto, :)
Ho bisogno di creare una regione "region1" posta in una views di tipo "page" e fatta da "n" fields, deve venire una cosa del tipo:
field1
field2
region1
field3
field4
region2
etc
etc
Risposte
E' un pò macchinosa come
E' un pò macchinosa come cosa... in pratica devi inserire un determinato blocco in un campo della vista?
si blackice, grazie per la
si blackice, grazie per la risposta, ma precisando deve venire una cosa di questo tipo:
field
field
region1
field
field
region2
etc
etc
Le regioni di un tema vanno
Le regioni di un tema vanno registrate nel file .info dello stesso. Avrai bisogno di conoscere il loro numero a priori. Detto questo il problema è infilarle dentro la vista ogni tot campi/righe. Potresti sperimentare modificando il template della vista (Output dello stile) e utilizzando la funzione drupal_get_content (http://api.drupal.org/api/drupal/includes--common.inc/function/drupal_ge...). Non saprei dirti se funziona, è solo un'idea.
mmmmm .... io ho il template
mmmmm .... io ho il template originale che è :
<?php if (!empty($title)): ?>
<<?php print $group_element; ?><?php print drupal_attributes($group_attributes); ?>>
<?php print $title; ?>
</<?php print $group_element; ?>>
<?php endif; ?>
<?php if (!empty($list_element)): ?>
<<?php print $list_element; ?><?php print drupal_attributes($list_attributes); ?>>
<?php endif; ?>
<?php foreach ($rows as $id => $row): ?>
<?php if (!empty($row_element)): ?>
<<?php print $row_element; ?><?php print drupal_attributes($row_attributes[$id]); ?>>
<?php endif; ?>
<?php print $row; ?>
<?php if (!empty($row_element)): ?>
</<?php print $row_element; ?>>
<?php endif; ?>
<?php endforeach; ?>
<?php if (!empty($list_element)): ?>
</<?php print $list_element; ?>>
<?php endif; ?>
e ho aggiunto alla fine del tempalte questo:
<?php
global $num;
$num++;
if (($num % 2 == 0 && $num != 4 && $num % 6 != 0 && $num % 8 != 0 && $num % 10 != 0) || ($num % 6 == 0) || ($num % 8 == 0)):
?>
<div>
<?php
if ($num % 2 == 0 && $num != 4 && $num % 6 != 0 && $num % 8 != 0 && $num % 10 != 0 && $block_pos2 != NULL) {
print $block_pos2;
}
if ($num % 6 == 0 && $block_pos3 != NULL) {
print $block_pos3;
}
if ($num % 8 == 0 && $block_pos4 != NULL) {
print $block_pos4;
}
?>
</div>
<?php endif; ?>
ovviamente dopo aver dichiarato le regioni nel file info del tema.
ho creato le regioni block_pos2, block_pos3 e block_pos4.
comunque fatto sta che il codice da me inserito non funge cosi com'è.
Ciao, prova a rivedere le
Ciao, prova a rivedere le condizioni e usa la funzione drupal_get_content('nome_regione') invece della variabile $nome_regione che potrebbe non essere definita in quel punto del codice.
non potresti darmi una mano
non potresti darmi una mano nel codice?
Ciao, prova una cosa del
Ciao, prova una cosa del genere (mi sono basato sulle specifiche del
3 terzo post):
...
<?php $num=0; ?>
<?php foreach ($rows as $id => $row): ?>
<?php if (!empty($row_element)): ?>
<<?php print $row_element; ?><?php print drupal_attributes($row_attributes[$id]); ?>>
<?php endif; ?>
<?php print $row; ?>
<?php
$num++;
switch ($num) {
case 2:
print drupal_get_content('block_pos2');
break;
case 4:
print drupal_get_content('block_pos3');
break;
case 6:
print drupal_get_content('block_pos4');
$num = 0;
break;
}
?>
<?php if (!empty($row_element)): ?>
</<?php print $row_element; ?>>
<?php endif; ?>
<?php endforeach; ?>
...
Grazie blackice, ho provato
Grazie blackice, ho provato ad inserire il codice da te postato in:
semanticviews-view-unformatted--nomevista.tpl.php
non funziona purtroppo, le regions non si vedono proprio. Ho provato ad adattare il codice anche a:
semanticviews-view-fields--nomevista.tpl.php
pensando che sbagliavo template, ma niente lo stesso.
Purtroppo non ho il tempo per
Purtroppo non ho il tempo per provarlo. Prova a vedere questo link http://www.pixelclever.com/how-insert-a-block-a-tpl-or-content-programma... ti può aiutare a inserire direttamente i blocchi invece delle regioni, nel punto che vuoi.
grazie blackice, sei davvero
grazie blackice, sei davvero un gran aiuto per noi :))
comunque quel link che mi hai gentilmente postato è per inserire un blocco in un file tpl e purtroppo il problema non è printare il blocco ma dirgli "printami il blocco ogni tot. fields", ed è questo che non riesco ad inserire nel theming della views.
Oltre a blackice che mi sta dando una mano, qualcunaltro del forum può darmi qualche dritta?
Questo codice funziona
Questo codice funziona (stile: tabella, template: views-view-table.tpl.php)
<table class="<?php print $class; ?>">
<?php if (!empty($title)) : ?>
<caption><?php print $title; ?></caption>
<?php endif; ?>
<thead>
<tr>
<?php foreach ($header as $field => $label): ?>
<th class="views-field views-field-<?php print $fields[$field]; ?>">
<?php print $label; ?>
</th>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<?php $num=0 ?>
<?php foreach ($rows as $count => $row): ?>
<tr class="<?php print implode(' ', $row_classes[$count]); ?>">
<?php foreach ($row as $field => $content): ?>
<td class="views-field views-field-<?php print $fields[$field]; ?>">
<?php print $content; ?>
</td>
<?php endforeach; ?>
</tr>
<?php
$num++;
switch ($num) {
case 2:
print '<tr><td>'.theme('block', (object)module_invoke('user', 'block', 'view', 1)).'</td></tr>';
break;
case 4:
print '<tr><td>'.theme('block', (object)module_invoke('user', 'block', 'view', 2)).'</td></tr>';
break;
case 6:
print '<tr><td>'.theme('block', (object)module_invoke('user', 'block', 'view', 3)).'</td></tr>';
$num = 0;
break;
}
?>
<?php endforeach; ?>
</tbody>
</table>
e dà questo risultato http://drupal.it/sites/drupal.it/files/test.jpg.
Spero ti sia utile
non moltissimo, perchè la
non moltissimo, perchè la views che uso è in stile semantic views, ecco il codice del template:
<?php if (!empty($title)): ?>
<<?php print $group_element; ?><?php print drupal_attributes($group_attributes); ?>>
<?php print $title; ?>
</<?php print $group_element; ?>>
<?php endif; ?>
<?php if (!empty($list_element)): ?>
<<?php print $list_element; ?><?php print drupal_attributes($list_attributes); ?>>
<?php endif; ?>
<?php foreach ($rows as $id => $row): ?>
<?php if (!empty($row_element)): ?>
<<?php print $row_element; ?><?php print drupal_attributes($row_attributes[$id]); ?>>
<?php endif; ?>
<?php print $row; ?>
<?php if (!empty($row_element)): ?>
</<?php print $row_element; ?>>
<?php endif; ?>
<?php endforeach; ?>
<?php if (!empty($list_element)): ?>
</<?php print $list_element; ?>>
<?php endif; ?>
a occhio e croce prova
a occhio e croce prova così...
<?php if (!empty($title)): ?>
<<?php print $group_element; ?><?php print drupal_attributes($group_attributes); ?>>
<?php print $title; ?>
</<?php print $group_element; ?>>
<?php endif; ?>
<?php if (!empty($list_element)): ?>
<<?php print $list_element; ?><?php print drupal_attributes($list_attributes); ?>>
<?php endif; ?>
<?php $num=0; ?>
<?php foreach ($rows as $id => $row): ?>
<?php if (!empty($row_element)): ?>
<<?php print $row_element; ?><?php print drupal_attributes($row_attributes[$id]); ?>>
<?php endif; ?>
<?php print $row; ?>
<?php
$num++;
switch ($num) {
case 2:
print theme('block', (object)module_invoke('user', 'block', 'view', 1));
break;
case 4:
print theme('block', (object)module_invoke('user', 'block', 'view', 2));
break;
case 6:
print theme('block', (object)module_invoke('user', 'block', 'view', 3));
$num = 0;
break;
}
?>
<?php if (!empty($row_element)): ?>
</<?php print $row_element; ?>>
<?php endif; ?>
<?php endforeach; ?>
<?php if (!empty($list_element)): ?>
</<?php print $list_element; ?>>
<?php endif; ?>