LATEST FROM OUR BLOG

Take your daily dose of (only) relevant news, useful tips and tricks and valuable how to's on using the latest web technologies shaping the digital landscape. We're here to do all the necessary information sifting for you, so you don't have to, to provide you with content that will help you anticipate the emerging trends about to influence the web.

Create Once Publish Everywhere With CONTENTA, The Latest Drupal Distribution!
The “create once, publish everywhere with close to zero knowledge of Drupal” is nothing but a myth! And you must have surely convinced yourself of that by now!  This is why harnessing the power of decoupled Drupal has been a discouraging “mission impossible” for non-Drupalers. A “privilege” exclusively for those familiar with decoupled back-ends, for those who do know a thing or two (or more) about each of the Drupal modules' particularities. Well, it looks like the Drupal community is innovating for a brighter future! One where you, the non-Drupaler, get to leverage the decoupled Drupal 8's power hassle-free!  And this future (which recently turned into present) is called “Contenta”! What started like an innovative and promising initiative at Drupalcon Baltimore is rapidly developing into a powerful, stable API-first Drupal distribution adapted to the needs of the non-Drupal “gurus”.  How do its initiators plan to do that? By providing the users out-of-the-box Contenta “kits”, with all the needed tools, configuration, and demos that they could possibly need to start “fueling” their cutting-edge apps with content in no time (having Drupal 8 as a backend CMS to rely on)!   What Was The Context That Favored Contenta's Emergence? Two key factors defined this favorable context:   The app development process in a decoupled situation itself: for non-Drupalers it could easily turn into a daunting “ordeal” with all the setups to be made, the tools to be put together, master matching the app's front-end with its Drupal back-end etc.   Drupal 8's outstanding capabilities for building decoupled applications   A solution had to be found so that everyone should be able to benefit from a decoupled Drupal CMS at its full potential, especially since Drupal 8 already provided a truly powerful “toolset” to be leveraged.   What Goals Has The Development Team Set For Contenta? Now that we've outlined the “problem” that this Drupal distribution comes to solve, how about pointing out the “objectives” that its team has set for it, as well?   it should be highly accessible to non-Drupalers thanks to the provided “out-of-the-box” kit of tools (or quick installer) they'll need when building their apps (content models, demo content, modules suggestions, example consumer apps, default setup...)   it should be quick and easy to use (thanks to its “load” of helpful demos and inspiring consumer examples)   it should also turn into a go-to source of needed documentation   it should be full-featured, perfectly equipped for powering decoupled projects, irrespective of the used front-end technology: Angular, Ract, Vue, Ember etc.   How Do You (Quickly) Install It? Since we've already mentioned Contenta's “quick installer” feature, it's time we come up with proofs, right? Here are the simple steps to take for installing your API-first Drupal distribution, so that you can start building your consuming app in no time:   first things first: install Composer    ensure that you have the sqlite-extension installed in your local machine, as well ( sudo apt-get install php-sqlite3 in debian/ubuntu)   then enter the following command for creating your new project: composer create-project contentacms/contenta-jsonapi-project MYPROJECT --stability dev --no-interaction    next, just install Drupal as usual   What Type of Demo Content Model Will You Get, Out-of-The-Box? “A recipe magazine”! That's right, this is the type of pre-built content model and demo content that you'll get to implement and to work with once you've installed your content API.   What Front-End Technology Should You Go For? “Whichever you prefer”, since Contenta “spoils” you with a whole load of inspiring examples of consumer apps built in different technologies. And there's no need for you to get “suspicious” once you notice that all these examples feature the same structure.“In real-life” it's the front-end technology that will be powering them that will determine their look and feel (if it will be Angular, then your app will feature that already iconic material design, if it will be Elm, then...)   Wrapping Up: Hypothetical Contenta Use Case  Now, what a more suitable way to sum up our short presentation on this API-first Drupal 8 distribution here than with a hypothetical use case scenario, right? Let's proceed: “Let's take Matt, our hypothetical non-Drupaler (let's assume that he is a React developer instead). Matt here is in search of a powerful back-end CMS for that impressive app that he's planning to develop. He'll just need to install Contenta, quick and easy, and dig through the out-of-the-box collection of React-powered app examples that Contenta will deliver him, by default.” This way, via a quick installation process and helpful examples of consumer apps to get inspired by, Matt will be able to develop his React and Drupal 8-powered app in no time! Now we're curious to read your own thoughts on this initiative! How do you feel about this project? Which are your projections of its future? Are you currently looking forward to using it in your future decoupled Drupal projects? ... Read more
Adrian Ababei / Jul 07'2017
3 Ways to Translate Language Strings in Drupal 
Does anyone of the following scenarios sound familiar to you?   you need to translate a few language strings on your Drupal site due to a certain dialect that the great majority of your site visitors use       you simply prefer to see certain messages or labels on your website written slightly differently (let's assume that you prefer the “Add new content” textline to the “Add Content now” default one)   you need to go multilingual (on your Drupal site at least) and you have a whole heavy load of language strings to be translated into those target languages   What do you do? Which are your options? Which one guarantees you a streamlined translation process? And most importantly: which one makes the perfect fit for your own site-specific scenario? Let us try and answer all your questions by presenting you 3 approaches to language string translation in Drupal:   1. Use the String Override Module Now before we go on with our short step-by-step guide on how to install and to turn this module into your handy translation tool, we feel like pointing out its “limitation”. It makes a more than handy tool mostly for all those small changes that you need to apply to just a few strings on your Drupal site. Therefore, using it for a full-site translation “marathon” is probably not the most inspired choice. This being said, let's break down further with our step-by-step installation and configuration guide: Step 1: Download and Install Your Module You'll find it here: https://goo.gl/aCJGyy you've successfully downloaded it, go to “Modules” > “Add New” > use your “Browse” and search for the file you need to upload > “Install” Next just briefly “scan” the enabled boxes corresponding to your two String Overrides fields there and, if everything looks OK to you, hit the “Save configuration” button!   Step 2: Trigger Your Module from the Configuration Menu Now navigate to “Configuration” (you'll find it “neighboring” the “People” and the “Modules” tabs on top of the page) and, unfolding its menu, go to “Translate Interface”. It's the last option listed there (after the “Regional and Language” one). Next just give it a click! Step 3: Now Go Ahead and Replace Your Language String Just enter the exact string that you want to replace/translate on the left side of your screen (in the “Original” section) and its replacement string/its translated version on the right side (in the “Replacement” section). Easy peasy! And where do you add that the module even enables you to streamline things even more: you even get to replace multiple language strings simultaneously just by adding some extra rows.  Wrap Up: as already mentioned, the String Overrides module makes a great choice for “small-scale” string translations only. It enables you to track down the strings you need to change and to replace them with the new ones in no time. Yet, when it comes to translating an entire Drupal site, manually overriding every single language string using this module is hardly an effective solution. Such a “challenge” to respond to calls for a more powerful module such as the Locale module. 2. Use the String Translation Module for Handling User-Defined Strings Also known as the i18n_string module (falling under the Internationalization project's “umbrella). Now if the just mentioned Locale module (along with the .po files) enables you to translate hard-coded language strings, the String Translation module empowers you to translate the user-defined ones, too. And here we're referring to taxonomy terms, menu items, field names, which are a bit “trickier” when it comes to translating them, since you can't just rely on Drupal 7 core for that. Also, another important specification that we need to make is that this is an API module! Therefore, it doesn't work as a standalone solution, but rather “supports” other modules from the Internationalization group. And when it comes to the UI that you get to use to translate language strings in Drupal using this particular module, you should know that it's incorporated in the localization system: go to Administer > Site building > Translate interface for translating your user-defined language strings. "And how does it work exactly?" you might legitimately ask yourself. Here's how: it uses the Locale's module standard translation page (the above mentioned UI) for enabling you to translate the user-defined strings that it will have collected    but not before you haven't defined your site's default language (and it's not always English)   and it does this by grouping strings into “text groups” (you can find these groups of user-defined strings named “Profile”, "Menus” or “Taxonomy”, at admin/build/translate/search, under the "Limit search to:")   Notes:   do keep in mind that whenever you're translating your user-defined strings, the source strings that will get stored will be displayed in your default language    in case the default language on your website is not English, you still get to import/export English translations relying on your localization UI   a sort of “warning”: whenever you change the default language on your website you'll need to remember to redefine all your source language strings, too (the user-defined ones, of course)   in short: get yourself informed of all the implications deriving from changing your default language, since this goes hand it hand with a never-ending string editing “ordeal”, too   all the other translations on your website will be kept “unharmed”   yet, as a rule of thumb, you should be changing (if it's necessary) the default language on your site at the very beginning of its development process; later on, once you have your site up and running, changing it back and forth and in several different languages will only lead to... “language string chaos”   3. Use the Strings Overrides in Settings.php to Translate Language Strings in Drupal You'll get to carry out the entire process in the settings.php file and where do you add that you don't even need to download, install and configure any extra module: it all happens in Drupal core. Yet, you should be fully aware that it's not a method for the inexperienced either. We're not going to hide it from you: it does require a certain level of coding “expertise”. Moreover, the same specification that we've made for the String Override module applies to this method, too: it's a tool to be used for small-scale string translations. Not the best choice when you're faced with much larger-scale translations! And now, shall we proceed with our explanations on “how it's done”? 1. Edit your settings.php file and go right up to line 430 (or somewhere 'around” it) 2. Next, uncomment this code (so that you can later on enter your translated strings)   434 # $conf['locale_custom_strings_en'][''] = array( 435 #   'forum'      => 'Discussion board', 436 #   '@count min' => '@count minutes', 437 # );   Note: in case the default language on your Drupal site is not English, remember to make the due modifications in the array key locale locale_custom_string_en so that it should reflect the actual language on your website! Now let's assume that you're being “dared” to translate a whole lot of language strings on your website.Then you sure need to streamline things a bit, right? For this you can rely on the i18n_string module, the API String Translation Module that we've just put into the spotlight.  Just edit your settings.php file by entering this new line of code: $conf['i18n_string_translate_langcode_en'] = TRUE; Or, if you're not that much into “tweaking” code in settings.php you can always rely on the variable_admin module (part of the Variable module). Here's how you get to leverage its functionality to translate language strings in Drupal:   first you navigate to admin/config/system/variable   next you click on the "Multilingual settings" tab   then on the "Enable translation for language" tab   set your default language   hit the “Save” button   And voila! Now you get to translate your language strings! How about you? Have you, by any chance, discovered other more effective ways to translate language strings in Drupal?     ... Read more
Adrian Ababei / Jul 07'2017
7 Anti-Spam Drupal Modules to Spam-Proof Your Website With
When you say “SPAM” you say “facts of life”! The life of any Drupal site/app/blog owner or administrator out there! And aiming for a 100% spam-proofed website is as realistic as toiling hard to eradicate... social inequity for good. And yet, you can still cut it down to the very minimum thanks to this heavy weighting “offer” of anti-spam Drupal modules available to you! Depending on the spam prevention Drupal approach that you'll supercharge your website with you'll be fighting spam via:   challenge-response interaction real-time filtering a “deadly” combo of the two approaches more or less user intrusive methods (meaning featuring CAPTCHA or not)   And if the Mollom module for Drupal still is you site's old and familiar “shield” against spambots, you should know that the popular, non user-intrusive  spam filtering service will cease to exist as of 2 April 2018.  Since no one knows how it's going to get configured after this date, whether it will continue to safeguard all sites or none, you'd better be open to alternatives. Now to spare you of a time-consuming research, here are 7 anti-spam Drupal modules that our Toronto web development team has already hand picked for you! Scan them through, compare them and go for the one that best suits your site's anti-spam needs:   1. Honeypot Honeypot is, by far, THE anti-spam module! Basically, when they say or think of “spam prevention”, 99% of “Drupalists” out there say/think of the Honeypot module, of the Honeypot method (for yes, there's even an anti-spam “method” named after it). So, you get the idea: in Drupal world spam-filtering means “honey-potting” in 9 out of ten cases! “How does it work?”, you say? It fights back spambots on two fronts:   It uses a simple, yet surprisingly effective little “trick”: it adds a hidden field precisely to those forms on your Drupal site that it spam-proofs. An easily configurable “bait field” named something like “website” or “URL”. Once that hidden field gets filled in, it's a sign that a spambot has taken the bait. Sneakily-clever and effective! It uses a timestamp (which, again, you get to configure to your liking, the default time being of 5 seconds). If a web form on your Drupal site gets filled in quicker than that specific timeframe that you've set, Honeypot will instantly block its submission. It will identify the “submitter” behind it as being a... spambot.   So simple, so effective and where do you add that Honeypot falls into that category of anti-spam Drupal modules that are 100% non intrusive. The ones that don't keep “bugging” your site's visitors with captcha tests to be solved in order to prove their humanity! There's no user interaction involved, since Honeypot runs its “spambot-detecting” tests on the web forms directly! Note: a con of this module is that those particular web forms on your Drupal site placed under Honeypot's anti-spam protection can't get cached! The module disables caching for these particular web forms.   2. http:BL Now here's another spam blocking Drupal module worth your full attention! Compared to Honeypot's own methods, the HTTP:BL's one is completely different: it blocks any requests coming from Ips included on a DNS blacklist! A blacklist put together by all the Drupal sites using this module for spam protection. A sort of collective fight against spam, one that your own site will be involved in and “reap” the benefits of! Note: the http:BL module can be installed on Drupal 7 websites only for the time being.   3. Captcha, One of The Reference Anti-Spam Drupal Modules How could we have left out, from our list, precisely the module leveraging the “reference anti-spam method” itself: the CAPTCHA method? It does precisely what its name says: it integrates CAPTCHA into your web forms! A challenge-response system meant to block any attempt of automated spam posting, based on “inconveniencing” the user to pass a given test (answering a question, solving a math problem etc.) The module comes with its own default challenge-response tests, so it can be used as a standalone spam-blocking solution, and it can also be used as a base API for other anti-spam Drupal modules. Notes:   our Toronto digital agency's team strongly recommends you to go for the second scenario, to make it just part of an entire “ecosystem” of anti-spam solutions on your Drupal site. There have been quite a few cases when spambots did manage to solve these challenge-response tests.   do keep in mind that captchas are always a deterrent for your users and can easily turn into a factor responsible for the low conversion rate on your Drupal site   4. reCaptcha Take the CAPTCHA and the Re-Captcha modules as a “check and double check” spam-preventing method! The ReCaptcha module goes even tougher on bots as it leverages the “squiggly words” method for blocking spam. Basically, words difficult to read by spambots get taken from old books and turned into captchas. Note: a potential disadvantage of using this anti-spam Drupal module is that some users, too, might find it hard to recognize these “hard nut to crack”, less common words!   5. Antibot, One of the Anti-Spam Drupal Modules to Supercharge Your Site With Here's another representative of the group of anti-spam Drupal modules that are totally unintrusive! It uses its spam-preventing “superpower” like this: it practically assumes that bots are discouraged to spam pages using Javascript, therefore users enabling JavaScript in their browsers are, implicitly, spam-proofed by default. For those cases where spambots do attempt to render precisely these “safe” JavascripT-based pages, the module will inspect your visitors' mouse movements and keyboard key presses in order to identify them as “humans” and to allow them to submit their filled in forms. A pretty clever check-up if you come to think of it! Note: one of the Antibot module's notable features is that, unlike other anti-spam Drupal modules, it doesn't disable cache on the web forms that it protects. A performance-enhancer you just can't overlook!   6. Botcha Take the Botcha module as an all-in-one spam-blocking solution for websites running on Drupal! And where do you add that it doesn't involve any user interaction (and therefore “user bugging”) either! There are 3 methods that this module uses for detecting and blocking spammy form submissions:   the honeypot method: it adds that hidden, “spambots luring” field to the protected web forms on your website the source calculation-based method the time-based method   And there's more! Once enabled, this module will also prevent any attempts of resubmitting the same form by using its own “NoResubmit” formula. Note: the only downside is that there's no Drupal 8 version of the module. Not just yet!   7. Simple Anti-Spam         This module's main “role”, in its mission to prevent spam posting processes, is to block automatic spam coming from anonymous users. And its name says it all; it's a simple “two-ingredient recipe” that it relies on for blocking spam:   there's an “I'm not a spammer” checkbox and there's an “I'm a spammer” hidden checkbox   Once the later gets checked or the former is left unchecked, it will just “warn” the module of a “suspicions activity” on your Drupal site. It's then that Simple Anti-Spam displays a warning message or simply blocks that specific form from being submitted to your Drupal site. Moreover, from:   blocking web forms by maximum text length blocking them by stop words to blocking form by number of links and the list can go on   ...the Simple Anti-Spam module is one of those anti-spam Drupal modules that can report a form as being “suspicious” (automatically blocking it, too) based on a whole array of criteria. Note: there's yet no Drupal 8 version!   Your turn now! What other approaches have you adopted on your Drupal site for... pulling the plug on any type of spam activity?  ... Read more
Adrian Ababei / Jul 04'2017
How The Drupal CDN Module Can Speed Up Your Site
It's speed that excites them all, with no exception! While some of the users prefer a minimalist web design, others might go for a maximalist design instead. Some have a weakness for content infused with storytelling, while others prefer just simple, “raw” data... And still: online users ALL have a thing for high page loading speed. And the Drupal CDN module makes such a powerful tool for you to supercharge your site within the name of top speed!   “Why should I even integrate a CDN when I can as well continue to use web hosting? What difference would it make?”   2 more than legitimate questions that we'll try to answer as we'll do our best to point out to you how precisely a CDN can boost your Drupal site's performance and why you should add it to your whole “arsenal” of speed-boosting tactics (moving CSS and JavaScript in the footer, perfecting the caching on your site, compressing your heavy load of images, etc.). So, let's dig in, shall we?   How Precisely Can a CDN Guarantee You a Lightning Fast Website? A short version of the answer to your valid dilemma would be: “compared to a shared web hosting, a CDN is built with speed in mind; it's equipped with the capacity to withstand huge fluxes of visitors”. In other words: while shared hosting is simply geared towards delivering you a stable environment for your website, a CDN's infrastructure setup is developed precisely to ensure high page loading speed, irrespective of the influxes of traffic on your site. And this is no news that we're sharing with you here: just consider with how many other websites your own Drupal site is sharing its hosting sever with and... you do the math! Try to imagine how many times its performance would get boosted if it had a server all by itself. Dedicated exclusively to its own needs for speed and to answering its particular traffic challenges.   1. It Will Lighten That Heavy Load of Plugins On Your Site Plugins! Who can resist them?  Once installed on your Drupal site, they just unleash their “encapsulated” functionalities. And each one of them comes with its own too-cool-to-resist-to functionality! Piling them up, adding more and more, eager to impress your visitors, does have the “taste” of a “guilty pleasure” doesn't it? “Guilty” because with each new plugin, with each new load of JavaScript and CSS files that you add on, your Drupal site gets even more bogged down. And how can a CDN, via a dedicated tool such as the Drupal CDN module, help you out here? For it certainly cannot point out to you which plugins to keep and which ones to disable! Well, what it CAN do, instead, is compress and minify their scrips! Therefore your site's heavy load of content will get considerably lighter and its performance dramatically improved!   2. It Will Speed Up Content Delivery Anywhere on The Globe Basically a CDN infrastructure's built to serve content worldwide, irrespective of the website's own location on the globe. In short: users located far away from your site's location, shouldn't be disadvantaged, in any way, in terms of content delivery speed. And how does a CDN manage to deliver content, at high speed, to an international audience? It relies on its entire “ecosystem” of proxy servers, located in various locations worldwide. It's them that catch and then replicates content (images, CSS, JavaScript files) precisely from those locations which are geographically closest to your users. Wrapping up: if your Drupal site's located in Asia and a visitor from Europe makes a content request, that particular user will get its content delivered as quickly as a visitor from Asia would. Thanks to that network of servers, placed all over the globe, that your CDN will leverage.   The Drupal CDN Module: A Handy Tool for Integrating CDN on Your Website Now, where do you add that you even have a dedicated module for it?  Once you've convinced yourself of the CDN's key advantages and once it's more than clear to you how its integration can benefit your own website, just go ahead and... enable it! Practically what this module will do is change your files' URLs so that they should no longer load from your current shared web server, but from your CDN instead!   A Step-by-Step Guide to Installing and Configuring Your Drupal CDN Module Now let's point out to you all the steps you need to take, along with some useful tips and tricks, so that you can use your CDN at its full potential on your website:   You install and enable your Drupal CDN module on your website   You navigate to its configuration page    See the “General Settings” tab? It's there that you can set the module's status (enabled, disabled or on testing mode)   Next, click on the “Details” tab and wisely scan through the whole set of options that you have there: pick “Origin Pull”, select the “CDN mapping” setting, and so on. It's the latter that enables you to specify which files on your website should get loaded via your CDN from now on   Select the “Far Future Expiration” setting and this way you will ensure that files delivered via CDN will “expire” in the future to come (enhanced cacheability on your client's side). Also, since these two settings go hand in hand: keep in mind to enable your “Aggregate and Compress CSS files” option in your Performance settings   Select “CDN supports HTTPS” (you'll find this setting in your “Other” tab) if it's the case, meaning if your Drupal website does use HTTPS   And that's it! Your site's all set for reaching... high page loading speed now! ... Read more
Adrian Ababei / Jun 29'2017
5 Ways to Harness the Power of AI on Your Ecommerce Site
“Viva la revolution!” Since we keep reading/hearing how AI revolutionizes the way people shop online, the way retailers leverage their user data to personalize the shopping experiences they provide, how AI revolutionizes the entire ecommerce space. So, how are you harnessing the superpower of AI on your ecommerce site? Your set of options includes:   chatbots   virtual personal shoppers   ultra-personalized shopping experiences   AI-based search queries   machine learning-powered search results   … and the list is an ever-growing one! Now you're probably disoriented: how do you know which one(s) of these revolutionizing forms of AI fits your own company's ecommerce strategy?  Well, let us put each one of them into the spotlight and hopefully help you identify the forms of AI in ecommerce that best suit your goals:   1. AI Virtual Shopping Assistant The “Relax and enjoy your shopping experience!” turns into: “Relax, your virtual assistant will do the shopping for you, purchasing precisely the item(s) you need at the best possible price(s)”. In short, as you implement this form of AI on your ecommerce site, you're actually leveraging both the valuable user data that you will have collected and the set ups that your customers will make (for instance a certain day of the week/month when he prefers his virtual assistant to “go shopping” for him/her). Let's fancy this possible virtual shopping assistant-powered scenario: “you already have a load of priceless data on a customer's preferences and an enabled “sales” alert option. By leveraging this valuable information his online personal shopper can easily purchase that particular product/service precisely the day when the price drops down”. See the 2 main differences? The customer:   doesn't have to type in a whole string of relevant keywords in the search box on your site, looking for the product he'd like to buy (for his virtual assistant already knows what items he'd like to purchase)   won't be constantly notified (and eventually annoyed) whenever prices drop.    The shopping experience without the time-consuming hassle! Moreover: the AI virtual shopping assistant can curate the products/services your customers would want to purchase, depending on their browsing and shopping histories! So, we're talking about proactively assisting your customers, ensuring future conversion, too!   2. Machine Learning for More Relevant Search Results Relevancy is key when it comes to search results, wouldn't you agree? But what if you could reach “the utmost relevancy” in the search options that you deliver to your online customers? You can reach it: by leveraging the machine learning technology on your Drupal site!  Instead of relying on the conventional keyword matching technique, you'd better harness the power of machine learning AI and deliver the perfectly adequate search results to your potential customers!   3. A New Type of Search Query: AI Processing Natural Language  Searching for products/services on a given ecommerce website is getting “out-of-fashion”! AI technology steps on the stage and steals the spotlight as it's equipped with natural language processing capabilites. Capabilities that the traditional way of searching for items on a given online store can't possibly compete with! Therefore, instead of typing several relevant keywords, which may or may not display the relevant search options, AI can “interpret” customers' natural language. It can recognize and decipher their natural expressions and thus display only the most relevant search results.   on one hand we have a series of keywords that get, successfully or not, matched with their corresponding products/services   on the other hand with have search results determined by the process of “deciphering” natural expressions   See the difference?   4. Voice Search: Implement This Key Form of AI on Your Ecommerce Site  AI-powered voice search has ceased to be a striking novelty for some time now. It slowly and surely turns into a “must-have” technology for every ecommerce site/app! Are you ready to leverage this form of AI on your ecommerce site, too? It's the epitome of convenience: users can just utter the items they want to visualize and eventually purchase and the AI technology implemented on your website does all the rest. Yet it's much more than “utmost convenience”: it's a way of deep-personalizing your customers' overall shopping experiences on your ecommerce website! By using voice-triggered searches you'll practically tailor, to their own needs, the search options that you'll display. The “traditional” way of personalizing shopping experiences (to the search terms that users enter in the search box on your site) can't possibly rival with this AI-powered type of personalization, don't you agree?   5. Evolving Content  And we do mean “in real time”! A whole new dimension for the concept of in-depth personalized content going hand in hand with a perfectly tailored shopping experience. In other words: what this AI technology does is adjust the content on your ecommerce website LIVE, as the customers navigate through! The data collecting, followed by the content tailoring is no longer a viable tactic in today's ecommerce landscape. Content evolving in real-time is the new level of personalized customer experiences!  And not only that it helps you craft an “ultra” personalized online shopping experience, with a high level of interactivity, but you're actually taking the burden of A/B and layout testing off your team's shoulders. As you leverage this AI technology, based on evolutionary algorithms, you'll be actually improving your online shopper's experience “on the spot”!   And the list can easily go on and on! Visual search would have to be the next AI technology on our list, followed closely by... Yet, since it's a list that gets constantly enriched, we shall end it here. Do tell us now: have you already leveraged any of these forms of AI on your ecommerce site? ... Read more
Adrian Ababei / Jun 28'2017
Speed It Up: Use the Image Lazyloader Module on Your Drupal Site!
Lazy loading (images, in this case) leads to energy preserving, which leads to a significantly improved site performance! Pretty ironic, isn't it? Well, this is precisely the logic on which the Image Lazyloader module in Drupal has been developed! Saving your website's energy goes hand in hand with increasing its page loading times. It goes hand in hand with “sparing” HTTP round-trips and taking some heavy load off the browser's “shoulders”, which otherwise would be “pressured” to relentlessly load thousands of images, even before they would be visible in his/her window browser. Basically what this module does is both unexpectedly simple and impressively smart : it loads images on your Drupal site only when they're in visitors' viewports.  In other words: when there's no one opening them up in his/her browser, why bother loading an entire “cargo” of images? Why put an unnecessary pressure onto your site and the browser? And now let us detail to you this “energy-saving” tool that Drupal puts at your disposal and which we encourage you to leverage in the name of a... faster loading website:   The Image Lazyloader Module: How Does It Work Exactly? What Makes it a Speed Booster? The whole “mechanism” behind this Drupal module is surprisingly simple, if we come to think of it: it loads images (lots and lots of them) only when they're displayed in a site visitor's browser window. Not before! And this is a “dream come true” especially for web designers, who're constantly dealing with the challenge of optimizing heavy loads of images. As you can surely guess it yourself, the module's an incredibly useful tool precisely for those Drupal website carrying heavy “cargos” of images. For no matter how many they might, how heavy the load is, the Image Lazyloader module's capable to... lazy load them all and therefore to keep your site's performance at optimum parameters.   How Do You Use It? How Do You “Exploit” Its Full Potential on Your Drupal Site? Now allow us to give you a few tips and tricks or, better said, a step-by-step guide on how to fully leverage this module on your Drupal site:   Step 1: you download (and install, obviously) the module itself along with the Libraries module in the sites/all/modules/contrib; the latter is, in fact, a dependency for 2.x branch  Step 2: next you download your echo library and place it in sites/all/libraries Step 3: it's time to enable your Image Lazyloader module now Step 4: don't forget to clear your cache   Essentially all these preliminary setups will actually grant you the much-needed freedom to quickly enable and to disable your Lazyloading module any time you want to. Which turns it into such a powerful convenience when you just need to run some tests on your website, for instance. And speaking of “empowerment”, there's an entire array of options to choose from and setups to enable, depending on your site's needs and on your purposes:   you have the loader icon letting you know if the images are not (yet) fully loaded   you get to set the distance from the viewable screen part and to go for a placeholder image of your choice   you're even enabled to select those particular web pages on your Drupal site where there's no need for an image lazy loading process to be performed   And voila! These are the answers to your “why” and “how" to use the Image Lazyloader module! Questions deriving, of course, from the main one: “how can I boost my Drupal site's performance?” Feel free to test its image optimization power and to determine how much faster your web pages will then load.  ... Read more
Adrian Ababei / Jun 27'2017
How Google Treats the Legitimately Hidden Content on Your Site
It sure seems like it was... last century or in some sort of "prehistoric age of the web" when website owners or (even worse) SEO “gurus” would pile up their target keywords in the bottom of their web pages, going for white font against white backgrounds or for the all-black shady alternative. This was the “illegitimate” type of hidden content, now just a bad example from the “troubled” past of SEO. It's the “legitimate” hidden text, instead, that prevails in the digital landscape of the present! That type of content popping up before your site visitors' eyes only once they've made a certain action. More often than not we're talking about clicking on a “Read more” link inserted in your article content. And it's no trick, no intention to “fool” the visitor, to trick him/her into clicking on that link. Instead, he honestly wants to:   dig in for some more manufacture details about a certain product   gain access to extra informative content about a certain topic   or maybe to some product/service reviews etc.   But now the question that arises is: does Google weight this particular type of content, the legitimately hidden content, any less than the non-hidden one? We all know it doesn't mark it as spammy and who would be more entitled to ensure us of that if not Google itself, through one of its representatives: “It’s not deceptive, no one is trying to be manipulative, it’s easy to see that this text is intended for users. And so as long as you’re doing that, I wouldn’t be too stressed out.” (Matt Cutts) And yet: does “legitimate” or “non-spammy” implicitly mean “valued equally”? Let's shed some light on this “mystery” here and then allow us to offer you some possible solutions you could consider when you do need to use hidden text, loaded via CSS or JavaSript, on your website, but you still want to make sure Google won't “discredit it”. At least not as much as it will discredit it “by default” (for that's a “cruel” reality that you need to accept and to adapt your site's content and SEO strategy to):   But First: Why Do We Use JavaScript and CSS Hidden Content After All? If we all (let's admit it!) have at least some remnants of doubts “lurking” in the back of our minds that hidden text (although legitimate) might not be weighted as high as the visible by default text, why is it such a big “trend” to hide certain parts of our content on our Drupal sites? To keep using all kinds of cool JavaScript or/and CSS technology for technically hiding parts of our content and trigger it under certain, well-defined circumstances only (as already stated: when the user performs a certain action). Let's point out 3 of the most common reasons:   it makes a handy tracking method   it works as an analytics tool, helping you collect user engagement-relevant data   it can enhance user experience (an otherwise overly long piece of content can thus get shortened and it's the user who decides whether he clicks on the “read more” link and delves deeper into the text or not)   Visible Content By Default vs (Legitimately) Hidden Content from Google's Perspective Let's assume that:   on one particular page of your Drupal website you have a fully-visible piece of content (page A)   on another page you have its shortened version along with the “Read more” link (page B)    The link will, nevertheless, “unveil” the rest of the content on this last page from our example. So, you're trying to rank for the same keyword on both of them and you have no “guilty” conscience that you might be doing something SEO-forbidden on page B. It's just technically hidden text and the user knows it! Yet, Google will always treat these two types of content differently! And by “differently” we do mean “preferentially” when it comes to page A! Just think about it: it has its text fully visible, entirely displayed, along with that target keyword that you're ranking for. Instead, on page B, your keyword might appear a couple of times precisely on the hidden part of its content which, obviously, gets disadvantaged by Google. Whenever you decide to hide a piece of content on your website Google will atomically start treating it as “less important”. Just ponder on this for a while before you jump on the trend of using all kinds of cool Javascript or CSS stuff in the name of web design and user experience! Try and figure it out for yourself whether it's worth the compromise! A nice, minimalistic web page (with less heavy content) can also mean a poorly ranked one in Google. To sum up: if it's important content (one carrying crucial keywords or any other type of data that you'd want Google to parse and give your website the due credit for) don't hide it! Not even if it's JavaScript or CSS technology that you're using for loading it!  And, surprisingly enough, this “injustice” only happens in Google! Bing and Yahoo do treat legitimately hidden and non-hidden text equally!   But What if We Still Need to Use Hidden Content? Are There Any Safe Practices? Let's imagine a real-life scenario where your SEO team has no choice but to give in to the strong arguments that their colleagues from the web design and content writing teams give them: certain texts on your company website should get hidden from users' view using CSS or JavaScript modern “tricks”. What options do they have to strike this “compromise” without harming your online presence? Your company's whole SEO strategy? Here are 2 best practices to consider:   A brief, easy to close overlay always makes such an “innocent” little compromise (it won't harm your SEO plan and it still manages to carry out the “mission” that it will have gotten charged with: to hide a certain part of your text). Take it as engagement statistics 'collector”, too, as more than 90% of your visitors will rush in to click the “x” on your overlay before they rush in to scroll down.   Consider placing the most “valuable” elements of your content (keywords, key phrases, key information), the ones that weight heavily in determining your site's ranking, in the non-hidden section of your text. Don't “sabotage” yourself by sprinkling these crucial elements across the post-loading content.    In other words: if you do need to hide some of your text, don't hide the key ranking “boosters” and, also, consider going for an overlay element.  It's not a question of “Google refusing to display your hidden JavaScript of CSS text”. It will still show up in search engine results page! Just that it will be slightly disregarded and not equally ranked ! Now it's you who'll decide whether this compromise, although supported by the 2 aforementioned SEO best practices, is worth “sacrificing” your site's Google rank! ... Read more
Adrian Ababei / Jun 26'2017
5 Modules for Building Popups in Drupal
You know what they say: “there's always a module in Drupal for... pretty much any type of functionality you might need!”. And pop-up messages are no exception! You have a whole “arsenal” of modules for building popups in Drupal, each one of them “specialized” in providing you with a certain type of “refinement” or  set of particularities that you might need to leverage on your site. You might want to trigger a pop-up taking the form of:   an announcement displayed in an overlay   a redirect pop up message   or maybe you simply need a pop-up opening up a form   There's a dedicated module to suit any type of site-specific expectation you might have. And now, without further ado, let us “unfold” before you eyes the list of 5 useful modules for building popups in Drupal:   Popup It's not without premeditation that we've put this particular module on top of our list. In terms of pop-up building “tools” in Drupal the Popup module can easily get perceived as an entire “toolkit” at your disposal! Therefore, it's much more than just a stand-alone module, but rather a “cluster” of sub-modules, each one of them adding its own functionality to the whole suite.  As a whole, it helps you (your team of Drupal site builders) trigger menus, nodes, blocks, forms, php-generated content and views as pop-ups. Taken individually, these sub-modules are:   Popup descriptions: turns item descriptions into popups   Popup filter: puts an input filter at your disposal, one turning popup tags into popups in filterable content   Popup: delivers a couple of basic popup styles and the basic popup framework, as well   Popup block: the one “responsible” for the block configuration options (the ones that make every turning of a block into a popup possible)    Popup menu: which, as you surely can already guess, provides the needed blocks of popup menus corresponding to each menu within your system    Popup UI: “dealing with” all the display formats, integrating node-reference fields and handling cck, as well    Take the Popup module as some sort of “Swiss army knife” standing out from the group of modules for building popups in Drupal. Just name a pop up-related functionality that you need to leverage on your site and this suite of sub-modules is ready to provide you with!      Popup Message It's the answer to your “How can I display a pop-up messages, one per each browser session, to my Drupal site visitors?”. And here's how you configure it so you can “harness” its functionality:   you navigate to admin/settings/popup_message where you define your message's body and title   next you navigate to admin/user/permissions in order to set your permissions    Note: if it's a Drupal 8-powered site that you own/administer, then you should know that the team of developers behind this module is working hard on its migration to Drupal 8 as we speak. In short: is patience one of your virtues?   Pop-Up Question Redirect  Here's another module that shouldn't miss from your “toolbox” when you need to display a pop-up window to your Drupal site's visitors! You get to leverage its functionality for:   informing them about a certain promotion running on your website   getting them to complete a survey   putting a certain (new) page or section on your site into the spotlight!   The moment the user clicks on the “Yes” button included in your pop-up window, he/she will get automatically redirected to that specific page that you're trying to draw his/her attention to! And speaking of them, your visitors, here are the 3 user-oriented functionalities that this module provides:   The “Yes” function, which guides your visitors to the page that your pop-up is targeting   The “No, remind me later” function, which will trigger the pop-up window, once again, after a certain amount of time   The “No, don't show this again” function, which blocks the pop-up   As for all the needed configuration “backstage hocus pocus” that you need to make in order to fully “exploit” this module's functionality, it's actually just a 3-step procedure:   Just define your popup title and message   A textfield where you need to enter a redirect link   Set the time for the “remind me later” functionality   Note: you even get “spoiled” with a more-than-useful “extra” functionality, that of being able to exclude certain user ip's; this way you decide which ones of your visitors shouldn't be “bugged” with your pop-up message.   Popup Forms, One of the Key Modules for Building Popups in Drupal  First things first: you should know that this module doesn't “trigger” any pop-ups itself, instead what it DOES do is provide API for themes or/and modules! So, it displays any given type of Drupal form as a popup, via an jQuery UI dialog. Compared to other “kindred“ modules, the Popup Forms module does not display any type of popping-up content except FORMS. This being said, let's see which are the key features that you'll want to use:   It can easily integrate multi-step forms   It enables you to set up various parameters to your form callback   It can pop up https forms from non-secure pages, too   As aforementioned: it uses a jQurery UI dialog for displaying your pop-up forms   Once your forms are successfully submitted, you gain unlimited access to the $form_state from Javascript   Note: you'll need the jquery.postmessage plugin for “harnessing” this module's power on your Drupal site!   Pop-Up Announcement It's the handy tool to rely on whenever you have an announcement to make; whenever you need to establish this type of interaction with your website visitors. Basically it enables you to communicate with them via pop-up announcements displayed in overlays. And it's you who'll determine on which ones of their visits on your site these pop-ups should appear (on their first visits, their third, their fifth; it's you who'll define this parameter). Moreover, you even get to determine which is that specific page on your site that your announcement should pop-up on, as well! In short: when you say Pop-Up Announcement you say “utter flexibility”! Basically you get to customize your pop-up interaction with your users the way you like it! And now, just a quick overview of its most “tempting” functionalities:   The pop-up announcement shows up in an overlay   You'll get your own admin page, your own “control tower” where you get to manage all your announcements   Your announcement pop-ups can be written in html, too   As already mentioned here: you get to define on which ones of your users' visits your announcements should get triggered; and it's on your dedicated configure page that you get to make all these key set ups.   And speaking of functionalities and parameters that you're empowered to define yourself: you even get to set up a specific visibility for each one of your announcement messages; for instance you can have different degrees of visibility on different sections of your site   Note: OK, so you're granted tones of flexibility and power of customization, but there still are some limits, as well. 2 actually: you can't set more than one announcement pop up per page or more than one pop-up per user visit! As for the configuration part, just navigate to admin/config/popup_announcement/list and make all the right selections and set ups for tailoring your announcement pop-ups to your site's needs! It looks like our list of useful modules for building popups in Drupal ends here! Do you happen to have other “favorites” that haven't made it to our list? Which one of the 5 modules mentioned here do you find most effective, most feature-rich and helpful for your own team's pop-up building “tasks”? ... Read more
Adrian Ababei / Jun 23'2017
Why and How to Use Google Data Highlighter on Your Drupal Site
It's data that shapes today's digital landscape! This is no news for any player in the online arena! From big data to small data, from data-backed-up decisions to data-fueled digital strategies and data-driven web design, the online revolves around... DATA. And yet, not just around powerful “raw” data, but around perfectly structured, easy to parse through data. And in this respect, the Google Data Highlighter makes such an easy to use webmaster tool for setting up precisely these ideal data structures that Google can easily “crawl” through in order to better “assimilate” websites' particularities.    It's been designed with easiness of use, low budgets, and close to zero coding expertise in mind! So, it's meant to empower any webmaster/admin to get his/her Drupal site a big push up the search engine page results. It's meant to help site admins grow independent of the technical team, of time and budget constraints in their endeavor to put their Drupal sites into Google's spotlights! Now, let's find out:   Why you should be using Google data highlighter tool   Which are the key advantages of this SEO webmaster tool   How to use it for implementing structured data on your Drupal site   Which are the imminent drawbacks that you should be aware of in order to make an informed decision when you add this tool to your whole SEO “arsenal”:   1. Why Do You Need Well Structured Data on Your Web Pages After All? “Because Google doesn't have, not just yet, information of critical importance about your site and you should deliver it to the search engine." Or better said: you should enhance its access to this information! And this is some of the crucial data that you should make as easy to access and “interpret” as possible:   your target audience   the frequency of web page updates on your Drupal site    how accurate your website is    And it's by tagging the main fields on your site, so via so-called “microdata”, that you can easily deliver this key information about your site and in an easy to “digest” format, too.  We're talking here about articles, event names, software applications, products and so many other types of information that you can turn into microdata and “serve on a silver plate” to Google itself! So that Google gets to know your site and gains an in-depth understating of its content, goals, and target audience. Of all its other key particularities. And the better it gets to know your website, the higher are its chances to increase its rankings in SERPs.  In other words: don't wait for your website to “be discovered”, but strive to enhance and to speed up its discovery! This is precisely what this tool here, supporting a whole variety of structured data, does!   2. The Key Benefits That You'll Reap From Using Google Data Highlighter  Now let's point out and pin up all the key advantages for leveraging this tool; advantages that we've just more or less vaguely mentioned already: It's easy to use! Basically it enables you to tag fields on your Drupal site via simple mouse point and clicks. Just select your products, articles, events or/and any other types of data on your website that you'd like to mark up and then select from the drop-down menu their corresponding types ( article, title, event, etc.). Unbelievably user friendly!   It's free! A benefit you just can't afford to ignore when you have a limited budget. It's a money-saving tool whose whole potential you get to “exploit” as we speak (so, a time-saving tool, as well). Money and time: you're practically saving your most valuable resources!   No coding experience required! And this makes Google data highlighter such a handy tool for everyone, the non-technical site owners/administrators here included! Not to mention (although we already have) that it's ideally user friendly, too: mouse select, right-click and tag your data in the blink of an eye!   3. How Do You Use Google Data Highlighter? How Do You Highlight a Web Page? Now that we've tackled the “whys” and the “which”, let's tackle the “how”, as well! Let us try a step-by-step guide on how to use this tool for marking up structured data on your Drupal site: 1. First things first: you log into your webmaster account (the one where your site is added as a property, of course) 2. Next click on the property whose pages you want to “Google highlight” 3. Access Search Appearance –> Data Highlighter (from the drop-down menu) 4. Next click on “Start Highlighting”; it will open up a dialogue including queries regarding the type of information displayed on that specific web page, an option for auto-selecting other similar pages, too (so that you don't have to go through this process over and over again for pages with similar formats), queries about the web page value, too 5. Then enter all the relevant info 6. Once you've entered the URL of your target web page and selected its type, as well, feel free to click on “Tag this page and other like this”; this way you'll be tagging pages with similar layouts and streamlining this process at the website's level 7. Once you've clicked on the “OK” button, a horizontal bar, divided into 4 tabs/sections, will pop up. These are (as you shall see):   Tag First Page    Create Page Set   Tag More Examples   Review and Publish 8. The “Tag First Page” is the preliminary (and the key one) stage where you actually select pieces of content on your target web page and with a simple right-click on your mouse (which will unfold a drop-down menu) you get to select the category corresponding to each piece of content (Article, Image, Category, Author, Data Published). Keep doing this till you've tagged each micro-data on your web page! 9. Once you click the “Done” button you'll get to the next stage listed in your horizontal top bar: “Create Page Set”. It's now that you get to select those pages having similar layouts for streamlining the whole tagging process. As you will see, you're also provided with an option that automatically selects all the similar pages for you.  Feel free to use it or to ignore it and choose to create your own custom page set instead. 10. Once you've clicked on the “Create Page Set”, you'll automatically get to the next step: “Tag More Examples”. It's on this page that you get to review your tagged web pages and make any needed fixes.  11. Click “Next” and check the web page tagging one by one, next click on “Review and Publish” the pages. And this is how you highlight and tag your Drupal site's web pages using the Google Data Highlighter tool!    4. “Are There Any Drawbacks That I Should Be Aware of?” Yes, there are a couple of disadvantages, as well! And it's only fair that you take them into account so that you can ponder both the pros and the cons of using this tool for structuring the data on your website's pages:   Probably the most discouraging of them all is that your entire data highlighter breaks down as soon as you apply a small change to your site's template or code. And then... well... you need to set it up, once again.    The data highlighter that you will have put together is relevant for Google only! No other search engine (Bing, Yahoo, Yandex, etc.) will be using your structured data markup.   It might be quick and easy for you to nicely structure your data, yet it will take Google a little more time to assimilate your data pattern and then to present your structured data in a more attractive way. So, on one hand, you save time putting together your data highlighter, but on the other hand you “lose” some of that time as you wait for Google to... notice it and “fructify” it. You will have already marked up structured data on multiple web pages on your site by the time Google has fully understood them!   Patience is a virtue, so they say! As a closing piece of advice: a team of developers is always the best solution when it comes to optimizing your Drupal site. Yet, for those instances when you need to rely on a limited budget and on even lower resources of time, there's Google Data Highlighter! ... Read more
Adrian Ababei / Jun 19'2017