 Okay, we're going to start. This is getting started with Drupal. My name is Mauricio Dinarte. Can you all hear me? In the back? Okay, good. So welcome to Drupal.com, Leo. As I said, my name is Mauricio Dinarte. I go by Dinarcon online. My pronouns are he, him. That is my email. I am a software engineer at Agaric. I also have a website, colonistandrupal.com that I will be talking a little bit later. And in general, in addition of being in the computer most of my day, I also like reading, traveling, and learning languages. I know English, Spanish, a little bit of French, a little bit of Portuguese. So yeah, if you're speaking any of those languages, let me know. Okay, sure. Is it any better? Yes. Okay, good. Great. Okay. So I work with Agaric. We are working on cooperative based in Boston, but we have people all over the place. I am from Karawa. We have some people in Germany and in different states in the United States. I also have this website called Understand Drupal. I am very passionate about teaching. And here I write about different Drupal concepts and trainings, especially about migration. So if you are in need of upgrading your Drupal six or seven site to Drupal 10, I have content there. But I also have content for what we're going to be covering today, like basic concepts, site-building concepts, and it will grow the catalog over time. I write in English, Spanish, and French. And hopefully in the future I will be writing in other languages as well. I would also like to thank Pantheon for helping me to present this session. For the most part, what we will be doing today is a workshop. So there is very little slides. I actually expect that you have a computer or a tablet or a phone that you can follow along. If you don't, that's fine. You can ask questions. You can just listen to the explanations, but it will be better if you actually follow along because it's going to be a hands-on experience. The workshop is split in two. So this workshop actually covers two session slots. So in between we're going to take a five to 10 minutes break. What we will be covering is installing Drupal from scratch. You don't need to have anything installed locally. I have prepared some environments that you can just click on a URL and you will be able to do everything with me today. We will be creating different type of content. We're going to learn about content types and fields within Drupal. We're going to create views from scratch and a few other concepts. So that is the URL that you need to follow. I will be explaining all these URLs in a moment, but if you go to udrupal.com slash lildash 2023, that's the next page. So this is kind of the handout what we will be covering today. A few other links from this one is down below where it says lildash 2023 sites that is going to take you to this spreadsheet. So are you able to write in the spreadsheet? And the idea is that anybody can write your name and that is you claiming your site. That is the test site that you are going to be working on. Can you please verify if you can write your name anywhere? No, okay, let me fix that. So you should be able now to write your name and that is going to be the website that you're going to use for today's workshop. This site is a sandbox. After the conference, you will be able to play with it for at least a month. So whatever you learn in this conference, you can go practice on this website later on. But for now, if you can refresh the page and write your name, that is how I know that you have claimed that site and nobody else should also do it. So I will give you a few seconds to do that. It's if you go to udrupal.com slash lildash 2023. udrupal.com slash lildash 2023. So once there, you come to this and if you don't have a local environment, which I assume most of you want, you can click on this URL, udrupal.com slash lildash 2023 dash sites and then you can start writing your name there. So I'm going to use this one here. Well, I give you some time to claim your site. You don't need to go through the installer. We're going to do that together. Just, you know, if at any point you have any questions, you don't need to wait till the very end. You can just raise your hand and ask questions. So let's wait one more minute and then we get started. So I see some of you have already claimed that site. In the presentation, there is another URL, the one that says lildash 2023 dash demo. That is the final version of what we're going to build together today. So if at any point you need to reference what this should be looking like, you can go to this website. udrupal.com slash lildash 2023 dash demo. I'm going to give a high level overview of what we're going to be doing today. We're going to create a relatively simple site, but it is going to allow us to create, you know, different pieces of content, different type of content, play with different type of fields, work with views, with contact forms, with blogs, a lot of other stuff. So even though it's relatively simple, it's going to cover a lot of the basic sale video concepts in drupal. So we have a home page, we have a news page. The news has images, categories, descriptions, dates, we have events happening, and we're going to collect different type of information, including dates, types, phone numbers, and also we were going to learn how to change the presentation. It is looking like this at the moment, but throughout the workshop we're going to switch in some of these into a table, for example, and we will have a contact form just to learn how the menu system works in drupal. Okay, assuming that most of you already have claimed a site, I'm actually going to get started. One thing before that, this is the website that I mentioned before, Understand Drupal. I will be uploading a recording of this workshop. Normally this is presented like a full day training, and today we only have about two hours, so it has to be reduced significantly. So if at some point you want to expand on whatever we cover today, visit this website at some point in the future, and I will be providing a full length presentation. Any question before we get started? Okay, if you don't have a question for me, I do have a question for you. This is supposed to be interactive, so please raise your hands when I ask to, or if I ask the questions, please participate. So the first thing is, does anybody has ever worked with drupal at all? With drupal eight, nine, or 10? Six or seven? Okay, has anybody installed drupal before? Yes, most of you. Well, we're going to do it again today. Something that I find interesting, I have been presenting variations of this workshop for at least eight years, and every time that I present, if it is a couple of months, I find something new. So, yeah, drupal is always changing, it's always improving, so by all means, if you have installed drupal seven, this is going to look different. If you have installed drupal eight, it might be a little bit different, so let's do it together. So we should be in the installation page. Here, the very first thing that you will be from is to select a language. For the sake of it, we're going to use English today, but drupal is available in many languages, and those translations are actually provided by the community. So if you speak a different language, you can contribute those translations back to the drupal project, and the whole community benefits from that. So, and that also applies for, there are some strings that have not been translated, so even if you select Spanish, for example, or French, they might appear in English, so if that is the case, you can, again, like, go to a page that is, to a website that is used for translating drupal, and you can submit either corrections or additions to make that your language as complete as possible. Again, we're going to select English, and then click Save and continue. The next thing that you are going to be prompt is to select an installation profile. We don't have to go too deep into this, but the way to think of it is a version of drupal installed for a very specific purpose. Drupal comes with a set of modules which provide functionality to drupal, but you can imagine that there are literally thousands of websites in the world. It is impossible for drupal to know what every website is going to choose, so when you select an installation profile, you are making a choice of what modules are going to be enabled out of the box, and on top of that, you can enable new ones that you might need, or you can disable things that you don't need, but depending on the installation profile, you have a set of modules, and also a theme. We're going to talk a little bit about themes later, but what you get out of the box is a standard, which is what we're going to work today. Minimal, that is literally the minimum that drupal requires to run a website. It is one theme and five modules. Without that, drupal cannot work. And then there is an example just to give you a sense of what an installation profile can accomplish with a different set of modules and with a different theme. So I'm going to use a standard, and at the end of installing drupal with standards, I'm going to show you a different site that was installed with Umami, and you are going to see how different it is. And with that, you can think, oh, maybe if I look for a different installation profile, a slash distribution, if you go online, they might also be called distributions. You are going to have a completely different look and feel, a completely different out of the box experience. Just to give you an idea, there are full governments that have adopted drupal for their websites all over the country. One example is Germany, and another example is Australia. So what they did is they created a distribution that comes with an installation profile, and basically any government website, they just click a button and they have preconfigured a lot of things for their specific use case. You might also find installation profiles for e-commerce websites, for newspapers, for churches, for NGOs, and so on. So if you're looking for a very specific use case, there is a chance that is an installation profile available for that, and if that is the case, you will be able to get more out of the box. But for today, we're going to learn the very basics, and after installing drupal with a standard, I'm going to show you another site with Umami so you can get to see the differences. So click save and continue on a standard. Normally, steps three and four, you will be prompt for a few things. For example, number three is verifying requirements. This means is PHP installed? Do you have a library for processing images that is required by drupal? Do you have a connection to the database? And the drivers to connect to that database. So because we are using Pantheon for this demo, Pantheon is optimized for drupal, and those steps are skipped, but otherwise you will be checked for those requirements and asked to provide your connections to the database. Again, that is not necessary because we are on Pantheon at the moment. And then drupal just install the sites. Installing the site means enabling the module, enabling the theme, and doing some pre-configuration. The last step in the installation process is just some general information about the site. It is worth noting that anything that we put here can be changed later. So don't feel that you're making a life commitment. I will be putting some demo content, but as we work through the example, we're going to be visiting some of the pages in which you can go back and modify what you enter here. So for my site name, you can enter the same as me, or if you have a specific example in your mind, you can do that as well. I'm just going to call it Drupal Conleal 2023. Drupal Conleal. Now, you are required to provide an email address used for the site. And this is going to be used anytime that the website itself needs to send an email. Have you ever received an email from a website? Yes, no? Some of us? What for? What, why would a website send you an email? For registration? Yeah, for registration, Drupal sends emails when a new account is created, for example. Anything else? For? Security updates? Yes, actually that is down below in the form. The comment was security updates. So Drupal automatically can check when there is updates, whether security related or not, and if that is the case, you will get an email saying that you need to update your site. Any other reason for getting an email from a website? Okay, that's it. If you have an e-commerce store and you purchase a product, you can email for the receipt. For example, if someone forgets their password, you can request a password resettling. So anytime that Drupal needs to send an email, it's going to be sent from this address. I highly recommend that you do not put your personal account, like email, because let's say that you are working for an organization and you have your personal account there and you leave that organization, then the website is going to be sending emails on your behalf and you don't want that. So look for something generic. In this case, I'm just going to come up with a random email. adminadexample.com But yeah, just try not to use your own personal email. Then we have to configure the site maintenance account. This is basically like the one account that has access to everything on the website, literally. It can take down the website if they want. So you need to keep this one very, very secure. Please don't use admin as the username that is like the most common one and if someone is trying to brute force into your website, you are giving half of the combination of credentials to get there. So come up with something different. Let's for the sake of it, call it Drupalicon in your case. Drupalicon is the mascot of Drupal, but you can enter any other username as long as it is not admin. For the password, when you start typing, Drupal is going to give you a clue of how weak or strong is the password. And you are going to be listening something a lot in this workshop. It's that there are modules that allows you to expand this functionality. So for example, there are modules that when installed, this is just like a hint, a suggestion. Your password is weak, but with the help of extra modules, there is one called security policy, you can actually enforce that people have a strong password, a password with X amount of characters, a password with uppercase, lowercase numbers, that they cannot repeat this password that they cannot reuse like the same username as the password, like a lot of different criteria. So this is what is available out of the box. I am not going to tell you what is going to be my password, but yeah. And there is another email address here. By default, what Drupal does is it copies the one that you entered above, but they actually serve a different purpose. Let's say that the Drupal user forget their password. Then in this case, the website is going to send from adminadexample.com to Drupal.adexample.com, the password resettling. So even though Drupal by default put them as the same, it is recommended to actually be different. And again, this combination of username, password, and email address is like being able to do anything and everything on the website, so be very careful with it. Now, this is optional, but you can provide regional settings. One of those is country. So we are in France, I'm going to select France, but do you get a sense or do you know why Drupal will be asking this, like why does it care to have a default country? Yeah, for language, this has a lot to do with language. Any other comments? Yeah, so the comments are time zones, translations, and yes, all of this is related. And actually, let me go ahead and specify the time zone as parties here. So we are at Lille, we are in France. I am from Nicaragua. Let's say that the additional that was earlier today, that was actually live stream through YouTube. And let's say that my friends in Nicaragua, they wanted to see the presentation. That was a schedule for 1 p.m. local time in France, but that was a completely different time in my country. So when you have a website in Drupal that stores dates and times, Drupal can do automatic transformations of dates and times for the preference of the user's time zones. So by specifying this, you create one event and we are actually going to do something similar today with a specific day and time if you want. And then any user or any part of the world, they get to choose what time zone they want to see and Drupal will make the appropriate transformations. Another thing is that in Europe, as far as I understand, if we want to say a date, you say the day, first 17th, then the month, October and then the year 2023. In Nicaragua, it's the same, but in the United States, usually you say the month and then the day. So October 17th, 2023. So that is another regional setting. It's depending on the country, Drupal can do those types of transformation. Another one is the time itself. Some countries use like 12 hours with a.m. p.m. other countries use like 24 hours like six in the morning and 18 in the afternoon. That's another thing that Drupal can do automatically for you and even currency. I think in Europe, if you want, like the thousand separator is a dog and the decimal separator is a coma and in the United States is the other way around. So those are just four examples that come to mind, but there are more use cases in which there are some things that are dependent on the country or the region. And when you specify this, Drupal can take off making those transformations automatically for you. So be mindful about that. And the last thing, this is something that was brought up before. It has to do with automatic updates. So Drupal has a system to check automatically if Drupal code itself, which is what we're installing today or any theme or module that you have installed from what it's called a contributed module space. There is an update available. So you can say, yes, please check for updates. And also if there is an update, please send me an email. And in this case, again, the email is going to be sent from admin.example.com to druplicon.example.com. So I'm going to click save and continue. And you have installed on Drupal. Congratulations. For those who are following, are we on this page already? Anybody that needs more time? Okay. So let's get a sense of what we get out of the box. Drupal has a concept of a front end theme and a back end theme. And the two themes that comes out of the box, the front end one is called Olivero and the back end is called Claro. So what we are seeing at the moment is the front end theme. By default, it has this blue rectangle with white text for the site name in the top left. You have this gray sidebar. You have some space on the right with some Drupal icons in the background. And this is basically what the visitors of your websites are going to see. If you are an administrator or a user with extra privileges, you are going to see more stuff. For example, this bar at the top, which lets you navigate the website. Just for the sake of it, I'm going to click on one of the items in under managed content and the look and feel is going to change. The blue is gone, the sidebar is gone. What we are seeing at the moment is the back end theme. This is called Claro and it is optimized for an administrative task. So just keep in mind that at least you will have two themes in your Drupal installation. The front end one that is going to be visible by your site visitors and the back end one that is going to be visible by site administrators or content authors on the website. Now, that being said, again, we're going to explore a lot of the interface together as we work through the examples, but I want to show you something. This is a site that was installed with Umami. It is the same Drupal. It is the same modules, but combined in a different way and with a different theme on top. What you're seeing here is no longer Olivero. It is a theme that was purposely built for the Umami installation profile and it's completely different. You have different regions, you have different colors. So this is a good moment to talk about themes. Themes are the ones responsible for controlling the appearance of your website. So the colors, the fonts, the sizes, the layout, if you're going to have sidebars or not, if you're going to have footer headers, all of that is controlled by the theme. Now, in this particular example, the website is not only different in the sense of the theme that it uses, but that combination of modules. We're going to see a few things down the road, but among other things, Drupal is multilingual out of the box. So this website is available in English and Spanish out of the box. So this is an installation profile to demo some of the features of Drupal. In this case, they are featuring a different theme. They are featuring multilingual content and later on we're going to talk briefly about layout builder. So this installation is also taking advantage of layout builder. Any questions before moving forward? If there are no questions, we are going to start creating content. So if we go back to this document, again, this document is available at udrupal.com slash lill dash 2023. So I actually going to be demoing step by step, but if at some point something happens, you can go back to this document to get a reference of step by step instructions of what you need to do. So the very first thing that we're going to do is create some content. And in the process of creating content, we are going to learn how Drupal works in regards to content authoring. This is optional, but you can go to this website called LIPSUM, L-I-P-S-U-M. And you can generate random texts. So at some point, we will be entering a body or a description of the page itself. And instead of you watching me type a lot of things, I'm just going to copy and paste from here. This is L-I-P-S-U-M dot com. If you have some demo text that you use, that's also fine. Okay, let's start creating our first piece of content. Again, I'm just going to copy some of what I already have. Let's go to under manage content, click there. And we're going to see this blue button with a plus sign. Drupal tries to be consistent in the UI patterns. So anytime that you see a blue button with white text and a plus sign means that you can add something on that website, on that page. So in this case, this is the content overview page. And because of that, by clicking this button, we are able to create content. So let's click that. Now you are prompt for do you want to create an article or do you want to create a basic page? We're going to talk about the difference between the two in a moment. For now, let's create an article. So select article. And what we're seeing here is a template for the article content type. We are being prompt, a few things. First, the title of the page that we want to create. In this case, I'm just copying and pasting from my spreadsheet, from my document, but feel free to enter anything that you want. I'm also asked to upload an image. So I'm just going to drag and drop an image from my example here. You can click the browse button or just drag and drop from your operating system. When you, so the image itself is optional. You are not forced by default to upload an image. But if you decide to upload one, you are then required to provide what is called an alternative text. So this is used for many purposes. One of it is if someone who is visually impaired is visiting your website, they usually use assistive technology that read the page for them. But when that program that is reading the page gets to an image, usually they don't know how to read an image. So what they're going to read instead is what you provide in the alternative text. There are other reasons, but for the most part, this is important for accessibility purposes. So your alternative text actually needs to describe the image itself. Just don't put anything random just because it is required. In this case, it's an example and it's literally a blue rectangle. So I'm going to enter blue rectangle, but be mindful that again, this is actually being used for accessibility purpose and it is recommended to put something sensible that describes the image itself. Now, the body, this is actually going to be the content of the page. Again, just for go a little bit faster, I'm going to copy paste a little bit of text from that other website. And now we have the tags. We're going to enter the tags and then we're going to explain why they do and what you get out of the box in a moment. But for now, I'm just going to enter them. So my tag is going to be Drupal. You can have multiple ones and if that case, you separate them by commas. And in this case, I'm going to say minor release. So any, you know, you can have multiple words that the separator is going to be commas. So a quick overview. We are creating an article. You enter a title, you optionally enter an image, but if you decide to upload one, then you are required to provide an alternative text. You enter the body, which is the content of the page and at the bottom, the tags. Anything on the right, we are actually going to talk about it in a moment. For now, we're just focusing on the left part. Yeah, there is a question in the back. So tags are used for categorizing content. After we create three different pages, we are actually going to see how they are used. But basically for every tag that you have on the website, Drupal is going to create a new page with all the content that is tagged under that one. So imagine like a newspaper that they have different sections and different news. They can use this system to automatically create pages that list all the content on their specific tag. But it's for categorization of content. Any other question? Okay, so we're going to leave this published and I'm going to click save. So I want to show a couple of things. Do you remember what was the order in which we were entering content? First it was the title, then it was the image, then it was the body, and finally it was the tags. And now we are seeing the title, the image, the body, and the tags. The order is different. And it might not seem like a big thing, but the one part that I want to highlight is the fact that Drupal can collect information, but it is not forced to show that information to the end user. You can, let's say, collect 10 different piece of data, but only show five. Or show depending on permissions or roles. My administrators are going to see all of the pieces of content, but a regular site user is going to only see five or three or two. So you can decide based on permissions after the information is collected what each user is going to be able to see. Again, just to give a more concrete example, we are at a conference at the moment. For the conference organizers, it might be relevant to know how many people attended each session, but for us attendees, maybe we don't really care or maybe we don't really should know about that. So they might create a note that is like session and they store that information, but for regular users, we don't see it, but for administrators, they can actually generate reports from that information. But again, the information that Drupal collects can be different from what it shows and it can also be in a different order. Now, so this is our first note. Congratulations, you have created a page in Drupal already. Let's just start making some changes. Something that I just quickly went over is the body. In the body, we have what we call a WCWIC editor, what you see is what you get editor and imagine like it is like work, you can select text, add bold, italics, URLs and so on. Again, by default, you have some buttons, but you can install extra modules for extra functionality. You can install modules to provide third party integrations with other websites. Something that Drupal does out of the box, but it is not enabled out of the box is media management and in particular for the WCWIC editor, being able to embed videos from YouTube and Vimeo. So if you enable some extra modules that comes already with Drupal, you can have an extra button in here and by clicking on that button, you can embed a YouTube video or a Vimeo video. Again, Drupal is very flexible. Let's say that I'm going to just make that small change, put some text in bold, italics and a URL. I'm going to click save. That is reflected here and I'm going to do another change, but this time a little one that is going to be more disruptive. I am actually going to make a joke. Hi, little rooster. So if you see a rooster, it's actually the mascot of this conference. So I'm just going to start making a joke. I changed the title, I modified the image. I'm going to remove the text and say I was here and I'm going to remove the text and I'm going to click save. Now maybe little rooster was just playing a joke, but we don't want this to ever happen again. So there are a couple of things that Drupal gives you out of the box that you can do. For one, if something like this happens, like someone changes content on your website that they shouldn't have, Drupal has a system called revisions and it's basically a way to keep a history of every change made on the website and you can actually see who made the change, when and if you want, you can go back to a previous version. So after making some edits, if I go to the tab that is called revisions, I can see all the changes. In this case, it says it was made by Drupalcon on this date at this time. So the first thing is you know who made the change and when. Now you can also say that you want to revert the change. So if I click here and then click revert, now it basically does a copy of the previous version and if I go to view, everything is back in order. So this is enabled out of the box for every node that you create. You can disable if you want to, but I highly recommend to keep it enabled because it helps with accountability if someone does something that they shouldn't be doing. It's, you see there. Now after doing that, we're not going to do it as a demo but I'm going to explain to you. You can go to the list of users on the website and block them. If someone unauthorized or maybe they had permission but they did something like this and you want to block access to that account, you can disable the account fully and with that they will not be able to make further changes on your website. Okay, we are close to making our first break. So what I'm going to ask you is that, create one or two more nodes of type article. You know, it can take a minute or two and then we take a 10 minute break and then we continue. But before taking the break, I'm going to do it and if you can do it alone, just create two more pieces of content, yes. Okay, so the question is, if something like this happens and the administrator is like doing what I just did, like rolling back, reverting the operation, what happens if there was a different account trying to do the same or trying to update the content? So there are, again, modules that can help with that. There is one that is called content look. Basically, with that module enabled, you can kind of claim a node and nobody else can modify it until you submit your changes. You can also configure it to expire on time. For example, if I claim a node and they didn't save it in 24 hours, an administrator can unlock it. But for the most part, that is more like, you know, organization coordination, like if I am an administrator, this is what you can expect me to make some changes and it's not common that two people will be working on the same node at the same time. But for big websites like a newspaper with multiple journalists and editors and, you know, a whole department, you can leverage those modules that basically allow you to claim a node until you release it or until some time out lapses. So I have gone ahead and created three nodes. And again, I'm going to be talking a little bit about the Drupal behavior out of the box. So when you start creating articles, if you click on the top left for the site name, you are actually going to be taken to the homepage. And by default, and this is something that you can change, every article that you create, Drupal is going to add it here in reverse chronological order. So the last article is going to be the first on the list. Again, this is done for you automatically. And this is another example in which Drupal is able to show the same content that was collected in different formats, in different ways. Remember that when we see one specific article, you see like the full piece of the body and the image in full swing, like a big photo. If I am on the homepage, the body is actually shrink to a very, it's called a teaser, like a shorter version of it. And the image is automatically put on the top left with a circle. So again, that is default functionality. And in particular, the small image in a circle, it is provided by the theme. So Olivero, which is the default theme, is doing that automatically for you. If you're using a different theme, you still will get that teaser, but the image is going to be showing slightly differently. Now, there was a question about the text before. So you can see here below that I have, that I have these, where it says text, these links. If I click on it, Drupal is going to create a page that is going to show every piece of content under that tag. And you don't need to do anything special. That just happens out of the box. The last part that I want to talk about, this part of creating nodes, when we were creating and modifying them, we neglected the part on the right. There are many things that we can talk about this, but the one that I want to mention is this, if I go to visit the page, it says my domain, slash node, slash one. That one is called the node ID, or the NID, is the, every node has an identifier. It's a number, it starts with one, and then two, three, four, and it goes on as you create more pieces of content. What happens, a very popular website is going to have a lot of content, and for people it's going to be hard to remember, oh yes, go to my page, slash node, slash 1545. By the time that they get home, they forget, and they lose the opportunity to read the article. So you can have what is called a URL alias. So instead of going to node one, you can specify something that is easier to remember. On the right, under the URL alias section, you can put a slash and then what is going to be the URL basically. In this case I'm going to say Drupal dash 10 dash one dash five. It is customary that the aliases are all lowercase, and if you have spaces, you put dashes instead of the spaces, and you are required to start with a slash. So now by specifying that and clicking save, the URL is easier to remember. Drupal slash 10 slash one slash five, because that is related to the specific thing that I'm talking about here. You can put something different, but again, the URL alias is another way to access the same page. If you want, you can say node one still that is going to work, but most people use aliases just because they are easier to remember. So that's about content altering. We are going to continue, add more pieces of content, but before doing so, any questions so far? Yes? If you want to have a touch with comma, you can put quotes around it. Actually no, it's not allowed. Oh yeah, wait. Yeah, it's allowed, but it is still renders. I got confused because I actually put a comma and I was seeing the comma that's something that I normally don't do, but yeah, if you need to put a comma as part of the tag, just put it in quotes. And yeah, that caught me, of course, with the look and feel of the page. Any other question? Okay, if there are none, we're going to go again to content and add new content. And then this time we're going to select a basic page. And we're going to play the game of, find the differences. So can you tell me the difference between this and what we were seeing before when we were creating articles? Anything that is different? No tags, anything else? No image. And there are more differences, but yes, no tags and no images. So tags, excuse me, articles and basic pages are two different content types. The content type basically serves as a template to collect information. The template for articles says, I want to collect a title, I want to collect image, a body and a tags. The template for the basic pages, it says I just want to collect title and body. Again, the content type is a template of what information I'm going to ask the user to fill out. I'm going to click save here. This is just a welcome page with some random text. And I'm going to show other differences between the two, between articles and content types. I can see that page here, but if I go to the homepage, the welcome page is not there. So that is another difference. By default, articles get put in the homepage. Basic pages do not. Another difference. If you put very close attention, when you visit an article, you see this, that is called a tagline. A tagline says, who created the content, the user and the date. When we create basic pages, that tagline is not present out of the box. You can still force it to be there, but it doesn't happen out of the box. Similarly, you can force a basic page to be in the homepage, but that doesn't happen out of the box. Remember that content types are templates. They come with some fields that are going to be used for collecting information, and they come with some default behavior, like show the tagline or not, show the page in the front page or not. And there are more things. Again, like this is just a surface. There are more things that are attached to every content type and how they behave, but for now, just be mindful of that. So, okay, did I lose my content? No. If I go to the content tab, here is a summary of all the pages that exist on the website, and you get information about the content type. Let's say that you have 10,000 notes, but only five basic pages, instead of having to look through all of them, you can use the filters at the top to drill down per content type. So, let's say basic page, filter, and now you only see the basic pages. Now, we're going to spend the last couple of minutes creating a new content type from scratch. So, Drupal, out of the box with a standard installation profile, comes with basic page and with article. But this is actually where Drupal shines, being able to create a very, very flexible content model, and when you do that, you can organize the information that is stored on the website in very powerful and flexible ways. So, let's see how we create a new content type altogether. We go to structure, under manage structure, and then we select content types. In here, we're going to follow the pattern. Blue rectangle with plus sign for adding stuff. So, I'm going to add a new content type. The content type is going to be collecting information about events, so I'm going to say event there. And this is how you configure it. Remember that in both for basic pages and for articles, the very first thing that you are from is for a title. You can change that label, and you can change it here. Instead of asking for a title, I'm going to ask for a name, like add the event name. There are more things that we will not go over over every piece of configuration, but the ones that are relevant for the example, changing the title field label to name. Then in publishing options, I'm going to remove promoted to the front page. This is the difference between basic pages and articles. Basic pages have this enabled, excuse me, articles have this enabled, so they are promoted to the front page, and basic pages have it disabled. In the case of events, I don't want the event to go automatically to the home page, so I'm going to remove it. Another thing, remember that I said Drupal keeps a history of every change. That is this configuration, create new revision. If you remove it, Drupal will not keep track of changes. If you leave it enabled, it will keep track of changes. Now, in display settings, remember again, I talk about the tagline, who created the node and when this is where you control it. If you disable it, it will not be shown. If you enable it, it will be shown. And finally, in the menu settings, the nodes of this content type, do I want to allow the user to add them to a menu? Nope, I don't want a menu item for every event. I might create what it's called a view with a list of all the events, but it will be kind of weird to have 50 events on my website and all of them will appear in the main navigation. So I will disable this option. So just like to go over it again, the creating a new content type, the name is going to be event. In submission form settings, the title field label is going to be name. In publishing options, I disable promoted to the front page. In display settings, I disable author and date information. And in menu settings, I disable main navigation. I'm going to save and manage fields. The fields are the individual pieces of content that is going to be collected. Remember that we asked before, what is the difference between basic pages and articles? Articles allow you to collect an image and tags. Those are actually two extra fields. So what we're going to do is we're going to create a new field to collect what, that date of the event. So again, being consistent with the patterns, red, blue rectangle with a plus sign, we're going to create a new field. So let's click on create new field. And in here, we have a lot of options. Every piece of information is going to be stored with a purpose. In the case of a date, you can have validation in place. So let's say I don't want to allow dates in the past. If I'm going to create a new event, I want to enforce that the event is going to start in the future, just as an example. So in order to provide validation on multiple levels, Drupal asks you to define what type of information you want to store. So you can store email address. In that case, Drupal will validate that what people are entering is actually an email address. If they put, if they don't enter an ad sign, it is not valid, so Drupal is going to reject it. If you want to enter a link, if you want to enter a telephone number, there are specific fields for each of those scenarios and each of them is going to be bound to certain validations and formatting options. For example, if you want to upload images, you can say I want to force a maximum file size. I want to force a minimum or maximum resolution. I want to force only these two or three file types to be allowed. So in order for Drupal to be able to enforce those validation criteria slash restrictions, you need to choose the proper type. In this case, we want to store the event date. So that is what I'm going to do here. I'm going to select date and then for the label, it's just going to be the date. Click save and continue. And again, you need to tell Drupal what you want to collect and with that, Drupal is going to make some assumptions and configuration for you. In this case, for the date and type, I say I only want to store dates. In this case, I don't want to store the time, just the date. And how many elements you want to store? Let's say that for the sake of the example, we only care about single day events. So we're only to collect, no, date only, only one value. But we already saw an example of multiple value fields. Tax, with tax, we can enter multiple of them. So in that case, you can change this from unlimited to limited. Or let's say that you want to store phone numbers and just for some business rules, you allow up to three phone numbers to be stored. You can switch from one to three. And Drupal will enforce that no more than three elements can be added for the phone number. So again, you basically instruct Drupal what information you want to collect and Drupal will be able to basically enforce some rules around that. And if you think that you are done, not yet. There is still one more page. And this is something just to illustrate what I said before. Drupal is always changing. In version 10.2, which is going to be released in December this year, they are going to switch how this form works. And instead of having these multiple steps, everything is going to be in one page. So if you practice again in December with an installation, this may look slightly different, but under the hood, it's the same concept, it's the same functionality. The last thing that I want to mention is for an event to happen, it makes sense for the date to always be present. So I can say that I want to require this field. If the user is trying to enter a new event without specifying the date, Drupal is going to reject it. Again, this is part of the many validation rules that Drupal can enforce for you. Going to click Save Settings. And the last thing that I want to make here is modify the label for the body. When we were entering basic pages and body and articles, there was a body field. And we assume, maybe because I am biased and I have been doing Drupal for a long time, body field, wish week editor, a big rectangle to enter text. I assume this is what I'm supposed to enter the content of the page. But you can make changes even to that. Body doesn't make sense, maybe. We are talking about an event does an event has a body? Probably not. So I can change the label for the field body. I can click on Edit. And I change the label to Description. So now it might make a little bit more sense, like what is the event description or I can change the label to program. What is the event program and so on. Ultimately, what I want to show is Drupal is extremely flexible. You can make choices at the beginning. You can make changes down the road. And for the most part, except if you are deleting content, Drupal tries to prevent data loss at all costs. So just be mindful of that. And with that, I'm going to go to content again and I'm going to add a new content. And now, because we created a new content type, remember a content type is a synonym of a new template. Now I can select events. And from here, this is basically the instructions that I gave Drupal. Give me a new template, where the first thing that you ask me is name. So the event name, let's say Drupalcon.lyl, 2023. Description, this is happening in the fall. And the date, I'm going to try to save it without a date. And it doesn't let me. Drupal says you have a pending required field. By default, this theme uses a red asterisk to mark anything that is required. So I need to enter a date. And by doing so, I am allowed to create a type itself. Any questions about that process? Creating a new content type, a new field, a new node of that type? So we're almost at time. So I am actually going to switch to the other, the full example that I have prepared, just to go over a little bit of the other concepts that we talk about. So this is the welcome page. This is a basic page as we saw before. News, these are the individual articles that we created before. And what I did was create a view. The view is a listing of nodes, or a listing of users, or a listing of files. Anytime that you need to list something in Drupal, very likely it is going to be via views. Views is a way to list different pieces of content on your website. You can list comments, users, files, tags, and so on. So in this case, I created a view for showing the articles. I created another view for showing the events. Something that I want to demo quickly. Remember that I said that you can change your mind and make changes down the road. Let's see how many clicks I need to change, I need to do for changing this to a table. So any guesses, how many clicks to change that presentation to a table? Two clicks, okay. Very optimistic, any other guess? Ah, three, okay, sorry, three. So let's see how we change that. I mean, this is, again, just a demo. Views, there have actually been full day workshops for view, so I just want to use this as a demonstration of what you can do and to see the flexibility of Drupal. If I want to change this to a table, I make one click in the format section. Two clicks for table, three clicks for apply, four clicks for another apply, and one more click for save. I can go back to it, but basically in five clicks, I can change the whole presentation of the page. And again, this is flexible. You can show a table and show, like a header row, you can make that table configurable. You can make the headers clickable so people can filter them. But for the most part, what I wanted to demonstrate is that with relatively small effort, you can radically change the presentation. And the information is the same. The information that was collected remains the same. What we did was modify how it is presented. And that is one of the flexibility of Drupal. And for that matter of any CMS, once you collect the information, you have flexibility in the way that you present it. And the last part here is the contact form. This is something that Drupal provides out of the box. In the Drupal installation, the page exists, but it's not present in the menu by default. So what you need to go do is go to a structure and menus, and that is called the main navigation. And in here, you basically can enable, disable, you can reorder stuff, you can add new elements to the menu. Let's say that I have an about us page that is very important. I want to put that in the navigation. I come here, I click at link, and I provide that information. Now, to wrap it up, I want to mention a couple of things. Drupal is like Onions, have you seen the movie Shrek? So in the movie, they make a reference of ogres being like Onions in the sense that they have layers. So Drupal have layers. So in one hand, you have the nodes, you have the fields, you have the content types, you have the blocks, you have the users, you have the views, you have the menus, and so on. There are many different concepts that Drupal uses to put together a website. And the reference to the Onions is that they are mixed in one single page. Like in this page that I'm, let's go to the event. This page is a view. The view is showing nodes. The node is showing different fields. As part of the page, I have a blog showing me the menu items. So even though it is a single page under the hood, it can be three, four, five, 10, 50, different concepts working together. So it is very important to understand those concepts. What is a node? What is a content type? What is a field? What can I do with a view? What is a blog or a menu or a user? Because when you are putting together a website, if you know that you need to modify a view, you go to the page for modifying views. If you know that you need to modify a content type, there is a different page to modify content types. So basically developing that instinct of recognizing or identifying, oh, this is a view or a page or a content type or something else, will let you make the changes that you need to do to the website. So for example, if I go to a structure, here I have changes for blogs, for comments, for contact forms, for the content types, for menus, the tags that we were talking about before, they are under taxonomy. The views that I show for listing of information is here. And again, like you can go, if you want to change the appearance, that is a different section of the website. If you want to change the modules that are enabled out of the box, that is a different page on the website. So it is important to play around with Drupal and see how you can, you know, see and understand what are the different bits and pieces that are put together in order to assemble the website as a whole. As I said before, those websites that you were working on today, they are going to be available at least for a month. So feel free to continue playing with them and you can go to the demo site to use it as a reference. Again, there is a presentation. Let me give you a website just for reference. This is actually very useful. There is a website called Drupal.tv and this is similar to YouTube, but only for Drupal. So events like these are actually being recorded and the presentations are later uploaded to YouTube. And in this website you can search for literally thousands of presentations. There is one that is called Understanding Drupal. That session is the companion of this workshop, Understanding Drupal or you put my name and it is going to appear. And in that session, again, I also cover these different building blocks. And just to remind you, the longer version of this presentation is going to be available at UnderstandDrupal.com. There is a quote that I want to share. A great way to learn something is finding a working example and breaking it on purpose. That is how I learned Drupal. Like I look for a video recording or for an article that explains how to do something and try to replicate it and then try to break it on purpose to get familiar with the errors. So the next time that I see that error, I might have an idea of what was the cause. And this was says by me. So that's not a very good quote. So this one is even better. This is actually from a real author, Leah Burrow, author of CSS Secret says that understanding the process of finding a solution is far more valuable than the solution itself. So many times we want to take shortcuts like, oh, I want to add this link to the page but we don't understand that that link came from a note or that that link in that section of the page is actually a block. So I urge you to get familiar with the concepts and not only with the solutions because when you get used to like how Drupal works and I start thinking in how Drupal assembled pages, you will not only be able to solve that problem but also come up with other approaches to do what you need to do. And thank you very much. We will have opportunities to help move the project forward with mentor contributions, first time in Sprinter workshop or if you are already a developer or a tester or a designer or someone who knows another language and wants to help translate Drupal, there is also a general contribution opportunity. So please join us on that different dates and fill out the survey. And thank you very much. I will be around for questions but otherwise enjoy Drupal.com. Yes, yes. So the question is about translations and in particular about translating the alternative tech for images. As a reference, I would recommend that you install Drupal using Umami because this is actually a good example of a multilingual website but just to give you an idea of what you're asking, if I go to extend, the multilingual modules are disabled by default but you can enable them. I'm going to enable all of them but the one that you need is called content translation but I'm just going to enable all of them. When I, that is in the extend tab, I enable the modules, click install. When you have the modules enabled, then you have the option to translate many things. So let's say that I want to translate content. Content is the equivalent of notes. So this is the configuration of what I want to translate. Okay, I want to translate articles, events and basic pages. Let's say for the example that I only want to translate articles. And then what fields from the article content tab do you want to translate? Do you want to translate the image? Yes. Do you want to translate the alternative text for the image? Yes. So when you enable the modules and then basically you stop from the top. I want to translate content, yes. Of which content type of type articles of which, what fields, these fields. And if some fields have like what they are called soup fields, you can decide if you can, if you want to allow translation of those features. And when you do that, if I click save here and go to one of the articles that I already created, I will have the option to translate. I think that I actually need to do one more thing. I need to add a language because otherwise there is no, in configuration, you go to languages and then you add a new language. Let's say French. Add language. Drupal is actually going to download translations. So if you want, you can switch the interface to French. But after doing this, if I go to the, actually I think I don't need to wait. Yes, so you are mentioning something very specific that is called media. If you're talking about the media module, that is another entity. If I had the media module enabled, in the same way that I was able, let me look for it. Actually, let me show you. If I enable the media module, after enable the media module, I will have the option to translate media. So yeah, because I enabled translation, now it is downloading translations for the module itself. So it's going to take a little bit longer. But this has to do with how you configure your site. The example that I was showing is a field, an image field attached to a content type. What you are saying is translating media entities. There is a completely different entity. So first you enable it, and then same deal. What do you want to translate? Oh, I want to translate image. What fields do you want to translate the image field? What is the alternative text dialed? So I didn't think of it because this is something that doesn't come enabled out of the box, but it is possible. The only thing to remind is that media is a different entity than notes. So it will require you to go to configure like in a different part of this page, but it is possible. You're welcome. Any other questions? Well, if not, thank you very much. Since we have to do this, what do you think which one is the next release so that we can go to the next page? Well, so, yeah, yeah, yeah, yeah. So a few recommendations. In general, there are like three areas in Drupal. Site building, which is what we covered today. It's basically using the Drupal interface to build a website. There is theming, which is actually theming that is changing the look and feel of the website with a little bit of code. And then module development that is extending functionality, again, writing code. So depending on your interest, you might want to choose sessions that are related to site building, to module development, or to theming. And for the most part, that is a personal choice. When I started, I learned a little bit of everything to get a sense of how Drupal worked in general. But then I specialized in backend development. So in module development. And then I specialized in even more niche things like migrations. So I do a lot of migrations and upgrades. So I would recommend that, you know, between site building, module development, and theming, what is that interest to you the most and look for sessions in that path. And another recommendation is that when I went to my first DrupalCon, I wanted to fill out my day with sessions all the time. But actually, the benefit of being in person in an event like this is making connections. So I would highly recommend that you skip some of that session slots and just like talk to make connections. There are some sessions that are called BUFF, Versa for Feather. Those are more informal. Instead of just a speaker giving a lecture like I did today, it's like, okay, let's talk together. Like let's be in a room and talk about something in common. And those are actually very useful for like making connections with people that are interested on the same topic as you. So I would recommend like go to some sessions between those three that interest you. Go to BUFF, one or two at least. And there are also like social events happening. I personally don't drink. So at the beginning I was reluctant of going to those events, but I found out that you don't have to drink to be there. And again, that's another opportunity to make connections with people. So that's my recipe. That is what I wish I had known before. Like do not fill out your day with just sessions. Like try to actually meet people and make connections because that is what's going to help you down the road. Yeah, you're welcome. Enjoy. Thank you. Yeah. So great to be here for the events. So did you add an image to the events? So can you click on edit? Okay. So let me explain what happens if you go to here, but there are multiple ways, this is super flexible, but there are multiple ways in which Drupal presents content. The two most common ways are using what it's called a view mode or fields. You either show view modes or fields. In this case, it is configured to show view modes. When it says show content teaser, this is a view mode. So can I change that to include a thumbnail in the listing? Yeah, so if you change, click on show. Here? Yeah, click on show. And if you click to fields, this is one way, like there are other ways, but this is one way the way that I show my views for the events, it was actually showing fields. Okay. And you click apply. And now, you have at the moment only the title, but then you can say add and look for the image, and then you will add it. Every image. Here you can select the size, like by default, do you want to show it the full size? Oh yeah, the thumbnail. Do you want to link the image to the image itself or to the node or to nothing? So that will link it to the page, the node? Yeah. So if you click save, actually you will have a preview there. This is how it's going to look like. Yeah, we have a triple set. So we need a migrate from seven to 10. So, but when I joined, we didn't have really line aside anything in the back end. So we're kind of like, we don't make that platform, but we also have to have a steep learning. So it might be a designer in my background. But it's mostly like it wasn't in Drupal. It was in other platforms. It was in the way it prices up a bit. So it's a little bit of a learning curve. Yeah, I would, like that session that I talk about, it's called understanding Drupal, it goes over more concepts that we were able to cover today in terms of concepts in general. Yeah, it doesn't wanna add a theme and stuff like that. Yeah, yeah. And if you go to udrupal.com, I want to show you something else. So this is the website that I was talking before. If you are completely new to migrations and upgrading, this course, it's free. You can read it online and it covers like basically the same of this workshop, like the basics of Drupal. This covers the basics of the migration system. And I am actually partnering with another organization to create something like this, but specifically for migrating from Drupal 7 to Drupal 10. So at some point in the future, we are still like preparing that about three months, right? It's interesting. We have to platform, re-platform like the coming year, like things just with the end of the month and stuff. Yeah, yeah. So the idea is to have that available as well. Sorry. Yeah, I actually, my specialty is migrations and upgrades. So that's why I write a lot about that topic because I've been doing that like for five years, almost full-time. Okay. Yeah, you're sick of it. Thanks very much. Yeah, you're welcome. Thanks for coming.