insert_block - block nach rollen ausgeben
Eingetragen von stefansan (107)
am 18.06.2010 - 22:40 Uhr in
am 18.06.2010 - 22:40 Uhr in
Hallo,
mit insert_block kann ich einen block in meinem content ausgeben. jetzt habe ich aber blöcke, die nur für bestimmte rollen sichtbar sind. insert_block zeigt aber den block immer, egal welche rolle der user hat.
kann ich das irgendwie machen?
ich will auf der seite für verschiedene rollen verschiedene blocks anzeigen.
danke für tips.
stefan
- Anmelden oder Registrieren um Kommentare zu schreiben
http://drupal.org/project/blo
am 18.06.2010 - 23:43 Uhr
http://drupal.org/project/block_access - vielleicht? Habe nur "Drupal Block Access" bei Tante Google eingegeben!
Drupal 7 Screencasts in deutsch!
drupal 5.x
am 19.06.2010 - 08:10 Uhr
weiss nicht, obs das ist. kann ich aber eh nicht nehmen, gibts nur für drupal 6.
noch zur info:
in der blockdefinition kann ich rollen auswählen, für die der block sichtbar ist. das funktioniert auch in den seitenbereichen, in denen der block angezeigt wird.
nur eben bei der anzeige des blocks im normalen content nicht.
Die 5 hatte ich überlesen -
am 19.06.2010 - 08:31 Uhr
Die 5 hatte ich überlesen - Sorry!
Kannst Du nicht einfach beim Einbinden der Blöcke ne IF Anweisung davor schreiben ... http://www.bywombats.com/blog/ryan/10-25-2007/checking-if-drupal-user-ha...
Drupal 7 Screencasts in deutsch!
jetzt kommts ins rollen
am 19.06.2010 - 09:23 Uhr
ja, das schaut super aus.
ich bin leider kein php crack. jetzt hätte ich also zwei php-codes, die es zu verbinden gilt:
rolle des users checken:
<?php
global $user;
// Check to see if $user has the administrator role.
if (in_array('administrator', array_values($user->roles))) {
// Do something.
}
?>
dann entsprechenden block im content anzeigen:
<?php $block = module_invoke('xx', 'block', 'view', 'yy'); ?>
<?php print $block['content']; ?>
wie bekomme ich dass jetzt in einen code zusammen?
danke für noch einen tip!
stefan
bei diesem codebeispiel
am 21.06.2010 - 05:58 Uhr
bei diesem codebeispiel bekomme ich leider immer nur den alternativen text heraus:
<?php>
// Array mit Rollen, die den Block sehen dürfen
$arrAllowedRoles = array('admin', 'authenticated user');
$boolAllowed = false;
foreach ($user->roles as $strRoleName) {
if (in_array($strRoleName, $arrAllowedRoles) === true) {
$boolAllowed = true;
}
}
// Authorisierte Rollen sehen das hier
if ($boolAllowed === true) {
$block = module_invoke('blog', 'block', 'view', '0');
print $block['content'];
}
// Optional kann im Else-Zweig nichtauthorisierten Rollen
// alternativer Content präsentiert werden
else {
print "Alternativer Content für nichtauthorisierte Rollen";
}
?>
vielleicht kann jemand helfen?
danke
stefan
ich eröffne damit mal ein eigenes thema