emGee Software Solutions Custom Database Applications

Share this

Drupal CMS

aleksip.net: Drupal’s Layout Initiative and component-based theming

Drupal.org aggregator - Sat, 11/17/2018 - 09:52
A quick overview of some things happening with Drupal’s Layout Initiative from the perspective of component-based theming, a theme development approach that has been gaining popularity in the past few years.
Categories: Drupal CMS

Sooper Drupal Themes: Out Now: New Profile Feature, Automatic Product Installation & More!

Drupal.org aggregator - Fri, 11/16/2018 - 10:27

We are more than happy to announce that November brings new long-awaited updates and features to the Sooperthemes products! In this September's Sneak Peek blog post we talked about introducing an interface for site administrators to create user profiles that limit elements, buttons and CKEditor toolbar items a user sees in the Glazed Builder interface. This feature is now LIVE and ready-to-use. Moreover, new documentation is available and can be found on our Help Center page. Last but not least - Automatic Product Installation is back in business!

Glazed Builder User Profiles

Take content authoring one step further with the new User Profiles feature. Site administrators can now limit what users with specific Drupal roles get to see in the Glazed Builder Interface. Profiles give you total control over who has access to specific Glazed Builder elements, Drupal blocks, views display and CKEditor buttons. We made profiles into configuration entities, therefore they are also exportable in both Drupal 8 and Drupal 7 - this could be achieved by using the feature module. 
To set up a new Glazed Builder Profile go to Configuration>Content Authoring on your Drupal administration panel and select Glazed Builder.  By clicking "+Add Glazed Builder Profile" button  we are now able to configure a new User Profile based on: Roles, Glazed elements, Drupal blocks, Views, CKEditor buttons (inline & modal editing).

Help Center: New Documentation

We are continuously working towards making Sooperthemes products easy and convenient to use. On our Documentation page you are going to find 30 new tutorials explaining how every Glazed Builder element works. In the near future, short explanation videos are going to be added to each docs page. Longer video tutorials with the focus on how to build complete Drupal websites with Sooperthemes' products are on their way to our YouTube channel as well! 

Automatic Product Installation

Our free installation service has been refactored to be compatible with Drupal 8 and is now back online! You can install complete Sooperthemes demo websites on your a2hosting or other SSH/Drush capable web-server. All you have to do is head over to Automatic Hosting Installation Service page, and choose:

  1. The Drupal version you want to install (Drupal 8 or Drupal 7)
  2. The Glazed Demo of your choice
  3. Fill in the form for your automatic webhosting installation
  4. Grab a tea or coffee and watch your website come to life in under 5 minutes
Bug Fixes and Improvements

We listen to our customers and actively seek out advice on how we can improve the experience with Sooperthemes products. Thanks to your input on Sooperthemes Support Forum we were able to fix several issues that some users might have encountered. Also expanded the features for some Glazed Builder elements.
Bug fixes:

  • Fixed a bug where mobile automatic playback for full screen videos wouldn't work properly
  • Better Pantheon hosting: fixed an issue where images wouldn't load properly on Pantheon dev environment
  • Fixed an issue where a "Data you have entered may not be saved" error would appear when leaving a Saved page
  • Fixed an issue where a section with a video background disappears on small screens

Improvements:

  • Added additional options to the background video player for disabling playback on mobile devices
  • Added additional options to the background video player for showing player controls
  • Added a new option for aligning breadcrumbs
  • Added an option to "not play video on mobile"
  • Added an option for adding styles to Glazed Builder text editor

For more details on the latest update check out the CHANGLOGS:

Glazed Builder CHANGELOG

Glazed Theme CHANGELOG

Categories: Drupal CMS

OpenSense Labs: Essential Drupal Modules for an E-learning Platform

Drupal.org aggregator - Fri, 11/16/2018 - 05:17
Essential Drupal Modules for an E-learning Platform Shankar Fri, 11/16/2018 - 18:47

From the vantage point of a school, some of the features that prove its greatness are a library with a superabundance of books, science laboratory with advanced scientific instruments, projection with 3D technology and so on. Today, where almost everything is happening through the internet, the education sector is not left far behind. E-learning platforms have taken the world by storm with its unprecedented provisions of online learning. And E-learning platforms need great features as well to be able to disseminate knowledge across multiple channels efficaciously.


A lot of significant features can spring up in your mind that you think should be in an e-learning platform. It can be tons of courses on a plenitude of subjects for the learners. Or it can be digital certifications that can be provided for a successful completion of a course. Drupal comes with some amazing set of modules to essential features of an e-learning platform. Let’s look at some of the important features and see how Drupal has the answer for that.

Courses

Modern learners are infatuated with the notion of getting a top-quality education and love to choose from an extensive list of courses on an e-learning platform. Some of the Drupal modules that can be helpful in creating courses include:

Course module lets you build e-learning courses with any number of tracked requirements for completion. It allows any content type to be used as an e-learning course comprising of graded or ungraded course subjects. It offers course object API for defining learning objects that can be added to a workflow.

For assigning and mapping credit types to learner profiles and courses, Course Credit module is useful. On successful completion of an activity, online learners will be able to receive or claim credit for which they are eligible. 

To expose Course module as a Course object, Course relationships module is effective which allows parent courses to include sub-courses. It can grant access to sub-courses by enrolling into or purchasing a parent course.

Quiz

Through online tests and quizzes, an instructor can track the progress of students and analyse the effectiveness of the curriculum. Simultaneously, it paves the way for the students to track their own progress and improve their skills accordingly.

Quiz module allows you to build graded analytics in Drupal where a quiz is given as a series of question and the answers are, then, stored in the database. During or after the quiz, the scores and results are displayed. Administrators can also provide automatic or manual feedback. This module can be leveraged as an object in a larger Learning Management System (LMS) or a supplemental classroom activity.

Certification

Skills and certification tracking is one of the important features of an e-learning platform.

Certificate module helps in creating and awarding PDF certificates with the help of tokenised HTML templates. It provides the interface for governing custom certificate templates and mappings and allows integration with Wysiwig for rich certificates.

Open badges, which are digital images are used to recognise an individual’s skills and achievements, can be created with Drupal. Open digital badging module helps in providing a Mozilla OBI compliant badge empowered by the learning system.

To create badges earned by students on their successful completion of a course or a class, Opigno Mozilla Open Badges App module lets you integrate Opigno LMS with Mozilla Open Badges. In this, badges will be exhibited in the user profile and can be automatically synchronised with Mozilla Backpack.

Social learning/ Message boards

E-learning platforms should allow students to learn from one another

Modules like Opigno Messaging and Opigno Forum, which are related to Opigno LMS distribution, govern the private messaging feature to let users share messages between them. It allows you to select a list of recipients and start a discussion thread with the selected users. It is worth noting that these modules are not covered by Drupal’s security advisory policy.

Social Login and Social Share modules eliminate the need of creating a username and password by allowing you to log in using the social network sites and helps in sharing the content with your network.

Consistent instructor presence

The role of the instructor is significant in e-learning as he or she is instrumental in encouraging and inspiring the students.

Opigno instructor-led training module helps in implementing instructor-led training (ILT) entity. It can be added to learning paths in combination with online modules and virtual classrooms. ILT sessions let you register attendance of users and provide them with a grade. These sessions can be made mandatory in the learning path and are automatically added to the user’s calendar. Also, note that this module is not covered by Drupal’s security advisory policy.

A well-designed LMS

A streamlined and a well-designed LMS means that it should be easy to navigate, well-organised, and must contain high-quality content.

The LTI Tool Provider module allows a Drupal site to act as a Learning Tools Interoperability (LTI) Tool in any LMS that supports the LTI standard. LTI compliant LMSs include Angel, Blackboard Learn, Moodle, and Sakai. Please note that this module is not covered by Drupal’s security advisory policy.

Kaltura module helps in integrating the Kaltura video platform capabilities into Drupal thereby allowing you to instantly enrich your Drupal site with video, audio, and images.

Chamilo integration module allows integration of Drupal with Chamilo LMS by offering ways to see Chamilo resources into Drupal blocks.

Would love to have a starter kit for building the LMS? Open LMS distribution, which is developed and actively maintained by OpenSense Labs, is a learning management system based on Drupal 8 that comes with robust features.

Open LMS offers numerous kinds of content type like textual study material, video lectures, documents that can be utilised as a course material for students. Also, it lets you add H5P, HTML5 based interactive video content type, to the course.

Moreover, it provides a quiz and subjective test functionality, assignment functionality powered by Webforms, and calendar functionality to schedule courses. Please note that Open LMS is not covered by Drupal’s security advisory policy.

Conclusion

E-learning platforms have changed the landscape of education. And Drupal as an open source software and a robust content store helps in innovatively build an efficient e-learning platform.

Some of the significant features have been discussed in this blog post that is fulfilled by Drupal’s incredible set of modules. OpenSense Labs has been powering digital experience dreams of its partners with its expertise in Drupal development.

Contact us at hello@opensenselabs.com to build a great e-learning platform with Drupal.
 

blog banner blog image Drupal E-learning module Drupal e-learning E-learning Drupal module Blog Type Articles Is it a good read ? On
Categories: Drupal CMS

OSTraining: How to Use Google Webfonts in Your Drupal 8 Site

Drupal.org aggregator - Fri, 11/16/2018 - 01:11

Although Drupal has reputation for being a developers' platform, lots of user rely on Drupal's admin area for key tasks.

For typography in Drupal sites, the best way to change your site's fonts via the admin is a module called @font-your-face

The @font-your-face module allows you to work with webfonts like Google Fonts or Font Squirrel. It also provides the ability to work with paid font services like Typekit or fonts.com.

In this tutorial, you’ll learn how to configure and use this module in Drupal 8.

Categories: Drupal CMS

OpenSense Labs: Drupal-Healthcare: Things to Look for in Your Vendor

Drupal.org aggregator - Fri, 11/16/2018 - 01:01
Drupal-Healthcare: Things to Look for in Your Vendor Vasundhra Fri, 11/16/2018 - 14:31

When the whole world works on the simple facet of fellowship how can the healthcare industry not constitute to the same concept? 

Development and marketing collaborations between the healthcare organizations and web development agencies can be mutually beneficial. Whether your healthcare organization is built on Drupal or if you are looking for redesign and new prospects with Drupal, there are a number of things that have to be kept in mind, and if the main agenda is to collaborate, a series of questions have to be answered.


What is it about Drupal that makes leading healthcare organizations chose this platform? How has Drupal evolved to help healthcare organizations serve better to their patients? 

Reasons Why the Healthcare Industry Should Choose Drupal 
  • Web Accessibility 

Web Content Accessibility Guidelines (WCAG) 2.0 commands that all the websites should be accessible to everyone regardless of their age, ability, or a combination of technology and ability. With the release of Drupal 7, the Drupal community is committed to providing universal accessibility not just for the end users but for the developers too. 

Web accessibility is the comprehensive practice of guaranteeing interaction with, or access to the web, for all the people irrespective of their abilities.

Flexible and fully customizable theming, and features make it possible for Drupal sites to meet WCAG accessibility and section 508 requirement. Some of the web accessibility features may include:

  • The provision of HTML5, which provides new and better semantic components that tell the browser and assistive technologies about the type of content coming forward, and how the complementary information provided (HTML) is related to the content.
     
  • The provision of “Drupal.announce()”, a method which helps the pages update in a non-visual manner. 
     
  • Without breaking the tab order in local navigation flow, Drupal directs non-visual and non-mouse users to access prime element on the page in a logical order. With its tabbing manager, Drupal defines tab orders explicitly for keyboard users. 
     
  • Other Drupal web accessibility modules such as text resize, style switcher, alt text, CKEditor abbreviation, high contrast, it makes it easy to make a universal user-friendly website. 
     
  • Drupal also uses fieldsets which give a visual diagram around the field gathering. It breaks the form into subsections, making it easier to understand for visually impaired people.

The Drupal accessibility handbook and theming guidelines ensure that the Drupal themers are well aware of the best practices while they are building their website. themes

  • Third-Party Integration

The ability of Drupal to integrate with third-party applications is the primary building block of generating a robust functional system. Making the task easy for developers, seamless third-party integration allows a bonus for marketing strategic stand too. 

Integrating Drupal with an EHR system 

The Electronic Health Record (EHR) system is steadily gaining its ground in the healthcare industry. Used for electronically storing up data of the patients in the digital format it offers a completely new level of playing field for both the patients and providers. 

Bestowing the physicians with faster access to the medical records, EHR avoids errors and minimizes the cost which is associated with paperwork. 

Drupal, when integrated with an EHR keeps the data protected at all times and prevents duplicacy of the content, while still permitting the user to interact with the view and input the information which is necessary for the role.

It securely shares the information with patients and other clinicians assisting providers more efficiently diagnose patients, reduce medical errors, and provide safer care

Some of the most adopted EHR systems in use that can be integrated with Drupal are NueMD e-MD, PHI etc.  

 

  • Mobile first design 

Around 61.2% of the worldwide population is indulged in the use of a smartphone, and in such an innovative environment the manipulation of mobile compatible websites is hard to ignore upon. 

Incorporated with mobile friendly themes which is suitable for any screen size, Drupal works well for almost all devices which include iPhone, iPad, Android, and even blackberry. There is no doubt that having a medical based mobile website armed with all relevant information to target a diverse group of people and partners is a profitable mechanism for every medical organization. 

Drupal makes it easy for users to have a better mobile experience on healthcare websites. The mobile first designs let them set up online profiles, helps them in maintaining records, and other medical practices. 

  • Security 

According to HIPAA Journal, there have been about 2,181 healthcare data breaches (2009-2017) involving more than 500 records. 


Healthcare industry is massively reliant on technology these days, not just the hardware to cure illnesses, but also when it narrows down to send, retrieve, and store data. 

Drupal’s lockdown security and publishing of detailed security reports have been a major shield to the organizations. With the evolution in the Drupal system, the platform has conquered a huge reputation for its security and robust performance. Hospital websites store an ample number of data, records, reports, digital assets in their database. 

The modules and extensions are provided with a layer of extra security to the website, marking Drupal a highly secure CMS.  

Not only this, but Drupal also contributes to resolving security issues that are supported by the security advisor. It also offers help for contributing module maintainers in fixing security issues. 

  • Multilingual feature 

With medical tourism getting popular and healthcare technology advancing sparingly forcing people to look for better medical assistance across various parts of the globe. It is not uncommon to encounter patients who speak a language other than English.

To expand the access to people across the globe in healthcare,  Drupal grants 4 easy modules to translate the website into more than 94 languages providing healthcare websites a better scope of communication with the patients. It is also easy to build a custom language not available in Drupal. 

  • Better user experience and engagement 

Medical healthcare websites are often used by people in distress. And if operations, like finding the right health care provider, or finding medical records, and paying bills, should be tough and unintuitive, it would leave people more frustrated. 

In fact, Google tells us that website speed has a great impact on how people perceive it. Therefore engagement through media features and at the same time uninterrupted communication online with faster loading is important. 

With an excellent array of modules, Drupal 8 has to be the right choice for creating an engaging user-friendly website in the healthcare sector. Over the past few years, Drupal has evolved to be more flexible and better for technical as well as non-technical users, presenting a customizable administration dashboard and responsive web designs. 

Drupal lets the user personalize the website in a way they desire. Acquia Lift Connector, Drupal module, offers integration with the Acquia Lift service with an improved user experience for personalisation

Important Factors to Look for in a Drupal Partner 

Now that organizations have started using Drupal as their CMS to revamp or build their organization’s website, the next step would involve choosing up of Drupal vendors. 

Every Drupal vendor is different and posses a unique set of skills, thus choosing the right partner makes it important. This can be done by checking some vital factors which can include:

Important factors

Points to remember

Skillset

  • The organization has enough experience and capabilities to manage projects of healthcare

  • Experience with diverse business verticals to prove its worth.

Reputation

Monitoring and Processing

  • Ask for case studies for its previous clients.

  • Look out for the credentials of the technical team.

Verifying about the site performance

  • Enquire about the development plan and ways to improve it

  • Check their knowledge on best practices. 

Maintenance and technical support

  • Robust customer support service for regular updates and maintenance services. 

 

Things to Remember Before Choosing a Drupal Partner 
  1. Do they have the right amount of healthcare experience?

    Every healthcare marketing agency has creative resources available in their vanity, but only an experienced partner adds up to the plans, solutions and original thinking. 

    Thus, no matter if the firm has beaten up with high-quality challenges or low-key struggles, every potential partner should have capabilities of providing solutions, and it can only be done when that potential partner has knowledge and experience of solving the health-related travails.

    Patients expect a very specific functionality in the health website, from providing directories to patients reports, it becomes really important to find a partner that is able to build modules and timely update them. 

    Not only this but healthcare organization are apprehended to follow HIPAA compliance guidelines which protect individuals' medical records and other personal health information. The healthcare industries can’t afford to take risks when it comes to HIPAA and PCI compliance

    One wrong or missed encryption and the company's reputation is put under the radar. Which is not only bad for the branding but also violates the rules. Therefore, demanding experience to be an important factor. 
     
  2. Do they have an adequate content strategy?

    Content strategy is important to all the healthcare websites. It is important to team up with the partner that would help you to organize your site in a way that clearly reflects the main objectives of the visitors. 

    There is a need of a  partner with an agency that will help to organize the site content in a manner that is clearly reflected on the visitor’s objectives, and build out the information architecture in Drupal. 

    Drupal’s content model can be complicated if the user is not familiar with the platform. If you operate with an experienced strategist that would help you to see the long-term vision before you start adding content into Drupal, it will help in the long run. 
     
  3. Do the goals and services match?

    A true healthcare organization partners should deliver greater cerebral and inventive values. Which includes the delivery and projection of the agendas. How to conquer it? 

    Have a serious talk about money management.  

    Many firms work on a plan to meet or exceed the possible budget. However, a partner minded organization has a cost-effective way of meeting or exceeding goals. The aim is to construct a strong measure of results, outcomes, and high return-on-investment. 
     
  4. Do they have a plan for performance measurement?

    Every organization would have projects with a certain goal. Here, it becomes an important factor for you to know how does your potential partner measure the scale of performance towards that goal?

    Benchmarking is the term which is used to compare the current performance and the overall standard. Every Drupal based agency measures and quantifies the results based on the - manual page. It describes various methods to measure the performance of the web server, allowing you to witness the performance and even improve it for the future.

    Performance measurement can also be analyzed with the help of Performance Bucket model. This model helps in making the detect-triage-diagnose process more efficient.

    Applications insights is a service that lets the developers monitor the performance, availability, and usage of the entire applications. It becomes an essential part of the application lifecycle.

    As mentioned above, a user tends to abandon a website if it doesn’t load after 3 seconds, and when it comes to healthcare websites, loading time becomes an important factor. Having a predefined performance budget would allow you to enforce better results.

    Your long-term potential partner should be induced by a good design team and development cycles which would help in maintaining the value limits that takes care of the website performance. Performance Budget is one such design and development which would help the user to establish and maintain the culture of an organization, helping them to deliver a smooth.
     
  5. Long-term partnership

    It is true that Drupal healthcare websites are quite amazing but on the other hand, they are big and complex. Thus, make sure that you pick an organization that would be there to support you even after the procedure of website-went-live is done. A long-term partner is needed if the custom modules built on the website requires regular updates and security patches. 
     
  6. What methodologies and tools do they use to manage their project?

    Drupal has several modules several distribution and modules developed to perform several project management functions. A clearer idea on which methodology is right for what project contributes to the desired goals in the end. There are several project management frameworks which should be used by an organization to build a successful project. Agile frameworks like:
     
    • JIRA
    • Scrum
    • Kanban
    • Scrumban
Case study for PMG

Produce Market Guide is a product of a Farm Journal which shares information on fresh fruits and vegetables. The advanced search feature on the website was slow, which resulted in a poor user experience. 

To fulfill the needs and the standards of loading time, the site was mapped and decoupled with the Elastic search. The new website now is a lot user-friendly with search application and better loading result. Because of the third party integration like Kibana and Logstash, the admin can now track the user behavior and personalize the user experience. The project was completed within a month which followed the principles of SCRUM and AGILE with team fluidly arranging the needs accordingly. 

Future of Healthcare Marketers using Drupal 

As an organization, the requirements are bound to change from time to time and using a single vendor or a specific partner can sometimes be the hindrance. This is a common scenario in healthcare industries. Fortunately Drupal makes a lot of things easy for healthcare marketers or organizations.

It prevents everyone from getting caught up with a single vendor

Drupal exponential growth in the healthcare industry has been rapidly increasing. With the healthcare industry in the third position of top 10 industries using Drupal, it continues to grow mature. 

High profile hospitals like C.S Mott Children’s Hospital, Duke medicine, Memorial Sloan-Kettering Cancer Center, Northwest medicine etc has further elevated Drupal’s profile. It’s these types of reputed organizations with a progressive digital team which tells us that Drupal has a bright future in the healthcare sector. 

Conclusion

The Drupal platform is an open source CMS, there are many agencies around the country that have developers familiar with Drupal. Having developers who are familiar with Drupal isn’t the same as having a team that understands the inherent complexity of healthcare websites. 
 
OpenSense Labs believes in providing the best Drupal partnership for you. Contact us at hello@opensenselabs.com for a rich and conducive partnership.

blog banner blog image Blog Type Articles Is it a good read ? On
Categories: Drupal CMS

Acquia Developer Center Blog: BLT and DDEV -- Together!

Drupal.org aggregator - Fri, 11/16/2018 - 00:22

BLT (Build and Launch Tool) provides an automation layer for testing, building, and launching Drupal 8 applications. It is the default recommended tool used by Acquia Professional Services.

We use BLT in Professional Services to sync databases, manage configurations, create artifacts for deployments, and tons of other things that -- most of the time -- save us time. If you have not tested it yet I’d recommend you to have a look: https://github.com/acquia/blt

DDEV, on the other hand, is a Docker-based, open source tool that helps you to quickly spin up a (local) environment in applications like Wordpress; Drupal 6, 7 and 8; Backdrop, and Typo3. Have a look at https://github.com/drud/ddev

Tags: acquia drupal planet
Categories: Drupal CMS

Redfin Solutions: Progressive Decoupling: A React App in Drupal

Drupal.org aggregator - Thu, 11/15/2018 - 08:51
Progressive Decoupling: A React App in Drupal

It's almost time for NEDCamp, and I can't wait!

Redfin will be presenting a session there on our toe-dipping foray into the world of "progressively decoupling" Drupal.

Recently, I was on an episode of Talking Drupal to explore a little bit more about React and Drupal together--this shoudl whet your appetite for the session at NEDCamp. Give it a listen!

Chris November 15, 2018
Categories: Drupal CMS

Kanopi Studios: Drupal 9 is Coming, Part 2: Choosing to Stay on Drupal 7 For Now

Drupal.org aggregator - Thu, 11/15/2018 - 08:41

This is Part 2 of a three part series about choices you can make with the news of Drupal 9’s release. Part 1 is an overview. Part 2 is what to do if you choose to stay on Drupal 7. Part 3 is what to do it you choose to upgrade to Drupal 8. 

With the recent news of the release date of Drupal 9, and that Drupal 7 & 8 will be end of life Nov 1, 2021, our Director of Engineering Kat White wrote Part 1 of a blog post series with an overview of how you should next approach your Drupal site . . . is it best to stay on Drupal 7? Or should I upgrade now to Drupal 8?

In that article, Kat outlined the pros and cons of going from D7 to D9, or upgrading now to D8.

In Part 2 of this series, let’s assume you’ve decided to stay on Drupal 7 for now. What next?

The average lifetime of a website is three years. So if you have had your Drupal 7 site for a three years, hurrah! You’ve done well with your return on that investment. And Drupal 7 is robust and supported enough that there’s still a lot of growth and life in your site. So unless there’s a specific module or item that only D8 can offer, you can feel confident that your D7 site will be solid for a few more years.

But this also means you have about two years to maintain that D7 site: in Fall of 2020, you’ll need to start prepping for that Drupal 9 upgrade (or — gasp! — switching to another CMS). This also buys you two years to secure funding, and get all the stakeholders on the same page for the next upgrade.

So here are some of the incremental bites we recommend you take over the next two years of maintenance:

    • Review your website strategy: assuming you built your site a few years ago around business goals, how is the site working towards those goals? Have your goals shifted? Does your site still achieve your mission? It’s always good to revisit your strategy to ensure any changes you make are on the right path.
    • Always audit your content: Content has a way of getting out of control quickly if there are multiple editors and the lines of governance get blurred. Archive or delete unnecessary content. Also review it for your authority voice and mobile strategy.
    • Review your SEO: In addition to keywords, make sure your content is mobile-focused, that your URL structures are meaningful, and schemas are used to describe the content of a page.
    • Code Quality: How clean are your code standards? Are the styles that drive the look and feel of the site well-structured and easy to extend? Is there good documentation? Completing a code audit would be smart to make sure your code is as quality as possible and fits your goals.  
    • Optimize your user experience: There are many tweaks that can be made to a site to make sure users are finding things. Can you run a usability test on a red button vs a blue one? How about using heatmap software to see where users are clicking and scrolling, and tweaking accordingly? Between surveys, interviews with users, looking at analytics, and testing, you can constantly improve the user experience of your site.  

If you’re a more visual person, I gave a talk at BADCamp just last month about going from D7 to D9 if you prefer video.

And if you need extra help with nurturing and growing your existing D7 site, we can help. Kanopi Studios has a dedicated Support Team that currently maintains over 75 Drupal 7 sites, and will be taking on new Drupal 7 support clients at anytime. Additionally, we will be an official long-term Drupal 7 support provider once the application on Drupal.org is available.

If you want help or want to talk through anything do with your Drupal 7 site, please call Anne directly at 1-888-606-7339 or contact us online.

 

The post Drupal 9 is Coming, Part 2: Choosing to Stay on Drupal 7 For Now appeared first on Kanopi Studios.

Categories: Drupal CMS

Dries Buytaert: Acquia a leader in the 2018 Forrester Wave for Web Content Management Systems

Drupal.org aggregator - Thu, 11/15/2018 - 07:19

For the second year in a row, Acquia was named a leader in the Forrester Wave: Web Content Management Systems.

The report highlights Acquia and Drupal's leadership on decoupled and headless architectures, in addition to Acquia Cloud's support for Node.js.

I'm especially proud of the fact that Acquia received the highest strategy score among all vendors, ahead of Adobe, Sitecore and everyone else.

Thank you to everyone who contributed to this result! It's another great milestone for Acquia and Drupal.

Categories: Drupal CMS

OSTraining: How to Embed Drupal Entities with the Entity Browser Module

Drupal.org aggregator - Thu, 11/15/2018 - 05:19

In this blog post, I'm going to show you how embed Drupal entities using the "Entity Browser" module.

This tutorial was requested by an OSTraining customer who is building a book review site. The customer wanted to use Entity Browser so that they can create this feature:

  • The site has two content types: Books and Book Reviews.
  • When users create a new Book Review, they can use a view to search for and select the book they're reviewing. For example, if they're reviewing "War and Peace", they can search for the exisiting "War and Peace" node.
  • When the book review is published, the selected node will be embedded inside the book review.
Categories: Drupal CMS

Issue 365

TheWeeklyDrop - Thu, 11/15/2018 - 01:47
Issue 365 - November, 15th 2018
Categories: Drupal CMS

Drupal blog: Thirteen recommendations for how to evolve Drupal's governance

Drupal.org aggregator - Wed, 11/14/2018 - 15:31

This blog has been re-posted and edited with permission from Dries Buytaert's blog. Please leave your comments on the original post.

After months of hard work, the Drupal Governance Task Force made thirteen recommendations for how to evolve Drupal's governance.

Drupal exists because of its community. What started from humble beginnings has grown into one of the largest Open Source communities in the world. This is due to the collective effort of thousands of community members.

What distinguishes Drupal from other open source projects is both the size and diversity of our community, and the many ways in which thousands of contributors and organizations give back. It's a community I'm very proud to be a part of.

Without the Drupal community, the Drupal project wouldn't be where it is today and perhaps would even cease to exist. That is why we are always investing in our community and why we constantly evolve how we work with one another.

The last time we made significant changes to Drupal's governance was over five years ago when we launched a variety of working groups. Five years is a long time. The time had come to take a step back and to look at Drupal's governance with fresh eyes.

Throughout 2017, we did a lot of listening. We organized both in-person and virtual roundtables to gather feedback on how we can improve our community governance. This led me to invest a lot of time and effort in documenting Drupal's Values and Principles.

In 2018, we transitioned from listening to planning. Earlier this year, I chartered the Drupal Governance Task Force. The goal of the task force was to draft a set of recommendations for how to evolve and strengthen Drupal's governance based on all of the feedback we received. Last week, after months of work and community collaboration, the task force shared thirteen recommendations (PDF).

Me reviewing the Drupal Governance proposal on a recent trip.

Before any of us jump to action, the Drupal Governance Task Force recommended a thirty-day, open commentary period to give community members time to read the proposal and to provide more feedback. After the thirty-day commentary period, I will work with the community, various stakeholders, and the Drupal Association to see how we can move these recommendations forward. During the thirty-day open commentary period, you can then get involved by collaborating and responding to each of the individual recommendations below:

I'm impressed by the thought and care that went into writing the recommendations, and I'm excited to help move them forward.

Some of the recommendations are not new and are ideas that either the Drupal Association, myself or others have been working on, but that none of us have been able to move forward without a significant amount of funding or collaboration.

I hope that 2019 will be a year of organizing and finding resources that allow us to take action and implement a number of the recommendations. I'm convinced we can make valuable progress.

I want to thank everyone who has participated in this process. This includes community members who shared information and insight, facilitated conversations around governance, were interviewed by the task force, and supported the task force's efforts. Special thanks to all the members of the task force who worked on this with great care and determination for six straight months: Adam BergsteinLyndsey JacksonEla MeierStella PowerRachel LawsonDavid Hernandez and Hussain Abbas.

Categories: Drupal CMS

Drupixels: Start, stop or restart Apache Web Server from terminal on Mac OS

Drupal.org aggregator - Wed, 11/14/2018 - 10:00
Start, stop or stop Apache web server from the terminal on Mac OS to make your life easier.
Categories: Drupal CMS

MidCamp - Midwest Drupal Camp: Stay Connected

Drupal.org aggregator - Wed, 11/14/2018 - 07:50
Stay Connected

MidCamp never stops (although we do take frequent coffee breaks), so make sure you stay connected.

We’re on the MidCamp Slack year-round to discuss the event, Drupal, jobs or other goings-on in the Chicagoland area.

You can also meet up with us IRL by attending Drupal Chicago Meetup.

Watch all of the MidCamp sessions from our previous years on our YouTube channel.

As always, be sure to follow us on Twitter, LinkedIn, and Instagram. For the most up-to-date information about all things, MidCamp subscribe to our newsletter

Categories: Drupal CMS

OPTASY: How to Create and Manage a Content Workflow in Drupal 8: Either a Standard or a Custom One

Drupal.org aggregator - Wed, 11/14/2018 - 06:01
How to Create and Manage a Content Workflow in Drupal 8: Either a Standard or a Custom One adriana.cacoveanu Wed, 11/14/2018 - 14:01

"A Drupal 8 initiative to improve Drupal's content workflow", this is how Dries Buytaert first defined the Workflow Initiative, back in 2016. Now, coming back to 2018, you must be asking yourself a legitimate question: “How do I set up a content workflow in Drupal 8?”

“How do I manage, extend and customize an editorial workflow to fit my Drupal 8 website's publishing needs? One including multiple users, with different permissions, that manages the workflow status of... different content types.”

Categories: Drupal CMS

Vardot: Top 5 Drupal Modules For Marketers

Drupal.org aggregator - Wed, 11/14/2018 - 04:06
Firas Ghunaim November 14, 2018

The role of marketers has evolved beyond simply managing and coordinating online advertising campaigns to drive traffic to their respective websites; successful marketers must transform themselves to become storytellers.

Storytelling is an essential skill to master the art of crafting a digital experience for your digital business would-be customers and users. 

Therefore, as a digital business, you must be strategic when it comes to choosing the appropriate platform for your digital experience. 

The fact that you can easily publish and manage multimedia content across multiple websites under one brand has made Drupal a popular and strategic platform for enterprises, the media, healthcare and even powering digital governments.

In short; Drupal is a dream come true for marketers working in the aforementioned industries and sectors.

 

Here are 5 Drupal modules that were created by the Drupal community for marketers:

 

 

1. HubSpot

HubSpot is a widely used and popular inbound marketing software platform that helps companies attract visitors, convert leads, and close customers.

 

Lead generation is a carefully planned ongoing process; deliberate in targeting users based on personalized content marketing.

HubSpot CRM is relied upon by marketers to enable them to qualify the leads generated from the landing pages they developed on their websites.

Marketers that use Drupal-based websites have saved a lot of time and effort by connecting their HubSpot CRM with their web forms that capture the desired user data.

For example, a Webform-based contact form on your site can send its data to HubSpot, where you may already track potential clients and contacts; or a Webform-based e-newsletter signup could send the lead to HubSpot's targeted marketing system, letting you use your pre-existing email campaigns.

Moreover, marketers that create content on HubSpot, can easily display it in Drupal 8’s front-end.

Contact us to integrate HubSpot CRM into your Drupal website seamlessly

 

 

2. Webform

With almost 5,000,000 downloads and nearly 500,000 websites using this module; this makes Webform one of the most popular Drupal modules out there.

 

Forms are an essential feature of a digital experience that relies upon gathering user data relevant to content marketing and personalizing user experiences across all relevant digital platforms.

Webform enables integration with various 3rd party marketing solutions such as MailChimp, HubSpot, and Salesforce to name but a few. You can find a comprehensive list of Webform add-ons here.

A great and simple guide to how you can get started on form building using Webform is available here courtesy of OSTraining.

 

 

3. Google Analytics

This Drupal module adds the Google Analytics web statistics tracking system to your website.

 

According to Builtwith.com, Google Analytics is the most popular analytics tool in the world with at least 37 million live websites currently using the giant tracking and performance monitoring platform.

Marketers that use Drupal website benefit from the Google Analytics module to identify their traffic size, traffic sources and track the performance of their website with regards to ongoing personalization of their user experience.

Being able to seamlessly integrate Google Analytics also provides marketers with real-time data for current site usage and user behavior. In addition to the aforementioned; marketers can track almost every statistic imaginable such as User ID, domain, as well as how many and which files were downloaded and by whom.

For full details regarding the statistics that marketers can track, visit the official Drupal module webpage for Google Analytics here.

 

4. MailChimp

This module provides integration with MailChimp, a popular email delivery service.

 

Regularly maintained and reliable, MailChimp is a favorite tool amongst email marketers. That is mainly due to the attention to both sides of the email exchanges taking place.

This Drupal module allows email marketers to create and send email marketing campaigns from your website and analyze the performance of the campaign while monitoring the behavior of users interacting with your emails.

On the other hand, your website visitors can choose to subscribe (or unsubscribe) easily to the email list of their preference.

MailChimp is not limited to email delivery only; you can also integrate MailChimp E-Commerce which allows marketers to optimize their online store sales via personalized email marketing campaigns and automation workflows.

7 Drupal Modules That Every E-Commerce Must Have

 

 

5. Crazy Egg

This module provides integration with the Crazy Egg heat map service.

 

 

Much of digital business and marketing success comes down to the ongoing enhancement of your digital experience.

This requires a consistent effort of monitoring feedback from your users who in the end must be able to enjoy an engaging user experience that doesn't feature frustrating issues such as slow page load speed and irrelevant content.

The aforementioned frustrations can heavily impact your search engine optimization (SEO) efforts to rank higher on search engines like Google; which makes monitoring online user behavior on-site all the more imperative for marketers.

10 SEO Modules That Every Website Must Have

Crazy Egg is a simple Drupal module that is easy to install to your Drupal 8 (or D7) website to gain access to various reporting formats that showcase online behavior on your web pages.

By recording the user behavior, marketers are able to gain a visual insight into how users interact with different elements, features, and components of their website. Marketers are able to understand where users face challenges browsing the site, which aspects of the website they spend most of their time on and which they avoid completely.

Ultimately, the feedback gained allows marketers to develop the best UI, UX, and content in a more informed manner.

 

 

Bonus: Varbase SEO

This is a core Varbase feature. We strongly recommend Varbase as the ultimate starter kit and distribution to build your Drupal digital experiences.

 

 

Enterprise level organizations and governments that rely upon an ongoing content marketing process require a content publishing and management solution that can handle heavy traffic without compromising performance standards.

This is where Varbase saves the day.

Not only is Varbase inherently optimized for all search engines it also enables you as a content marketer to optimize your multilingual content regardless of the media format to a diverse and global target audience.

  • Optimized markup that is compliant and accessible to WCAG 2.0 Level AA standards
  • XML Sitemap that is also language aware
  • Content SEO grader and recommendations
  • Full-suite of meta tags and descriptive tags that makes your site more optimized, integrated and favorable to search engines such as Google, Yandex, and Bing, and social media networks such as Facebook, Twitter, and many other
  • Total control over how your site will look when appearing on search results
  • Handle redirects with ease and prevent dead links
  • Readable and SEO-friendly URLs that automatically reads your site's structure and hierarchy

 

You can view our work on digital experiences that were built using Varbase here.

 

 

Honorable Mentions:

 

Honeypot

One of the popular Drupal modules available out there. Used by marketers and Drupal platforms that wish to avoid spam.

Honeypot keeps your database clean by blocking spambots from using your web forms using both the honeypot and timestamp methods and is not as intrusive as CAPTCHAs.

 

5 Security Modules Every Drupal Website Must Have

 

Accelerated Mobile Pages (AMP)

The AMP module is designed to convert Drupal pages into pages that comply with the AMP standard

AMP is important because it helps web pages load faster which potentially improves usability and convinces visitors to stay longer on your site engaging with your content.

The logic is straightforward: faster load time leads to better engagement, which reduces bounce rate and improves mobile ranking.

 

If we were to feature every Drupal module out there the list would be way too long, so which Drupal modules do you prefer? How does it help you achieve your marketing goals?

Share with us your own preferences and we will surely feature them as soon as possible.

 

Categories: Drupal CMS

OpenSense Labs: Disseminating Knowledge: Drupal for Education and E-learning

Drupal.org aggregator - Tue, 11/13/2018 - 22:56
Disseminating Knowledge: Drupal for Education and E-learning Shankar Wed, 11/14/2018 - 12:26

Have you always secretly wanted to spend your evenings writing symphonies, learning about filmography or assessing climate change? Studying niche subjects have traditionally been for niche students. But e-learning platforms have changed all that with the provision for learning almost any subject online.


Corporate e-learning has witnessed a stupendous 900% growth in the last decade or so. With more and more e-learning platforms flourishing, organisations are striving to be the best to stand apart from the rest. Drupal has been a great asset in powering education and e-learning with its powerful capabilities that can help enterprises offer a wonderful digital experience. Let’s trace the roots of e-learning before diving deep into the ocean of possibilities with Drupal for building an amazing e-learning platform.

Before the internet era Source: eFront

A brief history of e-learning can be traced through the compilation made by eFront. Even before the internet existed, distance education was being offered. In 1840, Isaac Pitman taught shorthand via correspondence where completed assignments were sent to him via mail and he would, then, send his students more work.

Fast forward to the 20th century, the first testing machine was invented in 1924 that enabled students to test themselves. The teaching machine was invented in 1954 by a Harvard professor for allowing schools to administer programmed instruction to students. In 1960, the first computer-based training program (CBT program) called Programmed Logic for Automated Teaching Operation (PLATO).

At a CBT systems seminar in 1999, the term ‘e-learning’ was first utilised. Eventually, with internet and computers becoming the core of businesses, the 2000s saw the adoption of e-learning by organisations to train employees. Today, a plenitude of e-learning solutions are available in the form of MOOCs (Massive Open Online Courses), Social platforms and Learning Management System among others.

E-learning: Learn anywhere, anytime

In essence, e-learning refers to the computer-based educational tool or system that allows you to learn anywhere and at any time. It is the online method of building skills and knowledge across the complete workforce and with customers and partners. It comes with numerous formats like the self-paced courses, virtual live classrooms or informal learning.

E-learning refers to the computer-based educational tool or system that allows you to learn anywhere and at any time

Technological advancements have diminished the geographical gap with the use of tools that can make you feel as if you are inside the classroom. E-learning provides the ability to share material in all sorts of formats such as videos, slideshows, and PDFs. It is possible to conduct webinars (live online classes) and communicate with professors via chat and message forums.

There is a superabundance of different e-learning systems (otherwise known as Learning Management Systems or LMS) and methods which enable the courses to be delivered. With the right kind of tools, several processes can be automated like the marking of tests or the creation of engrossing content. E-learning offers the learners with the ability to fit learning around their lifestyles thereby enabling even the busiest of persons to further a career and gain new qualifications.

Merits and Demerits

Some of the major benefits are outlined below:

  • No restrictions: E-learning facilitates learning without having to organise when and where everyone, who is interested in learning a course, can be present.
  • Interactive and fun: Designing a course to make it interactive and fun with the use of multimedia or gamification enhances engagement and the relative lifetime of the course.
  • Affordable: E-learning is cost-effective. For instance, while textbooks can become obsolete, the need to perpetually acquire new editions by paying exorbitant amounts of money is not present in e-learning.

Some of the concerns that need to be taken care of:

  • Practical skills: It is considered tougher to pick up skills like building a wooden table, pottery, and car engineering from online resources as these require hands-on experience.
  • Secludedness: Although e-learning enables a person to remotely access a classroom in his or her own time, learners may feel a sense of isolation. Tools such as video conferencing, social media and discussion forums can allow them to actively engage with professors or other students.
  • Health concerns: With the mandatory need of a computer or mobile devices, health-related issues like eyestrain, bad posture, and other physical problems may be troublesome. However, sending out proper guidelines beforehand to the learner like correct sitting posture, desk height, and recommendations for regular breaks can be done.
Building Yardstick LMS with Drupal

OpenSense Labs built Yardstick LMS, a learning management system, for Yardstick Educational Initiatives which caters to the students of various schools of Dubai.

Yardstick LMS Homepage

The architecture of the project involved a lot of custom development:

1. Yardstick Core

This is the core module of the Yardstick LMS where the process of creating, updating and deleting the nodes take place.

2. Yardstick Quiz

We built this custom module for the whole functionality of the quiz component. It generates a quiz, quiz palette and quiz report after quiz completion based upon the validation of the visibility of the report.


We could generate three kinds of reports: 

  • An individual-level quiz where one’s performance is evaluated
  • A sectional-level report where performance for each section is evaluated
  • Grade-level report where performance for all the sections is compared and evaluated.

For the quiz, we had different sub-components like questions, options, marks, the average time to answer, learning objective, skill level score, and concept. The same question could be used for different quiz thereby minimising the redundancy of the data. Also, image, video or text could be added for questions.


3. Yardstick Bulk User Import

This module was built to assist the administrators in creating users all at once by importing a CSV file. Also, there is an option to send invitation mail to all the users with login credentials.


4. Yardstick Custom Login

We provided a custom login feature where same login credentials could be used to log into the Yardstick system. That is, we provided an endpoint for verifying the login credentials and upon success, users were logged in.

5. Yardstick Validation

This module offers all the validation across the site whether it is related to access permission or some time validation.

6. Yardstick Challenge

It offers the user an option to submit a task which is assigned to them where they are provided with text area and file upload widget.

Yardstick LMS has an intricate structure

On the end user side, there is a seamless flow but as we go deeper, it becomes challenging. Yardstick LMS has an intricate structure.

We had two kinds of login:

  • Normal login using Yardstick credentials
  • And the other for school-specific login like the Delhi Public School (DPS) users.
Yardstick LMS custom login for DPS users

For DPS users, we used the same login form but a different functionality for validating credentials. DPS school gave us an endpoint where we sent a POST request with username and password. If the username and password were correct, then that endpoint returned the user information.

If the username was received, we checked on our Yardstick system if the username exists. If it does not exist, then we programmatically created a new user with the information that we received from the endpoint and created a user session. And if does exist, then we updated the password on our system.

Yardstick LMS is designed to govern multiple schools at the same time

We designed Yardstick LMS in such a way that multiple schools can be governed at the same time. All the students of various schools will be learning the same content thereby building uniformity.

The core part of our system dwells in the modules. The module is a content type that can store numerous information like components, concept, description, objective, syllabus among others. 

Several different components can be added like Task, Quiz, Video task, Extension, Feedback, Inspiration, pdf lesson plan, Real life application, and Scientific principles.

Yardstick LMS Real life application component page

Schools could opt for different modules for different grades. When a module was subscribed by a school, a clone module of the master module was created and the school copy was visible only to the school. School version could be modified by the school admin as per their needs and preferences. Master module remained the same. While creating a subscription, administrator had to provide the date so that the components were accessible to the students. School admin could set different dates to different components and only the components with past date were accessible.

Flow Diagram of module subscription to school

Also, we provided an option to create a dynamic feedback form for the modules for analysis. Yardstick Admin had the option to design and create a feedback form as per their requirement and could assign it to a particular module. Different types of elements could be utilised for designing the form like rating, captcha, email, range slider, text field, checkboxes, radio buttons and so on.


Students and teachers need to submit their feedback for each of the modules. On the basis of this, Yardstick team try to improve the content of the system.


Also, various roles were defined for users such as Yardstick Administrator, School Administrator, Teacher, and Student.

1. Yardstick Admin

Yardstick Admin can perform all the operations. He or she can create new users, grant permissions and revoke them as well.

2. School Admin

It has the provision for handling all the operation which are only related to their school. School Admin handles the modules and their components and can import user for their school. All school reports and task submissions are visible to School Admins.

3. Teachers

Teachers can view modules and components assigned to their classes and provide remarks to the students for multiple components and they can view all kinds of reports.

4. Students

They can attempt quiz, submit tasks, view components and view their own reports.

What’s the future of e-learning?

According to a report on Research and Markets, the e-learning market is anticipated to generate revenue of $65.41 billion by 2023 with a growth rate of 7.07% during the forecast period.

The report goes on to state that with the advent of cloud infrastructure, peer-to-peer problem solving and open content creation, more business opportunities would pop up for service providers in the global e-learning market. The introduction of cloud-based learning and AR/VR mobile-based learning will be a major factor in driving the growth of e-learning.

The growth of the e-learning market is due to the learning process enhancements in the academic sector

According to Technavio, the growth of the market is due to the learning process enhancements in the academic sector.

Global self-paced e-learning market 2019-2023 | Source: Technavio

Following are major trends to look forward to:

  • Microlearning, which emphasises on the design of microlearning activities through micro-steps in digital media environments, will be on the rise.
  • Gamification, which is the use of game thinking and game mechanics in a non-game context to keep the users engrossed and help them solve more problems, will see increased adoption rates.
  • Personalised learning, which is the tailoring of pedagogy, curriculum and learning environments to meet the demands of learners, can be a driving force.
  • Automatic learning, like the one shown in the movie The Matrix where a person is strapped onto a high-tech chair and a series of martial arts training programs are downloaded into his brain, can be a possibility.
Conclusion

It’s a world which is replete with possibilities. As one of the most intelligent species to walk on this earth, we perpetually innovate with the way we want to lead a better lifestyle. We learn new things to gain more knowledge. And in the process, we find ways of improving our learning experience. E-learning is one such tech marvel that promises to be a force to reckon with. It is not a disrupting technology but something that is going to get bigger and bigger in the years to come.

As a content management framework, Drupal offers a magnificent platform to build a robust e-learning system. With years of experience in Drupal Development, OpenSense Labs can help in providing an amazing digital experience. 

Contact us at hello@opensenselabs.com to build an e-learning system using Drupal and transform the educational experience.

blog banner blog image E-learning Drupal e-learning Drupal and education Yardstick LMS Drupal Learning Management System Drupal LMS LMS Learning Management System E-learning platform E-learning system E-learning application Blog Type Articles Is it a good read ? On
Categories: Drupal CMS

Morpht: Drupal and Composer: Part 1 — Understanding Composer

Drupal.org aggregator - Tue, 11/13/2018 - 18:45
Drupal and Composer - an In-Depth Look  

As any developer working with Drupal 8 knows, working with Composer has become an integral part of working with Drupal. This can be daunting for those without previous experience working with command line, and can still be a confusing experience for those who do. This is the first post in an explorative series of blog posts I will be writing on Composer, hopefully clearing up some of the confusion around it. The four blog posts on this topic will be as follows:

  • Part 1: Understanding Composer
  • Part 2: Managing a Drupal 8 site with Composer (Coming Soon)
  • Part 3: Converting Management of an Existing Drupal 8 Site to Composer (Coming Soon)
  • Part 4: Composer for Drupal Developers (Coming Soon)

So without further ado, let’s get started.

Composer: What is it?

The Wikipedia page (https://en.wikipedia.org/wiki/Composer_(software)) describes Composer as follows:

Composer is an application-level package manager for the PHP programming language that provides a standard format for managing dependencies of PHP software and required libraries.

That’s an accurate description, though a little wordy. So let’s break it down a little further to understand what it means.

Programmers like to use the term DRY - Don’t Repeat Yourself. This means that whenever possible, code should be re-used, rather than re-written. Traditionally, this referred to code within the codebase of a single application, but with Composer, code can now be shared between applications as well. DRY is another way of saying don’t re-invent the wheel; if someone else has already written code that does what you want to do, rather than writing code that does the same thing, it’s better to re-use the code that that has already been written. For example, the current standard for authentication (aka logging in) to remote systems is the OAuth 2 protocol. This is a secure protocol that allows sites or applications to authenticate with other sites, such as Facebook, Google, Twitter, Instagram, and countless others. Writing OAuth 2 integrations is tricky, as the authentication process is somewhat complex. However, other developers have written code that handles OAuth 2 integration, and they have released this code on the internet in the form of a library. A library is basically a set of code that can be re-used by other sites. Using Composer, developers can include this library in a project, and use it to authenticate to the remote API, saving the developer from having to write that code.

Composer allows developers to do the following:

  • Download and include a library into a project, with a single command
  • Download and include any libraries that library is dependent upon
  • Check that system requirements are met before installing the library
  • Ensure there are no version conflicts between libraries
  • Update the library and its dependencies with a single command 
So how does Composer work?

Composer itself is a software/program. After a user has installed Composer, they can then say ‘Composer: download Library A to my system’. Composer searches remote repositories for libraries. A repository is a server that provides a collection of libraries for download. When Composer finds Library A in a repository, it downloads the library, as well as any libraries that Library A is dependent upon.

A note on terminology

In this article, the term Library is used. Libraries are also known as Packages, and referred to as such on https://getcomposer.org/

A project is the codebase, generally for a website or application, that is being managed by Composer. 

By default, the main repository Composer looks at is https://packagist.org/. This is a site that has been set up specifically for Composer, and contains thousands of public libraries that developers have provided for use. When a user says ‘Composer download Library A’, the Composer program looks for Library A on https://packagist.org/, the main public Composer repository, and if it finds the Library, it downloads it to your system. If Library A depends upon (aka requires) Library B, then it will also download Library B to your system, and so on. It also checks to make sure that your system has the minimum requirements to handle both Library A and Library B and any other dependencies, and also checks if either of these packages have any conflicts with any other libraries you've installed. If any conflicts are found, Composer shows an error and will not install the libraries until the conflicts have been resolved.

While packagist.org is the default repository Composer searches, projects can also define custom repositories that Composer will search for libraries. For example, many developers use Github or Bitbucket, popular services that provide code storage, to store their code in the cloud. A project owner can set up Composer to look for projects in their private Github, Bitbucket, or other repositories, and download libraries from these repositories. This allows for both the public and private code of a project to be managed using Composer.

What happens when I install a library?

Composer manages projects on a technical level using two files: compser.json and composer.lock.  First we’ll look at the composer.json file. This file describes the project. If a developer is using private repositories, the repositories will be declared in this file. Any libraries that the project depends on are written in this file. This file can also be used to set specific folder locations into which libraries should be installed, or set up scripts that are executed as part of the Composer install process. It’s the outline of the entire project.

Each library has a name. The name is combined of two parts, first a namespace, which is an arbitrary string that can be anything but is often a company name, or a Github user name etc. The second part is the library name. The two parts are separated by a forward slash, and contain only lower case letters. Drupal modules are all part of the drupal namespace. Libraries are installed using Composer’s require command. Drupal modules can be installed with commands like:

// Drupal core. composer require drupal/core // Drupal module. composer require drupal/rules // Drupal theme. composer require drupal/bootstrap

When the above commands are run, Composer downloads the library and its dependencies, and adds the library to the composer.json file to indicate that your project uses the library. This means that composer.json is essentially a metadata file describing the codebase of your project, where to get that code, and how to assemble it.

Composer and GIT, Multiple Environments and Multiple Developers

Composer and GIT work really well with each other. To understand how, let’s first look at traditional site management using GIT. Developer A is creating a new Drupal project, purely managed with GIT:

  1. Developer A downloads Drupal core
  2. Developer A creates a new GIT repository for the code they have downloaded, and commits the code to the repository
  3. Developer A pushes the code to a central repository (often Github or Bitbucket)
  4. Developer A checks out (aka pulls) the code to this server.

This all sounds good, and it actually works very well. Now let’s imagine that Developer B comes onto the project. Developer B uses GIT to download the code from the central repository. At this point, the codebase in GIT exists in four locations:

  • Developer A’s computer
  • Developer B’s computer
  • The central repository
  • The production server 

At the moment, the codebase only consists of Drupal core. The Drupal core code is being managed through GIT, which would allow for changes to be tracked in the code, yet it’s very unlikely that either Developer A or Developer B, or indeed any other developers that come on the project, will actually ever edit any of these Drupal core files, as it is a bad practice to edit Drupal core. Drupal core only needs to be tracked by developers who are developing Drupal core, not by projects that are simply using it. So the above setup results in sharing and tracking a bunch of code that is already shared and tracked somewhere else (on Drupal.org).

Let’s look at how to start and use Composer to manage a project. Note that this is NOT the best way to use Composer to manage a Drupal site, and is simply an example to show how to use Composer (see part 2 of this series for specifics on how to use Composer to manage a Drupal site).

  1. Developer A creates a new project folder and navigates into it.
  2. Developer A initializes the project with composer init, which creates a composer.json file in the project folder
  3. Developer A adds the Drupal repository at https://packages.drupal.org/8 to composer.json, so that Drupal core, modules and themes can be installed using Composer
  4. Developer A runs composer require drupal/core, which installs Drupal core to the system, as well as any dependencies. It also creates composer.lock (which we'll look at further down the article)
  5. Developer A creates a new GIT repository, and adds composer.json and composer.lock to the GIT repository
  6. Developer A pushes composer.json and composer.lock to the central repository
  7. Developer A sets up the production server, and checks out the code to this server. At this point, the code consists only of the composer.json and composer.lock files. Additional servers can be set up by checking out the code to any server.
  8. Developer A runs composer install on the production server. This pulls all the requirements and dependencies for the project as they are defined in composer.json

Now when Developer B comes on the project, Developer B uses GIT to download the codebase to their local computer. This codebase contains only composer.json and composer.lock. However, when they run composer install they will end up with the exact same codebase as the production server and on Developer A’s machine.

Now the codebase exists in the same four locations, however the only code being tracked in the GIT repository is the two files used to define the Composer managed project. When an updated is made to the project, it is handled by running composer update drupal/core, which will update both composer.json and composer.lock. These files are then updated in the GIT repository, as they are the files specific to our project.

The difference between the traditional GIT method, and the above method using Composer, is that now Drupal core is considered to be an external library, and is not taking up space unnecessarily in our project's GIT repository.

Project Versions

Projects can, and pretty much always do, have versions. Drupal 8 uses semantic versioning, meaning that it goes through versions 8.1, 8.2, 8.3… and so on. At the time of writing the current version is 8.6.3. If a new security fix is released, it will be 8.6.4. In time, 8.7.0 will be released.  Composer allows us to work with different versions of libraries. This is a good thing, however it opens up the risk of developers on a project working with different versions of a library, which in turn opens up possibility of bugs. Composer fortunately is built to deal with versions, as we will look at next.

Tracking Project Versions

So how does Composer handle versions, allowing developers to ensure they are always using the same library versions? Welcome the composer.lock file. The composer.lock file essentially acts as a snapshot of the all the versions of all the libraries managed by composer.json. Again, I’ll refer back to the Composer managed site described above. When we first run composer require drupal/core in our project, a few things happen:

  1. The current (most recent) version of Drupal is downloaded to the system
  2. All libraries that Drupal depends on are also downloaded to the system
  3. composer.json is updated to show that Drupal is now a dependency of your project
  4. composer.lock is created/updated to reflect the current versions of all Composer managed libraries

So composer.json tracks which libraries are used, and composer.lock is a snapshot tracking which versions of those libraries are currently being used on the project. 

Synchronizing Project Versions

The problem with developers using different versions of libraries is that developers may write code that only works on the version of the library that they have, and other developers either don’t yet have, or maybe they are using an outdated version of the library and other developers have updated. Composer projects manage library versions using the commands composer install and composer update. These commands do different things, so next we'll look at the differences between them.

Composer Install and Composer Update

Imagine that Composer didn’t track versions. The following situation would happen (again, this is NOT how it actually works):

  1. Drupal 8.5.6 is released.
  2. Developer A creates a new project, and sets Drupal core as dependency in composer.json. Developer A has Drupal 8.5.6
  3. Drupal 8.6.0 is released
  4. Developer B clones the GIT project, and installs the codebase using composer install. Composer downloads Drupal core. Developer B has Drupal 8.6.0

The two developers are now working on different versions of Drupal. This is dangerous, as any code they write/add may not be compatible with each other's code. Fortunately Composer can track libraries. When a user runs composer install, the versions defined in composer.lock are installed. So when Developer B runs composer install, Drupal 8.5.6 is installed, even though Drupal 8.6.0 has been released, because 8.5.6 is listed as the version being used by the project in composer.json. As such, developers working on Composer managed projects should run composer install each time they pull updates from remote GIT repositories containing Composer managed projects.

Updating versions

As has been discussed, the composer.lock file tracks the versions of libraries currently used on the project. This is where the composer update command comes in. Let’s review how to manage version changes for a given library (this is how it actually works):

  1. Drupal 8.5.6 is released.
  2. Developer A creates a new project, and sets Drupal core as dependency. The composer.lock file records the version of Drupal core used by the project as 8.5.6.
  3. Drupal 8.6.0 is released
  4. Developer B clones the GIT project, and installs the codebase using composer install. The composer.lock file lists the version of Drupal core being used on the project as 8.5.6, so it downloads that version.
  5. Developer A sees that a new version of Drupal has been released. Developer A runs composer update drupal/core. Composer installs Drupal 8.6.0 to their system, and updates composer.lock to show the version of Drupal core in use as 8.6.0.
  6. Developer A commits this updated composer.lock to GIT, and pushes it to the remote repository. 
  7. Developer B pulls the GIT repository, and gets the updated composer.lock file. Developer B then runs composer install, and since the version of Drupal core in registered as being used is now 8.6.0, Composer updates the code to Drupal 8.6.0.

Now Developer A and Developer B both have the exact same versions of Drupal on their system. And still the only files managed by GIT at this point are composer.json and composer.lock.

Tying it all together

Developers should always run composer.install any time they see that a commit has made changes in the composer.lock file, to ensure that they are on the same codebase as all other developers. Developers should also always run composer.install anytime they switch GIT branches, such as between a production and a staging branch. The dependencies of these branches may be very different, and running composer install will update all dependencies to match the current composer.lock snapshot. The composer update command should only be used to update to new versions of libraries, and the composer.lock file should always be committed after running composer update. Finally, any time a developer adds a new dependency to the project, they need to commit both the composer.json file and the composer.lock file to GIT.

Summary

Before moving on to the next blog post in this series, you should understand the following:

  • What the composer.json file does
  • What the composer.lock file does
  • When to use composer install
  • When to use composer update
  • How GIT and Composer interact with each other

In the next post, coming soon, we'll look specifically at building and managing a Drupal project using composer.

Categories: Drupal CMS

DrupalCon News: Community Connection - Everett Zufelt

Drupal.org aggregator - Tue, 11/13/2018 - 15:23

We’re featuring some of the people in the Drupalverse!  This Q&A series highlights some of the individuals you could meet at DrupalCon.

First up, Everett Zufelt. 

Categories: Drupal CMS

WeKnow: weKnow’s remote working guide to success - Part 2

Drupal.org aggregator - Tue, 11/13/2018 - 15:09
weKnow’s remote working guide to success - Part 2

As a fully distributed company, weKnow supports remote working; a form of management and daily routine that may not be for everyone but, we prove all bumps on the road can be successfully sorted out and made our organization even surpass productivity metrics compared to the in-office style.

Having a career outside of a traditional office setting comes with unique challenges, getting to know them beforehand will allow you to be more productive and happier. Read further to learn some tips to help you and your team excel.
 

admin Tue, 11/13/2018 - 23:09
Categories: Drupal CMS

Pages