All RPGs and Storygames by Tod Foley are now available at DrivethruRPG and RPGnow. Bring these games to your table!
H1Z1 developer Daybreak Games is ending support for the online survival game after circumstances led to the game being unsustainable. ...
OPTASY: 10 Drupal SEO Mistakes You Do Not Want to Make on Your Website: From Least to Most Harmful- Part 2
You've put so much effort into crafting and polishing the content on your Drupal website and it just won't... rank? Why is it that search engines' web crawlers won't index its “juicy” content? Why they won't give your site a big push right to first-position rankings? As it clearly deserves... Could it be because you're making these 10 Drupal SEO mistakes?
Knowingly or just recklessly...
Impromptu rock 'n' roll trip to Gamescom - the story of an indie studio looking for a publisher - by Gustav Dahl
How can developers improve the quality of Development by saving time and effort? In this blog, we discuss about the advantages of efficiently using git and by setting the local environment with Lando or Docker instead of the traditional way.
Upgrading involves shifting lots of files and content from one site to another. Although there are a number of modules to help you migrate to and in Drupal, the process can turn out to be messy.
Migration of content can have various meanings and the scope of file formats - JSON, CSV, spreadsheet or text files - is also important.
In this article, I am going to demonstrate the migration of taxonomy terms using CSV files to Drupal 8. Thanks to Drupal’s entity-based system, the process of migration is more or less similar for all kinds of entities. Once you master the migration process, you can easily migrate nodes, users, vocabularies and custom entity data.
You can use various modules for migration to Drupal 8.
Drupal 8 core provides the Migrate and Migrate Drupal modules which are useful when migrating from Drupal 6/7 to Drupal 8. In other cases, we have to use contributed modules. Install Migrate Plus which provides a powerful API for data migration from CSV and spreadsheets and is one of the foremost dependencies.
We will take a sample use case of the States list where our taxonomy terms will be the States' list. Let's get started.
- Download the Migrate Source CSV module and install it on your Drupal website. Use Composer to install all the required dependencies.
- Enable the module from Extend menu or Drush Command.
- In this example, I am going to migrate the USA States data. I have already created a vocabulary as ‘States’ with fields Name (Default Field in Taxonomy) and State Code (the abbreviation).
- Prepare a CSV file with Headers containing Fields Name and also add an ID field which will act as a unique identifier and can also be later used in migration in case States vocabulary is used by a reference field. Here is the CSV which I have prepared:
COand so on.
- Next and the most important step is to write a migration plugin which is a .yml file describing the mapping between data in CSV and Drupal Fields.
Here is the migration plugin which I wrote: id: state_data class: null field_plugin_method: null cck_plugin_method: null migration_tags: - 'USA States' migration_group: default label: 'State migration from CSV' source: plugin: csv path: 'public://USAStates.csv' header_row_count: 1 keys: - id column_names: - id: id - title: state - abbreviation: abbreviation process: name: title field_abbreviation: abbreviation destination: plugin: 'entity:taxonomy_term' default_bundle: state migration_dependencies: null I have provided a Migration ‘id’, ‘class’, ‘field_plugin_method’, ‘cck_plugin_method’. ID acts as a unique identifier for the migration process. Rest of keys mentioned above aren’t needed in this migration.
Other keys and their importance:
- Migration Tags: These are displayed as a description in migration UI.
- Migration Group: It is an important field in case you have various migration processes. I have used the default group for this migration.
- Label: It is also a description field for the migration displayed in Migration UI.
- Source: It is the important key and we provide type of plugin i.e CSV in our case, path of our CSV file, Header Row Count so that migration API is able to distinguish between Data and Labels, Key i.e the unique identifier in CSV file.
Next, we have a mapping of columns in CSV with temporary identifiers which are used in process key. Process key defines mapping with Drupal field and a temporary identifier in format (Drupal Field: Temporary Identifier).
- Destination: This key is used to provide the target entity and bundle if any. Since we are migrating terms data so I have used ‘taxonomy_term’ and bundle ‘state’.
- Migration Tags: These are displayed as a description in migration UI.
- Once you have created the plugin, it is time to inform the system about. Migration plugin can be imported via Single Config Import menu (/admin/config/development/configuration/single/import). Paste your plugin with config type ‘Migration’ and press import.
Once you have imported the migration plugin you can run the migration process via UI or drush command.
UI: Go to /admin/structure/migrate and under the list migration menu, you can execute the migration process for the respective migration type.
Drush: Enter the drush command ‘drush mi state_data’ where state_data is the unique ID of the state's migration.
Once the migration process is complete all the Terms are created and the abbreviation field is populated as well.
You can rollback, resume and stop migration from Migration UI as well in case something goes wrong or you have some extra data to migrate later on.
In case you have to do any changes in Plugin after importing it, you will first have to export its config file from (admin/config/development/configuration/single/export) and then import it again.
And it is done!
That is how you can migrate content from a CSV file to Drupal 8. Drop a comment below in case of a query.blog banner blog image Blog Type Tech Is it a good read ? On
Three days from the time of this article going live, I’m going to be running a one-shot adventure at my FLGS at their first attempt at running a one-day convention at the store. I honestly hope the con goes well, so that they’ll consider expanding it to a larger venue, more days, etc. I also hope my game goes well, but I have a concern. At this point, I’ve been told that my game slot will be either 2 hours long … or 3 hours long. Bah. One hour difference. Not a big deal, right? Well, if I were being told that my slot would be 5-6 hours, I can work with that. However, potentially losing one-third of my time allotment at the last moment, I have to do some planning for both time allocations.
This got me to thinking about how to seamlessly, and on the fly, drop a full third of my adventure plans on the floor and not have the players notice. As most of you know, I’m a fiction author, so I tend to gravitate to those arenas when I think about things. Here’s what fell out of my head:One-Shot Game Time Fiction Equivalent Less than 1 hour Flash Fiction 1-4 hours Short Story 4-8 hours Novella 9+ hours Novel MICE/MACE Quotients
So, with the above table in mind, I’m looking at telling a collaborative short story. Cool. I can handle that, but how do I tackle unbolting a plot hook or encounter and throwing it away, but still give a consistent and pleasing game experience? In my world of writing fiction, there are two similar ideas floating around in how to structure and build out a short story. One is from Orson Scott Card and the other is Mary Robinette Kowal’s alteration to Card’s idea. Card came up with the MICE Quotient, and Kowal flipped one thing around to make it the MACE Quotient. I’m not going to dive into them here, but you can easily follow the links for your own research.
Now I’m going to present a new twist on both of the above, but with a focus on designing role playing game adventures. While I’m mainly focused on one-shot adventures here, I really believe the pacing, structure, and ideas packed into a longer adventure (or series of adventures) could benefit from this idea.LACE Quotient
Thus, I present to you, gentle reader, the LACE Quotient:
- Locations – Where things happen.
- Asks/Answers – Choices the PCs must make.
- Combats – Rolling dice, lots of dice!
- Events – Traps, riddles, non-dice-based social encounters, etc.
Let’s break down each one of these segments.Locations
This one should be obvious, but I want to make sure we’re on the same page. Some folks consider a single map to equate to a single location. Yeah. I can see this. It’s true. However, I challenge you to drill down to tighter view. Make each room its own location. This allows for more fine-grained tuning to an adventure. You can keep some rooms (that may be important to the plot), but alter or drop other rooms that have little to no bearing on how things turn out at the end.Asks/Answers
Left? Right? Straight? Each time the party has to stop and make a choice, the time dynamic at the table shifts. Some groups act like well oiled machines and always go left (Law of Left) or right (Rule of Right), so these ask/answer situations resolve quickly. If you’re thinking about putting in a dead end or red herring section of a cave system, think about all of the choices the players have to make. Perhaps there’s a chance to cut or add choices depending on the time limits you are working with for your one-shot.Combats
We all know that this is where the game clock and real world clocks fall way out of sync. Six seconds of game time may pass, but in our real world, it could take six minutes to get through it. Streamline your adventure to reduce unnecessary combats if you’re tight on time. Heck, if you are given more time than you need, perhaps that empty room could suddenly spawn a few orcs (or dirty kobolds) just before the party’s dwarven barbarian kicks in the door. Think about the special powers or abilities the mooks have. Perhaps save the spiffy abilities for the Big Bad Evil Guy (BBEG). The more specials they have, the longer it will take for the combat to resolve.Events
This is my generic catch-all for the things that don’t fit neatly into the above categories. In this bucket you’ll find things like traps, riddles, social encounters, weather events, and so on. These are things that take time to work around, get past, push through, or describe. Honestly, these are the fun things of adventures, so I recommend having more events than the other areas, but without a location, the trap has no place to hide. You’ll need locations just as much as you do events.Where’s The Math?
So … I called this a quotient, and closest definition I could find for this approach reads, “a degree or amount of a specified quality or characteristic.” Well, I hate to break it to you, but there’s no straight application or formula where you’ll plug in your L, A, C, and E areas and get a time result. That’s just not possible.
My approach is to figure out how long I think it’ll take to describe a location and allow the PCs to interact with it. I do that for each room, not each map. Just in case they are the types of players that must explore every room, I add it all up. Larger, more ornate, more detailed locations will eat more time.
Then I figure I’ll add in another 2 minutes for each of the small ask/answer sections. These are the right/left type of ask/answers. For the larger ask/answer sections (such as strategizing about “do we use the back entrance or charge the front door”) I’ll allot roughly 5 minutes for each of those. When I’m actually running the game, I’ll keep a strict eye on analysis paralysis and call a stop to the debate if necessary. I hardly ever do that in my regular games, but in a con game, I’m on the clock and must finish and clear out in time.
Combats are more tricky than locations. The more mooks or BBEGs there are in a fight, the longer it will take. The more special abilities the mooks, BBEGs, and PCs have, the longer it will take to resolve than a simple “I swing my sword” action. This is where you’ll probably have to adjust things on the fly. If the combats have been moving slowly, I recommend flagging a few non-necessary combat scenes later in the adventure and just have the room be empty (or not there at all, depending on your map and layout).
I love loading up on events, but these can be very time consuming. Probably the most time consuming out of all of these categories. It’s fairly easy to remove a trap or riddle from an adventure. Sometimes the social encounters can vanish along with the NPC, but if the NPC is supposed to deliver important information for the plot or hook to continue the story in the right direction, this can be difficult.
As you’re going through your adventure design, mark things with a special highlighter (mine’s pink) that can be easily dropped from the game without impacting the overall story. This will allow you to sit back, think, consider, and then slather some pink (or whatever) highlighter over a room, stat block, riddle, or NPC. This will allow you to “on the fly” remove the element, but without having to do the thinking on the fly as well.Another Option: Play Test
If you have the luxury of running your one-shot for some friends, I highly recommend doing it before the con rolls around. However, if you don’t have that option (which I don’t for the upcoming FLGS con), then approaching adventure design with the LACE Quotient could lead you in the right direction for hitting the target on length. Whatever approach you use, I hope the addition of the LACE Quotient to your toolbox will assist you in future designs.
A few years ago, we published a very popular post called "How to Create Dropdown Menus in Drupal".
That post focused on Drupal 7, and some things have changed in Drupal 8.
Here's an updated explanation of how to set up dropdown menus for a Drupal 8 site.
Ramsalt Lab: Expo.se - Magazine started by the famous author Stieg Larsson - nominated for two publishing awards
Expo just got nominated for two prestigious publishing awards in Sweden, best magazine and best magazine website. The winners will be announced 7th of November 2018 in Stocholm where Ramsalt Lab will be present. We are very excited for this news and have decided to share with you the secrets behind building Expo.se on Drupal. So stay tuned for more the following days.Short about the Expo
Expo is a Swedish anti-racist magazine started in 1995 by Stieg Larsson, also known as the author of the Millennium novel series, where the inspiration comes from Expo. Expo magazine is issued by the non-profit Expo Foundation. The magazine contains investigative journalism focused on nationalist, racist, anti-democratic, anti-semitic, and far-right movements and organisations. Expo became widely known in Sweden after 1996 following a string of threats and attacks directed against companies printing and selling the magazine, and organisations supporting it. The magazine is headquartered in Stockholm. More about Expo on Wikipedia.
Have a look at the website on Expo.se.planetdrupal