It is not true that in order to live one has to believe in one's own existence. There is no necessity to that.
Another thing that was developed as a result of my big Commerce project (see my previous blog post for the run-down of the various modules this contributed back to Drupal) was a bit of code for generating a graph that represents the relationships between entity types.
For a site with a lot of entityreference fields it's a good idea to draw diagrams before you get started, to figure out how everything ties together. But it's also nice to have a diagram that's based on what you've built, so you can compare it, and refer back to it (not to mention that it's a lot easier to read than my handwriting).
The code for this never got released; I tried various graph engines that work with Graph API, but none of them produced quite what I was hoping for. It just sat in my local copy of Field Tools for the last couple of years (I didn't even make a git branch for it, that shows how rough it was!). Then yesterday I came across the Sigma.js graph library, and that inspired me to dig out the code and finish it off.
To give the complete picture, I've added support for the relationships that are formed between entity types by their schema fields: things like the uid property on a node. These are easily picked out of hook_schema()'s foreign keys array.
In the end, I found Sigma.js wasn't the right fit: it looks very pretty, but it expects you to dictate the position of the nodes in the canvass, which for a generated graph doesn't really work. There is a plugin for it that allows the graph to be force-directed, but that was starting to be too fiddly. Instead though, I found Springy, that while maybe not quite as versatile, automatically lays out the graph nodes out of the box. It didn't take too long to write a library module for using Springy with Graph API.
Here's the result:
The next stage of development for this tool is figuring out a nice way of showing entity bundles. After all, entityreference fields are on specific bundles, and may point to only certain bundles. However, they sometimes point to all bundles of an entity type. And meanwhile, schema properties are always on all bundles and point to all bundles. How do we represent that without the graph turning into a total mess? I'm pondering adding a form that lets you pick which entity types should be shown as separate bundles, but it's starting to get complicated. If you have any thoughts on this, or other ways to improve this feature, please share them with me in the Field Tools issue queue!
Drupal 8, Plugins, Guzzle, CMI, Caching... If those buzzwords trigger your interest, you should keep reading this article. We will cover those topics as we are building one of our first Drupal 8 modules. Recently one of our clients requested a solution to integrate a custom feed called IBP Catalog. The IBP Catalog is a filterable XML feed, which enable to easily collect web component like banners, documents or even audio files. Those components are selected by the broker through a dedicated website.Read More...
This is part one in a series of blog posts about the Drupal Community. There is NO SHORTAGE of posts on this topic, but I wanted to take the time to tell my story of how I got here and what the Drupal community means to me.
If you have ever attended one of my private or public trainings then chances are good that you have heard me utter the phrase that titles this blog post. You can also hear me saying this on a recent Podcast I did with the good folks at LightSky.com: http://www.lightsky.com/podcasts/drupal-community
Here is that quote again in longer form:“Drupal is a community and there happens to be a piece of software by the exact same name, and that can be confusing for some.”
If you read that statement slow enough, or maybe a few times, I believe you will agree that this is a VERY loaded statement, a provocative one even. How does it make you feel when you read it? Do you instantly agree? Do you instantly disagree? Do you wonder if it is hyperbole or sensationalism at some level? I think all these reactions, and more, are well within the realm of expected, and acceptable, responses.
You see, my early exposure to “Drupal” started with a rather humongous dose of the Drupal Community. Therefore, it stands to reason that I know it well, love it dearly, and engage and describe it as often as I do. But it wasn’t just my early exposures that set me on a path of life long Drupal Community advocacy. It was the opportunities for continued exposures that were afforded to me by the very members of the community. It fed me, equipped me, and empowered me which, in turn, motivated me to energetically continue on in my role as an active Drupal Community member.
How it started:
For the LONGER version of this story, go listen to my 2009 DrupalEasy Podcast Interview.
Suffice to say that I discovered Drupal in December of 2007 and after becoming convinced that Drupal ROCKED I discovered that there was a training in Portland Oregon. This outfit with a real funny name was doing a 5 day training on module development for Drupal 5. What was that funny named company? Well, it was Lullabot, of course! :-) There I met MANY of the people who I count as good friends, partners, and colleagues to this day.
Let me keep this simple with a visual timeline of just how much Drupal Community interaction I had right out of the gate:
- December | Discover Drupal
- Jan, Portland | 5 days of Drupal5 Module Development Training with Lullabot & 2 dozen other [soon to be] friends.
- Jan, Indianapolis | I start the local Indy Drupal Users Group. Why? Because in Portland, Addi Berry told me to!
- Feb, Los Angeles | 5 days of Drupal5 Theme Development Training with Lullabot & some of my new friends from Portland PLUS some brand new friends.
- Mar, Boston | 4 days at DrupalCon with 850 Drupalers, so many of which I already knew from the 2 Lullabot classes
- May, Minneapolis | 5 days of Drupal6 Module/Theming training AGAIN with Lullabot & many familiar faces & new ones.
- June, Toronto | 5 days of Drupal6 Intensive Training AGAIN with Lullabot & many familiar faces & new ones.
- July, Chicago | 2 days helping to man the Drupal booth at HostingCon. Kieran Lal had put out a request for people to take shifts. I showed up and never left the booth. I was an animal doing everything I could to educate ppl on how awesome I thought Drupal was. I COULD NOT [would not?] shut up. I impressed the local Chicago Users Group members and they asked me if I would come speak at their first ever DrupalCamp Chicago. I AGREED! [Still didn’t understand what a DrupalCamp was!?!?!]
- Oct, Chicago | DrupalCamp Chicago is my 1st ever DrupalCamp! I wound up delivering over 8 sessions and leading a couple BoFs as I discovered my new title, King Of The N00bs!
- Nov, Indianapolis | I become aware of an event called IndyBANG [Indy Business & Arts Networking Get-together] I pay for booth space, print up a huge banner, and enjoyed some local entertainment, beverages, and got to tell my own city about this awesome thing called Drupal!
- May, Chicago | My First PAID Gig! I am invited to deliver a workshop at the 1st annual CMS Expo in Evanston IL. Local community leader Matthew Lechleider and I wow a good sized crowd for a 1/2 day Drupal intro workshop. I end up meeting many ppl who will play important, longterm roles in my professional life.
You get the idea! right? :-)
So if you do the math, My first 90 days in Drupal included 80hrs of lullabot workshops, and the first “solo” DrupalCon in North America. That’s pretty intense! It only stands to reason that my perspective on Drupal is one that is Community driven. When I think of Drupal, I think of the Drupal community.
Other upcoming topics include:
- Why it's important to distinguish the Drupal Communuity as its own entity and appreciate its value and power.
- How companies have leveraged the Drupal Community and how they've achieved measurable ROI from doing so.
- How the Drupal Community is a "Value Added" consideration in the sales process and why the Drupal Community matters when businesses consider which CMS to use for their organization.
- The evolution of DrupalCamps across the years. Many things have changed!
- Other topics? Leave a comment on this post if you have an idea for a future blog post! :-)
Client Menu can display any Drupal menu to selected user-roles of your choice. That allows you to build a user-friendly menu for your clients and managers. It has clean and minimalist design and it’s optimized for all devices and resolutions.
This module allows administrators to define custom tokens for any field_collection fields on their nodes.
The 'token' display mode is used for rendering subsituted field_collection fields. Rendering falls back to 'default' display mode if 'token' mode is not used.
Best used together with token_filter so users can use tokens in textareas to target field_collection values.
NOTE: This module is fresh out of the sandbox and still under heavy development. Use with caution and please provide feedback if things don't seem to go as planned.
This work is all about creating new races of intelligent (more or less) creatures for your game. The cover is virtually obscured by 'Compatible with' logos ranging from fantasy to science fiction systems, but never fear if your chosen ruleset isn't there, it is generic enough to be used whatever game system you prefer although those are the ones explicitly supported.
There are two ways to use the book. Either grab a handful of dice and start rolling, see what you come up with, or use the sections as guidelines to drive your thoughts, ensuring that you consider all the aspects that will be useful in creating a species that you'll be able to bring to life in your chosen setting. Or, of course, a combination of both: maybe starting by rolling dice then change the things that don't suit the concept you're forming, or only roll when you don't have a clear idea about a particular aspect. However, bear in mind that it can be fun working out how an oddball species survives and thrives - the randomly-designed ones can be the most interesting! (Bipedal naked mammals, who'd have thunk THEM up?)
The first table covers general species biology while the second one deals with humanoid species biology. The idea here is that the first table can generate anything from animals to sentient races, whilst the second is aimed at creating the sort of 'aliens' that you find in science fiction films, the ones that when all is said and done are human beings with makeup and prosthetic effects on.
Then if you are after a strange-looking race (or rolled for something 'deviant' on whichever of the first two tables you used) there are some weird things you can mix and match into the race you are building. This is followed by a set of notes about different sorts of organisms, which may help you expand on the brief description that you have derived so far for your new species. They are quite broad, and contain several inaccuracies - mostly deliberate ones which are covered in the notes, like lumping dinosaurs in with reptiles. A couple of minor quibbles include the statement that a sense of smell is not much use if you're aquatic - try telling a shark that!
The notes also cover habitat and structure (of the body, that is). Then the discussion moves on to the core of the matter: creating new PC races for your game. This is handled by offering 'kits' for several game systems (13th Age, Dungeon World, Fate Core, Legend, Pathfinder and Traveller) which you use to derive the system-specific information that you need for the race you have just invented. As demonstration, each kit is used on the same basic race, a Turtle-Man from Chelonian Press's Turtle Lords RPG (1983). These kits come with explanatory notes showing you how to make the conversion from the core information generated here into the game system of your choice.
And then there's another set of tables, these ones are to enable you to devise the sort of society in which your new species likes to live. Everything from government types to their values and attitudes, as well as strengths and weaknesses, nature, assets... as well as further tables on the civilisation's past and current situation. Not only does this give you a good overview of what a society is like, it also feeds into the 'Societal Conflict System' that is presented next. This isn't so much about actual warfare as about determining the underlying geopolitical situation. Look at the news. In some part of the world, people are actually fighting each other, in others the diplomatic situation is a bit tense and in some places there is more or less a state of peace... but there are always tensions, allies and nations which do not get along and the like. This is about generating this kind of background situation which may or may not actually impact on your plot, but is part and parcel of the setting in which your game is being played.
Naturally character actions may have an influence: they are the stars of the show! This may be direct - perhaps they are soldiers, spies or diplomats - or incidental... who knows, maybe they created an international (interstellar?) incident without even intending to... and the intention is that the GM should use this system in between game sessions to model what is going on in the rest of the world while the party is off doing its thing. It's a neat concept which should add interesting depth to your game.
Internal Linking :
Meaning: Linking your valuable pages within your website.
Examples: Navigation (main & secondary menus) could serve as the best example of internal linking. Having a sitemap is another example.
Why Internal Linking? There are numerous articles on the internet that explain the need of internal linking from SEO perspective. But since you have reached here only after identifying the importance, we are not sharing the links :-)
Dynamic Internal Linking :
GDC Europe 2014 saw the triumphant European debut of one of the most popular GDC sessions: the #1ReasonToBe panel, a raucous celebration and exploration of gender and alternative voices in games. ...