As a newbie to drupal, I found this info in various places on the forum, but here's a quick reference on how-to-do-it, rather than a philosophical discussion :)
RESTRICT A BLOCK TO ONLY THE FRONT PAGE
create the block as a PHP block with the following code:
if ($_GET["q"] == variable_get("site_frontpage", "node")) {
return t("this block only appears on the front page");
}
RESTRICT A BLOCK TO ONLY A PARTICULAR ROLE
print_r($user) is a handy command to use if you want to see all the attributes besides role that you can use here.
Create the block as a PHP block with the following code:
global $user;
$role = $user->role;
if ($role == "full administrators") {
return t("This content will appear to members of role: $role");
}
RESTRICT A BLOCK TO A PARTICULAR PAGE
Surf to the page, note the contents after the q= line
Create the block and save it
In the path for the block on the main block page, enter the path noted above with a leading slash.
For example, the news page would be: </import>
node 9 would be: </node/view/9>
You can use a regular expression here if you would like.
These all work fine in my 4.2 portal without clean URL's. Comments appreciated.