Ok since my last thread (which didn't get any replies, *sob*) I have installed Drupal 6 on my local host and set up a group of vocabularies (Games, Publishers, Platforms) And created some terms in each.

Do I need to create more vocabs to act as site sections? Eg, News, Rreviews, Articles etc? If so..

What is the next step in creating homepages, eg the homepage for news. Say I want all the latest 25 news stories to display, but the first one with a large image, the next two with med sized image then a futher ten in that column with small images, then in the next column the next 25 stories with no images.

Do I need to create a new 'content type' page? Say call it 'news homepage'? Would I need to create a content type page for each section homepage? How would I go about specifiying the layout as described above? Do I 'need' the views module, or is it better to just create a php code and put it in there somehow?

Is there a specific handbook I need to read, and are the handbooks up-to-date (so if I follow them I won't kick myself later?).

Thanks in advance for your help!

Comments

TapocoL’s picture

I hope I am not coming off the wrong way. But, it seems that you do not know what YOU want to do. I will try to answer some of the questions, as some of them are design questions and they are answered by what YOU want.

First of all, Drupal 6 is not out as a production release. It is still being tested. Meaning, if you are planning to create a site to go live, you may want to go with Drupal 5.7.

News, Reviews, Articles are not really what you want as vocabs. Those would be used as terms in a vocab, if that. If you are looking to make news a different type of page than reviews. That would be creating a new content type, and not dealing with taxonomy. If your site is focused on video games, your vocabs would be more like Genre, Publisher, Platform. Where Genre vocab would has terms like Action, Strategy, Sports, etc. But, that is for you to decide on what your site focuses on.

If you are comfortable with php and want more customization than views, then it would be beneficial to make your own module. However, views is a solid module with lots of support that could help craft your content types.

I hope I have been able to help

-Craig Jackson
-Web Developer

Brook’s picture

Hi Craig, thanks for the reply.

I know what I want, just not sure how to make it work in Drupal.

Perhaps if I give you the main nav structure it will make more sense:

Home
News
Features
Ratings
Blog
Forums (will be vB)
Search

Roling over each top level item (those above) will show a secondary nav that has links to those sections, but filtered by platform, eg:

Home
- PS3
- 360
- Wii
- PC
- PSP
- DS
- PS2

News
- PS3 News
- 360 News
- Wii News
- PC News
- PSP News
- DS News
- PS2 News

Features
- PS3 Features
- 360 Features
- Wii Features
- PC Features
- PSP Features
- DS Features
- PS2 Features

Etc

Each top level page will differ, News has one format, features another, Blogs, another etc

My question was where/how do I create these 'homepages'? And do I use the views module to give them all distinctive layouts? Will Drupal still be able to cache these pages even if I use the views module?

Obviously once someone clicks on a link from one of those homepages, it goes to the 'showentry/story' page - which again will have a layout that echoes its own homepage (so again, the news show entry page will differ from the features show entry page).

I guess these are content types?

For actual clssification of each content, are you suggesting I have a vocab called 'sections' and then have terms in there such as news, features, ratings etc? (I can see that makes sense now - and I guess I can have sub sections/terms too? Such as industry news, game news, developer news etc?) (btw, I love this amount of flexibility!).

There will be other sections such as the 'ratings' section, where users can rate games (but we can come to that later).

Hope that makes more sense and thanks for your help.

TapocoL’s picture

Content types are the way you want to go for those sections. You can create a vocab called section that includes the types of sections. The only function this will give is a page in taxonomy for each section that will just list all content with that term sorted by stickiness and then created date. But I believe you seem to want more customization then that. You would want to use the views module or a combination of CCK and contemplate modules (but contributed modules are not released for Drupal 6, until Drupal 6 is released for live sites).

Drupal is only becoming more and more flexible with their soon to be released Drupal 6 and the ideas going into Drupal 7.

EDIT: I pressed post too quickly. Separate Content types will give you the functionality to have default settings for each content created as that type. They will allow easier management, if you are interested in developing modules. You can use views (when it is ready for Drupal 6) to do many customizable things with it. Plus, it separates the content as well (however, does not tag the content like taxonomy does).

-Craig Jackson
-Web Developer

Brook’s picture

Thank again.

Ok so am I right in doing it this way:

Vocabs:

Platforms
Publishers
Site Sections
Games

Terms in Vocabs

Platforms
- 360
- PC
- PS3
- Wii
etc

Publishers
- Insomniac Games
- Namco edit
- Naughty Dog
etc

Site Sections
- Blog
- Features
- News
- Ratings
etc

Games
- Resistance 2: Rise of Man
- Soul Calibur 4
- Uncharted: Drakes Fortune
etc

Is that the best way to do this?

So when creating a new news item for example, I would select one of each.

When creating the section homepages, I need to create a new content type right? Do I create one for _each_ homepage? Or just the main one. Eg: News but I'll also have sub news sections for each platforms, ie. PS3 News, 360 News, Wii News etc How do I go about setting them up? They will basically be the same as the top level news page apart from only showing content for that section (but with maybe an extra banner to indicate they're in a sub section).

Basically I'll be looking for a homepage for each term? As I also want homepages for each game, so when a user goes to the game page they get all the latest news, features, blogs etc to do with that game show up.

Also, will people be able to RSS subscribe to all of those terms/pages?

What about RSS subscriptions where a criteria is set, eg, if I want to create an RSS feed link for people only interested in subscribing to PS3 News stories. Is this possible?

Any idea when 6 will go gold (going by past experience?) And how long it normally takes for modules to be ported over?

If I don't use 'views' and simply create a module to pull in the data I want, can I still cache those pages?

Can I use hardcoded menus/nav instead of the menu system in Drupal (I'm not sure it can do what I want) and then simply access the admin Control Panel from a direct url?

How do I specify which story is featured? Do I need CCK kit to create a field to say 'is featured on homepage'? (Featured stories have a bigger image and larger presense on the homepage - all other stories are just like a normal list).

Thanks again for your help!

TapocoL’s picture

I don't mind helping you understand some of the generals of Drupal, but if you want this much help with Drupal. I suggest hiring/working with someone to consult you or set it up with you. This sounds like a great project that you have going, but this is too many questions for me to go over each one. I suggest with some of your questions to just try them out and see if they are doing what you want. If not, then maybe come back with some more specific questions.

-Craig Jackson
-Web Developer

TapocoL’s picture

Also, forgot to mention. One of my biggest helps when learning about Drupal was to go through the handbooks
http://drupal.org/handbook

And if you have plans with creating your own modules, the drupal api can be very helpful.
http://api.drupal.org

-Craig Jackson
-Web Developer

styro’s picture

Those vocabs and terms seem workable to me - although I suspect from your list of sections that you might be better off ditching the section vocab and using a different content type for each.

eg creating a blog post puts it in the blog section rather than tagging a story as a blog post.

So create a content type for blog (enabling the blog module does that for you), Feature, News Item, Rating (or Review) etc.

When creating the section homepages, I need to create a new content type right? Do I create one for _each_ homepage? Or just the main one.

Nope

You've misunderstood what a content type is. Creating a new content type is creating a new class of node types - eg it creates a new thing to select in the create content menu. To use OOP terminology, individual nodes are like instances of these classes.

The section homepages would just be either a page node (with some PHP embedded) or a dynamically generated page using Views and/or Panels. I recommend the Views/Panels approach unless you really know what you are doing, in which case you'd be writing your own module instead of embedding PHP in a node.

Basically I'll be looking for a homepage for each term? As I also want homepages for each game, so when a user goes to the game page they get all the latest news, features, blogs etc to do with that game show up.

Each term already gets a home page listing the latest content tagged with that term. But you might want to use Views (or another module) to create those listings to get more control over them - eg creating listing that use the terms description has a blurb at the top of the page etc.

Also, will people be able to RSS subscribe to all of those terms/pages?

What about RSS subscriptions where a criteria is set, eg, if I want to create an RSS feed link for people only interested in subscribing to PS3 News stories. Is this possible?

Yes by default taxonomy term listings get their own RSS feeds, and I pretty much certain Views does (or can do) the same thing too.

Any idea when 6 will go gold (going by past experience?) And how long it normally takes for modules to be ported over?

6 will probably be out within a month. But module availability could stretch out over the next 3-9 months or so (or even not at all) depending on the module in question.

If I don't use 'views' and simply create a module to pull in the data I want, can I still cache those pages?

Yes, Drupal can cache the finished HTML output for anonymous users. Your module can do what it likes with caching anything.

Can I use hardcoded menus/nav instead of the menu system in Drupal (I'm not sure it can do what I want) and then simply access the admin Control Panel from a direct url?

Yes, but I'm not sure why you'd want that.

How do I specify which story is featured? Do I need CCK kit to create a field to say 'is featured on homepage'? (Featured stories have a bigger image and larger presense on the homepage - all other stories are just like a normal list).

Every node has a "promote to front page" flag available to it already. Your node template could just check for that.

--
Anton
New to Drupal? | Troubleshooting FAQ
Example knowledge base built with Drupal

Brook’s picture

Thanks Anton,

That makes more sense, especially regarding Content Type for site sections.

Am I right to assume then, that, when I have a game page for each game, I create a content type called 'games'? And I will be able to use this 'section'(content type) to put up a little info about each game along with using a query to show all the latest, news, features, blog posts etc related to that game? (ie news, blogs, features etc that have been 'tagged' with the name of that game in vocab > games > terms (with term being the name of the game) (kind of makes sense, just want to double check!).

Is it possible to have sub content types (sub sections?) Eg, site.com/features/ps3
(i.e somewhere where you'd expect to find all the ps3 related features)

Will users still be able to RSS subscribe to these game pages? So if they're really interested in a particular game they just subscribe to it and get notified each time a news story, feature, blog etc is published about it? (I hope so!)

Re caching, is it possible to use caching for _logged-in_ users too on pages that do not have commenting switched on? (or rather part of the page? I.e don't cache the header or footer but everything else in between)?

Thanks again for your time and help - I really appreciate it.

Thanks to Craig too - I appreciate all the help you guys are giving me.

styro’s picture

Am I right to assume then, that, when I have a game page for each game, I create a content type called 'games'?

No. If you have to use a node for these pages, you could just reuse the base 'page' content type for that. There really isn't any reason to make up a special node type for these pages.

But if you use Views or the basic taxonomy term listing or write a module etc, these pages won't be nodes at all. They will just be a url that gets handled by a module. You can make menu items out of any internal url path you aren't restricted to just nodes in your menus.

Is it possible to have sub content types (sub sections?) Eg, site.com/features/ps3
(i.e somewhere where you'd expect to find all the ps3 related features)

No there isn't any thing like a sub content type and you don't need that anyway. Forget about content types having anything to do with you site hierarchy. Content types are a type of content - don't think of your dynamically generated intermediate navigation pages/listings as your content as such (your blog posts, articles etc are your content).

Will users still be able to RSS subscribe to these game pages? So if they're really interested in a particular game they just subscribe to it and get notified each time a news story, feature, blog etc is published about it? (I hope so!)

Pages don't have RSS feeds, listings do. If your listing pages are created by Views or the basic taxonomy module, you automatically get feeds generated. If you code your own module or put some PHP in a page node for this, you'll have to code your own feed.

Re caching, is it possible to use caching for _logged-in_ users too on pages that do not have commenting switched on? (or rather part of the page? I.e don't cache the header or footer but everything else in between)?

Logged in users don't get pages cached in current versions of Drupal core (ie each page is or can be unique to that user). It's too hard a problem to write a generic solution for that suits any site. But if you have custom code generating the listing, you can implement your own caching of that listings content - ie only you know your content and its cachability.

But seriously don't worry about it - chances are these listings won't be the most demanding parts of your site anyway. You should profile your site for bottlenecks before any premature optimisation.

But this is starting to go around in circles - just start using this stuff.

--
Anton
New to Drupal? | Troubleshooting FAQ
Example knowledge base built with Drupal

Brook’s picture

Everything you've said makes sense, so thanks for taking the time to reply.

I've installed Drupal 5 now and am having a play with that. I managed to get the features/ps3 thing sorted by using pathauto - although I guess a better way would be to use views and get something like features?=ps3 instead, so that way features that are in multiple 'terms' (eg for differen platforms, such as 360 and PC) they'll show on those pages too (features?=360) etc.

Just looking at views and boy does it look complicated! I am just off to read up about it.

Thanks again for your time - you've been very helpful, and I'm sure others who may be searching for similar will find the thread useful too.

Cheers,

styro’s picture

Whether or not you create a vocab for the site sections is up to how you want to operate (more on that later).

I am assuming you want the top level page for each section to be dynamically generated. Correct? It doesn't have to be - if your site is relatively static then you can just handcraft those page nodes by adding links to your hand picked subpages and/or arranging them in menus or custom navigation blocks.

OK, so assuming dynamic sections there are various ways of getting listings. The best solution for non coders is Views (I'm not sure about how ready it is for Drupal 6 though). Coders can still use Views, but they also have the option of either putting some PHP in a node or writing a simple module. I wouldn't recommend embedding PHP in nodes though - the code is harder to maintain than module files (eg no source control or decent source code editors) and you run the risk of bugs in the code stopping you from going back to edit the code. Also you won't have to enable the PHP input filter which can be a security risk.

You could then arrange these custom listing pages or Views urls into your primary links menu to allow navigation to these listings.

If you want columns and/or other ways of separating an individual page into content sections, then the Panels module is a good choice. Of course coders could also just code these sections themselves.

Now back to the original question - a vocab for site sections?

It depends on how you want to specify which content goes in which section. If you want to do it by tagging nodes, then yes a vocab for sections might be a good idea. You might even be able to reuse terms from other vocabs (and not create a separate sections vocab) for this if the other vocabs suit the way you want to sort your nodes into sections.

If you want to use other criteria for specifying sections then you don't need a vocab at all. eg you could make a News Story content type, and a Review content type etc and use that to choose where they get displayed. This could be a good solution if a particular node is only ever going to appear in one section as a node can only have one content type. But if you want nodes to appear in multiple sections and/or have subsections etc then using a taxonomy vocab could be a good solution.

--
Anton
New to Drupal? | Troubleshooting FAQ
Example knowledge base built with Drupal

Brook’s picture

Hi Anton, thanks for the reply.

It's prob best I direct you to my replies posted above to Craig :-)

Please add your opinions as I am eager to hear them.

All the best,