Articles

/themes/custom/zyxpro_light/images/placeholder.png
17th December 2018 Drupal , Drupal 7
close

on 17th December 2018 / by webmaster
To implement push notification for a project, we first created a new custom plugin to push messages into a custom table. When the cron runs, the messages stored in the queue table will be processed and saved to the custom table. For this, create a new directory "push" in message_notify/plugins/notifier/ and use it just like email or sms. The directory may contain 2 files: push.inc MessageNotifierPush.class.php In push.inc, create a plugin with class and view modes $plugin = array( 'title' => t('Push'), 'description' => t('Send Message as notification.'), 'class' => 'MessageNotifierPush', // A notifier must define its own view modes. // Those view modes are later going to be rendered and sent. 'view_modes' => array( 'message_notify_push_body' => array('label' => t('Notify - Push body')), ), ); The MessageNotifierPush.class.php extends MessageNotifierBase class and can be structured as: class MessageNotifierPush extends MessageNotifierBase { public function deliver(array $output = array()) { $notification_text = strip_tags($output['message_notify_push_body']); $message = $this->message; // Get the message object and the notification text and pass it to the custom function return abc_push($message, $notification_text); } } In our custom function, abc_push function will fetch the details of message in the queue table. function abc_push($message, $notification_text) { $wrapper = entity_metadata_wrapper('message', $message); $field_value = $wrapper->{field_name}->raw(); // Rest of the code here... } These field values are then saved to our database table. We can display these field values wherever needed. Drupal Drupal 7 Leave a reply Your email address will not be published. Required fields are marked *
/themes/custom/zyxpro_light/images/placeholder.png
17th December 2018 Drupal 8
close

on 17th December 2018 / by wellme.m
For one of my project, I have implemented the Redis module in Drupal 8. I have used the following configurations as follows: First I download Redis module for a Drupal 8 environment and stored it in 'modules/contrib' directory and enabled the same. For the working of Redis module we need its libraries, so first you have to download the phpredis php extension library from https://github.com/nicolasff/phpredis. Extract the entire contents of the archive into the 'libraries/' folder. For the working of Redis in local server we have add php extension to our local server. For this follow the steps for seting up Redis Server After that update the settings.php file with the following code: $settings['redis.connection']['interface'] = 'PhpRedis'; // Host ip address. $settings['redis.connection']['host'] = '127.0.0.1'; $settings['cache']['default'] = 'cache.backend.redis'; // Redis port. $settings['redis.connection']['port'] = '6379'; $settings['redis.connection']['base'] = 12; // Password of redis updated in php.ini file. $settings['redis.connection']['password'] = "password"; $settings['cache']['bins']['bootstrap'] = 'cache.backend.chainedfast'; $settings['cache']['bins']['discovery'] = 'cache.backend.chainedfast'; $settings['cache']['bins']['config'] = 'cache.backend.chainedfast'; Create services.yml and add the below code in it. services: # Cache tag checksum backend. Used by redis and most other cache backend # to deal with cache tag invalidations. cache_tags.invalidator.checksum: class: Drupal\redis\Cache\RedisCacheTagsChecksum arguments: ['@redis.factory'] tags: - { name: cache_tags_invalidator } # Replaces the default lock backend with a redis implementation. lock: class: Drupal\Core\Lock\LockBackendInterface factory: ['@redis.lock.factory', get] # Replaces the default persistent lock backend with a redis implementation. lock.persistent: class: Drupal\Core\Lock\LockBackendInterface factory: ['@redis.lock.factory', get] arguments: [true] # Replaces the default flood backend with a redis implementation. flood: class: Drupal\Core\Flood\FloodInterface factory: ['@redis.flood.factory', get] Hope this is useful. Drupal 8 Leave a reply Your email address will not be published. Required fields are marked *
/themes/custom/zyxpro_light/images/placeholder.png
17th December 2018 Drupal
close

on 17th December 2018 / by dhanyamol.kv
In Drupal, usually the date field value is saved in the database in UTC timezone format. One of our requirements for a project was to show the date in the site's timezone format. So we generated a general function to convert date in UTC timezone to any required timezone and format it. Just use the below function to convert date in UTC timzone to a given timezone and the format date using a valid timestamp, /** * Function to get date/time on user's timezone * @param int $timestamp * Timestamp to be converted to date * @param string timezone * Timezone to which date is to be converted * @param string $format * Format to which date to convert * @return string * Formatted date. */ function get_date_on_given_timezone($timestamp, $new_timezone, $format = 'd/m/Y H:i:s') { if (!empty($timestamp)) { // Database timezone. $db_timezone = 'UTC'; $date_object = new DateObject($timestamp, new DateTimeZone($db_timezone)); // Convert from the database time zone to site's time zone. $date_object->setTimezone(new DateTimeZone($new_timezone)); $new_date = date_format_date($date_object, 'custom', $format); return $new_date; } } Hope this snippet is helpful for you. Drupal Leave a reply Your email address will not be published. Required fields are marked *
/themes/custom/zyxpro_light/images/placeholder.png
17th December 2018 Job Openings , Careers
close

on 17th December 2018 / by webmaster
We are a 11 year old digital solutions consulting and implementation service provider with a global clientele. Our brand has been present in North America for over a decade. With Drupal as the centre piece of our digital solutions, we have been a technology partner for many businesses in North America. We are a recognised company in the global Drupal community with us being one of the top contributors to Drupal in the world. We also have one of the largest Drupal teams in India. We have now set up operations in New Jersey, USA for greater engagement with our clients and deepening our footprint in the continent. We are now looking for a Sales Manager who can join us at our New Jersey office to lead our growth initiatives. The person will be responsible for identifying and reaching out to potential clients, build relationships and generate business from new and existing relationships. The person will also be responsible for building a sales team under him/her. Responsibilities Manage sales team and achieve sales targets Contribute towards building the sales strategy for the US market and operationalize the strategy Attend industry events representing the organization and establish relationships with new contacts Build and operationalize the sales team in the US Engage with clients build relationships and generate new business opportunities Prepare and report to senior management on sales activities and their outcomes Candidate profile Degree in business administration or a related field Experience in working in IT services sales in global delivery environments Proven ability to run sales activities independently Prior experience in Drupal and Digital sales would be an added advantage Experience in working in Media, Ecommerce, Government and Education sectors Job Openings Careers Leave a reply Your email address will not be published. Required fields are marked *
/themes/custom/zyxpro_light/images/placeholder.png
17th December 2018 Drupal 7
close

on 17th December 2018 / by jijimol.john
As part of a project requirement, we needed to notify users whenever an entity got created, updated, rated or reviewed. Drupal's 'message' module fulfils this requirement. We can log and display messages and can even customize the notifier plugins. For creating notification, we need to install the following modules: message message_notify message_subscribe The dependent modules are: Flag Ctools Entity API We can add message types in admin/structure/messages. In message types, we can add fields with the fields type. When the event is triggered, the rule action is processed for the corresponding messages and it will be saved to the queue table. While cron runs, the message notify plugin processes the messages and delivers it. Message notify module provide us with email and sms notifier. Message This module is at the core of message stack. This module help us to create message types. Message subscribe This module helps us to register the notified content when an event is triggered. This messages will get stored in the queue table. For preventing looping of messages in the queue system, apply the following patch to the message_subscribe.module . Message notify This module is used for sending or viewing messages via notifier plugin. Message notifier has 2 default plugins- email and sms. Hope this article helps! Drupal 7 Leave a reply Your email address will not be published. Required fields are marked *
/themes/custom/zyxpro_light/images/placeholder.png
17th December 2018
close

on 17th December 2018 / by syam.mohan
Introduction An international multilateral development financing institution needed a digital platform to share their dynamic contents. Being a global entity they needed to distribute content in multiple languages. Challenge The financial institution needed an editorial content workflow customized to each department. The system needed department based content type permissions. For Instance: Department 1 has Article and News Department 2 has Article, Blog and Events Content workflow will vary for each department and each content type. Example: Article workflow for Department 1 is Draft -> Needs Review -> Published Article workflow for Department 2 is Daft -> Needs Review -> Needs Approval -> Published Most media websites use editorial workflows for publishing their contents. Different review processes are conducted to publish a content onto the website. The most common editorial workflow is Draft -> Needs Review -> Published We can add or modify the workflow. For example Daft -> Needs Review -> Needs Approval -> Published Common editorial website features are: Drag and Drop Layouts Configure page layouts and digital experiences with drag and drop tools that anyone can use. Media Management Embed images, videos, social media and more from Drupal or other sources into content and pages. Flexible Workflows Configure workflows that keep content moving through review and approval stages, easily. Experience Preview See how content and experiences look to visitors before you publish. Empower Self-sufficient Content Authors We can make it easy for business users to create and manage content with enterprise authoring tools. Approach We decided on Acquia Lightning, a popular Drupal distribution. Acquia Lightning is a great Open Source solution to build website for an editorial team. Lightning distribution provides a starter kit to build sites and digital experiences more quickly. Lightning provides some default workflow like Draft -> Needs Review -> Published. We can also, add or modify the workflow. We added Group module to accomplish the departmental content workflow. Group module allows you to create groups. Users of the system can add/join members of a Group. You can then decide the membership of the group they are entitled to since access to content is restricted to the members of that group. There can also be different levels of membership to a group: for example, you can have administrative members who can create content and basic members who can only view content within the Group. Here we have treated groups as departments. Installed Workbench Moderation Group module in order to integrate the Group module with Workbench moderation module. This way you can add content workflow for each of the content types for each department. Created group type and named it as Content Department. Installed and configured necessary content types to department via group type configuration page. Then created departments. For customizable workflow, go to group role permission page and set content moderation transition permissions as needed. See the below workflow configuration for Article creator Created a dashboard page for editorial team to show a unified and simplified user interface for users who ONLY have to work with content. Created custom views for each editors such as Creator, Reviewer, Approver and Publisher. We can create multiple blocks in dashboard such as My Assigned Tasks Contents I’ve Edited Recent Contents etc. Thus the entire editorial workflow was customized for each department easing the whole process of publishing.
/themes/custom/zyxpro_light/images/placeholder.png
17th December 2018 GDPR
close

on 17th December 2018 / by chithra.k
As the GDPR regulation comes into effect, businesses are scrambling to take measures to become compliant with the regulation. If you are maintaining a Drupal website and would like to know how easily you can make your website a GDPR compliant one, read on. This article focuses on the contributed modules available in Drupal.org, which are aimed at helping website owners become compliant with the new rule. EU Cookie Compliance Module: EU Cookie Compliance Versions: 7.x-1.23, 8.x-1.0 Satisfies: Article 72 This was released after the EU Directive came into effect on May 2012. However, this is useful under the GDPR regulation too. With the new GDPR regulation, you should inform your visitors the cookies you are using on your website and give an option for them to opt-out from the same. This module provides A cookie banner which can be shown to visitors Option to set cookies using JavaScript. Option to set cookie expiration Ability to customize the banner - position, color, role Option to restrict the banner to EU countries. However, this requires additional modules to be configured What this module doesn’t cover? - Ability to opt-out from or unset cookies With the new GDPR law, it is mandatory for the visitors to be able to withdraw their consent easily. This means that, if they have accepted the cookies, then using a similar way, they should be able to undo the same. This module doesn’t provide an option for the same. If your website does not collect personal information of visitors and only uses needed cookies, you can use this module to display the cookie banner to the visitors. Configuring the module is just a matter of a couple of minutes. General Data Protection Regulation Module: General Data Protection Regulation Versions: 7.x-1.0-alpha5, 8.x-1.0-alpha11 Satisfies: Article 61, Article 72 The module comes with the following: Checklist Site admin can review the checklist manually and ensure that necessary measures are taken to comply with GDPR. The checklist items include whether there is a privacy policy page, modules enabled are using relevant information, a user has the option to cancel his/her account etc. Drush command The ‘SQL Dump settings’ module provides a Drush command to obscure the fields which contain sensitive personal data. The aim is to prevent developers from accessing sensitive information of users. GDPR consent User agreements can be set up and tracked using this module. This is only available for Drupal 8. GDPR fields Fields that contain sensitive personal data can be marked as GDPR fields. Currently only marking is supported and more development is in progress. This is also available only for Drupal 8. The Drupal.org page for this module explains that more development is on the way. It allows the user to initiate the “forget me” action by site administrators, GDPR views data export to track data flowing out from Drupal etc are added as future tasks and development progress looks promising. Once all those features are deployed, you might only need this single module. Scrambler Module: Scrambler Versions: 7.x-1.0-beta4 Satisfies: Article 61 By configuring what data to scramble, you can prevent exposing sensitive information from your database. It also contains the Scrambler Field submodule which allows it to administer which scramble methods to apply per field. The default scrambling methods available are emptying values, shuffle characters and words. You can also define your own custom sanitizing methods. General Data Protection Regulation Compliance Module: General Data Protection Regulation Compliance Versions: 8.x-1.7 Satisfies: Article 61, Article 72 The features available in this module are: Form checkboxes It provides the option to display GDPR warning in the form of a checkbox that can be added to the user registration, login or node forms. Pop-up alert Similar to the EU Cookie Compliance module, a configurable cookie banner settings page is provided. The popup can be configured to display for guests or authenticated users. Policy Page The module ships with its own ‘Policy Page’ with detailed information on cookies and an option to clear browser cookie. The content of the page can be edited for your suitable need. GDPR Consent Module: GDPR Consent Versions: 7.x-1.0-beta4 Satisfies: Article 61 This modules allows you to collect data processing consent from logged in users. Administrator can view the consent history. The module is still under active development and has some known issues to start with. Mask User Data Module: Mask User Data Versions: 7.x-1.0-alpha9 , 8.x-1.0-alpha5 Satisfies: Article 61 This module will mask all the current data in your database related to the users. You can easily define a map with the fields to map and the Faker function to use for the mapping. You can either use a Drush command or wait for the cron to run to perform the function. Commerce GDPR Module: Commerce GDPR Versions: 7.x-1.0-beta1 Satisfies: Article 61 If you are using Drupal Commerce, then this module might be helpful for you. The module provide the following features : Manual user account anonymization ("I want to be forgotten") along with orders and customer profiles connected to the account. Optional automatic anonymization after a certain period of inactivity set in days. GDPR Export Module: GDPR Export Versions: 7.x-1.0-alpha1 Satisfies: Article 153, Article 204 The module introduces a button in user edit page which will export and provide zipped data of a user. If additional fields or 3rd party modules are used, these may be handled via custom code. GDPR Tag Manager Module: GDPR Tag Manager Versions: 8.x-1.0 Satisfies: Article 61, Article 72 The module implements Google Tag Manager and IP Country Code lookup. GTM dataLayer variable is set with continent code value which allows you to trigger or disable tracking scripts to help make the site GDPR compliant. This module also provides a cookie consent popup with an option to disable pop-ups for North American countries. Kindly note that just enabling any one of the modules will not make your website GDPR compliant. The above modules only satisfies certain conditions and you might still need to take care of other aspects of the regulation. If you would like development assistance with the GDPR compliance of your site, get in touch with us. Reference 1. Article 6 2. Article 7 3. Article 15 4. Article 20 GDPR Leave a reply Your email address will not be published. Required fields are marked *
/themes/custom/zyxpro_light/images/placeholder.png
BY nisha
17th December 2018 govCMS , Egovernment
close

on 17th December 2018 / by nisha
The GovCMS initiative of the Australian Government is to promote a culture of digital service to the Australian citizens making it easy for people to interact with and get information from the government. It helps the government transform its services to be citizen-friendly, transparent and fast. Benefits of GovCMS Platform At present, there are already over 70 agencies and departments using over 190 websites in the GovCMS platform1. While the Australian government has not mandated the use of GovCMS for Government Agencies and Departments, GovCMS gives you the freedom to independently customise whilst still retaining core benefits that include: Security GovCMS being a distribution of Drupal is by nature secure. Due to the strong backing of the community, regular security updates are provided with the necessary level of urgency and there is 24x7 monitoring against security threats and vulnerabilities. Responsiveness Websites developed on GovCMS will work well across any device (screen will resize depending on the device on which it is viewed whether mobile, tablet) increasing the audience that can be reached through the website. Compliance with Australian Government Web Guide Requirements GovCMS core functions and features are WCAG AA compliant and follow industry standard best practices including that of Digital Transformation Agency’s Digital Service Standards. Preferred Platform for Government Agencies Due to the fact that Drupal is the preferred content management system for 150+ governments worldwide. Reduced Total Cost of Ownership GovCMS allows agencies to start simple and scale up. Given that organizations are often challenged financially it makes sense to explore the possibility of feature additions as and when needed bringing down the total cost of ownership and being cost effective in the long run. Vendor Independence Due to the free and open source nature of Drupal, there is no vendor lock-in. Site development and feature enhancement can be continued by other agencies resulting in site longevity. Unique Look n Feel Even while sharing functionalities and modules each website can still be made to look unique and feel different through Drupal themes. Easy to Interact Forms Forms such as ‘Contact Us’ and feedback forms allow site visitors to interact with the agency or department for any specific defined requirement. Australian Government Locator Service(AGLS) Metadata Standard AGLS Metadata Standard is a set of guidelines to improve the site’s visibility and interoperability online, taking into account technical changes to support linked data and Semantic Web projects. Open Source GovCMS being a distribution of Drupal is an open source software. With a distribution like this, GovCMS reduces the overall work of the different departments and agencies through shared functionality( modules)and consequently minimising the time to market, cost, and longevity. Benefits of Open source include flexibility, agility, speed, cost-effectiveness, ability to start small and scale up. GovCMS fundamentally provides agility and flexibility to Australian government departments and agencies in their online/ digital initiatives. If you have the need for a particular feature on your site, the GovCMS community is a great forum to discuss various solutions for that particular need. Powerful Content Management System Drupal’s powerful content management capabilities include content modeling, content editing with clear publishing workflow definitions. Content authors and approvers for GovCMS websites can preview the content on the website prior to publishing on the live site. Custom workflows with access rights are possible through GovCMS. Content from all previous versions of each page is retained and can be retrieved, published or automatically set to be unpublished on specific dates. News Publication, Event and Media Release Management GovCMS provides publications, media and event management functionalities that can be utilized to deliver announcements and information through the website. Search Friendly GovCMS is flexible to the use of different search engines like Google, Funnelback, Apache Solr or Drupal CMS search through their respective interfaces. Rich Content Editor WYSIWYG (What You See Is What You Get) editor greatly enriches content authors to develop and edit content that includes text and graphics. Search Engine Optimised(SEO) Websites built with Drupal (read GovCMS here- since GovCMS is a distribution of Drupal) are a great option for digital marketing as Drupal websites are optimised for search engines by their built-in ability to create SEO-friendly URLs, page titles, segmentation using highly effective taxonomy, easy revision options, and updating sitemap.xml. These multifold benefits of GovCMS give us a glimpse of the immense possibilities for any agency or department to build and implement an immersive digital strategy. Zyxware, an empanelled GovCMS Drupal service supplier can help you with all your migration and development needs. References: 1. https://www.govcms.gov.au/dashboard 2. https://www.drupal.org/project/govcms 3. https://www.govcms.gov.au/features/product-features govCMS Egovernment Leave a reply Your email address will not be published. Required fields are marked *
/themes/custom/zyxpro_light/images/placeholder.png
17th December 2018 Apache
close

on 17th December 2018 / by webmaster
Have you been trying to index your node to Apache immediately after its been created, updated or deleted! Read On!! By default Apache Solr uses a queue system to index data to Solr. We can preconfigure the interval in which the indexing should perform. Still, there occurs a delay for the node to get indexed. There exists a module which does our job of instantly indexing the nodes to Apache. The module Apache Solr Real-Time implements real-time commits of Drupal entities with the Apache Solr Search Integration project, removing the delay between making a change on your site, and that change becoming visible in Solr search results. This module uses Soft Commit for Solr version above 4.x thus minimizing Solr server resources. Also, this module uses hook_entity_update, hook_entity_delete to update the current entity to Solr. Unfortunately this module only supports the entity "node". For instantly indexing your custom entities you can use the above hooks and use the apachesolr_index_entity_to_documents function, which is provided by Apache Solr to index the current entity to Solr. Happy Coding! Apache Leave a reply Your email address will not be published. Required fields are marked *
/themes/custom/zyxpro_light/images/placeholder.png
17th December 2018 GDPR
close

on 17th December 2018 / by chithra.k
The European Union Data Protection Regulation(GDPR) law is going to be effective from May 25th 2018 and if you have clients and services across EU, then you should definitely make your website compliant with the regulations. [ To know more about GDPR, read the article 'What is GDPR and what it means to a website owner?'] The following is a checklist to ensure that your website is a GDPR compliant one. Ensure that: There is a published "Privacy Policy" page (or similar - About us, Terms of use) which is accessible via the main menu and describes how the personal data is used or processed. Users are informed in clear and simple language about the cookies used on your site to collect data. Users have the option to reset their cookie preferences. Consent is obtained before a personal information is processed. Users have the option to withdraw their consent. Modules used in the site gathers only the necessary (i.e. not needed for provision of service) personal data of site visitors. Registration forms or lead capture forms used in your site provides a clear explanation about the purpose and does not contain preselected checkboxes. No emails are configured in your site to send without the user’s consent. Users can easily request access to their personal information. Users can edit their own personal information. Users can request deletion of their personal information. Erasure of data involves erasure of personal information from any 3rd party sites linked with your site. Users can request to stop processing their personal information. Users can export their own personal information. There is a measure to obtain consent of a parent, if the child is below 16 years of age. Upon completion of the task for which the user data is collected, the data should be automatically deleted. To know more about the steps to follow to become GDPR complaint, read the article on 'Making your website GDPR compliant' For development assistance with the GDPR compliance process of your website, get in touch with us! GDPR Leave a reply Your email address will not be published. Required fields are marked *
Subscribe to