emGee Software Solutions Custom Database Applications

Share this

Drupal CMS

Commerce Guys: Scheduling time for maintaining Drupal Commerce integrations

Drupal.org aggregator - Fri, 07/27/2018 - 16:42

Commerce Guys maintains a suite of ecosystem modules that give merchants easy access to third-party integrations as part of leading the Drupal Commerce project.

Historically, the issue queues for these modules were looked at when a client requested it or someone from our team had spare time, but that timing was pretty irregular. To provide developers and merchants with a better experience, we’ve decided that moving forward we’re committing dedicated time to review these third-party issue queues on a regular basis.

Our Commitment
Once a week, we’re setting aside time to review new issues in the queues. We’ll use that time to do several things: identify bugs, direct people toward resources to help them solve their problems more quickly, identify earlier when we need more information from the reporter, and help move community patches forward.

Cleaning the Current Queues
As part of this renewed focus on integrations, we’re starting by cleaning up the issue queues. To give ourselves a clean slate, we’ll be closing a lot of these older issues. This will allow us and other contributors to focus on relevant problems. There are a significant number of old issues hanging around that represent duplicate bug reports, tasks that were resolved via other patches, or issues that cannot be resolved without clear steps to reproduce the problem.

What to if we close an issue you still need resolved?
If we close an issue that you’re still having problems with please let us know! The best thing to do would be to reopen the issue with additional information. Please include any error messages you’re seeing, custom code that may affect the module, and clear steps to reproduce the bug. Screenshots or recordings of the issue in action would be great, too!

Categories: Drupal CMS

Ashday's Digital Ecosystem and Development Tips: Five Drupal Features Essential to Publishing

Drupal.org aggregator - Fri, 07/27/2018 - 14:00

If you are in the publishing industry, you already know that Drupal 8 is by far the most useful CMS for publishers. It was great in Drupal 6 & 7 and with 8 it keeps getting better with each major release. Combined with the community contributed modules, Drupal 8 is the best platform for publishers yet. Here are five features in Drupal 8 that are essential to publishing.

Categories: Drupal CMS

OpenSense Labs: Smart Trim your Content and Modify Teasers

Drupal.org aggregator - Fri, 07/27/2018 - 08:26
Smart Trim your Content and Modify Teasers Raman Fri, 07/27/2018 - 20:56

Teasers provide a brief summary or a short description of an article (or any other content). They give a visitor an insight and a quick overview of the content. Hence, it becomes crucial for a teaser to be eye-catchy in order to get that one click from the reader. It should leave them with a sense of curiosity and intrusiveness.

Drupal, out of the box, provides a teaser view mode and three formats for the text fields – Default, Summary or Trimmed and Trimmed. However, the trimming feature is very limited and allows only the number of characters to be configured.

Trimming options for text fields out of the box

We can use a contributed module, Smart Trim to take this trimming functionality to another level. Let us have a look at it.

Downloading and Installing Smart Trim

The module has dependencies on a few core modules including Field, Filter, User, System, and Text. Once you have made sure these are enabled, you can download and install it using any of the below methods.

$ drush dl smart_trim && drush en smart_trim -y

or

$ drupal module:download smart_trim && drupal module:install smart_trim

or

$ composer require 'drupal/smart_trim:^1.1'

After downloading the module using composer, enable it from the admin UI available at admin/modules.

Enabling Smart Trim module using admin UIModifying Teasers of Content using Smart Trim

The module declares a new field format, Smart trimmed, with a set of configurable options. To modify the teasers of your content, follow the below steps.

  1. Navigate to Manage → Structure → Content types → {your-content-type} and select the Manage Display tab.
     
  2. Next, select the view mode from the sub-tabs. You may do it for any of your view modes, but for now, let us do it for the teaser view mode.
     
  3. Change the field format of the required field to “Smart trimmed” to take advantage of the module. You can do this for any of the text fieldsSelecting Smart trimmed text format
  4. Click on the gear icon to bring down the configuration options for the format. Here, as you can see, we get a lot more options than the standard trimmed format.Configuring the format settings
  5. You can now configure the following settings as per your preference
     

    Configuration

    Default Value

    Description

    Trim Length

    600

    The number of units of text in the Smart Trim mode (including HTML markup)

    Trim Type

    Characters

    Use characters or words to count the trim length

    Trim Suffix

    -

    Suffix characters at the point of Trimming

    Wrap Output

    False

    Add a tag to wrap the trimmed content

    Wrap Class

    Trimmed

    CSS class of the wrapper tag

    More Link

    False

    Show a more link

    More Class

    More-link

    CSS class of more link

    More Text

    More

    Text for more link

    Summary

    Use summary if present, and do not trim

    Use a provided summary or the trimmed content

    Strip HTML

    False

    Strip off the HTML added in the WYSIWYG for the trimmed content

    Honor a zero trim length

    False

    Allow a trim length of zero units

  6. Click on “Update”, followed by the “Save” button to save the changes

Now, go back to your view or the page where the configured view mode is being used. You will observe that the changes have been successfully applied.

Teaser of an article with Smart trimmed field format

Looking at the source code of the page, we can see that the wrapper tag has been added with the configured CSS classes. You can now also add custom CSS for these classes in your Drupal theme.

Observe the CSS classes applied to the div tag and more linkSumming Up

The Smart Trim module blends smoothly and proves to be one of the must-have modules or your Drupal site. Its easy configuration allows site builders to quickly add a new field format and harness the full power of the teaser view mode.

In case of any query or suggestion, don’t forget to leave a comment down below.

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

Acquia Lightning Blog: Lightning Layout with Layout Builder

Drupal.org aggregator - Thu, 07/26/2018 - 11:30
Lightning Layout with Layout Builder Adam Balsam Thu, 07/26/2018 - 14:30

Since Layout Builder was added to Drupal core in 8.5, Lightning has had plans to adopt it and retire Panels and Panelizer. We've been working hard at closing the feature gap between out of the box Layout Builder and what Lightning Layout currently provides. At the same time, we've added some significant new features to Layout and made massive architectural changes to the storage of blocks created as part of a layout.

Here's a quick peek at creating a landing page using the Lightning Layout.

Note that this branch of Lightning and Lightning Layout are both alpha stability. We're hoping for beta stability this winter and a full release with a migration path early next year. This graphic shows the high-level features of each branch.

Resources

$ composer create-project acquia/lightning-project MYPROJECT $ cd MYPROJECT $ composer require acquia/lightning:4.0.0-alpha1 --no-update $ composer update # Install Drupal as you would normally.

 

Categories: Drupal CMS

Acro Media: Secure Encryption with Libsodium and Acquia Cloud

Drupal.org aggregator - Thu, 07/26/2018 - 07:45

Encryption is an important part of any website that needs to store sensitive information. Encryption takes sensitive data that is in a readable form and encodes it, making it unreadable. This essentially hides the information from anyone who might try to access it without permission to do so. The encoded information can only be decoded by an entity that has a paired decryption key.

Our requirements for this particular Drupal website build included:

  • Acquia Cloud - One of the leading Drupal hosting providers.
  • Libsodium - Because of Acquia Cloud, we needed a custom compiled php extension
  • Encrypt - A Drupal module that exposes encryption APIs to other modules.
  • Key and Lockr.io - Drupal modules for managing the encryption key.
  • Sodium - A Drupal module to provide libsodium to the encrypt module.
Why use libsodium instead of mcrypt?

Libsodium is a portable, cross-platform implementation of NaCl. Experts recommend libsodium for its simple interface and strong cryptography. The sodium Drupal module takes an easier approach, which is to use a high-level package, paragonie/halite, to work with libsodium.

The other choice for encryption in PHP is mcrypt. It's the default method in the Drupal 7 version of the encrypt module. Despite that, it's a bad choice because it's difficult to use correctly. Mcrypt is deprecated in PHP 7.1 and removed in PHP 7.2.

Installing Libsodium on Acquia's PHP 7.0

PHP 7.2 has libsodium built in and if you're on 7.1 or below you can install it from PECL. We're going to be using Acquia Cloud, so we can't yet run PHP 7.2 and we can't install any PHP extension we want - not as easily as we'd like to.

Acquia requires that extensions be compiled including their dependencies. The php-libsodium extension depends on libsodium itself and we have to produce one binary for both libraries. We'll be compiling libsodium the crypto library as a static library and php-libsodium the php extension that provides bindings to libsodium for PHP applications as a dynamically linked library so it can be loaded by a regular PHP install.

Let's get started!

  1. Download the latest libsodium from https://github.com/jedisct1/libsodium/releases.

  2. Compile libsodium so it's static, not shared. Put it in a directory we'll use later.

    $ ./configure --libdir=/home/me/sodium/library --disable-shared --enable-static--enable-static makes it static, not shared. It'll be a part of the php extension when we build it instead of a separate dependency.

    --disable-shared prevents creating a shared library version of the library.

    --libdir puts it in a directory where we'll use it later.

  3. Compile with PIC (Position Independent Code).

    $ make CFLAGS='-g -O2 -fPIC'
    $ sudo make installHere's our sodium library and a pkgconfig directory we'll need to point the php extension at.

    $ ls /home/me/sodium/library
    libsodium.a libsodium.la pkgconfig
  4. Download the latest version 1 release of the libsodium php extension from https://github.com/jedisct1/libsodium-php/releases.

    Use phpize to get the extension ready to compile. Normally a PHP extension is compiled as part of PHP. This script is used to set up things up so it's like we're doing that. You need the -dev version of PHP to get phpize, so install php7.1-dev or the equivalent for your situation.

    $ phpize7.1
    Configuring for:
    PHP Api Version: 20160303
    Zend Module Api No: 20160303Now you'd notice a lot more files in the directory, like the configure script.

  5. Set the package config directory to the one where we installed libsodium.

    $ export PKG_CONFIG_DIR=/home/me/sodium/library/pkgconfig
  6. Configure libsodium-php with the path to libsodium.

    $ ./configure --with-libsodium=/home/me/sodium/library --libdir=/home/me/sodium/library--with-libsodium tells it where to find the dependency we just created.

  7. Check that libsodium.so is not looking for a shared libsodium library.

    $ ldd modules/libsodium.so
    linux-vdso.so.1 => (0x00007ffcdd68e000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f71f26eb000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f71f2d0f000)There's no libsodium dependency there, so we're good to use our libsodium.so PHP extension! Deploy the file and configure PHP to load the extension. Since we're on Acquia Cloud, Acquia does that after we provide the file.
Get encrypted!

If you're running Drupal and need encryption setup, or if you're looking to start a new project and exploring options and requirements, ! One of our business developers will be happy to help.

Categories: Drupal CMS

OpenSense Labs: Beyond the Books: Building LMS and e-Learning Systems with Drupal

Drupal.org aggregator - Thu, 07/26/2018 - 06:50
Beyond the Books: Building LMS and e-Learning Systems with Drupal Akshita Thu, 07/26/2018 - 19:20 This blog explains how Drupal is the platform for redefining the eLearning frameworks.

A large number of people are still hesitant to try out unconventional learning methods owing to a number of reasons. Effective eLearning and knowledge management solutions are an essential element of success for most organizations. 

Drupal has been providing excellent results in the e-learning ecosystem. It has been modified for less technical admins and students with a highly robust and scalable infrastructure. Streamline it with low cost, faster loading, and easy tailoring of content, Drupal shouldn’t be a tough choice.

For an efficient and effective e-learning, the development has to be simple, faster, and less expensive. In fact, a successful LMS needs a sophisticated platform that must help its stakeholders with excellent results in less required skills making knowledge management and learning easy for both, the organization and students. 

Traditional Vs E-Learning 

Teaching might be a tough job but how different are the traditional and modern learning methods? 

The pains and perks differ but how much?

  • Making the learning more interesting
  • Keeping up with the process of learning through a different medium
  • Use of specific fonts, colors to ensure interactivity
  • Keeping a balance with visuals
  • Ensuring engagement within the group 

However creative e-learning might be, the traditional learning environment, does not require the degree of self-discipline nor is it flexible in terms of deadlines and class meeting times.

What is the hullabaloo all about?

A lot is said and done in a traditional classroom through language, facial expressions, and body language. To make up for such clues and ideas, online courses have greater reading requirements.

The assignment has more directions and a deadline to adhere to, in the online learning environment.  As for the learners, they complete the assignment and upload it to the LMS. 

Drupal vs SaaS LMS: Why opt for Drupal?

Distinct organizations have different learning workflow, assignment mechanism, and management process of students. With Drupal, it is easy to customize the framework according to your needs. Drupal's flexibility allows you to build custom and specific solutions. You can also create standard sets of code and extend them to meet particular client use cases. 

Digital Literacy
A traditional classroom setting requires physical presence while an online environment requires tech savviness. Learners should be able to navigate, evaluate and create information using a variety of technologies. They should be able to use the basic word and numerical processing software.

Individualized Learning 
This is the leading difference and advantage of eLearning vs traditional learning. The learner experiences a one-on-one, tailored instruction that is not possible in the traditional environment. A shift from a curriculum-centered to a learner-centered environment makes eLearning a winning proposition.

Quality and Response time for Feedback 
In a traditional setting, feedback is prompt. But in an online setting, feedback can take more hours. The feedback process needs to be channelized in a way that the students feel a greater sense of community support.

Challenges

Become Opportunities

Tracking the attendance

Authenticate students

Create student/teacher relationships

Conduct individualized instructions

Facilitate classroom management

Provide relevant and current materials

Conduct guided and group discussions

Create virtual classrooms

Manage group dynamics 

Support vigor, authenticity

Manage interruptions

Faster loading time

Covering the Challenges and Needs with Drupal 

A well-planned eLearning system will address the issues in a strong and effective way,
flexible to meet the unique needs of all the participants. In this section, we will explore how Drupal is helping meet the challenges. 

One of the foremost challenges remains the infrastructure. #RecreatingClassrooms 

  • Digital Classrooms

One of the important goals is to create the digital classrooms in a way that it keeps the feel of the classroom alive. Drupal supports many such approaches for the task. 

Modules such as Organic groups enable the users to create and manage their own 'groups' with the functionality of subscribers. The subscribers from each group can also communicate amongst themselves.

It provides usual node types such as blog, story, page, etc. The block shown on the group homepage facilitates the surfer with a quick summary of the content or group. It also allows groups to be selective.  

Selective groups require approval in order to become a member or even invitation-only groups. There are lots of preferences to configure groups as you need. This ensures classes remain exclusive and elusive to the disturbances. 

Another module - Group - allows you to create arbitrary collections of your content and users on your site and grant access control permissions on those collections

Classes on a school website. With a teacher as the administrator, students as the members and the content as the learning material. Articles in the Group are created by the teacher and only visible to the students in the Group. Forums created in the Group are safe places to discuss the class as they are only accessible to the teacher and the students.

Revamping your Higher-Ed website? Devise content strategy for your higher education websites with Drupal

  • Multiple User Types

Teachers, need to have their notes, resources, and access to different content types to organize classes/groups in a better way. When conducting virtual groups, user roles, types, and permissions are, thus, important for the security and smooth functioning of the groups also known as virtual class. Out of the box, Drupal 8 offers different user types, roles, and permissions which can be leveraged so the teacher (group coordinator) has access to different resources than the rest. 

You can set:

  • Anonymous user
  • Email unverified user
  • Authenticated user
  • Confirmed user
  • Community user

Additionally, you can use Multiple Registration - Drupal module - to create two user registration pages. One for general users and one, let's say, for hosters. You can add several specific fields for hoster registration page and these fields should not be available on the general user registration page. Furthermore, if you need some hosters fields only on user edit page, without showing these fields on the registration page, this module could help you here too.

Challenges Become Opportunities With Drupal

Tracking the attendance

Authenticate students

School Administration module to keep a track of attendance

Create student/teacher relationships

Conduct individualized instructions

Views and Taxonomy tagging 
ŽReuse and repurpose with Individualize content.

Facilitate classroom management

Provide relevant and current materials

Modules such as Web form and Quiz. 
ŽAssess comprehension or survey and compile results and data

Conduct guided and group discussions

Create virtual classrooms

Comments, Forums, Polls (Drupal core)
ŽProvide interactivity

Manage group dynamics 

Support vigor, authenticity

Modules - Group - to facilitate groups 

Manage interruptions

Faster loading 

Modules such as memcache
  • Adding Content

To tap into different learning styles the presentation of the information in multiple formats simultaneously is important. In one tested example, a presentation connects the script of a video to the video itself, so that students can read the material as the video streams onto the screen.

This benefits from the reinforcement of reading and helps the virtual groups. Drupal offers IMCE module which helps in image/file uploader and browser that supports personal directories and quota. It also helps with the operations of the image (jpg, png, gif) such as resizing, creating thumbnails, setting preview. Other than setting permissions for the directory, it also supports the private file system. 

  • Managing Menu

Managing groups from different scenarios, in an eLearning platform, can be tough. The platform must allow users to function in both worlds very comfortably and supports educators between school and home or work and home transitions. Students have various paper schedules to keep track of their classes, and online students need the same. 

Drupal’s ability to support bi-directional data sharing, along with providing an easy menu with configurable blocks of menu links with advanced features not available in Drupal 8 core.

Menu Block allows you to display blocks of menu links starting with any desired level of a menu and limited to any desired depth. This module provides an additional configuration so you can choose to expand all menu links with children or to root the menu tree to a specific menu item.

Another module, Administration menu, provides a theme-independent administration interface for easier navigation. It's a helper for novice users coming from other CMS, a time-saver for site administrators, and useful for developers and site builders.

It not only contains regular menu items — tasks and actions are also included, enabling fast access to any administrative resource your Drupal site provides.

  • Managing Non-text Content

One of Drupal’s strengths is presenting different bits of information to different users based on permissions, roles, and other identifiers. To keep the learning interesting, teachers can organize quizzes, voting, or add different videos. 

This is possible with the Quiz module which lets you create graded assessments. A Quiz is given as a series of questions. Answers are then stored in the database. Scores and results are displayed during or after the quiz. Administrators can provide automatic or manual feedback. 

The Fivestar voting module adds a clean, attractive voting widget to nodes and comments and any entity, to keep the user interface very interesting and democratic. 

  • Organizing the Content

Taxonomy and its tags are one way to allow students to customize their learning experience through Drupal. Correctly classifying information is a very early premise in education and library sciences. Drupal’s core Taxonomy functionality provides an excellent basis for creating online classification systems.

To give your eLearning system a strong foundation, develop a smart nested taxonomy structure that is very clear to the end-user. Drupal will punish you if you don’t put enough time into understanding and organizing your content.

Other important modules and features by Drupal are: 

  • Mathjax: Allows to write all mathematical equations and displays on the webpage. Indeed a great tool for academia.
  • hierarchical_select: In case of a large number of terms which is used to tag the content. These terms also have a hierarchy and the user is expected to select the child most suitable term. 
  • diff: Diff module give better visibility of the difference between the two versions of a content.
  • Elysia_cron: A great cron management tool which gives fine grain control over each task giving the flexibility to schedule each individual task separately.
  • ajax_comments: The modules enables the user to post a comment without refreshing the page 
Building Techtud with Drupal 

Techtud is an Edu-Tech social networking site and started in 2013. It combines various features of social networking which helps improve learning experience with videos and pictures & increasing user engagement. 

The basic idea was to promote the culture of learning while sharing, on a platform which was dynamic in its own sphere. So we wanted:

1) To reinvent the traditional form of learning

2) Through a social media platform

3) Where not only students can watch videos but also add content for the larger community.

Techtud currently gets 500,000 page views per month to serve 20,000+ users all around the globe. Challenges

The challenges revolved around building a platform which: 

  • Is user-friendly and has engaging features.
     
  • Is easy-to-use, which would ease the process of identifying the content type, structure and its presentation for easy discovery.
     
  • Needed a framework which would help add content to our database without affecting the performance of the website. 
     
  • Is flexible in providing easier workflow and management capabilities. 
Result

The project was completed in 6 sprints spanning 2 weeks each. The easy workflow management ensured that the users can add as much as they want. 

Techtud currently gets 5,00,000 monthly page views to serve 20,000+ users all around the globe. Building Techtud was not like building a site, it was building a community which would promote the idea of  “Quality education for all”. 

Looking for a web development agency which can help build your e-learning system? Contact us at hello@opensenselabs.com and we will get back to you as soon as possible.

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

Pages