Skip to content

Commit

Permalink
added baby elephant and notes to every slide
Browse files Browse the repository at this point in the history
  • Loading branch information
Frank Anderson committed Apr 25, 2017
1 parent 7e4526c commit f3f190f
Show file tree
Hide file tree
Showing 7 changed files with 175 additions and 4 deletions.
Binary file added content/images/babyele.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 22 additions & 1 deletion content/slide-100.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
- No more module disable, uninstall or die
- Enable developer mode https://www.drupal.org/node/2598914
- Nice thing is that there is lots of information available already for Drupal8 the problem is that there is lots of bad information available for Drupal 8. Check your sources and do not expect everything you read to actually work. Even d.o documentation can be out of date. poll module example.
-

---

::: slide
Expand All @@ -30,6 +30,17 @@
- Custom Development
- Content strategy

>>> notes
- Considerations Building with Drupal 8
- Architectural differences
- UI Changes
- Module availability
- Specifically What needs to change
- Architecture
- Custom Development
- Content strategy
>>>
:::

::: slide
Expand All @@ -42,4 +53,14 @@
- Enable Developer Mode
- Beware of online sources

>>> notes
- General Drupal 8 Considerations
- devel kint debugging DO NOT USE KUMO it doesn't work on real objects
- no longer cache clear now cache rebuilding
- No more module disable, uninstall or die
- Enable developer mode https://www.drupal.org/node/2598914
- Nice thing is that there is lots of information available already for Drupal8 the problem is that there is lots of bad information available for Drupal 8. Check your sources and do not expect everything you read to actually work. Even d.o documentation can be out of date. poll module example.

>>>
:::
36 changes: 36 additions & 0 deletions content/slide-110.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
- Form View Modes
- All that stuff I said about being able to display content in different configurable ways now also applies to forms with Drupal 8. So, as an example, let say you have a very complicated user registration form because your client wants to collect a bunch of information about the user, but none of it is required. Now you can create a new simplified form for adding users. You can do this in the UI in Drupal 8.
- New field types (entity reference, link, telephone)

- Things to google (many have been backported to Drupal 7)
- Composer support
- Toolbar update (Navbar in Drupal 7)
Expand All @@ -39,6 +40,23 @@
- View Modes
- New field types (entity reference, link, telephone)

>>> notes
- I am not going to give you an exhaustive list of new Drupal 8 features and in the end I will just give you a list of things to google.
- Configuration Entities
- I am not going into detail about them other than to say generally that the configuration management initiative changed so much with regard to developing and deploying Drupal. All for the better. If you are committed to stick with the db-sync workflow, it still works with Drupal 8 but really learn as much as you can about configuration entities and what you can do with them. Really this could be a talk or two on this, and I don't have the time in this talk to do them justice.
- I will say that configuration entities gives drupal a place other than a random variable to store configuration and keeps developers from having to manage a bunch of tables if they needed something more complex than a simple variable could offer.
- Blocks
- Blocks now function much like nodes insofar as they are full fledged entities with bundles and fields.
- Blocks still have an Achilles heel in that they are both content and configuration. The content lives in the database and isn't easy to export and sync and the placement of the block is configuration and is easy to sync. This can lead to embarrassing deployment gaffs. Where the placement of a block that doesn't exist is possible. Here is a good article about avoiding that. http://valuebound.com/resources/blog/how-to-sync-blocks-between-different-environments-a-drupal-8-website
- Display Modes
- Content View Modes
- If you used the entity view modes modules or display suite to provide view modes for content types and such, then you should already be familiar with this. If you don't know what view modes are, they are ways for providing different ways to display the same content. So for a node we could have a teaser or a full view mode or a grid view mode. Basically anything that the design called for. These existed for content in Drupal 7 but they required a contrib module such as entity view modes or the display suite module to configure them without code. Drupal 8 gave a full fledged UI to work with.
- Form View Modes
- All that stuff I said about being able to display content in different configurable ways now also applies to forms with Drupal 8. So, as an example, let say you have a very complicated user registration form because your client wants to collect a bunch of information about the user, but none of it is required. Now you can create a new simplified form for adding users. You can do this in the UI in Drupal 8.
- New field types (entity reference, link, telephone)

>>>
:::

::: slide
Expand All @@ -53,4 +71,22 @@
- Content Moderation
- etc...

>>> notes
- Things to google (many have been backported to Drupal 7)
- Composer support
- Toolbar update (Navbar in Drupal 7)
- Responsive Image Styles (Picture Module in Drupal 7)
- File Entities
- RESTful api
- Experimental Core Modules
- Content Moderation
- Workflows
- Field Layout
- Migrate Drupal UI
- Place Blocks <- outside in
- Switching to semver should allow for smaller backward compatible changes.
- Testing infrastructure should ensure backward compatible changes are backward compatible. The DA infrastructure team has made this a reality..

>>>
:::
23 changes: 22 additions & 1 deletion content/slide-120.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@

**Good News!** Not much has changed significantly in the UI. I guess that could be bad new too.

>>> notes
- This is going to be brief, mainly because the UI changes are minimal.

>>>
:::

::: slide
Expand All @@ -25,6 +30,11 @@

New Drop down thingy for selecting what we are doing to a thing.

>>> notes
- One change is Operations now go in a drop down with the maybe most common one first? Really I don't know how that was chosen so if someone here does know please tell me afterward.

>>>
:::

::: slide
Expand All @@ -37,12 +47,23 @@ Multiple entity form settings on the Manage form display page, this includes fie

The "Manage Fields" page is now only about managing what fields are on a entity/bundle and how they are stored.

>>> notes
- Another change you will find between D7 and D8 I have already hinted at with the Form View. If you have a alternate node form then you will find the option for editing that form view in "Manage Form Display" section. This also means that controls for the form widgets are configured on the form view display settings and not the "Manage Fields" page. Mange Fields is now entirely about the field and its storage.

>>>

:::

::: slide

#### Good news about learning curves

!(The Drupal learning curve)[http://www.freshform.com/blog/wp-content/uploads/2013/02/learning-curve.png]
![The Drupal learning curve](http://www.freshform.com/blog/wp-content/uploads/2013/02/learning-curve.png)

>>> notes
- Good news, there are fewer changes for site builders who are coming from Drupal 7 to worry about. Bad news is for someone coming from not Drupal the perceived Drupal learning curve could be intimidating.

>>>
:::
40 changes: 38 additions & 2 deletions content/slide-130.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,13 @@
- Didn't bring this module up in the modules used because we didn't use it, but this is a really cool module. This module has the ability to supplant the functionality of flag and organic groups. It adds the concept of entity endpoints which allow us to make fieldable relations between entities. In the example of this LMS that entity would have all the fields for the response, an endpoint for the paragraphs item (renamed paragraph revision for Drupal 8), and an endpoint for the user.
- I have used this module for saving user state in js apps and for keeping track of users completion status for resources in custom Professional Development portals.
- Fund the development of a stable release
- While I do encourage finding alternatives, at this state in Drupal 8 development I would encourage us to choose the final option because frankly aside from the comment module none of the above options are any more stable than eform and more importantly Drupal 8 needs more stability in contrib .
- While I do encourage finding alternatives, at this state in Drupal 8 development I would encourage us to choose the final option because frankly aside from the comment module none of the above options are any more stable than eform and more importantly Drupal 8 needs more stability in contrib.

- Second problem
- Paragraphs doesn't want me to reference paragraphs
- It is possible, but requires use of the EXPERIMENTAL field widget. The main reason this is EXPERIMENTAL is that the paragraphs modules is not mean to be used to reuse content, that is more of a function of blocks. I spent more time on this than I would have liked, due to some of Drupal 8's UI changes that I didn't fully understand. But it turned out to be a non-problem.
- In this case the problem wasn't the module but my own unfamiliarity and over confidence. The answer was staring me in the face.

- So we do have an elephant, but it is just a baby elephant.
---

Expand All @@ -26,6 +28,12 @@

![elephant in the room](http://68.media.tumblr.com/06a363a56c82b78b55dd9dc52df72174/tumblr_o2k1xwmoN91ritmyro1_500.jpg)

>>> notes
- Module Availability
- Lets acknowledge the elephant in the room.

>>>
:::

::: slide
Expand All @@ -38,6 +46,21 @@
- Relation module
- Fund the development of a stable release

>>> notes
- Big problem with my re-architecture exercise.
- EntityForm is not supported on Drupal 8
- There is a discussion about whither or not this module is necessary. I of corse believe the module is necessary. However, this doesn't make the module stable today. The module works well enough for this experiment, but if this where a full client project we would have to explore some options.
- Find an alternative
- Comment module
- Contact module extras
- Relation module
- Didn't bring this module up in the modules used because we didn't use it, but this is a really cool module. This module has the ability to supplant the functionality of flag and organic groups. It adds the concept of entity endpoints which allow us to make fieldable relations between entities. In the example of this LMS that entity would have all the fields for the response, an endpoint for the paragraphs item (renamed paragraph revision for Drupal 8), and an endpoint for the user.
- I have used this module for saving user state in js apps and for keeping track of users completion status for resources in custom Professional Development portals.
- Fund the development of a stable release
- While I do encourage finding alternatives, at this state in Drupal 8 development I would encourage us to choose the final option because frankly aside from the comment module none of the above options are any more stable than eform and more importantly Drupal 8 needs more stability in contrib.

>>>
:::

::: slide
Expand All @@ -47,10 +70,23 @@
- It is possible, but requires use of the EXPERIMENTAL field widget.
- In this case the problem wasn't the module but my own unfamiliarity and over confidence. The answer was staring me in the face.

>>> notes
- Second problem
- Paragraphs doesn't want me to reference paragraphs
- It is possible, but requires use of the EXPERIMENTAL field widget. The main reason this is EXPERIMENTAL is that the paragraphs modules is not mean to be used to reuse content, that is more of a function of blocks. I spent more time on this than I would have liked, due to some of Drupal 8's UI changes that I didn't fully understand. But it turned out to be a non-problem.
- In this case the problem wasn't the module but my own unfamiliarity and over confidence. The answer was staring me in the face.

>>>
:::

::: slide

![Baby Elephant](https://cdn-images-1.medium.com/max/800/1*YDxL6IOZW0LYTPLnggSvlQ.gif)
![Baby Elephant](/content/images/babyele.gif)

>>> notes
- So we do have an elephant, but it is just a baby elephant.

>>>
:::
22 changes: 22 additions & 0 deletions content/slide-140.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

- Architecturally the site remains the same
- The site has the same features and the same modules are available to provide us with the same architecture and content strategy.
- It won't always be like this. But if you put the work into making sure you have a good content strategy in the first place it will be less likely that you will have to completely re-architect a site when you move platforms. This is why content strategy is important.

- The largest change is the addition of developing a stable release for whatever we use for the response saving.

Expand All @@ -19,6 +20,15 @@

**Not Much**

>>> notes
- What needs to change?
- not much
- This site works more like a an app than a traditional site, this means we have slightly different expectations when choosing a Framework.
- Drupal was chosen for its scaleability, strong user centric or permissions based content model, high quality contrib space, and familiarity. As I said before I have been doing drupal professionally for close to 10 years, so I am very familiar with the project, community, and workflow. However, I am constantly looking into other technology and I have built things with other tech when Drupal isn't the best choice, so this isn't a statement coming from the island.
- Drupal 8 has lots of new Features but the biggest advances have been in underlying architecture (with the content/config entity system) and development workflow (with the switch to Semantic Versioning).

>>>
:::

::: slide
Expand All @@ -32,6 +42,13 @@
- Same Architecture
- Same Strategy

>>> notes
- Architecturally the site remains the same
- The site has the same features and the same modules are available to provide us with the same architecture and content strategy.
- It won't always be like this. But if you put the work into making sure you have a good content strategy in the first place it will be less likely that you will have to completely re-architect a site when you move platforms. This is why content strategy is important.

>>>
:::

::: slide
Expand All @@ -40,4 +57,9 @@

**Biggest Changes**

>>> notes
- The largest change is the addition of developing a stable release for whatever we use for the response saving.

>>>
:::
35 changes: 35 additions & 0 deletions content/slide-170.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,13 @@

This is where the largest changes where made.

>>> notes
- Custom development
- This is where the largest changes where made, but maybe not where it was expected.
- In Drupal 7 we accomplished the HULK SMASH part, where we smash the form from the entity form into the display of the paragraphs item, with a hook_entity_view_alter implementation coupled with a hook_form_alter implementation. In Drupal 8 with its Object Oriented Architecture I was able to accomplish it in the exact same way.

>>>
:::

::: slide
Expand All @@ -38,6 +45,12 @@ This is where the largest changes where made.

![Incoming Transmission](http://i.imgur.com/vj1IG.gif)

>>> notes
- "But Wait" you say, "Drupal 8 is OOP we aren't supposed to put stuff into the .module file anymore. That is just there for decoration!"
- Oh no, the joy of modifying aspects of the program with hooks is not gone in D8. Hooks are good things, and even though Drupal is want to change things with new version and add modern development practices to Drupal, Drupal also isn't going to ditch what is likely the most flexible pattern of php development just because it stepped in some OOP.

>>>
:::

::: slide
Expand All @@ -46,6 +59,14 @@ This is where the largest changes where made.

But all good!

>>> notes
- The Object Oriented Architecture is designed to make common things easier.
- For example.
- When building this with Drupal 7, we had to reimplement parts of the form builder from the entity forms module in order to display entity forms programatically. This was likely due to the incomplete nature of the entity api in Drupal 7.
- In Drupal 8 the entity api is far more flushed out. We still use Entity Field Queries to get the EntityForm Submission for the current user and the current paragraph revision, but this time Drupal has an api for creating the empty EntityForm submission object if the user has never submitted. And it has an interface for building forms for Entities, new or old. Thus we can get a form for a new entity in the same way we get the form for the old entity, with all the right fields filled in.

>>>
:::

::: slide
Expand All @@ -64,6 +85,12 @@ $form = \Drupal::service('entity.form_builder')->getForm($submitted_eform);
$build[] = $form;
```

>>> notes
- To build a new entity, this could be a node, eform_submission, or comment, We user the Drupal::entityTypeManager class and call the create method or to load an existing one we use the same class with the load method and the entity id.
- Then we user the entity form builder service to build the form for the entity. I tested this with nodes as well. It is the same generic interface for all content entities.

>>>
:::

::: slide
Expand All @@ -74,4 +101,12 @@ $build[] = $form;

![Incoming Rainbow](http://i.imgur.com/KP6cR.gif)

>>> notes
- No more Drupal 7 non-existent entity api
- Drupal 8 has intelligent use of OOP that makes site building easier
- Over 100 lines of code in reduced to under 10
- Mind Blown

>>>
:::

0 comments on commit f3f190f

Please sign in to comment.