Hi! Our blog (currently run on Drupal 6.13) is getting a refresh soon, and part of it involves wanting to add a block with basic author information (name linked to website/profile, avatar and short bio) at the bottom of the post. We occasionally have guest bloggers that aren't members of our site, and therefore use a custom field called field_author to display their name in the posts. Since we wouldn't have too many different individuals blogging, I thought the easiest way to create the information in a palatable format would be to make a new content type called blog_author_information with easy-to-enter fields for short author profiles (including using the same field_author for the name). I've created this in the form we want and have a couple bios prepared to test. The part I get stumped on is how to create a view or otherwise have the system match the field_author value and pull in the specific blog_author_information node as a block on each of the blog posts by that author. Does anyone have any ideas about how I can achieve this? Thanks for taking a look!
Something like this would be really easy to do if your guest bloggers had user accounts. Then all you need to do is have them fill out a profile using the core profile module and use the built in views relationship between the author of the node and the user account. You could create a guest blogger role and only give them permissions to post their guest posts (in addition to whatever permissions they in inherit from the authenticated users role). You should be able to build in a similar relationship with views where field_author of your node = field_author of your blog_author_information. First you should configure your view as a node view and set the CCK fields you want to display and filter the view to include the blog_author_information content type. Then you'd have to set up the relationship between the field_author field on the node and the field_author field on your blog_author_information. Whether you can do that directly with the views gui or you need to use some custom php to accomplish it, I don't know. Once that's done you just need to set up a block to display your view and place it in the appropriate region. I also remember seeing a contrib module called author_pane or something similar that might do what you need. Not sure if it uses only the profile module or if it also can use custom content types as it's source of data to display.
Thank you very much for the quick response and tips! I'm trying to keep adding more modules as a last resort, but I think I've made it most of the way through the process of setting up the view and having the block ready to print above the blog comments once it's able to pull the right information. I'm just not seeing a way to set up the field_author relationship directly through the views gui (I'm not sure if it's not there or if I just don't see it, though, since I'm fairly new to both tinkering with relationships and arguments of views and PHP in general). I'm thinking that a custom bit of PHP might be in order, but I'm trying to figure out what the proper syntax would be to make the argument that if the value of field_author in a blog node equals the value of field_author for a blog_author_information node, to print that particular author information node as a block.
Nevermind, there's been success! For anyone looking for this sort of thing in the future, I chose my field_author for the argument in the view, then told it to provide the default argument with this piece of php: $node = node_load(arg(1)); if($node) { $author = $node->field_author[0]['value']; return $author; } else {return;} Then with the filter set for the blog_author_information content type, the Style: Unformatted and Row style: Node, it seems to work perfectly.