Every spring, members of Acquia's Product, Engineering and DevOps teams gather at our Boston headquarters for "Build Week". Build Week gives our global team the opportunity to meet face-to-face, to discuss our product strategy and roadmap, to make plans, and to collaborate on projects.Tags: acquia drupal planet
Acquia Developer Center Blog: Announcing OpenEDU: An open source Drupal distribution for higher education
When organizations are able to save time and money during development, they are able to devote more resources to strategic and innovative initiatives. The ability to jumpstart development and extend invaluable resources is especially important to institutions of higher education.
OpenEDU is a pre-configured Drupal 8 implementation that is specifically built for higher education institutions. It enables universities to accelerate the development of sites by providing a “kickstart” set of features.Tags: acquia drupal planet
The editorial experience is a critical and often overlooked part of website development. A weak editorial experience means slower site updates. Without a robust and intuitive content creation process, editors lose motivation to keep their site up to date. Our modular content creation process makes it quick and easy for editors to create content while providing front-end users with a rich visual experience.What Are Modular Content Components?
Modular Content Components are a powerful way for website editors to quickly add new sections and send article content to multiple distribution channels in a single step. Drupal sites with Modular Content Components make it easy to add new distribution channels and send custom formats to each.
Every spring, members of Acquia's Product, Engineering and DevOps teams gather at our Boston headquarters for "Build Week". Build Week gives our global team the opportunity to meet face-to-face, to discuss our product strategy and roadmap, to make plans, and to collaborate on projects.
One of the highlights of Build Week is our annual Hackathon; more than 20 teams of 4-8 people are given 48 hours to develop any project of their choosing. There are no restrictions on the technology or solutions that a team can utilize. Projects ranged from an Amazon Dash Button that spins up a new Acquia Cloud environment with one click, to a Drupal module that allows users to visually build page layouts, or a proposed security solution that would automate pen testing against Drupal sites.
This year's projects were judged on innovation, ship-ability, technical accomplishment and flair. The winning project, Lift HoloDeck, was particularly exciting because it showcases an ambitious digital experience that is possible with Acquia and Drupal today. The Lift Holodeck takes a physical experience and amplifies it with a digital one using augmented reality. The team built a mobile application that superimposes product information and smart notifications over real-life objects that are detected on a user's smartphone screen. It enables customers to interact with brands in new ways that improve a customer's experience.
At the hackathon, the Lift HoloDeck Team showed how augmented reality can change how both online and physical storefronts interact with their consumers. In their presentation, they followed a customer, Neil, as he used the mobile application to inform his purchases in a coffee shop and clothing store. When Neil entered his favorite coffee shop, he held up his phone to the posted “deal of the day”. The Lift HoloDeck application superimposes nutrition facts, directions on how to order, and product information on top of the beverage. Neil contemplated the nutrition facts before ordering his preferred drink through the Lift HoloDeck application. Shortly after, he received a notification that his order was ready for pick up. Because Acquia Lift is able to track Neil's click and purchase behavior, it is also possible for Acquia Lift to push personalized product information and offerings through the Lift HoloDeck application.
Check out the demo video, which showcases the Lift HoloDeck prototype:
The Lift HoloDeck prototype is exciting because it was built in less than 48 hours and uses technology that is commercially available today. The Lift HoloDeck experience was powered by Unity (a 3D game engine), Vuforia (an augmented reality library), Acquia Lift (a personalization engine) and Drupal as a content store.
The Lift HoloDeck prototype is a great example of how an organization can use Acquia and Drupal to support new user experiences and distribution platforms that engage customers in captivating ways. It's incredible to see our talented teams at Acquia develop such an innovative project in under 48 hours; especially one that could help reshape how customers interact with their favorite brands.
Congratulations to the entire Lift HoloDeck team; Ted Ottey, Robert Burden, Chris Nagy, Emily Feng, Neil O'Donnell, Stephen Smith, Roderik Muit, Rob Marchetti and Yuan Xie.
As Hook 42's Community Evangelist, I frequently venture into the prairie of Drupal documentation. It's not quite the Wild Wild West, but having a solid text editor in my holster keeps me saddled up and ready to ride.
Since I don't venture too far off the ranch into programming, I don't really have the need for a heavy IDE (Integrated Development Environment). I just need a tool that works on my Mac, writes with no fancy characters, and has the ability to do some basic formatting. TextWrangler definitely keeps me from squatting on my spurs, and the best part - it's free!
For a while now, Vagrant has been my local development environment of choice. It’s great for a lot of reasons but sometimes working in what is essentially a remote environment, has its challenges. One such challenge is running Behat Tests in a native browser like Chrome with Selenium.
Behat tests are the bee's knees. They are especially so when you can see your tests executed automatically in your desktop browser for easy debugging:Videos require iframe browser support.
However, if you use Vagrant for local development you often lose the benefit of visualizing your test run because many off-the-shelf boxes you find on the internet are configured to run Behat tests using headless browsers like PhantomJS or headless Firefox with xvfb. It's certainly easier to get set up running your tests using PhantomJS, but it doesn’t have to be this way:Videos require iframe browser support.
You can configure your Behat tests to run in your desktop browser so you can see everything. You can even get fancy and set breakpoints in your tests using an IDE like PHPStorm, halting the browser execution and giving you the opportunity to pop open Chrome dev tools or the like to really understand what’s going on during your test.
This article assumes a few things:
- Local development environment using Vagrant for your Drupal site
- Familiarity with Behat and Selenium
- Chrome for running the tests
If you’re unfamiliar with Behat, Selenium and/or Vagrant, they are awesome, and you should check them out. Also, while we’re going to use Chrome here, you could use any browser supported by Selenium and your host operating system. Onwards.Setup
There are a few things to get set up. Following is a diagram to help you understand the interaction between all the pieces as a way to visualize what you need:undefined
The above diagram shows the test suite run by Behat (1) on the Vagrant box. Behat talks to the Selenium hub (2) server running on the Vagrant box, which talks to the Selenium node (3) server on the host machine. Finally, the Selenium node server is what drives Chrome (4) to execute the test suite. Not to worry if you don’t understand what these things do, we’ll get into that below.
To get started with the setup, first ensure that you have the Java Runtime Environment (JRE) installed on your host machine and in the Vagrant box, which is required to run Selenium. You may already have it installed, but can check with:$ java -version
I’m running JRE 1.8. If you need to install or update, Google is your friend.
Next, you’ll need Selenium. It’s handy to download it into a shared folder between the host machine and the Vagrant box. The important thing is that it’s available on both the host machine and Vagrant box.$ wget http://selenium-release.storage.googleapis.com/2.53/selenium-server-standalone-2.53.1.jar
Finally, you’ll need Chrome driver on the host machine. For convenience move it somewhere on your PATH:$ wget https://chromedriver.storage.googleapis.com/2.29/chromedriver_mac64.zip $ unzip chromedriver_mac64.zip $ mv chromedriver /usr/local/bin Run tests
Now that you have all the software you need, it’s time to run the tests. First thing you’ll want to do is start Selenium server in hub mode in the Vagrant box:$ java -jar /path/to/selenium/selenium-server-standalone-2.53.1.jar -role hub
Notice the -role hub option. This tells Selenium to run in hub mode. Running Selenium in hub mode allows Selenium to receive tests to be executed and forward them to any registered Selenium servers running in node mode. The Selenium server running in node mode is what controls the browser, driving the browser through the tests. In this way you can bridge the gap between the Vagrant box and the host machine, so that you can see the tests running in a browser on the host machine. You’ve already got the Selenium server in hub mode running on the Vagrant box. Now lets start a Selenium server in node mode on the host machine:$ java -jar /path/to/selenium/selenium-server-standalone-2.53.1.jar -role node -hub http://my-vbox.local:4444/grid/register -Wdriver.chrome.driver=/path/to/chromedriver
Here, you’re telling Selenium to run in node mode, using the -role node option. You’re also registering the Selenium node with the Selenium hub running in your Vagrant box using the -hub http://my-vbox.local:4444/grid/register option. Replace my-vbox.local with the host name or IP address of your Vagrant box.
Next you’ll need to adjust your behat.yml file to register a Selenium Mink session, that points to the Selenium hub server running in the Vagrant box e.g.,selenium2: wd_host: "http://my-vbox.local:4444/wd/hub"
So that your behat.yml file looks something like this:default: suites: default: contexts: - FeatureContext - Drupal\DrupalExtension\Context\DrupalContext - Drupal\DrupalExtension\Context\MinkContext extensions: Behat\MinkExtension: goutte: ~ selenium2: wd_host: "http://my-vbox.local:4444/wd/hub" base_url: http://my-vbox.local browser_name: 'chrome' Drupal\DrupalExtension: blackbox: ~ api_driver: 'drupal' drush: alias: 'local' drupal: drupal_root: '/var/www/docroot'
With all that setup, you’re finally ready to run your tests. From your Vagrant box, run:$ ./vendor/bin/behat -v -c /path/to/behat.yml /path/to/behat/features
If everything worked out, you’ll see Selenium open up a new instance of Chrome and drive it through the test suites:Videos require iframe browser support. Further Reading
Token is one of the 3 most popular modules in Drupal.
It allows you to use small placeholders to automatically complete tasks.
To take a simple example, if you put [site:name] on your site, it will be replaced by the actual name of your site. To take a more complicated example, you can use Token together with the Pathauto module to automatically create URL patterns for your whole site.
A stable release of a Webpack starter kit! Remove its HTML processing to befriend it with Drupal and build a Drupal module or a theme easily.
Webpack starter kit is based on the following concepts:
- dividing source code from compiled
- separated production task
- modern, future-proof technologies
- linting (code style / syntax errors checking)
- live reloading for browsers
- dependencies through node modules (you can install libraries through NPM and import them in your styles/scripts)
Based on webpack and npm scripts, this kit lets you jump-start your project faster.
One of our members wanted to automatically fill in Drupal fields from another node.
It took a little experimentation, but we managed to make it work using the Token, Token Filter and Entity Reference modules.
This technique works for nodes, but it should allow you to automatically popular field using data from users, comment or any other entity.
Before you begin, follow these steps to enable tokens in Drupal fields. You must allow tokens inside fields before this tutorial will work.
I love the title of the above Paul Gauguin painting - it’s three questions make you think about the past, present, and future. The Drupal community continually asks these questions as well. Personally, I feel Drupal is bigger than me and I’ve been more interested in listening to the dialog around these questions than entering the discussion. For two years I listened to the discussion about porting Webform to Drupal 8 before taking any action. My action resulted in the starting of a new module named YAML Form, which became Webform. My journey to building and maintaining the Webform module has gradually led me to start entering the "Drupal discussion".
And now, I want to discuss the past, present, and future of the Webform module.
For the past 10 years, Nate Haug (quicksketch) and fellow maintainers have done an amazing job building and maintaining the Webform 3.x and 4.x branch for Drupal 6 & 7. The ecosystem that grew from the Webform module is extensive with about 100 add-on modules.
Ten years ago, in the early days of Form API and before the Entity API, the Webform module provided its own subsystem for building and managing forms and submissions. The Webform module for Drupal 7 has a half a million installs and is the number 10 most-installed Drupal module. Simply put, the Webform module for Drupal 7 does its job and does it well.
I have often wondered what would the world look like without communities. Actually, to me, a 18yr old teenager diving into the vast ocean of life and experience, the very thought of it is terrifying. Some opinions are that there will be no tension, while some say that there will be no love. Me? Well, I guess it's better not to disturb the balance of life. Community is something that we all evolved into. Community is the underlying principle of human existence.
Now, let's dive out of this philosophical ocean of thoughts and look at some stuffs I did in the past month. I'd very much like to document it. P.S.: I'll still get wacky in between ;P
Drupal. Hmm, it's quite a familiar term to me now. But it has evolved into something much greater than just a tool I use to build websites for my freelance clients, it has become a family to me. A family with thousands of members. And to be honest, nobody knows me :P. But hey! That's how it works right? In large families? People from India can relate, I guess xD. Nobody knows the youngest member, yet he is assured that he will be supported when needed. So, I am that youngest great grand son of the community who is trying very hard to prove his caliber and commitment. And I am proud to be a part of the community.
Note: it shines the brightest on my resume. Special-mention: Google
Not more than a month ago, I was selected for Google Summer of Code 2017. For those of know who don't know what it is, please go here because I am really tired explaining to people what it means.
I was selected because people at Drupal and Google liked my project proposal. This was the first part of the competition and quite exciting in my case. I converted drafts into a proposal just 1 day before deadline, got it reviewed superfast and submitted it minutes before the deadline. It was quite thrilling. I was sweating that day (not to mention Indian summers) Special thanks to the mentors who took some time from their weekend and reviewed my proposal. It really did put smile on my face when you guys said that my proposal is good to go.
Tip to future students: Contact mentors minimum 20 days before the contest and discuss the project thoroughly. I guess, i was at a little fault on my behalf, being careless. And do contribute to the drupal issue queue regularly.
Getting to the main point, let me introduce to my community. Matthew Lechleider aka Slurpee, he's the principal. Jk, he is the org admin and oversees all the projects. Then we have my old friends gvso(mentor too :)) and Suryansh Singh aka Lord of Codes. And I discovered some amazingly new people this year namely Tameesh, Himanshu, Chiranjeev, Abhishek, Boby, Dibyajyoti and Marcin. And my two lovely mentors Marco aka marvil07 and Palash Vijay who will be guiding me through this summer and teaching me their 'ways' :D I look forward to a summer full of code and that to-do spirit. My mentors and I have agreed that we'll be communicating thrice a week on hongouts and will use Github and drupal.org collectively.
My project title is "Porting Vote Up/Down module to Drupal 8". Currently, it is available for Drupal 7 and since Drupal 8 is the latest version, I have to port it. Vote Up/Down is a module for Drupal which when installed on a Drupal site, provides the functionality of voting or several components.
Going technical, I have to change the deprecated APIs of the module to make it compatible with the latest version. Along with it, I have to change the module architecture a little by removing the previously existing sub modules.
So yeah, that about sums up my journey with Drupal and Google till now. Let's see how the future mends out to be. If you have any questions or views or anything, please let me know in the comments.
Thanks for tolerating this blogpost till the end. I bet, you are gonna change the world :P
(I just love this sign off)Tags: drupal
Drupal 8, Form API #states allow us to create form elements that change state (show, hide, enable, disable, etc.) depending on certain conditionsheykarthikwithu Tue, 05/30/2017 - 18:46
This is a light weight Drupal 8 Module provide User to have Redirects in the Website.heykarthikwithu Sat, 05/27/2017 - 15:40
Last week we released our latest white paper, 4 Reasons to Fast Track Your Move to Drupal 8. In it we talk about Drupal 8’s APIs, the inevitability of digital transformation, the freedom to design anytime, its strong and stable codebase and just how easy it has become to migrate from earlier versions of Drupal and other platforms.
Today we focus on Drupal 8’s powerful APIs100 Million Reasons to Fast Track Your Move to Drupal 8
We are in the midst of a data revolution. Every website, marketplace, phone and sensor on a machine and every wearable on your person is collecting data every minute of every day. Last year Google used 100 million gigabytes of disk space just to index an estimated 30 trillion surface web pages. The trend toward code as a commodity and data becoming the real currency of the digital economy started years ago. Today’s winners are organizations that can master the ability to effectively access, parse, target and distribute data. Doing so is both the great challenge and promise of the digital economy.
The most significant factor in the distribution and commercialization of data has been the reimagining of the API (Application Programming Interface) and their rapid proliferation. Modern APIs enable organizations to collect, compute and monetize data, pivot and build cost effective customer centered product and service iterations.
"2017 is the year APIs help complete the transformation of organizations into truly digital enterprises." Tom Smith, Dec. 20, 2016, Integration Zone
As Smith writes in API Trends for 2017, APIs are no longer considered to be separate products and instead will form the core of a platform upon which new development will occur.Enter Drupal 8
With 30 pre-built APIs shipping with Drupal 8, they do indeed form the core of a powerful application building platform that can help organizations free their data from the limitations of the browser.
The fastest way to help you understand the advantages of Drupal 8’s API infrastructure is to begin with its core RESTful Web Services API. REST in core includes all your favorite CRUD operations to create, read, update and delete content entities including the ability to read configuration entities. For more information read this detailed overview of web service solutions in Drupal 8 by Acquia CTO and Drupal founder Dries Buytaert.
Like what you saw in core REST? Next take a serious look at the core Migrate API and its supporting core modules. You’ll find that upgrading from Drupal 6, Drupal 7 and even other platforms will help you design a clear and straight forward path to getting your data into Drupal 8 where you can begin to take advantage of it’s full range of API goodness. Visit this overview on upgrading from Drupal 6 or 7 to Drupal 8 for a step by step peak at the process.
Links to all of Drupal 8’s core modules are provided below. Let us know what you think and download our new Drupal 8 Migration white paper for more information.
- Authentication API
- Block API
- Cache API
- CKEditor API
- Configuration API
- Database API
- Entity API
- Entity Validation API
- Filter API
- Form API
- Layout API
- Logging API
- Menu API
- Middleware API
- Migrate API
- Plugin API
- Quick Edit API
- RESTful Web Services API
- Render API
- Responses in Drupal 8
- Routing system
- Runtime Assertions
- Serialization API
- Services and dependency injection
- State API
- Text Editor API
- Tour API
- Translation API (Code text)
- Typed Data API
- Update API
Tagged with Comments