Drupal Planet

Syndicate content
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 3 hours 34 min ago

ADCI Solutions: 10 Drupal modules for quizzes

6 hours 38 min ago
pQuizzes and contests are the ways to improve a user activity and to grab the attention of even a rather passive user. We’ll tell about Drupal modules enabling different widgets and voting feature/quizzes features: Webform default fields, Quiz, Advanced Poll and other are combined in this compilation. a href=https://www.adcisolutions.com/knowledge/10-drupal-modules-quizzes?utm_source=dorgamp;utm_medium=drupal-planet-feedamp;utm_content=rss-summaryClick!/a :)/p pa href=https://www.adcisolutions.com/knowledge/10-drupal-modules-quizzes?utm_source=dorgamp;utm_medium=drupal-planet-feedamp;utm_content=rss-summary-picimg alt=Drupal modules for quizzes, polls and contests src=https://www.adcisolutions.com/sites/default/files/filebrowser/users/7/Knowledge/10_quizzes/10_Modules_for_quizzes.png style=width: 600px; height: 230px; //a/p
Categories: Drupal Feeds

Third Grove: SRI International Drupal Case Study

7 hours 49 min ago
span property=schema:name class=field-name--titleSRI International Drupal Case Study/span span class=field-name--uid rel=schema:authorspan lang= about=https://www.thirdandgrove.com/user/3 typeof=schema:Person property=schema:name datatype= xml:lang=antonella/span/span span property=schema:dateCreated content=2017-01-18T08:00:00+00:00 class=field-name--createdWed, 01/18/2017 - 03:00/span
Categories: Drupal Feeds

Mike Crittenden: Drupal + Cloud9

Tue, 01/17/2017 - 4:26pm
span property=schema:nameDrupal + Cloud9/span div img property=schema:image src=http://mikecr.it/sites/default/files/styles/large/public/2017-01/pexels-photo-192642.jpeg?itok=RBWsHElW width=480 height=206 alt=Clouds typeof=foaf:Image //div div property=schema:textpa href=http://c9.ioCloud9/a is an IDE and development environment in the cloud. Yeah yeah, buzzwords buzzwords, but what does this really mean?/p pLet's dig in a bit, starting with the positives./p h2What I Like/h2 pI've been using it heavily for a few months now, and here are the features that stand out to me. /p h3Workspaces/h3 pC9 gives you workspaces, each of which is a complete Ubuntu-based environment (i.e., a Docker container behind the scenes). This means that you can install stuff, use codesudo/code, change config, etc. You can create and delete workspaces as you please./p pYou can really go to town on these things in pretty much any way that is useful. /p h3Workspace cloning/h3 pC9 also lets you clone workspaces to create new ones. Cloning is super fast - usually around 30 seconds for me from start to finish. This means I can do things like having a stock Drupal workspace that has all the tools and config that I like to have for Drupal projects, which I just clone when setting up a new Drupal site. There are other cool possibilities here too, which I'll get to shortly./p pSure, theoretically Vagrant and friends let you do this already for local environments, but the speed and ease that C9 brings to this process is unmatched compared to anything I've seen./p h3Out of the box debugging (for Node.js, PHP, Go, and C++)/h3 pInteractive debugging is already there, waiting for you. In PHP for example, you just click the little bug icon before running your app, and then set a breakpoint wherever you want. No messing with xdebug config or path mappings or exposing ports, none of that. Just click and you're done./p pThis is especially nice for me on the Node.js side, since I've never learned how to set up a Node debugger and don't particularly want to./p h3Custom runners/h3 pCloud9 environments come with some pre-configured runners, which are basically commands that you can run by clicking a button, and have their output stuck into their own tabs. For example, starting the app typically means starting the Apache runner to get the server running, which will throw Apache logs into the output of that tab. /p pThat's all fine, but it gets more interesting when you create custom runners. You can drop in a name and command and some configuration such as the current directory, and then you have a nice little command runner waiting to be clicked. I like this for things like grunt watch which watches for Sass updates, but it's even more useful for commands with hard to remember names, so that you can kind of abstract that away. It's like shell aliases on steroids, in a way./p h3Performance/h3 pCloud9 is surprisingly quick given that it's a pretty bulky web app. I don't have an insanely powerful laptop or anything, and I found the Cloud9 IDE to be responsive enough that I never really saw any noticeable slowness, which is the goal after all./p h2What I don't like/h2 h3No VPNs/h3 pDue to the way Cloud9 is built, it can't really connect through an existing VPN. So if you're trying to work on a site that is hidden behind a VPN, then it might be test to avoid Cloud9 for that project./p h3IDE limitations/h3 pThe C9 IDE is ok, but not good, and definitely not great. If PHPStorm is a 9/10 in terms of IDE functionality, then Cloud9 is more like a 4 or a 5. It's a pretty decent text editor, but a pretty lame IDE./p pFor example, it's missing features like:/p ulliJumping directly to a function definition from somewhere that function is called/li liAuto-generating block comments with @params, etc., based on function code/li liFunction parameter hinting as you type/li liViewing all usages of a given function/li liProject-wide autocompletion that works smartly and consistently/li /ulh3Restricted workspace cloning/h3 pYou can only clone your own workspace - you can't clone someone else's. This means that it's basically impossible to have a setup where a tech lead manages a pristine project workspace which everyone else can clone whenever they need to start fresh, or when new people are ramped on. I love the sound of that workflow, and it's disappointing that it isn't allowed./p h3Credit card required for signup/h3 pYou can't sign up to C9 without entering your credit card info, even for the free accounts. This isn't the end of the world for me or possibly for you, but it can be a real bummer when you want to give someone on your team access to your codebase to do some pair programming. The how much do I really want this? factor kicks into high gear when you're asked to pull out your credit card./p h2Use cases/h2 h3Open source work/h3 pC9 is great for doing open source work. It gives you the ability to share your code or your environment when anyone just by sending a link,  which can help a lot when collaborating on something remotely that is only on your local environment./p pPlus, with workspaces being so cheap and powerful, you can have a separate workspace for each open source project that you maintain. That way, you always have an environment ready to be worked on for everything, and you never have to wonder if that environment you build 6 months ago for module X is still running and working./p h3Demos/h3 pCreating a workspace specifically for a demo (or a prototype or anything else temporary that you want to show other people) can be really nice. It even gives you a URL to share with people so they can try out your demo with their own two hands./p pThis lets you work on your demo in a clean, empty environment, which can just be deleted when you're done. /p h3Random fiddling around/h3 pYou know that thing where there's a new tool or app or whatever that you want to try installing, but you don't want to worry about adding more dependencies or possibly bringing in a different version of a dependency that will break something else? /p pThe speed with which you can spin up C9 workspaces is great here. Create a workspace in a few seconds, do whatever you want, and delete it. That way you never have to worry about leaving any remnants of your random tinkering on your main computer./p h3Pair programming/h3 pOne of the banner features of C9 is the ability to live-edit code along with other people, and see each other's updates in real time. If you ever pair program, then this is basically the dream. It sure beats screen sharing over a Google Hangout. /p h3Debugging/h3 pThe out of the box debugger support kind of automatically makes debugging a good use case for Cloud9. The fact that you have a full Ubuntu environment means that you can usually change whatever you need to change to replicate your prod setup, and the built in debugger can take it from there to help you find your bug./p pAgain, you can always just use Docker yourself to replicate an environment and install Xdebug, but this is just so much easier./p h3Regular old development/h3 pIf you can live without advanced IDE features, and you don't need a VPN to access anything, then you can really do most of your regular everyday development on C9. That way you have cheap workspaces and easy debugging and shareable URLs for everything that you work on./p h2Tips/h2 pFinally, here are some tips for getting the most out of Cloud9, especially if you're using it for Drupal./p pstrong1. Start each workspace from a starter instance that has all the tools you need/strong/p pFor example, create a Drupal starter workspace that has Drush, Drupal Console, Apache config, git aliases, XHprof (here are a href=https://gist.github.com/mikecrittenden/341a7ce1da019c1d2a22008e665c3565installation instructions/a), etc. Then, whenever you spin up a new site, just clone that workspace./p pstrong2. Create per-ticket workspaces/strong/p pTaking workspace cloning to the next level, you can just create a stock workspace for your project which you never actually touch except to keep it up to date. Then just clone it every time you start work on a new ticket. That way you can have completely separate environments for unrelated workstreams, and you never have to worry about clobbering data or whatnot when switching back and forth. Plus, that ticket you worked on 3 weeks ago will still have a working environment to go back to when it fails QA and needs a fix./p pstrong3. Make the keybindings match your main editor/IDE/strong/p pCloud9 has fully configurable keybindings for just about everything. This means that you can make C9 keyboard shortcuts match the ones you're already used to from your normal editor/IDE. That way it's really easy to switch back and forth. There are even Vim and Emacs modes!/p pstrong4. Create custom runners for all the things/strong/p pThink of all the commands you run on a regular basis. Things like grunt watch or drush cc all or drush updb -y drush fra -y, etc. Put all of those things in custom runners, so you can just click a button to watch them run in their own tab. This is especially useful for complex commands that you're likely to forget./p pstrong5. Go crazy with the layout/strong/p pC9 lets you drag and drop tabs to dock to the left or right or bottom, and resize however you want. You can have a terminal on the right and server logs at the bottom, or keep them all in tabs in the same place. It's up to you. /p pstrong6. Don't ignore the project search (and replace)/strong/p pIf you're like me then you might be tempted to install The Silver Searcher or Ack or just use grep to search your codebase. Before you do that, at least give C9's code search a try. It's fast, it supports regex, and it gives you lots of options about where you want to search. It's surprisingly robust, so give it a shot./p h2The end/h2 pOverall I think Cloud9 is really pretty great for what it is. It's lacking some IDE features and it suffers a bit unavoidably just based on the fact that it's cloud based, but it also solves a lot of real world problems that make up for all that in most cases./p pI'm using it for a pretty big chunk of my day to day development nowadays, and it's saved me plenty of headaches./p pDo you have any concerns or questions? Feel free to comment below if so. I'm curious to hear about the types of things holding other people back from using it./p /div span rel=schema:authorspan lang= about=http://mikecr.it/user/1 typeof=schema:Person property=schema:name datatype= xml:lang=mcrittenden/span/span span property=schema:dateCreated content=2017-01-17T22:26:00+00:00Tue, 01/17/2017 - 17:26/span
Categories: Drupal Feeds

Zivtech: How to Choose the Right eCommerce Solution for Your Drupal Project

Tue, 01/17/2017 - 2:24pm
div class=field-image-photo img src=/sites/default/files/styles/large/public/c9fqyqiecds-mike-petrucci.jpg?itok=uGQmMW_x width=645 height=430 alt=Store open sign / /div div class=field-body divDrupal has a powerful suite of tools and features for just about any type of website, and eCommerce websites are no exception. Drupal has a very active and healthy eCommerce community that creates some amazing features. /div div /div p /p divThe Drupal eCommerce market mainly consists of Ubercart and Drupal Commerce, but there are also some impressive emerging technologies to keep an eye on, such as the Stripe payment API, that allow for more customized solutions. /div p /p divThe eCommerce solution that you choose will depend upon the particular Drupal site you’re developing. Is it a simple online store with just a few products, or a much more robust site with a wide variety of products? This is one of the strengths of eCommerce with Drupal: you can build the kind of solution you need without the extra, unnecessary features and functionalities./div div /div h2Ubercart vs Drupal Commerce /h2 diva href=https://www.drupal.org/project/commerce target=_blankDrupal Commerce/a is by far the most popular Drupal eCommerce solution these days. It’s the successor to the original eCommerce solution, a href=https://www.drupal.org/project/ubercart target=_blankUbercart/a. Drupal Commerce was written for Drupal 7 by the same developer that created Ubercart, a href=https://www.drupal.org/u/rszrama target=_blankRyan Szrama/a, using the latest APIs and features for Drupal 7. /div p /p divDrupal Commerce is supported by Ryan Szrama’s company, a href=https://commerceguys.com/ target=_blankCommerce Guys/a, and the Drupal community as a whole. Developers are more likely to add new features to Commerce because it is more widely used in Drupal 7 and beyond. The Drupal 8 version is still in beta, so more work needs to be done to get it to a full release. Check out the a href=https://www.drupal.org/project/issues/commerce?version=8.x target=_blankDrupal Commerce issue queue/a to see where you might be able to help./div p /p divDrupal Commerce learned from Ubercart's primary shortcoming; it was difficult to configure and not very modular. Where Ubercart was one module that was difficult to build upon, Drupal Commerce has a small set of features in the main module and a large suite of available contributed modules. This allows for easier configuration and more customizations. /div div /div h2Kickstart Your Online Store/h2 divOne of the most useful features available for Drupal Commerce is the Commerce Kickstart Drupal distribution. This is a great way for non-technical store owners to get a Drupal Commerce store up and running quickly and easily. It comes with an impressive installer that allows you to install an example store to see how everything can be configured. It then allows you to wipe the site clean and start a fresh build of your own custom store. /div p /p divThe Commerce Kickstart comes with some additional built in modules and configurations that help get a Drupal Commerce site up and running quickly. This is a more efficient solution than building from scratch with the Drupal Commerce module and any contributed modules that are necessary to achieve the desired functionality. The Commerce Kickstart distribution shows off the power of Drupal distributions; it’s a turnkey solution for Drupal eCommerce websites./div h2Stripe API/h2 divOne of Drupal’s greatest advantages over its competitors is how well it integrates with third party APIs. This allows for integration with many different payment gateways, one being a href=http://www.drupal.org/project/stripe_api target=_blankStripe API/a. Drupal developers can integrate Stripe with a Drupal site through a custom module and create highly customized payment solutions. This type of customization allows for a variety of solutions for selling and accepting payments that would be more challenging to implement with Drupal Commerce. /div div /div h2Which Solution Should I Choose?/h2 divThe solution you choose depends on the site’s needs. A small online store that only needs a simple shopping cart might be best suited for Ubercart. At its core, Ubercart is still the easiest to set up without using a Drupal distribution like Commerce Kickstart. /div p /p div /div divDrupal Commerce is a much more robust eCommerce solution for Drupal with enterprise level features that large online stores use to sell products like product displays. On top of that, you get all the features of a normal Drupal website like content types, taxonomies, and user permissions. /div p /p divIf you are looking to build a very customized payment solution that doesn’t really fit into either of these categories, perhaps a custom solution with the Stripe API module is best. /div p /p p /p pIn the end, the Drupal eCommerce solution you choose should be easy to use for your store administrators and easy for your customers to buy your products online./p div /div /div nav role=navigation class=links-inline/nav
Categories: Drupal Feeds

Chromatic: Managing Complex Configuration with Drupal 8

Tue, 01/17/2017 - 11:34am
pConfiguration management (CM) in Drupal 8 is great. However, when more complex configuration scenarios arise, we must find solutions to problems that core CM functionality doesn’t address (yet)./p
Categories: Drupal Feeds

Chromatic: Chromatic at DrupalCon Dublin

Tue, 01/17/2017 - 11:34am
pLearn all about Twig templates in Drupal 8 from our very own Larry Walangitan./p
Categories: Drupal Feeds

Chromatic: Drupal Code Standards: Documentation

Tue, 01/17/2017 - 11:34am
pThis is the fourth post in a series about coding standards. In this post we’ll talk about why good, standardized documentation is crucial to your project, and review a href=https://www.drupal.org/coding-standards/docsDrupal coding standards regarding documentation/a and comments./p
Categories: Drupal Feeds

Drupal core announcements: Drupal 8.3.0 will be released April 5; alpha begins week of January 30

Tue, 01/17/2017 - 11:13am
pDrupal 8.3.0, the next planned minor release of Drupal 8, is scheduled for Wednesday, April 5, 2017. Minor releases include new features, usability improvements, and backwards-compatible API improvements. Here's what this means now for core patches./p h3Alpha vs. Beta releases/h3 pIn previous Drupal 8 minor releases, the first pre-release version of the minor was labeled as embeta1/em, and expectations were slightly different for later betas. For Drupal 8.3.0, we've recategorized this first pre-release version as emalpha1/em, to distinguish it from the subsequent beta releases. (We will also no longer have beta target issues; some strategic issues are considered for backport to 8.3.x, but only after they are fixed in 8.4.x, and only up until the new beta phase begins.)/p pThis change should provide better clarity and fairness on which issues are accepted for commit. The overall timeline for the minor release is not changed; alpha1 simply replaces the previous beta1, and the previous, stricter beta2 now becomes beta1. (a href=https://www.drupal.org/core/d8-allowed-changes#alphaMore information on alpha and beta releases./a) The release candidate phase is the same as for past releases./p h3Drupal 8.3.0-alpha1 will be released the week of January 30/h3 ulliIn preparation for the minor release, Drupal 8.3.x will enter the alpha phase the week of January 30./li liDevelopers and site owners can begin testing the alpha./li liThe 8.4.x branch of core will be created, and future feature and API additions will be targeted against that branch instead of 8.3.x. All outstanding issues filed against 8.3.x will be automatically migrated to 8.4.x once it is opened. /liliAll issues filed against 8.2.x will then be migrated to 8.3.x, and subsequent bug reports should be targeted against the 8.3.x branch./li liDuring the alpha phase, core issues will be committed according to the following policy: olliMost issues that are a href=https://www.drupal.org/core/d8-allowed-changes#patchallowed for patch releases/a will be committed to 8.3.x and 8.4.x./li liDrupal 8.2.x will receive primarily critical bugfixes in preparation for its final patch release window. (Drupal 8.1.x and 8.0.x are not supported anymore and changes are not made to those branches.)/li liMost issues that are a href=https://www.drupal.org/core/d8-allowed-changes#minoronly allowed in minor releases/a will be committed to 8.4.x only. A few strategic issues may be backported to 8.3.x, but only at committer discretion emafter/em the issue is fixed in 8.4.x, and only up until the beta deadline./li /ol/li /ulh3Drupal 8.3.0-beta1 will be released the week of February 13/h3 pRoughly two weeks after the alpha release, the first beta release will be created. All the restrictions of the alpha release apply to beta releases as well. The release of the first beta is a firm deadline for all feature and API additions. Even if an issue is pending in the emReviewed amp; Tested by the Community/em (RTBC) queue when the commit freeze for the beta begins, it will be committed to the next minor release only./p pThe release candidate phase will begin the week of February 27, and we will post further details at that time./p pSee the a href=https://www.drupal.org/core/release-cycle-overview#datessummarized key dates in the release cycle/a, a href=https://www.drupal.org/core/d8-allowed-changesallowed changes during the Drupal 8 release cycle/a, and a href=https://www.drupal.org/core/d8-bc-policyDrupal 8 backwards compatibility and internal API policy/a for more information./p pAs a reminder, we have until the start of the alpha to add great new features to Drupal 8.3.x. Stabilizing experimental modules (such as a href=https://www.drupal.org/node/2504847Inline form errors/a and a href=https://www.drupal.org/node/2735059Migrate Drupal/a), a href=https://www.drupal.org/node/2825215landing some key Media Initiative components/a, and working on bugfixes are all priorities for 8.3.0. Help with these changes now for a great Drupal 8.3.0!/p
Categories: Drupal Feeds

OSTraining: The Easiest Way to Debug Drupal Themes and Modules

Tue, 01/17/2017 - 10:58am
pAre you looking for an easy way to find errors thrown by your Drupal modules and themes?/p pA lot of new developers are learning to create their a href=https://www.ostraining.com/class/d8-devfirst Drupal 8 modules/a or a href=https://www.ostraining.com/class/d8-themesDrupal 8 themes/a. Often they've made a very small typo or spacing error and are looking for an easy way to debug their mistake./p pFollow this tutorial, and you'll quickly be able to see a detailed list of recent errors on your Drupal site./p
Categories: Drupal Feeds

ComputerMinds.co.uk: Show elements with form #states when values do not match

Tue, 01/17/2017 - 7:00am
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-items id=md1div class=field-item even itemprop=articleBodypI've a href=https://www.computerminds.co.uk/articles/dynamic-forms-drupal-7previously written about dynamic forms in Drupal/a, using code class=prettyprint#states/code to show or hide input boxes depending on other inputs. Since then, Drupal 7 and 8 have both got the ability to combine conditions with a href=https://www.drupal.org/node/735528OR and XOR operators/a. This makes it possible to apply changes when a form element's value does emnot/em equal something, which is not obvious at all./p /div/div/div
Categories: Drupal Feeds

Web Omelette: Node access grants in Drupal 8 in an OOP way

Tue, 01/17/2017 - 3:04am
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpThe Drupal node access grants system has always been a powerful and flexible way to control access to your nodes. It's been there from Drupal 5 (if not earlier) and it continues to exist in Drupal 8 as we move forward. In this article, I want to quickly highlight this system from a D8 perspective and how I propose to use it in a OOP architecture./p h2What is it?/h2 pThe node access grant system is a way by which you can control programatically and very granularly access to all four operations on your Drupal nodes (view, create, edit, delete). It allows to define certain realms of functionality (related to your access requirements) and a set of grants that are required for any of the four mentioned operations, within that realm. Users will then need to posses the grants in the respective realms in order to be granted access./p pThe two main components of this system are therefore:/p ul liThe implementation of codehook_node_access_records()/code which is called whenever a node is saved (or site-wide permissions rebuilt). It is responsible for storing the access requirements for that given node./li liThe implementation of codehook_node_grants()/code which is called whenever a user is trying to access a node (or a query is being performed in the name of that user). It is responsible for presenting the grants for the current user, which if match the access requirements of the node, allows them access./li /ul pThe great thing about this node access grants is that it's system-wide in the sense of who checks for the access. In contrast to implementing codehook_node_access()/code which only is called when viewing a node on its canonical URL, the access grants are checked almost everywhere such as views or even custom queries with much ease./p h2Drupal 8/h2 pIn Drupal 8 these 2 hooks remain the foundation of the node access grants system, albeit with type hinted parameters. This means that we need to place their implementation inside our code.module/code files./p pNode access grants are not used on every site because they serve relatively complex access rules. Complex access rules usually also require a fair bit of calculating what grants a particular node must have for a given realm, as well as whether a given user possesses them. For this very reason I am not so fond of having to put all this logic in my code.module/code file./p pSo I came up with a basic a href=https://www.drupal.org/project/node_access_grantsdeveloper module/a that defines an interface that has two methods: codeaccessRecords()/code and codegrants()/code. Other modules which want to implement the access grants hooks can instead now create a service which implements this interface and tag it with codenode_access_grants/code. My module will do the rest and you won't have to touch any code.module/code file. You can inject whatever dependencies from the container you need and perform whatever logic is needed for determining your grants and access records./p pLet me what you think down in the comments. Would love your feedback./p /div/div/div
Categories: Drupal Feeds

Third Grove: Quicken.com Drupal Case Study

Tue, 01/17/2017 - 2:00am
span property=schema:name class=field-name--titleQuicken.com Drupal Case Study/span span class=field-name--uid rel=schema:authorspan lang= about=https://www.thirdandgrove.com/user/3 typeof=schema:Person property=schema:name datatype= xml:lang=antonella/span/span span property=schema:dateCreated content=2017-01-17T08:00:00+00:00 class=field-name--createdTue, 01/17/2017 - 03:00/span
Categories: Drupal Feeds

Drupal Modules: The One Percent: Drupal Modules: The One Percent — Views Flipped Table (video tutorial)

Mon, 01/16/2017 - 6:59pm
span class=field field--name-title field--type-string field--label-hiddenDrupal Modules: The One Percent — Views Flipped Table (video tutorial)/span div class=field field--name-field-screenshot field--type-image field--label-hidden field__item img src=http://gogrow.org/sites/default/files/styles/large/public/2017-01/views_flipped_table.png?itok=XPf6Ht6H width=480 height=241 alt=Project page screenshot typeof=foaf:Image class=image-style-large //div span class=field field--name-uid field--type-entity-reference field--label-hiddenspan lang= about=http://gogrow.org/user/24 typeof=schema:Person property=schema:name datatype= xml:lang=NonProfit/span/span span class=field field--name-created field--type-created field--label-hiddenMon, 01/16/2017 - 18:59/span div class=field field--name-field-episode field--type-integer field--label-inline div class=field__labelEpisode/div div class=field__item13/div /div div class=clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__itempHere is where we bring awareness to Drupal modules running on less than 1% of reporting sites. Today we'll consider Views Flipped Table, a module which will rotate your Views tables 90° and ask if using HTML tables is ever appropriate./p/div
Categories: Drupal Feeds

Jeff Geerling's Blog: Re-save all nodes of a particular type in an update hook in Drupal 8

Mon, 01/16/2017 - 4:33pm
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpI recently needed to re-save all the nodes of a particular content type (after I had added some fields and default configuration) as part of a Drupal 8 site update and deployment. I could go in after deploying the new code and configuration, and manually re-save all content using the built-in bulk operation available on the code/admin/content/code page, but that would not be ideal, because there would be a period of time where the content isn't updated on the live site—plus, manual processes are fragile and prone to failure, so I avoid them at all costs./p pIn my Drupal 8 module, called codecustom/code, I added the following update hook, inside codecustom.install/code:/p/div/div/div
Categories: Drupal Feeds

Joachim's blog: Changing the type of a node

Mon, 01/16/2017 - 4:22pm
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpThere’s an old saying that no information architecture survives contact with the user. Or something like that. You’ll carefully design and build your content types and taxonomies, and then find that the users are actually not quite using what you’ve built in quite the way it was intended when you were building it./p pAnd so there comes a point where you need to grit your teeth, change the structure of the site’s content, and convert existing content./p pBack on Drupal 7, I wrote a plugin for Migrate which handled migrations emwithin/em a single Drupal site, so for example from nodes to a custom entity type, or from one node type to another. (The a href=https://www.drupal.org/node/1883112patch works/a, though I never found the time to polish it sufficiently to be committed.)/p pOn Drupal 8, without the time to learn the new version of Migrate, I recently had to cobble something together quickly./p pFortunately, this was just changing the type of some nodes, and where all the fields were identical on both source and destination node types. Anything more complex would definitely require Migrate./p pFirst, I created the new node type, and cloned all its fields from the old type to the new type. Here I took the time to update some of the a href=https://www.drupal.org/project/field_toolsField Tools/a module’s functionality to Drupal 8, as it pays off to have a single form to clone fields rather than have to add them to the new node type one by one./p pField Tools also copies display settings where form and view modes match (in other words, if the source bundle has a ‘teaser’ display mode configured, and the destination also has a ‘teaser’ display mode that’s enabled for custom settings, then all of the settings for the fields being cloned are copied over, with field groups too)./p pWith all the new configuration in place, it was now time to get down to the content. This was plain and simple a hack, but one that worked fine for the case in question. Here’s how it went…/p pWe basically want to change the bundle of a bunch of nodes. (Remember, the ‘bundle’ is the generic name for a node type. Node types are bundles, as taxonomy vocabularies are bundles.) The data for a single node is spread over lots of tables, and most of these have the bundle in them./p pOn Drupal 8 these tables are:/p ul lithe entity base table/li lithe entity data table/li lithe entity revision data table/li lieach field data table/li lieach field data revision table/li /ul p(It’s not entirely clear to me what the separation between base table and data table is for. It looks like it might be that base table is fields that don’t change for revisions, and data table is for fields that do. But then the language is on the base table, and that can be changed, and the created timestamp is on the data table, and while you can change that, I wouldn’t have thought that’s something that has past values kept. Answers on a postcard.)/p pSo we’re basically going to hack the bundle column in a bunch of tables. We start by getting the names of these tables from the entity type storage:/p precode$storage = \Drupal::service('entity_type.manager')-gt;getStorage('node'); // Get the names of the base tables. $base_table_names = []; $base_table_names[] = $storage-gt;getBaseTable(); $base_table_names[] = $storage-gt;getDataTable(); // (Note that revision base tables don't have the bundle.) /code/pre pFor field tables, we need to ask the table mapping handler:/p precode$table_mapping = \Drupal::service('entity_type.manager')-gt;getStorage('node') -gt;getTableMapping(); // Get the names of the field tables for fields on the service node type. $field_table_names = []; foreach ($source_bundle_fields as $field) { $field_table = $table_mapping-gt;getFieldTableName($field-gt;getName()); $field_table_names[] = $field_table; $field_storage_definition = $field-gt;getFieldStorageDefinition(); $field_revision_table = $table_mapping -gt;getDedicatedRevisionTableName($field_storage_definition); // Field revision tables DO have the bundle! $field_table_names[] = $field_revision_table; } /code/pre p(Note the inconsistency in which tables have a bundle field and which don’t! For that matter, surely it’s redundant in all field tables? Does it improve the indexing perhaps?)/p pThen, get the IDs of the nodes to update. Fortunately, in this case there were only a few, and it wasn’t necessary to write a batched hook_update_N()./p precode// Get the node IDs to update. $query = \Drupal::service('entity.query')-gt;get('node'); // Your conditions here! // In our case, page nodes with a certain field populated. $query-gt;condition('type', 'page'); $query-gt;exists(‘field_in_question’); $nids = $query-gt;execute(); /code/pre pAnd now, loop over the lists of tables names and hack away!/p precode// Base tables have 'nid' and 'type' columns. foreach ($base_table_names as $table_name) { $query = \Drupal\Core\Database\Database::getConnection('default') -gt;update($table_name) -gt;fields(['type' =gt; 'service']) -gt;condition('nid', $service_nids, 'IN') -gt;execute(); } // Field tables have 'entity_id' and 'bundle' columns. foreach ($field_table_names as $table_name) { $query = \Drupal\Core\Database\Database::getConnection('default') -gt;update($table_name) -gt;fields(['bundle' =gt; 'service']) -gt;condition('entity_id', $service_nids, 'IN') -gt;execute(); } /code/pre pNode-specific tables use ‘nid’ and ‘type’ for their names, because those are the base field names declared in the entity type class, whereas Field API tables use the generic ‘entity_id’ and ‘bundle’. The mapping between these two is declared in the entity type annotation’s entity_keys property./p pThis worked perfectly. The update system takes care of clearing caches, so entity caches will be fine. Other systems may need a nudge; for instance, Search API won’t notice the changed nodes and its indexes will a href=https://www.drupal.org/node/2749101literally need turning off and on again/a./p pThough I do hope that the next time I have to do something like this, the amount of data justifies getting stuck into using Migrate!/p /div/div/divul class=links inlineli class=comment-add first lasta href=/comment/reply/39#comment-form title=Share your thoughts and opinions related to this posting.Add new comment/a/li /ul
Categories: Drupal Feeds

Dries Buytaert: Acquia retrospective 2016

Mon, 01/16/2017 - 12:30pm
pAs my loyal blog readers know, at the beginning of every year I publish a retrospective to look back and take stock of how far Acquia has come over the past 12 months. If you'd like to read my previous annual retrospectives, they can be found here: a href=http://buytaert.net/acquia-retrospective-20152015/a, a href=http://buytaert.net/acquia-retrospective-20142014/a, a href=http://buytaert.net/acquia-retrospective-20132013/a, a href=http://buytaert.net/acquia-retrospective-20122012/a, a href=http://buytaert.net/acquia-retrospective-20112011/a, a href=http://buytaert.net/acquia-retrospective-20102010/a, a href=http://buytaert.net/acquia-retrospective-20092009/a. When read together, they provide a comprehensive overview of Acquia's trajectory from its inception in 2008 to where it is today, nine years later. /p pThe process of pulling together this annual retrospective is very rewarding for me as it gives me a chance to reflect with some perspective; a rare opportunity among the hustle and bustle of the day-to-day. Trends and cycles only reveal themselves over time, and I continue to learn from this annual period of reflection. /p h3Crossing the chasm/h3 pIf I were to give Acquia a headline for 2016, it would be the year in which we crossed the proverbial chasm from startup to a true leader in our market. Acquia is now entering its ninth full year of operations (we began commercial operations in the fall of 2008). We've raised $186 million in venture capital, opened offices around the world, and now employ over 750 people. However, crossing the chasm is more than achieving a revenue target or other benchmarks of size. /p pThe chasm describes the difficult transition conceived by Geoffrey Moore in his 1991 classic of technology strategy, a href=https://en.wikipedia.org/wiki/Crossing_the_ChasmCrossing the Chasm/a. This is the book that talks about making the transition from selling to the early adopters of a product (the technology enthusiasts and visionaries) to the early majority (the pragmatists). If the early majority accepts the technology solutions and products, they can make a company a de facto standard for its category. /p pI think future retrospectives will endorse my opinion that Acquia crossed the chasm in 2016. I believe that Acquia has crossed the chasm because the world has embraced open source and the cloud without any reservations. The FUD-era where proprietary software giants campaigned aggressively against open source and cloud computing by sowing fear, uncertainty and doubt is over. Ironically, those same critics are now scrambling to paint themselves as committed to open source and cloud architectures. Today, I believe that Acquia sets the standard for digital experiences built with open source and delivered in the cloud. /p pWhen Tom (my business partner and Acquia CEO) and I spoke together at Acquia's annual customer conference in November, we talked about the two founding pillars that have served Acquia well over its history: open source and cloud. In 2008, we made a commitment to build a company based on open source and the cloud, with its products and services offered through a subscription model rather than a perpetual license. At the time, our industry was skeptical of this forward-thinking combination. It was a bold move, but we have always believed that this combination offers significant advantages over proprietary software because of its faster rate of innovation, higher quality, freedom from vendor lock-in, greater security, and lower total cost of ownership. /p h3Creating digital winners/h3 pAcquia has continued its evolution from a content management company to a company that offers a more complete digital experience platform. This transition inspired an internal project to update our vision and mission accordingly./p pIn 2016, we updated Acquia's vision to make it possible for dreamers and doers to craft the digital world. To achieve this vision, we want to build the universal platform for the world's greatest digital experiences. /p pWe increasingly find ourselves at the center of our customer's technology and digital strategies, and they depend on us to provide the open platform to integrate, syndicate, govern and distribute all of their digital business./p pThe focus on any and every part of their digital business is important and sets us apart from our competitors. Nearly all of our competitors offer single-point solutions for marketers, customer service, online commerce or for portals. An open source model allows customers to integrate systems together through open APIs, which enables our technology to fit into any part of their existing environment. It gives them the freedom to pursue a best-of-breed strategy outside of the confines of a proprietary marketing cloud. /p h3Business momentum/h3 pWe continued to grow rapidly in 2016, and it was another record year for revenue at Acquia. We focused on the growth of our recurring revenue, which includes new customers and the renewal and expansion of our work with existing customers. Ever since we started the company, our corporate emphasis on customer success has fueled both components. Successful customers mean renewals and references for new customers. Customer satisfaction remains extremely high at 96 percent, an achievement I'm confident we can maintain as we continue to grow. /p pIn 2016, the top industry analysts published very positive reviews based on their dealings with our customers. I'm proud that a href=http://buytaert.net/acquia-a-leader-in-2016-gartner-magic-quadrant-for-web-content-managementAcquia made the biggest positive move of all vendors/a in this year's Gartner Magic Quadrant for Web Content Management. There are now three distinct leaders: Acquia, Adobe and Sitecore. Out of the leaders, Acquia is the only player that is open-source and has a cloud-first strategy./p pOver the course of 2016 Acquia welcomed an impressive roster of new customers who included Nasdaq, Nestle, Vodafone, iHeartMedia, Advanced Auto Parts, Athenahealth, National Grid UK and more. Exiting 2016, Acquia can count 16 of the Fortune 100 among its customers./p pDigital transformation is happening everywhere. Only a few years ago, the majority of our customers were in either government, media and entertainment or higher education. In the past two years, we've seen a lot of growth in other verticals and today, our customers span nearly every industry from pharmaceuticals to finance. /p pTo support our growth, we opened a new sales office in Munich (Germany), and we expanded our global support facilities in Brisbane (Queensland, Australia), Portland (Oregon, USA) and Delhi (India). In total, we now have 14 offices around the world. Over the past year we have also seen our remote workforce expand; 33 percent of Acquia's employees are now remote. They can be found in 225 cities worldwide./p pfigure class=figurediv class=img style=border: 1px solid #ccc; display: inline-block img src=http://buytaert.net/files/cache/acquia/office-locations-2016-742x1114.jpg style=display:block alt= //div figcaption style=font-style: italic; color: #777;Acquia's offices around the world. The world got more flat for Acquia in 2016./figcaption/figure/p pWe've also seen an evolution in our partner ecosystem. In addition to working with traditional Drupal businesses, we started partnering with the world's most elite digital agencies and system integrators to deliver massive projects that span dozens of languages and countries. Our partners are taking Acquia and Drupal into some of the world's most impressive brands, new industries and into new parts of the world./p h3Growing pains and challenges/h3 pI enjoy writing these retrospectives because they allow me to chronicle Acquia's incredible journey. But I also write them for you, because you might be able to learn a thing or two from my experiences. To make these retrospectives useful for everyone, I try to document both milestones and difficulties. To grow an organization, you must learn how to overcome your challenges and growing pains. /p pRapid growth does not come without cost. In 2016 we made several leadership changes that will help us continue to grow. We added new heads of revenue, European sales, security, IT, talent acquisition and engineering. I'm really proud of the team we built. We exited 2016 in the market for new heads of finance and marketing. /p pfigure class=figurediv class=img style=border: 1px solid #ccc; display: inline-block img src=http://buytaert.net/files/cache/acquia-offsite-july-2016/the-lobster-pool-5-742x1114.jpg style=display:block alt= //div figcaption style=font-style: italic; color: #777;Part of the Acquia leadership team at The Lobster Pool restaurant in Rockport, MA./figcaption/figure/p pWe adjusted our business levers to adapt to changes in the financial markets, which in early 2016 shifted from valuing companies almost solely focused on growth to a combination of growth and free cash flow. This is easier said than done, and required a significant organizational mindshift. We changed our operating plan, took a closer look at expanding headcount, and postponed certain investments we had planned. All this was done in the name of fiscal fitness to make sure that we don't have to raise more money down the road. Our efforts to cut our burn rate are paying off, and we were able to beat our targets on margin (the difference between our revenue and operating expenses) while continuing to grow our top line./p pWe now manage 17,000+ AWS instances within Acquia Cloud. What we once were able to do efficiently for hundreds of clients is not necessarily the best way to do it for thousands. Going into 2016, we decided to improve the efficiency of our operations at this scale. While more work remains to be done, our efforts are already paying off. For example, we can now roll out new Acquia Cloud releases about 10 times faster than we could at the end of 2015. /p pLastly, 2016 was the first full year of Drupal 8 availability (it was a href=http://buytaert.net/drupal-8-0-0-releasedformally released in November 2015/a). As expected, it took time for developers and the Drupal community to become familiar with its vast array of changes and new capabilities. This wasn't a surprise; in a href=http://buytaert.net/tag/state-of-drupalmy DrupalCon keynotes/a I shared that I expected Drupal 8 to really take off in Q4 of 2016. Through the a href=http://buytaert.net/a-map-for-accelerating-drupal-8-adoptionMAP program/a we committed over $1M in funds and engineering hours to help module creators upgrade their modules to Drupal 8. All told, Acquia invested about $2.5 million in Drupal code contributions in 2016 alone (excluding our contributions in marketing, events, etc). This is the most we have ever invested in Drupal and something is I'm personally very proud of./p h3Product milestones/h3 pfigure class=figurediv class=img no-resize style=border: 1px solid #ccc; display: inline-block img src=http://buytaert.net/files/images/acquia/product-overview-2016.jpg style=display:block alt= //div figcaption style=font-style: italic; color: #777;The components and products that make up the Acquia Platform./figcaption/figure/p pAcquia remains an amazing place for engineers who want to build great products. We achieved some big milestones over the course of the year. /p pOne of the largest milestones was the significant enhancements to our multi-site platform: Acquia Cloud Site Factory. Site Factory allows a team to manage and operate thousands of sites around the world from a single console, ensuring all fixes, upgrades and improvements are delivered responsibly and efficiently. Last year we added support for multiple codebases in Site Factory – which we call Stacks – allowing an organization to manage multiple Site Factories from the same administrative console and distribute the operation around the world over multiple data centers. It's unique in its ability and is being deployed globally by many multinational, multi-brand consumer goods companies. We manage thousands of sites for our biggest customers. Site Factory has elevated Acquia into the realm of very large and ambitious digital experience delivery./p pAnother exciting product release was the a href=http://buytaert.net/personalization-takes-flight-with-the-new-acquia-liftthird version of Acquia Lift/a, our personalization and contextualization tool. With the third version of Acquia Lift, we've taken everything we've learned about personalization over the past several years to build a tool that is more flexible and easier to use. The new Lift also provides content syndication services that allow both content and user profile data to be reused across sites. When taken together with Site Factory, Lift permits true content governance and reuse./p pWe also released a href=https://www.drupal.org/project/lightningLightning/a, Acquia's Drupal 8 distribution aimed at developers who want to accelerate their projects based on the set of tested and vetted modules and configurations we use ourselves in our customer work. Acquia's commitment to improving the developer experience also led to the release of both a href=https://github.com/acquia/bltAcquia BLT/a and Acquia Pipelines (private beta). Acquia BLT is a development tool for building new Drupal projects using a standard approach, while Pipelines is a continuous delivery and continuous deployment service that can be used to develop, test and deploy websites on Acquia Cloud. /p pAcquia has also set a precedent of a href=http://buytaert.net/who-sponsors-drupal-developmentcontributing significantly to Drupal/a. We helped with the release management of Drupal 8.1 and Drupal 8.2, and with the community's adoption of a href=http://buytaert.net/the-transformation-of-drupal-8-for-continuous-innovationa new innovation model that allows for faster innovation/a. We also invested a lot in Drupal 8's API-first initiative, whose goal is to improve Drupal's web services capabilities. As part of those efforts, we introduced a href=https://github.com/acquia/waterwheel.jsWaterwheel/a, a group of SDKs which make it easier to build JavaScript and native mobile applications on top of Drupal 8's REST-backend. We have also been driving usability improvements in Drupal 8 by prototyping a new UX paradigm called outside in and by contributing to the media and layout initiatives. In 2017, I believe we should maintain our focus on release management, API-first and usability. /p pOur core product, Acquia Cloud, received a major reworking of its user interface. That new UI is a more modern, faster and responsive user interface that simplifies interaction for developers and administrators./p pfigure class=figurediv class=img style=border: 1px solid #ccc; display: inline-block img src=http://buytaert.net/files/cache/acquia/acquia-cloud-ui-2016-742x1114.jpg style=display:block alt= //div figcaption style=font-style: italic; color: #777;The new Acquia Cloud user interface released in 2016./figcaption/figure/p pOur focus on security reached new levels in 2016. In January we secured certification that we complied with ISO 27001: the international security and compliance standard for enterprise cloud frameworks. In April we were awarded our FedRAMP ATO from the U.S. Department of Treasury after we were judged compliant with the U.S. federal standards for cloud security and risk management practices. Today we have the most secure, reliable and agile cloud platform available./p pWe ended the year with an exciting partnership with commerce platform Magento that will help us advance a href=http://buytaert.net/content-and-commerce-a-big-opportunity-for-drupalour vision of content and commerce/a. Existing commerce platforms have focused primarily on the transactions (cart systems, payment processing, warehouse/supply chain integration, tax compliance, customer credentials, etc.) and neglected the customer's actual shopping experience. We've demonstrated with numerous customers that a better brand experience can be delivered with Drupal and Acquia Lift alongside these existing commerce platforms./p h3The wind in our sales (pun intended)/h3 pEntering 2017, I believe that Acquia is positioned for long-term success. Here are a few reasons why: /p ulliThe current market for content, commerce, and community-focused digital experiences is growing rapidly at just under 20 percent per year./li liWe hold a leadership position in our market, despite our relative market share being small. The analysts gave Acquia top marks for our strategic roadmap, vision and execution./li liDigitization is top-of-mind for all organizations and impacts all elements of their business and value chain. Digital first businesses are seeking platforms that not only work for marketing, but also for service, compliance, portals, commerce and more./li liOpen source combined with the cloud continue to grow at a furious pace. The continuing rise of the developer's influence on technology selection also works in our favor./li liDrupal 8 is the most significant advance in the evolution of the Drupal and a href=http://buytaert.net/the-transformation-of-drupal-8-for-continuous-innovationDrupal's new innovation model/a allows the Drupal community to innovate faster than ever before./li liRecent advances in machine learning, Internet of Things, augmented reality, speech technology, and conversational interfaces all coming to fruition will lead to a href=http://buytaert.net/cross-channel-user-experiences-with-drupalnew customer experiences/a and business models, reinforcing the need for API-first solutions and the levels of freedom that only open source and cloud computing offer./li /ulpAs I explained at the beginning of this retrospective, trends and cycles reveal themselves over time. After reflecting on 2016, I believe that Acquia is in a unique position. As the world has embraced open source and cloud without reservation, our long-term commitment to this disruptive combination has put us at the right place at the right time. Our investments in expanding the breadth of our platform with products like Acquia Lift and Site Factory are also starting to pay off./p pHowever, Acquia's success is not only determined by the technology we back. Our unique innovation model, which is impossible to cultivate with proprietary software, combined with our commitment to customer success has also contributed to our crossing of the chasm. /p pOf course, none of these 2016 results and milestones would be possible without the hard work of the Acquia team, our customers, partners, the Drupal community, and our many friends. Thank you for your support in 2016 – I can't wait to see what the next year will bring!/p
Categories: Drupal Feeds

Evolving Web: Drupal 8 Migration: Migrating Basic Data (Part 1)

Mon, 01/16/2017 - 11:35am
a href=https://evolvingweb.ca/%20%20___ img src=https://evolvingweb.ca/sites/default/files/styles/medium/public/2017-01/migration-1.png?itok=jACLPFN7 width=220 height=127 alt=Migration typeof=Image class=img-responsive //apA tutorial on migrating basic data to a Drupal 8 site using the migrate module and related modules./p a href=https://evolvingweb.ca/blog/drupal-8-migration-migrating-basic-data-part-1 hreflang=enread more/a
Categories: Drupal Feeds

Web Wash: How to Manage Media Assets in Drupal 8

Mon, 01/16/2017 - 11:30am
Everyone has their own definition of media management. In this tutorial, I'm going to focus on three parts: Storing assets, Embedding assets, Browsing assets. I want to give users the ability to create a media assets. Then have a button in the editor which they can use browse assets and then embed them. We'll utilize three modules to handle this: Media Entity, Entity Embed and Entity Browser.
Categories: Drupal Feeds

Drupal core announcements: Drupal 8 Migrate API is in beta

Mon, 01/16/2017 - 9:31am
pDrupal 8.0.0 replaced the earlier, in-place upgrade procedure for major version upgrades with a migration-based solution for core and contributed modules. Several modules serve this need in core: The emMigrate/em module provides a general API for migrations, the emMigrate Drupal/em module provides API support for Drupal-to-Drupal migrations, and the emMigrate Drupal UI/em module offers a simple user interface to run migrations from older Drupal versions./p pA lot of work has gone into making migrations more complete since the initial 8.0.0 release, including for multilingual sites with various configurations. Drupal-to-Drupal migrations are still not wholly complete (especially for Drupal 7 sources). However, lots of real-life use has validated the choices we made with the base Migrate API, and key architectural improvements have been completed already. An increasing number of contributed modules rely on it for their migrations./p pBased on this stability and success, the Migrate subsystem maintainers and Drupal release managers have agreed the strongMigrate API (the Migrate module) now has a href=https://www.drupal.org/core/experimental#betabeta stability/a!/strong The change took effect in Drupal 8.2.x with 8.2.5 and will apply to 8.3.0 onwards as well. /p h3What does this mean for sites and developers relying on the Migrate API?/h3 pa href=https://www.drupal.org/core/experimental#betaBeta experimental modules/a are considered API- and feature-complete and beta modules are subject to the a href=https://www.drupal.org/core/d8-allowed-changes#betabeta allowed changes policy/a. This means that module and migration developers can rely on the API remaining stable from now on! This also means that the focus with Migrate API is on a href=https://www.drupal.org/project/issues/drupal?priorities=400amp;component=migration+systemfixing critical issues/a as well as bug fixes and contributed project blockers, if they are non-disruptive, or if the impact outweighs the disruption./p pNote that emMigrate Drupal/em and emMigrate Drupal UI/em are still a href=https://www.drupal.org/core/experimentalalpha stability/a, so API changes may still happen in these modules. Completing the Drupal-to-Drupal migration path and getting emMigrate Drupal/em to beta stability is the next priority, so your help with missing and incomplete migrations is welcome!/p pIf you want to get involved, the migration team is meeting every week at alternating times. The team has a href=https://hangouts.google.com/hangouts/_/virtuoso-performance.com/weekly-drupal-8Google Hangouts/a at Wed 1pm UTC or Thu 1am UTC on an alternating weekly schedule. The #drupal-migrate a href=https://drupal.org/ircIRC channel/a is also used as a backchannel./p
Categories: Drupal Feeds

Sooper Drupal Themes: Introducing Glazed Builder: A Monumental Update By SooperThemes

Mon, 01/16/2017 - 8:53am
div class=field-blog-image img typeof=foaf:Image class=img-responsive src=http://www.sooperthemes.com/sites/default/files/styles/bootstrap3_col12/public/blog-images/sooper6-blog-header_2.png?itok=hRBoZpN7 width=1140 height=403 / /div div class=field-body div class=az-element az-row row az-row--sm data-az-id=b2 data-azat-device=sm data-azb=az_row data-azcnt=true style= div class=az-element az-ctnr az-column col-sm-12 data-az-id=b3 data-azb=az_column data-azcnt=true style= div class=az-element az-text data-az-id=b4 data-azb=az_text data-azcnt=true style= p2017 is going to be an incredible year for SooperThemes and for you! We kick off with the first official major version update for our drag and drop builder! Today we introduce you to Glazed Builder 1.1.0. We have rebranded Carbide Builder to Glazed Builder and developed some major new features, including entity revisions, full support for filtered contextual views and RGBA color sliders!/p pThis is a monumental update. Glazed Builder is currently not only the greatest and fastest drag and drop builder for Drupal but also a very competitive product in thenbsp;wider site building landscape.nbsp;Going forward we'll not only develop more features and designs but we'll also start developing even more complete and complex turn-key Glazed demos.nbsp;In addition this release marks the start of our Drupal 8 upgrade sprint. Yes, you heard that right, with the D8Media initiative aiming to add much needed Media improvements in Drupal 8.3 we feel like now is the right time.nbsp;/p /div div class=az-element az-row row az-row--sm data-az-id=b5 data-azat-device=sm data-azb=az_row data-azcnt=true style= div class=az-element az-ctnr az-column col-sm-3 data-az-id=b6 data-azat-width=1/4 data-azb=az_column data-azcnt=true style=/div div class=az-element az-ctnr az-column col-sm-6 data-az-id=b7 data-azat-width= 1/2 data-azb=az_column data-azcnt=true style= div class=az-element az-button data-az-id=b8 data-azat-block=btn-block data-azat-link=http://www.sooperthemes.com/ data-azat-link_target=_blank data-azat-size=btn-lg data-azat-title=Try Glazed Builder Now data-azat-type=btn-primary data-azb=az_buttona class=btn btn-primary btn-lg btn-block href=http://www.sooperthemes.com/ style= target=_blank type=buttonTry Glazed Builder Now/a/div div class=az-element az-text data-az-id=b9 data-azb=az_text data-azcnt=true style= p style=text-align: center;smallThe Admin demo is free, no card required!/small/p h2/h2 /div /div div class=az-element az-ctnr az-column col-sm-3 data-az-id=b10 data-azat-width= 1/4 data-azb=az_column data-azcnt=true style=/div /div div class=az-element az-text data-az-id=b11 data-azb=az_text data-azcnt=true style= h3 class=st-title bg-glazedRedesigned for 2017/h3 /div div class=az-element az-image text-center data-az-id=b12 data-azat-el_class=text-center data-azat-height= data-azat-image=https://www.sooperthemes.com/sites/default/files/glazed-builder/glazed-builder-interface-800.gif?fid=1486 data-azat-style=border-top-width:1px;border-bottom-width:1px;border-left-width:1px;border-right-width:1px;border-color:#999999;border-style:solid; data-azat-width= data-azb=az_imageimg alt= src=https://www.sooperthemes.com/sites/default/files/glazed-builder/glazed-builder-interface-800.gif?fid=1486 style=border-top-width:1px;border-bottom-width:1px;border-left-width:1px;border-right-width:1px;border-color:#999999;border-style:solid; title=/div div class=az-element az-text data-az-id=b13 data-azb=az_text data-azcnt=true style= pGlazed Builder has a fresh look that is designed for fast intuitive site-building. The speed of an interface isn't just about fast code, it's very much about fast design too. The new controls are all-white and while animation is used on the drop shadows the actual controls appear and respond immediately./p pThe colors and branding are matched to the Glazed brand, to emphasize the uniform experience you get when you combine our Glazed Theme with the builder. That said, Glazed Builder is still an independentnbsp;module that can work with any Drupal theme!nbsp;/p /div div class=az-element az-text data-az-id=b14 data-azb=az_text data-azcnt=true style= h3 class=st-title bg-glazedViews with Contextual Filters/h3 pPerfect if you're making a magazine website or more serious blog or commerce website! Now you can design taxonomy term or e-commerce pages with dynamic views displays. It is now fully supported to load views in drag and drop pages, override their filters and pagers in Glazed Builder, and let these views take default arguments based on url parts./p pThis feature is not just awesome for magazine websites but also for government websites, intranets, communities... Basically anyone who buildsnbsp;websites with large amounts of structured content will love this update./p /div div class=az-element az-text data-az-id=b15 data-azb=az_text data-azcnt=true style= h3 class=st-title bg-glazedBetter Equal Heights Rows And Vertical Centering, RGBA Color/h3 /div div class=az-element az-image text-center data-az-id=b16 data-azat-el_class=text-center data-azat-height= data-azat-image=https://www.sooperthemes.com/sites/default/files/glazed-builder/alpha-slider-800.gif?fid=1487 data-azat-style=border-top-width:0px;border-bottom-width:2px;border-left-width:2px;border-right-width:2px;border-color:#01b0ef;border-style:solid; data-azat-width=800 data-azb=az_imageimg alt= src=https://www.sooperthemes.com/sites/default/files/glazed-builder/alpha-slider-800.gif?fid=1487 style=border-width: 0px 2px 2px; border-color: rgb(1, 176, 239); border-style: solid; width: 800px; title=/div div class=az-element az-text data-az-id=b17 data-azb=az_text data-azcnt=true style= pHaving an alpha slider on every color setting in Glazed Builder allows more creative freedom for designers and makes it easier for site builders to implement designs that use translucent elements. We also improved equal heights rows by replacing the old jQuery trick with faster, reliable Flexbox CSS. In addition we enriched the column element with a Vertical Centering option. This let's you add vertical centering to columns independently of sibling columns.nbsp;/p /div div class=az-element az-text data-az-id=b18 data-azb=az_text data-azcnt=true style= h3 class=st-title bg-glazedSaving Revisions/h3 pSome updates are invisible:nbsp;Glazed Builder now automatically detects entity types that support revisions and will create new revisions when saving to fields on these entities. It doesn't matter if your field is on a node, bean block or custom entity. It doesn't even matter if you have have 10 Glazed Builder instances in one page, saving to multiple entities in the backend. It all just works and with revisions you'll easily undo those regrettable changes that seemed right in the spur of the moment./p ​/div div class=az-element az-text data-az-id=b30 data-azb=az_text data-azcnt=true style= h3 class=st-title bg-glazedGoole AMP/h3 pGoogle AMP is seeing more and more adoption and we integrated Glazed Builder with the Drupal AMP module. AMP is very restrictive so it won't allow fancy elements like circle charts and image comparison widgets but it should work fine with non-interactive markup generated by Glazed Builder. We welcome feedback from AMP experts on how to further extend AMP support!/p /div div class=az-element az-text data-az-id=b19 data-azb=az_text data-azcnt=true style= h3 class=st-title bg-glazedGlazed Theme 2.6.0/h3 pWhile this releases focuses on the Glazed Builder update, Glazed Theme also received new features and consequently a major version bump to 2.6.0. Less spectaculary but still very useful: A Import/Export interface was added to the Glazed Theme Settings interface. All those settings that collectively make up your sites' unique design can now easily be copy-pasted between environments, or into a new subtheme .info file./p /div div class=az-element az-text data-az-id=b20 data-azb=az_text data-azcnt=true style= h3 class=st-title bg-glazedDrupal 8 Themes and Builder/h3 ul/ul ul/ul ul/ul /div div class=az-element az-image text-center data-az-id=b21 data-azat-el_class=text-center data-azat-height= data-azat-image=https://www.sooperthemes.com/sites/default/files/Drupal%2520%257C%2520Media%2520Library%253B%2520V0.82%2520MVP.png?fid=1484 data-azat-width=800 data-azb=az_imageimg alt= src=https://www.sooperthemes.com/sites/default/files/Drupal%2520%257C%2520Media%2520Library%253B%2520V0.82%2520MVP.png?fid=1484 style=width: 800px; title=/div div class=az-element az-text data-az-id=b31 data-azb=az_text data-azcnt=true style= pAs a subscription Drupal theme shop, we really focus on building long-term relationships with our customers and that's why we carefully chose important moments that affect the products we make and maintain. Choosing the right moment to make the D8 move was hard, because Drupal 7 is just so good that it was hard for Drupal 8 to take the crown.nbsp;/p pFrom my perspective, this moment is the release of Drupal 8.3nbsp;with contrib in great shape, improved media handling, and hopefully a media browser in core! The moment that it no longer makes sense for anyone to start a Drupal 7 website is approaching and we're going to make sure all our products are running smoothly on Drupal 8 by that time./p ul/ul ul/ul ul/ul /div div class=az-element az-text data-az-id=b23 data-azb=az_text data-azcnt=true style= p style=text-align: center;a href=https://www.drupal.org/node/2796001source/a/p /div div class=az-element az-text data-az-id=b22 data-azb=az_text data-azcnt=true style=position: relative; left: 0px; top: 0px; pFor more details about this update:/p ul lia href=https://www.sooperthemes.com/documentation/changelogCHANGELOGnbsp;Glazed Theme/a/li lia href=https://www.sooperthemes.com/content/adding-new-carbide-snippets-sidebarCHANGELOG Carbide Builder/a/li /ul ul/ul ul/ul ul/ul /div /div /div div class=az-element az-row row az-row--sm data-az-id=b24 data-azat-device=sm data-azb=az_row data-azcnt=true style= div class=az-element az-ctnr az-column col-sm-3 data-az-id=b25 data-azat-width=1/4 data-azb=az_column data-azcnt=true style=/div div class=az-element az-ctnr az-column col-sm-6 data-az-id=b26 data-azat-width= 1/2 data-azb=az_column data-azcnt=true style= div class=az-element az-button data-az-id=b27 data-azat-block=btn-block data-azat-link=http://www.sooperthemes.com/ data-azat-link_target=_blank data-azat-size=btn-lg data-azat-title=Try Glazed Builder Now data-azat-type=btn-primary data-azb=az_buttona class=btn btn-primary btn-lg btn-block href=http://www.sooperthemes.com/ style= target=_blank type=buttonTry Glazed Builder Now/a/div div class=az-element az-text data-az-id=b28 data-azb=az_text data-azcnt=true style= p style=text-align: center;smallThe Admin demo is free, no card required!/small/p h2/h2 /div /div div class=az-element az-ctnr az-column col-sm-3 data-az-id=b29 data-azat-width= 1/4 data-azb=az_column data-azcnt=true style=/div/div /div div class=field-content-banner glazed-util-float-right float-right a href=http://bit.ly/1MRJwVWimg typeof=foaf:Image class=img-responsive src=http://www.sooperthemes.com/sites/default/files/default_images/sooper-theme-banner-2016-300x140.png width=300 height=140 alt= //a /div
Categories: Drupal Feeds