1. Drupal in a DayBogotá Presentador: Jairo Pinzón – Gerente General SeeD Instructores: Aldibier Morales – Director de IT SeeD Federico Jaramillo – Gerente de DesarrolloSeeD
2. TODO LO QUE SIEMPRE QUISO SABER Y NUNCA SE ATREVIÓ A PREGUNTAR ¿QUÉ ES DRUPAL? Es una comunidad de software libre basada en una herramienta de construcción Web. Actualmente Drupal es visto como uno de los mejores «frameworks» para aplicaciones y desarrollos web disponibles y cada vez tiene más adeptos en todo el mundo
3. ¿SABIA UD? QUE Drupal es una adaptación al Inglés de la palabra Alemana druppel, que significa gota, Como por ejemplo en «WaterDroplet « HISTORIA DE DRUPAL Originalmente el código fue escrito por DriesBuytaert como una consola de mensajes; Drupal se convirtió en un proyecto de código abierto en 2001. Una gran comunidad ahora ayuda en su constante desarrollo en la medida en que Drupal crece rápidamente.
4. DrupalCon es una reunión bi-anual que hacen los drupaleros para aprender, discutir y avanzar en el desarrollo de Drupal y para conectarse con otros miembros de la comunidad
9. El Crecimiento de Drupal Drupal - Descargasmás de 230,000 vecessolo en marzo de 2010 Más de 6,700modulos contribuídos Disponibles De los cuales 5,000 son de hace un año Cerca de 3,000 personasAsistieron al DrupalCon de San Francisco600% de crecimiento en 2 años
11. Estoesunacomunidad Encuentros, trabajo de campo , y Conferencias By Narno Eventos Drupal DrupalConCopenague 23-27 de agosto http://cph2010.drupal.org/ By Narno By beta.robot
60. What we’ll do in this session Part 1: Creating a simple content type Part 2: Organize your content with taxonomy Part 3: URLs and Paths to content Part 4: Automating path creation Part 5: Users, roles and permissions Part 6: Create a role Part 7: Comments
67. Review What do we know about content management in Drupal? What are content types? What is a node? How can we organize content? How do I turn off comments for an entire content type? What is a user as opposed to a role?
69. Navigation and Layout Part 1: Control where content appears with Regions, Blocks Part 2: Navigation and the menu system Part 3: Control how your site looks with Themes Part 4: Administration Theme
84. Advanced Configuration Part 1: Extend a custom content type Part 2: Add an image to a content type Part 3: Create a view block of that content Part 4: Place that block on the page Part 5: Improve find-ability and Configure Search
86. Meet CCK Define a content type Select default settings Comments allowed? Promoted to front page? Add fields Data type: text, integer Form widget, select box, radio buttons Display, how it shows up Fields appearing in forms
87. CCK fields Datatype Numerical, long text, text, etc Options widgets Select lists, checkboxes, image upload. Validation options. Display How to display the content
88. Add an image field Multiple uploads per field Two different image fields
89. Create SimpleView listings of content Query content Filter out content types Sort by date Examples List of titles in a sidebar block. Titles, summary and links on a page.
90. Custom content What kinds of content would you like on your site? Would it have comments? Does it appear on the front page in a list by default?
93. What do we know about Drupal? Review what we learned... Any questions?
Notas del editor
You can add slides about your own company, or ALT + TAB to your own website when introducing yourself/company.
By the end of the day, you’ll be able to look at a Drupal site, and understand the main components, and discover how you can get the same results.
Now you know how to navigate the administrative area in Drupal, and how to login. This next session is going to be a hands on tour of the main concepts of Drupal which make it unique from other CMSs.
What is Drupal? It’s a community of open source web developers, business developers, designers and content managers. Participation from people of all backgrounds and skills is appreciated and welcomed.
Plug DrupalCon! Great place to meet collaborators, to hire or be hired, to learn, to socialise.
The people involved are the best resource. Connect locally, and go to conferences to make international friendships. And buy developers beers.
Drupal is also software. This is where it fits: in Social Publishing Systems. It integrates the aspects of content management systems and social software tools.
Many larger companies are using Drupal for sites within their larger network. Drupal excels at content and people.
Drupal used here on a sub-site of Digg’s services. You’ll notice there are some services which they do not use Drupal for.. Drupal is a tool in your tool box and can be integrated with other systems...
For small sites, it can provide excellent flexibility.
Here’s another example of a site in Drupal- Amnesty International. It’s crucial that the site operate in multiple languages, on a variety of machines and connection speeds. (quickly go to next slide)Note to lecturer: Preferably keep this slide as the Amnesty site is the best example of a multi-lingual site with complex needs.
The content changes for language per page. This is the same page in Arabic, displaying RTL. How would you have managed that in HTML? Of course this needs to be translated by staff, but this is a way to manage multiple languages.
Here’s a relatively simple site. By the end of the day, you’ll see how you can add Menus, blocks, views listing content
Go quickly - then extend with additional features…
Go quickly
Event calendars and Slideshows are really pop. Go quickly.
All Drupal sites have the same components. First, we have nodes. We can think of this as the ‘content’. Not everything is a node
Configure user behavior:RegistrationEmailProfilesPictures
Views can create all kinds of queries, in addition to Event listings. You can send lists of content to maps to be viewed.
Drupal’s structure isn’t just the layout, but also, what should appear- where, when and for whom. Site navigation, content or other components. Display content from modules or other sources ImagesAdvertisingTag cloudsContent feedsLinksmuch moreWidgets can be created and placed via the block system in Drupal. There are alternatives to the block system.
You should also think about what people will do.
Drupal’s theme system. Components include CSS files & PHP files with HTMLCan be displayed by user roleSupports sub-themes
Modules combine aspects of control of users, listing content and themes to add functionality to Drupal. They leverage the functionality that exists in Drupal. A hub and spoke model is a good way to think about it. Here’s an example, showing 3 modules working together. The Twitter module connects a Drupal User acct to a Twitter account. This exposes data that Views can display. And Panels can be used to layout those elements on a page.
So let’s get started with Drupal.
Change site functionality.
This is a screenshot of Dreamweaver’s site management overview. Dreamweaver is a WYSIWYG file editor and site management tool. If you just use HTML, your data is stored on all the pages. To update something like a footer on the site, you find and replace all the content. You can use Dreamweaver to connect to a database and use scripting languages such as PHP. But you would have to write your own user management and content management scripts and ensure they are secure.
With Drupal, you can use a widely tested and secure tool to dynamically deliver content to your users. Many of the features you need by default are included, and what features are not in the core installation can be downloaded through additional modules.
With Wordpress, users place content in a database through an Admin interface. This content is displayed through the use of code placed in template files. Placed in a template file, this code will show 5 posts of the category with the ID 3. Instead, the Drupal way is through back-end configuration through the use of Views.
Instead, Drupal prefers more configuration to happen in the administrative interface to control the placement of content in blocks, or the display of lists of content. For example the community has converged on Views as a popular way to build queries. This allows non-programmers to create useful displays of content through a powerful set of options. If talking to developers: Where storing the queries in the database poses performance propblems, these queries can be exported to code.
So let’s try enabling a module, adding functionality to our site.
In Joomla, features are added in a number of ways. Joomla takes an all-in-one approach to functionality. In this example, the Jtweet module no only controls the source of the tweets, allowing only one user. It also controls the menus, whether or not avatars are displayed. Joomla people often find Drupal “chaotic” because control is not located in one place per feature.
Instead, Drupal developers make efforts to reduce duplication of effort. In this example module, Twitter, the Drupal users associate their accounts with a twitter ID. This pulls in their tweets displayed in a sidebar block or on their user profile, and allows them to post to their own Twitter account or a site-wide Twitter account whenever they create new content. The user system handles the users, the menu system handles the menus, and a module called Views handles the display of content. If talking to developers: In this way the community converges on features and maintains a cohesive project which has resisted forking.
Talk about “don’t hack core”. Show where they only make changes to sites/ folder to assist in back up migration and upgrading. Here we see the root folder of Drupal. You will notice the modules folder and the themes folder. Never modify these folders or contents. You can override everything in the sites folder. Instructor opens up an installation of Drupal.
Let’s look at the modules…
Of all the sites you saw so far… You can have this same functionality. Most sites used existing modules, when they do make custom functionality, they often contribute it back to the community. Find something you like, inspect element and see what it’s created by.
For example the decisions module and the feedback module
It’s available at Drupal.org
So let’s try enabling a module, adding functionality to our site.
Here’s an example site leveraging several modules. You can replace this screenshot with another site, but make sure it employs the Twitter module, and you highlight that in the next slide.
Now we’re going to focus on creating content.
Let’s create some content.
Just make a note about summary.
This is an example showing a page listing teasers, like the front page.
Note: filter settings are saved when you set them. Reset to clear filters.
Now when you look at a site like Examiner.com you can start to see how this was created.
And much of the functionality you saw is in the core system. We’ll start trying this out in the next section.
Now you know how to navigate the administrative area in Drupal, and how to login. This next session is going to be a hands on tour of the main concepts of Drupal which make it unique from other CMSs.
This is quite a bit of territory to cover in this session.
Drupal has two default roles, the Anonymous and Authenticated user. You can make custom roles, such as “Editor”. If an authenticated user can access content, so can all the other custom user roles. Those roles inherit the permissions of the basic authenticated user.
Here is a site A site with comments, moderation and front-page (moderation) user-created content.This site has things like 'my favorite articles', 'my favorite recipes', 'add article', 'add recipe', 'become featured woman of the day', ...Members submit content and this material is moderated and promoted.(You can replace this with another site, but make sure it demonstrates user generated content.)
Here is a site A site with comments, moderation and front-page (moderation) user-created content.This site has things like 'my favorite articles', 'my favorite recipes', 'add article', 'add recipe', 'become featured woman of the day', ...Members submit content and this material is moderated and promoted.(You can replace this with another site, but make sure it demonstrates user generated content.)
Ask learners what kinds of users their own site would have. Tease out the difference between a role and a user. Who will use your site? Give them the most limited access and controls they need.
Content types basically become your input forms for content. Nodes, in addition to content like a title or a body, also hold information such as if it is published, who authored the content, revisions, and whether or not content can be commented on.
Now we’re going to talk about how the content is arranged on a page. Let’s walk through a quick introduction to these new concepts.
Here’s an example Drupal website, Opensource.com. We can use this Drupal website as an example to understand how content is arranged in a Drupal site.
Let’s imagine some of the regionsof this site, for example, the Header region and the Right region. Regions are “places” on a page and defined in a theme. They can be customized (that’s all you need to say at this point).
But how is the content assigned to these regions? Some modules are outputting blocks of content. A block is a generic term for a content holder. Can you spot the search block? The Login block? A recent poll block?
The user login and search block are assigned to show in the Header region. In the Right region we have theCustom menu, the Views and Quicktabs block, and Recent poll block. The Recent poll block, for example, is available when you enable the Poll module.
Regions are defined in the themes. You can see available regions on the Blocks administration page. This is Garland, with very few theme regions.
Here’s Acquia Marina. There are considerably more regions, and they are a bit easier to spot.
Let’s try it! Exercise P-S – control how to do blocks. Configure, create blocks, place them. This is on the block management page, at the bottom. We can see a number of disabled blocks. By selecting the region, you can assign them You can also reorder them. Place the recent comments block in the Left sidebar. Main pointtosay:”By changing block arrangement (Without having touched a theme), you have changed the layout of your page. “
Refer to handouts.After adding menu items, they can go to menu management page. They can disable items and nest items.Remark on enabled v expanded and how this depends on the theme.
Before Part 3: Themes – review page construction.Let’s review this idea. This is a abstract model of a page build in Drupal.(Go through these quickly, the slides build. Just talk about what is on the screen here.)
The page you see in your browser pulls in Regions. Regions are defined in the Theme files. They identify parts of the document. The HTML and CSS around the regions are used to control layout and presentation.
Blocks are then assigned to regions. Some modules output blocks. For example, a block displaying a recent poll, or the user login block.
Menuare also placed into regions.
This is the Marinelli theme. On the site. :et’s try this out.
Now we’re going to bring together the concepts and practices we’ve learned so far. This will be a review of things we’ve tried so far, and also extend to try some new things.(The introduction is driven from the slides)
Tell people about the extra modules mentioned. (The printed guide shows modules to suggest, but there won’t be time to show how to install a module. There are resources online showing how to install a module. You can demonstrate it, if you have time.)
This is what we know so far. Fundamental concepts of DrupalHow to navigate the Drupal admin areaHow to enable or disable functionality: per module, per content type, per userHow to place content around the page
Define content typesAdd fieldsCustomize input form with widgets like pull down menus or checkboxes.Activity: Enable CCK
Using learner’s examples, use white board to identify what data types, what form widgets and optionally what display options might be used. Let’s add a custom fiels.
You can configure the image fields in different ways. In this example, a story post on the left allows multiple uploads per field. On the right we see two different fields for the post, with two different Imagecache settings.Let’s try this now.
Create listings of content.Select fields to show.Listings of Nodes, filtered by Type. You can also open these Simple views up in the more complex View interface.
Ask audience for some examples. Elicit what is a content type and what are examples of fields. Ask them to think of a special content type of their own. They will MAKE that content type now.
Let’s look at this site now. You can even visit it in your browser and inspect the HTML. Can you guess how the site was constructed?- You can ask the numbers and have people guess how they would do it. They can also visit the site and inspect it. Can you see some example content types they may have used (Elicit:news, events, profiles)Can you see where you’d use a Simple View? (Elicit: listing news, list events.)Can you identify any regions they may have used? (Elicit: any examples showing the regions of the site, content, sidebar right, or the header)Can you see where a block would be placed? (Elicit the simple views block in the sidebar region)
Use the whiteboard, elicit:Extendable with modules.Customizable content creation and workflows, from CCK to revisions and many modules available for managing content.Search friendly URLs.Role-based access permissions.Social publishing and collaboration tools.Configurable layout and visual design