Why relationship building is the key to successful marketing?

Cultivating relationships has been always an important part of sales and marketing, and it will always be. Attracting a stranger, converting them into a lead and providing solutions to their pain problem are the significant part of a marketing strategy.

Much has been talked from the developer’s perspective. Here in this blog post, I will talk about relationship building, why it is important and how it is applicable in an IT company? Apart from that, I will also discuss on ‘Why and How’ of Marketing based on Relationship Building.  

Relationships are still the driving force for how professional get the jobs they want and how the sales representatives outperform the rest of their team. These relationships are not built in a day or two. They require good professional networking.

This blog will focus on different agendas of relationship building or relationship marketing, which include Why, How and Challenges need to be tackled.

According to an article published by Forbes, a business is only as good as the clients it serves, and no business gets far after losing the clients it has.

Research shows that even with the best products and business practices, you still need strong relationships to succeed in this marketplace. Respect is at the core of building business relationships, management consulting firm Leading Insight said.

Sticking to the deadline is of utmost importance as it shows the value. At the same time, we need to grow in order to attract more and more customers.

Irrespective of whether we have prominent services in the world. At the end of the day, it all boils down to relationship building. So it is not just about an organisation or a brand. People by people first. 

Why we need to build relationship with clients?

People work with individuals who they like. So of course our objective as a business is to improve the life of a customer. The idea here is to tell how important relationship building is and how you can adopt it in your day-to-day life.

Relationships are not built overnight, it takes time to nurture. Strong, enduring client relationships are the lifeblood of the most organization. Understanding what your customers like, dislike or care help serving the business. As a solution provider, we also need to think from customers perspective in order to better understand “what they need?”

So, how can we create an enduring, institutionalized customer relationship? 

The answer to this question lies in what Andrew Sobel calls it Northeast Quadrant. In this space, first, an individual professional managing the relationship evolves his or her position from an Expert-for-Hire to a Trusted Advisor. 

Second, the company should develop its relationship from a narrow one based on few services to a broad one founded on multiple relationships. Third, as Vendor, the entity is responsible to broaden the relationship and develop a significant revenue from the client.

Lastly, becoming a Trusted Partner is an ultimate goal in order to be a trusted advisor to your customer and to deliver outstanding results. As a Trusted Partner, you lead your customer’s agenda.

client matrix
Credit: Andrew Sobel

 

What are the ingredients of building a good strong relationship?

The basic ingredients for building a healthy relationship with clients are trust, respect, mindfulness, communication and right approach.

I am sure you will be thinking, how does customer feel that you are one among them or part of their team? It happens only by communicating prospective customers on a regular basis. For this, we need to get to the right person so that an organisation get more and more customer.

It is our responsibility to make sure that communication part is taking place properly as well as how we can collaborate with the customers, listen to them and take the regular feedback.

Here comes the next, what are the strategies to build trusted client partnerships?

  • Strategy one: To become an agenda setter
  • Strategy two: To develop relationship capital
  • Strategy three: To engage new customers 
  • Strategy four: To institutionalize client relationships
  • Strategy five: To add multiple layers of value
  • Strategy six: To target the right customers
  • Strategy seven: To build a client leadership pipeline
  • Strategy eight: To promote partnership
  • Strategy nine: To listen your clients
  • Strategy ten: To create a unique client experience
trusted client partnership
Credit: Andrew Sobel

Finally, what are the challenges that hinders building trusted client partnership?

We presume, meeting the deadline that means delivering the product on estimated time helps in building trusted client partnership. Yes, that’s right!! However, at the same time, you need to accept your customer in terms of culture. 

It's always good to clear the doubts with the clients as well as share minutes of meeting to make sure you are not missing anything. While sticking to the deadline plays a significant role. Always remember that business is all about Relationships, Relationships, Relationships! It takes a long-term commitment to earn success.

People buy People first! Each one of us can make a difference….

Below given is a presentation on how to build client relationship through marketing.

7 Tips : Dev testing Best Practices

At Valuebound, Dev Testing is done to ensure that a product or service of a software is built and delivered as per the client requirements with maintained standards. It provides our team an overview of the risks of implementing a new software and checking it to determine if it is fit for use.

We do dev testing to execute software components in conditions with near or equal standards for deployment. This indicates that the developed application

  • Is built according to the requirements of the design

  • Passes all the test cases

  • Executes the functionality positively within the stipulated time frame

  • Is executable under different intended environments intended environments, and

  • Meets the standards of responses as needed

To deliver the best of services and applications, we follow these points

  1. Pair programming - Knowledge increases with sharing. Involve people while you code or for some people maybe after you code, that way you not only share the knowledge, you also get to check commonly missed errors, a comma or semicolon at the wrong place put by mistake can be deadly to find. Active participation and feedback will help to improve code quality.

  2. Involve QA from the beginning - Do not wait until the last minute to involve the testing team. Start at the beginning so that the testing team is aware of the functionalities and requirements. A client would not want to go through buggy codes and it is sensible to involve dev testing for all levels of SDLC. Involving QA enables the testing team to design tests and modeling. This will prevent bugs and hold on to the quality during the whole project.

  3. Automate - Avoid using tests which are not automated. Manual testing on several platforms wastes a lot of time. Cross platform testing happens seamlessly. Automation tools mostly have integrated reporting system with it which further reduces time.

  4. Prioritize bug fixes - When a user is on your website, the last thing you would want is for the person to come across bugs in the functionalities. DO NOT leave them for the last, invest time and resources to address issues and complete bug fixes as soon as you come across.

  5. Defined recovery - Make sure there are ways to retrace back your steps.

  6. Maintain Documentation - For developers reliable documentation is is absolutely necessary. Documentation keeps tracks of application and its improvements on the product. Documentation serves as an aid to development, maintenance, and awareness to others. Proper documentation will make information easily accessible, help in troubleshooting, installation, and deployment.

  7. Think Environments - Testing environments are software setups designed for executing an application in various test cases with different configurations, browsers, and models. So as to ensure it executes smoothly and bug-free for all kinds of environment. You must have visited a website that has a button that works in Windows 7 but not 8. Testing environments avoid exactly that.

For every app that is tested and deployment, a happy user commends the product, growing business for clients and enabling the developer with smarter work. It makes easy to track developments, revisions and create world class products.

Valuebound is excited to sponsor Drupal Camp Pune 2017

We are proud to announce that Valuebound is sponsoring and participating in Drupal Camp Pune to be held on 29th and 30th of July. We also have Rakesh - one of our senior most Drupalers as featured speakers at the Camp.

This year's Camp intends to cater to a wider audience. The idea is to bring together a diverse group of Drupal lovers and to-be Drupalers and showcase the community, its ideas and the people who make this community so wonderful, not to mention the learnings it would entail.

Valuebound has actively sponsored and participated in a host of camps worldwide and Being at the Pune DrupalCamp, is a great opportunity to connect with the community and the developers in general. Contributing to Drupal is fundamental to the transformation and innovation of an organization and individual today and into the future, as the Internet gains traction as the primary source of information.

Drupal is backed by one of the world's strongest community of open source developers and enthusiasts, Drupal is supported and contributed to by a wide range of organizations and individuals. It is a CMS that focuses on delivering the best of digital experiences and content to the right audience at the right time. It innovates some of the leading organizations like NBC universal, Tesla, and the US government to power web applications for content creators, marketers and admins for easy workflow management, commercial experience and seamless digital experience across all channels. The Drupal community also organizes Drupal Camps and events globally throughout the year to open up opportunities for Drupal users to network and build the community for the continuous development of individuals and platform in turn.

Valuebound has consistently been one of the top Drupal contributors in the world and in India, building responsive and intuitive design with inputs in workflow management and insights for content management.

How to add a Product Programmatically to Drupal Commerce Cart

In last two blog post we discussed the basics of getting started with Drupal Commerce and the steps of e-commerce products creation. As we move forward with our learnings, we will write about how we dealt with those. 

There is Business logic which demands few things out of the box where we create custom modules to aid a process. I came across a situation where we had to use Drupal Commerce module but the product was coming from the content type. Even though we had to import the product as commerce product still we couldn’t use them directly. Here we had to add the product to the cart programmatically where I could only get product id from the URL and that particular product needs to be added to the cart and commerce flow needs to be implemented. 

Showing below are the steps that I have followed to add the product to Drupal Commerce Cart Programmatically. I have Created a Custom Modules ‘my_cart’ to demonstrate the above. 

For the below code to work, we have a dependency of using Drupal commerce modules and its dependent modules.

 

Product to Cart

 

 There you have it, it is nice and simple way to add the product to the Drupal commerce cart.

Schedule Automated Tasks in Drupal with Cron

Cron, A daemon/background process that runs at periodic intervals of time. It can be run periodically at pre-decided times and intervals. To describe in real-time, I have met with a case where I have to fetch the content from a site, where new content might be created everyday and create it on my site. To handle this, I have created a cron job, configured it to run every day at a specific time let’s say at 05.00 AM. So whenever the cron runs, I have written a script to fetch the content that is created on that day and creating on my site. All this is achieved using the cron in Drupal.

Cron is a utility which executes commands at set intervals known as "cron jobs".
According to drupal.org “A "cron job" is a time-triggered action that is usually (and most efficiently) performed by your website's hosting server, but can also be configured by a remote service or even from your own desktop”.

Related: How to Handle Intensive Tasks on Queue With Drupal Queue API

Where can we use?

It can be used for Importing files, sending emails, Publishing the code, Fetching the content from an external site every day, etc.

How can this be implemented in D8?

Drupal 8 provides an automated Cron. This is a built-in tool that is time-based task scheduler. The name itself indicates Automated which means no Manual involvement is required other than the initial setup. By default, this cron is set to run every 3 hours. We can change it accordingly for every hour, daily basis, weekly basis as per the requirement. We can even alter the settings form and add our own periodic intervals.

How can we use this Drupal cron to run the custom periodic task?

hook_cron: This hook is triggered whenever the Drupal cron runs. So, we can define our task inside this. For example, I want to check if there are any unpublished nodes, I want to publish them each time when the cron runs.

Now how does execution happen?

  • Execute cron manually from the Drupal admin interface.

  • Using Drush command:

Drush cron

Limitations:

  1. In case we have multiple modules implementing hook_cron, these run at the same time either alphabetically or as per the module weight. This adds more weight to a page request at one point in time.

  2. If one cron results in an error, this stops the cron running which will not process the remaining ones until it is solved. Also, its tough to find out who is the culprit.

  3. If we want to optimize the cron run time, we should analyze which cron run took more time.

To overcome all these limitations, Drupal provides us with modules like Super cron, Elysia cron, Ultimate cron etc.. All these modules are one or the same with more added features. How does this help?

  1. No one by one execution, Its parallel now. So, even if there is an error with one cron task, the other executes independently of each other.

  2. Each can have a separate configuration. so I can say run my cron job at every 1 hour, cron job B at every 2 hrs.

  3. Each has separate logs.

  4. Supports Drupal Queue

Out of all these modules we have, Ultimate cron is available now in D8. This has more features comparatively.

Ultimate Cron:

Ultimate Cron

Misconception: Assume, I have a case where my main cron is set to run for every 3 hours, and my custom cron job task is set to run every one minute. In this case, my cron job doesn’t actually run every one minute. Yes, it’s true. How this actually works is: When any user hits our site, it takes the current timestamp and the last cron run timestamp. If the difference is greater than the cron interval time, our cron job is only triggered then.

How can we make use of ultimate cron for our custom job?

  1. Define a yml for the ultimate cron job in the install folder.

2. Define Callback.

3. Install the module.

4. Go to Cron in UI, click on Discover jobs. This shows the newly created cron job.

Cron with Batch:

We know there are cases where we want to do operations on a large amount of data. For this, we prefer Batch process so that it happens in bulk instead of one by one. For example queue. When we try to update let’s say, 50k of data with almost 20 fields each, it may result in a time out. So we want this to happen in the background process and I want to add content in chunks lets say, 5k of content each time in order to reduce the load. We can use cron with batch.

  1. Define .yml

2. Define Callback

3.Define QueueWorker

Related: Batch Process in Drupal 8

Ultimate cron also facilitates with an option "Override cron Queue processing". This option creates a cron job, automatically for a queue worker.

Limitations:

  • The site should be active. Yes! if the cron is set for 1 hr, it is not compulsory that it keeps running for every 1 hr. it’s a misconception. the cron only runs if there is any user visiting. Which means the site should be active. let’s say if the cron is set for every 3 hrs, and no user visited your site for a week, then the cron doesn’t get triggered.

  • Cron Processing still adds to page request. Whenever the crown runs, it adds load to the page request.

External crons:

These are the ones that can be set up on external sites. We have Easy Cron, Cron Less etc.  So, whether or not there is a user visit, the cron still executes.

To improve the site performance, we can disable the automated cron in ur site. This stops all the cron jobs even that are unnecessarily/unknowingly running on our site. Even we disable the cron, our cron job can still be executed if we are making use of external crons.

To disable the automated cron:

Set the "Run cron every" value to "Never"

                     (OR)

Add the following line to your settings.php:(so that no user can enable it).

$config['automated_cron.settings']['interval'] = 0;

An overview of Foundation : A Frontend Framework for Responsive Websites

Mobile devices are being used more than desktops for browsing the web. Mobile web browsing has been increasing since 2009 and it has been a steep ride since October 2016. Last year it crossed over desktop usage with the global mobile and tablet browsing accounting for 51.3% for mobile and tablet against 48.7% of desktops. 

Google has been favoring mobile friendly websites for it’s mobile search results and the global trend has been following suit. With more and more people opting for mobile browsing, accessibility covers web pages and web applications, including content used on mobile devices and web browsers. 

Clients want a mobile version of the website and that makes sense with phones, tablets and everything it is the need of the hour. But the design and development of websites will no more have the need to be built specifically for a device type. UX has been upgraded with easy layouts and smart CSS with responsive web design framework, it is simple, fast and adaptive, it responds to the user’s behavior and environment. 

What is a Framework?

“A software framework is an abstraction in which a  common code providing generic functionality can be selectively overridden or specialized by user code providing specific functionality. Frameworks are a special case of software libraries in that they are reusable abstractions of code wrapped in a well-defined Application programming interface (API), yet they contain some key distinguishing features that separate them from normal libraries” from Wiki. Most websites have a similar structure and frameworks use that so the code can be reused. 

Frameworks are Frontend and Backend and the difference is being set by whether it is used for the user interface or the application.  Front end framework defines the user experience of the website, the look, and feel. 

Front-end Frameworks

Frontend Frameworks have codified package made up of a structure of files and folders for the presentation layer of websites. There are a bunch of front end tools to choose from depending on the flexibility and features needed. 

One of the most popular frameworks are Foundation, which is a Frontend Framework, I came to use foundation framework lately for and found it to be feature responsive and mobile first framework. Foundation eliminates the need to use pixels and uses REMS. With pixels, it makes it difficult to state the height, width and other attributes for devices. REM scales with the device.

Below given is a presentation on Foundation, what it is, how it is used and who uses it.

Things to know about Drupal 7 Database API

The new drupal database API (known as DB:TNG) is built atop PHP's native PDO engine. The main objective behind Drupal’s database API is to allow developers to write one query that will work across different types of databases. So instead of writing specific queries for MSSQL, PostgreSQL, MongoDB, you can write one query. Then, a plugin is written to translate that query into native style and write the query in the initial language which is Database Abstraction layer. 
 
What are the new changes in Drupal 7’s new database API?
 
One of the biggest changes is Drupal 7's new database API, an object-oriented system which change  the way most developers will build database queries in Drupal. Every developer is familiar with basic sql query, Where we are used to writing a query in usual fashion.
E.g: select field1, field2  from table_name where value order by  asc;
 
In Drupal 7 we do the same thing using database API, here, a developer has to create a query as an object, fields, condition, order, range and other element should be added by calling methods. Thereafter, we need to call the execute() method. 
 
Below query is about drupal db select ‘student‘ of fields matched condition, order by student’s dob in descending order & limit would be first 10 result. And executing them by calling execute() method

$query = db_select('student', 's')
  ->fields('s', array('id', 'name', 'DOB'))
  ->condition('s.uid', $uid)
  ->orderBy('s.dob', 'DESC')
  ->range(0, 10)
  ->execute();

 
As per the Drupal Community “Drupal database API provides certain standards, where we should not make any database call directly until and unless we are in CORE APIs development.” 
 
Database API is designed in such a way that any newbies can also construct the drupal database query without any extra effort. Hence, it preserves the syntax making it more powerful like never before.
 
Some of points that I would like to point out are,

  1. Support across multiple server. Like MySQL,MariaDB,Percona Server, PostgreSQL,SQLite,Microsoft SQL Server, Oracle, MongoDB
  2. Provides a structured interface for dynamic queries.
  3. Follow security guideline.
  4. Provides clean interface to module, really good when we want to differentiate between functional codebase and query.

 
How to construct a query in Drupal using Database API  

  • Enclosing table name in {} adds one level of security layer, where drupal need to select the right table for you.
  • Conditions in the query is added by putting placeholder, this protects your system against sql injection.
  • LIMIT syntax varies between databases if you have limit in your query then use drupal_query_range() instead of drupal_query()

 
 While working with Database Abstraction layer we have two types of queries - Static and Dynamic queries. Static queries are similar to PHP native function, there are just minor changes. 
 
Static queries support SELECT for faster retrieving and execution. On the other hand Dynamic queries have a lot of differences, it allows you to build a query step by step. Also, based on the different conditions you can manipulate your query. 
 
So, let’s have a look at query. From Drupal 6 to Drupal 7 there's not much difference. It’s just a shift of those who are used to manually writing the queries.
 

Static SELECT queries
 
A simple SELECT queries that do not involve entities, the Drupal database abstraction layer provides the functions db_query() and db_query_range(), which execute SELECT queries (optionally with range limits) and return result sets that you can iterate over using foreach loops.
 
/* Drupal 6 query */
$sql = "SELECT n.nid, n.title, n.uid FROM {node} n WHERE n.type = 'article'";
$results = db_query_range($sql, 0, 3);
 
/* Drupal 7 query */
$query = db_select('node', 'n');
$query->condition('n.type', 'article', '=')
      ->fields('n', array('nid', 'title', 'uid'))
      ->range(0, 3);
$result = $query->execute();

 
Both of the queries are doing the same thing, i.e., retrieving the id, title,uid from the Node table that match certain criterias, then sorting the results and ensuring only first three matches to be returned. 
 
In addition, the new object-oriented approach of running raw queries can be done in Drupal 7 with the db_query() function, and in mostly its more efficient. However, the advantage doesn't always help someone to write raw text queries. Some modules need to build a large number of similar queries.

Dynamic SELECT queries
 
For Dynamic SELECT queries where the simple query API described in Simple SELECT queries will not work well, you need to use the dynamic query API. However, you should still use the Entity Query API if your query involves entities or fields.
 
$result = db_select('example', 'e')
  ->fields('e', array('id', 'title', 'created'))
  ->condition('e.uid', $uid)
  ->orderBy('e.created', 'DESC')
  ->range(0, 10)
  ->execute();

 
 
db_select() and similar functions are wrappers on connection object methods. Mostly, in classes, you should use dependency injection and the database connection object instead of these wrappers. 
 
What I have shared with you is just an introduction on Database API as well as Dynamic queries and Static queries. Below is the Drupal  Database structure 

for Drupal 7 db schema:
 
 

Drupal 7 DB Schema

For Drupal 8 db schema:
 

Drupal 8 DB Schema

To get more detailed information on Database API Abstraction layer, visit drupal.org official site.

The Network effect of Web Platforms

The network effect of Web platforms has now come into light which has been existing long. This term has been coined from economics also known as the demand side economics of a scale and it is the effect created by the value of a product upon a user. With a network effect in action - the value of the platform depends on its users.

A network effect is comparable to a telephone connection, where positive connections are categorized as network effects and negatives as congestion.

The stability of a platform comes from a loop of the positive connections as the network effect.

The beginning

Network effects was a central theme in the creation of the first Telephone. But the monetized advancements came more into effect with the researchers.

Uses of this effect

The network effect comes into action once the platform/service gains a large percentage of subscribers. This tipping point of the number of subscribers gives a value of the service or the product which is better than or as good as the price paid for the making of the service. Which means that the value of the platform can be well defined by the number of signups and user bases. The more the number of user base the more the value of the service or platform is.

One of the key aspects of the growth, therefore, lies in luring customers and the underlying force would be the value that the service or product is providing. This essentially means that value and customers are directly proportional and entirely depends upon each other. To build a loyal band of customers will give the need to build a natural system without the presence of this network effect - who are known as early adopters. This can be done by giving additional values, sneak peak into more premium features otherwise known as the freemium now. More accessible the system is to the wider base of the targeted users, more will be the sign up adding valuation to the platform.

In some of my previous writings, I have established Why a Platform Enabled Business Model over Traditional Business Model? and How is the ecosystem of a Platform Strategy?

Beyond the tipping point of a number of subscribers, networks tend to become congested or stop adding value. This can be again compared to a telephone network. As long as the number of users is below the limit of the network capability, is is a win-win, but as soon as the number of nodes in the network tops the number of possible slots, call drops. At this point, each new user decreases the time duration for call drop increasing the decay and rate of decay of the network.

Same happens with the analogy of a number of the device to the capability of routers in a network connectivity or a host connection. New technologies like peer to peer connectivity solves issues of the kind and defies congestion. This P2P system is used by torrents where each user adds value to another user.

Classical economies of scale are on the production side, while network effects arise on the demand side.

The network effect of web platforms has similarities with the torrent networks where word of mouth can be a leading example of a user based value addition to the network. The network effect positively affects the society in forms of Creative Commons, Open Source development network and non-profit businesses.

A classic example of user based value creation is Facebook where the company does no work to add value to a user but to maintain the platform. It is through network effect that a group of like-minded individuals could connect and be present where each one of them adds to the value of another.

Types of network effects

Broadly, there are two kinds of networks effects:

Direct network effects: An increase in usage leads to a direct increase in value for other users. For example, telephone systems, fax machines, and social networks all imply direct contact among users. A direct network effect is called a same-side network effect. An example is online gamers who benefit from the participation of other gamers as distinct from how they benefit from game developers.

Indirect network effects: Increases in the usage of one product or network spawn increases in the value of a complementary product or network, which can, in turn, increase the value of the original. Examples of complementary goods include software (such as an Office suite for operating systems) and DVDs (for DVD players). This is why Windows and Linux might compete not just for users, but for software developers. This is also called a cross-side network effect. Most two-sided markets (or platform-mediated markets) are characterized by indirect network effects.

Additionally, there are two sources of economic value that are relevant when analyzing products that display network effects:

Inherent value: I derive value from my use of the product

Network value: I derive value from other people's use of the product”

Some of these concepts have been studied from the ideas of Sangeet Choudary and in my next knowledge sharing about the studies of the Network effect - I will deal with the negative impacts of the Network Effect.

Render a content using Drupal Feed Aggregator

Have you ever thought of the word ‘expanding’? Which means it’s not limited till the boundaries but spread out around everywhere. The industry of Application Development is also similar to that. In terms of development, people who want to push their limits hard and spread it to the variety of platform, allow accessibility to a variety of people and Increases usability. 
 
In a similar way, Drupal has a Core module called ‘Aggregator’. This Drupal module will help you to read the Feeds. It can fetch syndicated content (content that is available from one site to another). Provides the summary or full rendering of content that have been added recently. Web syndication also refers to the content license of reuse.

 

Feed

 

The Aggregator module in Drupal can fetch not only text but also image & other variety of content. After fetching those feed data, display those data in Drupal regions. Aggregator makes feed items available from a Drupal site using RSS, Atom, and RDF. 
In another way, you can also say that aggregator is an RSS feed reader. 
 
Some of you are hearing this for the first time and few of them are really aware of but didn’t get a chance to explore and use. 
 
Once you go to Drupal module page ‘Aggregator’ would be the first listing in the core module. 
 
For example: if you want to include YouTube video to your site. Youtube provides integration of iframe, using that you can integrate YouTube video to your site and without writing any additional plugin for a player. A smooth video with nominal feature can be played without any interruption. Similar to that world of content allows you to share the content to other a . That will be pointing to parent source. Those content get updated time by time from source owner and get listed on your site.
 
Let’s go through the step of enabling and using Drupal Feed Aggregator.

Step 1: Enable module from module list.

Enable Aggregator module

 

Step 2: Do the normal installation as we do for rest of the module. Once it’s enabled click on configuration available under Operation Column.

Enabled Aggregator module

 

Step 3:  Clicking of Configuration will redirect to Feed Aggregator Configuration page. Having Allowed HTML Tags, No of items to be shown, Discard item older than, Select categories using, and length of trimmed description etc.
 
Location: admin/config/services/aggregator/settings

Feed Aggregator basic setting

 

Allowed HTML tags:  HTML Tags mentioned in this box is only allowed. rest of the tags discarded.

Number of items shown in listing pages: How many items do you want to display in a listing page.

Discard items older than: How long do you to keep those feed.

Select categories using: Category selection should be limited[radio] or unlimited[checkboxes].

Length of trimmed Description: Max length of Document. and thereafter content would be trimmed.
Once you have made the necessary changes, you can save the configuration.  I am not making any changes. I’m happy with the existing configuration.
 
 
Step 4:  click on LIST quick tab available in extreme right top corner. From, this page you can add Feed, Category and also Import OPML.

Location: admin/config/services/aggregator
 
Let’s add a category. To do that click on ‘Add  category’ Fill up Title & description and click on save button.

Aggregator configuration page.

 

Once it's saved. You can view the category from Feed Aggregator page.

Aggregator configuration page.

 

It’s time to add Feed. To do that click on ‘Add Feed’ fill up title, URL, Update interval, News items in block, Categorize news items,
 
Title: The name of the feed.
 
URL: fully qualified Feed URL from external URL. Ex; https://www.drupal.org/node/feed this could be any feed url.
 
Updated interval: How frequently feed will be updated. time need to select.
 
News items in block: How many items do you want to display in a block.
 
Categorize news items: Select the category that you need to assign and then click on save.

Aggregator configuration page with no data.Aggregator configuration page with data.

 

 

Feed & category added

 
Now it’s time to pull those feeds from external links. By clicking on update item.

 

Feed updated

As you can see a total 28 item has been pulled out from https://www.drupal.org/node/feed the Last update was 3 seconds ago and next updated should be in another 59 min 57 sec later. 
Incase if you don’t want to keep item available in your feed then you can clean it by clicking ‘remove items’. Or in case of update the feed click on ‘Update items’. 
 
Now it is time to display those feeds on our Drupal site. Go to structure -> block  assign those feeds block to your region and saved the block. I‘m assigning block to  sidebar_second, that displays the sidebar on the bottom right side of my page. Given below is my display

Block configuration page with feed block

 

Assigned to sidebar second

There is no hard and fast rule and you can assign the place of the sidebar like you want.

Feed listing in website


 
NOTE:

  1. Drupal feeds Displayed in site can’t be imported. And feed link point to real content owner site.
  2. Need to set up Cron tab to manually updated the feed on each cron run.
     

How to execute Automation Testing using Selenium

Automation Testing allows pre-scripted tests to run executable codes of web applications to check that it meets the requirements of the result.  In this blog, I will discuss in a step by step manner about how to execute Automation Testing using Selenium in the presentation below. Before we begin, I will briefly point out - Selenium as a software testing framework.

Selenium is an open source portable software-testing framework for web applications.  Selenium has a record/playback tool for creating and running tests without the need to learn a test scripting language. It provides test domain specific language to author tests in popular languages like Java, C#, PHP, Python, Ruby and more. Selenium enables testers to run their tests against modern web browsers and deploys on Mac, Windows, and Linux.  

Components

Selenium has a set of components that form the core layer for the functionalities, each has its specific use.  

Selenium IDE

Selenium IDE is an integrated development environment (IDE) for Selenium tests. It can be implemented as a Firefox Addon,  it allows tests to be recorded, edited, and debugged.


Selenium client API

As an alternative to writing tests in Selenese ( a scripting language for authoring tests), users can also write tests in other languages, which then communicate with Selenium by calling methods in the Selenium Client API. Selenium currently provides client APIs for Java, C#, Ruby, JavaScrip, and Python.

Selenium RC (Remote Control)

Selenium Remote Control (RC) is a server, written in Java, Selenium RC accepts browser commands via HTTP and allows to write automated tests in any programming language, that helps Selenium to integrate better with existing unit test frameworks.

Selenium WebDriver

Selenium WebDriver has been introduced after Selenium RC.  Commands which are sent in Selenese or via Client API are accepted by Selenium WebDriver and are sent to a browser.

Selenium Grid

Selenium Grid is a server that uses web browsers running on remote machines to run tests. With Selenium Grid, one server acts as the hub which accesses browser instances.  This helps to spread the load of testing.

Choosing Your Selenium Tool

A lot of beginners prefer to start with Selenium IDE. If you do not have a prior experience with a programming or scripting language you might find IDE ease to get familiar with Selenium commands for creating simple tests fast, within seconds.

Flexibility and Extensibility

Selenium is highly flexible. There are a lot of ways to add functionality to both the Selenium test scripts and Selenium’s framework for customizing your test automation. This might be Selenium’s greatest strength in comparison to other automation tools. Also, Selenium is Open Source, hence the source code can always be downloaded and modified.

Below given is a presentation on how we run Automation Testing for our Web Applications.

Download the Drupal Guide
Enter your email address to receive the guide.
get in touch