Learning Drupal 7 and trying to understand themes and templates - drupal-7

I'm new to learning Drupal and I'm hoping someone can explain something to me. I'm trying to figure out how to change certain pages to have different template designs, for example one page can have a two column layout and one page can have a three column layout or one page can be a gallery.
Similar to this template from template monster.
http://www.templatemonster.com/drupal-themes/39996.html
So far all I have seen in terms of tutorials is just installing and setting up a theme and arranging the blocks around the site but nothing about changing templates.
I'm use to the way Wordpress does everything where with just one click in the dashboard you can change the template design of the page. If someone can explain how they differ and how they are similar that would be great!
Also if their is a good book on Drupal 7 please let me know.
Thanks!

Congratulations on beginning your trek into learning Drupal. It is, in my opinion, the best of the CMS's available today.
Drupal templates are controlled when logged in as a user with site administration in the 'Appearance' section. There, you can add a new theme or switch between those themes already installed on your site.
As for site themes displaying different page layouts depending on the which page you browse, as a general rule Drupal treats your home page differently than internal pages. Using modules such as the Pages module, you can control the appearance, layout and functionality of specific pages of your site.
There are a number of excellent books on Drupal 7 that cover basic as well as intermediate topics. My favorite is Drupal 7 Manual by David Ipswich.
Best of luck!

Related

DNN MultiSite with multiple layouts and skins

I have 100+ sites I need to create in a CMS. I'm researching different CMSs and have spent some time looking into DNN. It looks pretty promising, however I see two issues:
DNN doesnt seem to support MVC (this is more of annoyance than anything else but I can work around this issue)
DNN development looks like it is expecting 1 skin/layout per VS project
My goal is to have 1 single instance (for now) of DNN running all 100 sites. I know DNN supports multitenancy so that shouldnt be an issue. Each site should be customizable based on layout and css. What I'm not seeing how to do is be able to select different layouts and skins per site. So for example, Site A would have Skin A and Layout A. Site B -> Skin B / Layout B, etc.
How would I go about doing this? Also, is it possible to create all skins/layouts in a single VS project - it seems like I should be able to do this.
I think DNN is a perfect choice :-)
DNN supports MVC. Even if it runs under web forms, there is a control called MVC Panel that allows modules that use this pattern. The routing is a bit different, but it works. See MVC Module Development for more information.
A skin/theme can be applied to any page (even if that does not make too much sense in my eyes). There are three layers: Host (System), Portal (site) and Page (aka Tab), if a skin is not applied to the page, the portal skin is used, if this is not applied, the host skin is used.
To apply a skin to a portal, just set the skin at the portal level (Manage :: Themes). On the page level, you may change that in the page settings (Advanced :: Appearance). The host skin is always the default skin delivered with DNN (called "Xcillion" atm).
You don't need a VS project to create a skin, a good editor is all you need, most people I know who do skinning use Notepad++ or VS Code. For further information read Creating Themes.
Same for Containers (which are the "skin" for the modules placed on a page). Here you have one more layer, you can define the container in the module settings. If not, the one from the page settings is used etc.
I would recommend to have a look at the source code of the Xcillion skin to understand the mechanisms. And maybe download one of the more advanced free stuff and have a look at this code (eg DNN Bootster V2). A first step is always to copy a skin you like and changing the code as you need it.

Good Modules to build Booking system using drupal 7

I want to build booking system for spa related website using drupal. Which are the good contributed modules please suggest.
Condtions:
Customer can book the spa with his details
Customer can cancel booked his spa
All records should be update in the system.
Most of that could be achieved in a default Drupal 7 installation I believe since the requirements/conditions are relatively basic.
Views goes without saying.
Date is pretty much essential for your purposes as it provides a nice date picking interface.
Link is useful if you have fields that need to link to nodes.
Panel for configuring layouts of pages.
Webform is great for making forms, definitely useful for a booking system.
Some more examples can be found here.

How to mobilize drupal 6 site using module, keep theme for desktop viewing

I know, we are still on Drupal 6
I am wondering if there is an easy Module I can use to "Mobilize" our site?
I tried Modernizr, but it isn't happy.
We need to keep our current theme the way it is for desktop viewing, we just need to update tablet and phone viewing theme.
Has anyone had any luck using a module for Drupal 6 ?
Thanks so much!
We are still on Drupal 6, too. I've found very little in the way of mobile or responsive themes for Drupal 6, since D7 was released when responsive became popular, so D6 has been left behind by most theme developers.
In the end my solution was to add responsive code to an existing theme. There was not a great deal of code involved in my case, but there is plenty you'll likely need to learn about how to do responsive design. And a lot will depend on your current theme, and whether its structure is compatible with common responsive approaches.
All that is to say, I found it ultimately more efficient to do the coding changes myself rather than adapt a third-party solution (modules or even existing responsive themes for D6).

Translate Front-End Site Interface in Drupal 7

I am working on a multi-lingual website in Drupal 7. I installed the i18n module to translate the content on the website. However, I also have other site interface elements on the front-end part of the website like button texts, navigation links, etc that I would like to translate.
Is it really necessary to develop different themes per language? Or is there a more elegant solution to do this?
Thanks!
"Is it really necessary to develop different themes per language?"
No, it isn't. Every visual text can be translated, via the Translate interface-entry in the admin menu. If you write your own modules, templates and stuff, use the t-function to make the terms available in Translate interface or write your own po-files.
There is one issue of course: if the length of the terms in language A is too different to language B you can get in trouble with your layout. So test everything in depth and load different css styles if necessary.

CakePHP: Internationalizing a web application - Design and Examples?

I have a web application built using CakePHP framework and now I am in the process of internationalizing it. I started with the base set-up as outlined in the below article -
http://puskin.in/blog/2010/08/cakephp-manage-multiple-language-in-application/
and also add little bit of customization based on my previous question -
CakePHP: Internationalizing Web Application
To completely internationalize my web app, I would need to translate my drop-down/look-up content as well, like - categories, favorites, countries, bucket list etc.
What is the best way to design my tables and CakePHP samples? Can someone explain with a simple example and classes? Links or articles?
Lets say we have something like -
A user can create multiple posts, and each post has a category [science article, match article] etc in the drop-down and same we need to internationalize drop-down as well.
Two hints:
Read the manual of cakephp.
Look into the code of a available application (maybe croogo)
My open source project is translated.
It call CandyCane. A port of Redmine into CakePHP.
I also imported translation files from Redmine, so CandyCane supports numbers of languages from the beginning.
https://github.com/yandod/candycane
It might be helpful for you.

Resources