310 likes | 383 Views
Welcome to Drupal Crash course. - Garthee ban Ganeshapillai. Have you got any experience?. People used to build computers from the scratch. One day someone thought why reinvent the wheel again and again - so there came prefabricated components.
E N D
Welcome to Drupal Crash course • - Gartheeban Ganeshapillai
People used to build computers from the scratch • One day someone thought why reinvent the wheel again and again - so there came prefabricated components. • We no longer build computers, we just assemble them, and customize them
Web services • Not simple HTML webpages • HyperTextMarkupLanguage is what renders the webpages • They were used to be built from the scratch
They would have looked • index.html<html><head><title ="Welcome">My homepage</title></head><body>Here goes content. <a href="contact.html">Contact me</a></body></html> • contact.html<html><head><title ="Contacts">My Contacts</title></head><body>Garthee <br /> 32G - 915 <br /> Stata Center <br /> MIT</body></html>
Do we have to code repeatedly when we need more pages? • Simple PHPHypertextPreprocessor script that could generate this • index.php<html><head><title><?php if($_GET['q'] == 'contact') echo "Contact"; else echo "Welcome"; ?></title></head><body> ... </body></html>
Seems like a lot of work • Imagine you have a blog with 1000 pages. • The latter SCALES (capable of handling enormous expansion) ...
But how to keep record of content? • Hard code? • NOOO! • We need database! • Database (DB) is a container of data, often organized in tabular format, that is easily accessible, indexed, catalogued, etc. • Management is easier than storing data in separate files.
How DB is going to help us? • index.php <html><head><title><?php echo getTitle($_GET['q']); ?></title></head><body><?php echo getBody($_GET['q']); ?></body></html> <?php function getTitle($key) { query the database table for title using the key, return the value;} function getContent($key) {query the database table for content using the key, return the value;}?>
Content Management SYstem (CMS) • A complete web based system that handles • Content management • User management • File (attachment, media - images, audio, video) management and many more • Is called CMS
Developed by Dries BuyTaert • Creators envisioned it to be generic, flexible, simple and scalable.
Drupal is a web-based content management system. • Text and pointers to other kinds of content are stored in a database, dynamically retrieved and composed, and presented to a user in response to a request sent via a web-browser" • - from drupal.org
It is more than a CMS now, powering up both high profile sites and highly loaded sites • CSAIL - http://csail.mit.edu • Whitehouse - http://whitehouse.gov • Check the link for a presentation on the list of high profile sites powered by Drupal
Why Drupal (list retrieved from drupal.org) • Modular and extensible : Drupal aims to provide a slim, powerful core that can be readily extended through custom modules. • Quality coding : High quality, elegant, documented code is a priority over roughed-in functionality. • Standards-based : Drupal supports established and emerging standards. Specific target standards include XHTML and CSS. • Low resource demands : To ensure excellent performance, Drupal puts a premium on low-profile coding (for example, minimizing database queries). • Open source : Licensed under the GPL. Specifically, Drupal is coded in the open source scripting language PHP and supports as primary data sources the open source database formats MySQL and Postgresql. • Ease of use : Drupal aims for a high standard of usability for developers, administrators, and users. • Collaboration : Drupal development supports open, collaborative information sharing systems and approaches.
SEcret Weapons of Drupal • Secret Weapon No 1: • Taxonomy • Classification, tagging , categorization, faceted search, etc • Secret Weapon No 2: • Views • Build a query, sort, filter and pass arguments to query through a UI • Secret Weapon No 3: • CCK • Fields, Custom Content, RDF support, XMLRPC support, etc
Action PLAN • Introduction to CMS (15 mins) :Websites in General | Frameworks in General | What is a CMS • Introduction to Drupal (15 mins) :Drupal | Features | What can you do with Drupal • Installing Drupal (30 mins) : Single Domain installation | Module Installation | Theme Installation | Site configuration | General Management • Modules (45 mins) : Taxonomy | Views | Fields - CCK | Themes - Acquia Marina (15 mins) • Hacking (20 mins) :Module Hacking | Theme Hacking | Never ever hack the core • Module Development (20 mins) :Design | Architecture | Development | Coding style • Multi-site Installation (if time permits) • Troubleshooting (if time permits)
Installing Drupal (30 mins) • Single Domain installation • Site configuration • Module Installation • Theme Installation • General Management
Installing Drupal (30 mins) • Single Domain installation • splash.theebgar.net
Installing Drupal (30 mins) • Site configuration
Installing Drupal (30 mins) • Single Domain installation • Site configuration • Module Installation • Theme Installation • General Management
Installing Drupal (30 mins) • Single Domain installation • Site configuration • Module Installation • Theme Installation • General Management
Modules (45 mins) • Taxonomy • Views • Fields - CCK
Themes (15 MINS) • Acquia Marina • Other themes • Acquia Slate • Pushbutton • Garland • A THEME I DEVELOPED - Brownie
Hacking (20 mins) • Module Hacking • Theme Hacking • Never ever hack the core
Module Development (20 mins) • Design • Architecture • Development • Coding style
... • Multi-site Installation • Troubleshooting