Software
InternetDevels: Meet our bloggers! 100 post!
Site building is a hell of a challenge. Like designing from scratch is easier… Or managing dozens of people devoted to the project. Or keeping a 2-floor office in order and cleanness. Gosh, every duty and specialization is a challenge! And we can only thank our teammates for keeping to high standards of their profession! But every professional comes to a point when it is needed not only to use skills in practise but also to share secrets of mastery with the community.
Read morePhase2: Introducing OpenPublic 1.0: The Next Era of Digital Government
Since 2011, OpenPublic has been transforming government by building government websites and applications which ensure security, mobility, and accessibility. Through our work with numerous government agencies, our teams have developed deep xperts at recognizing and responding to the specific technical challenges faced by public sector organizations.
But that doesn’t mean we couldn’t get better – and we did. As of today, we are proud to introduce the new and improved OpenPublic 1.0. It is the culmination of years of developing content management platforms for federal, state, and local government agencies. With each project, we gained a better understanding of these organizations’ digital needs. From the Department of Homeland Security, to Gerogia.gov, to the recent launch of San Mateo County’s multi-site platform, OpenPublic has evolved to the mature product it is today.
What’s New in OpenPublic 1.0?The 1.0 product version encapsulates all the most important OpenPublic functionality in a clean collection of Apps, simplifying the distribution’s powerful out-of-the-box capabilities. Not only does OpenPublic 1.0 break the mold by “appifying” what was once a wilderness of modules and complicated Drupal configuration, the newly released product is also fully compliant with the Federal Information Security Management Act (FISMA).
The conception of OpenPublic 1.0 was based on Phase2’s significant experience building government technology solutions. While working with San Mateo County, we developed the idea of using apps to make the distribution’s functionality simple to configure for site administrators. Instead of wading through Drupal’s confusing configuration settings and modules, admins can now turn features on and off without affecting other parts of the platform. Apps like the Services App, Media Room App, Security App, and Workflow App provide distinct segments of functionality specifically designed to complement agencies’ digital needs. In July, Experience Director Shawn Mole elaborated on our OpenPublic App strategy and its potential to transform content management for the public sector.
Open Technology and GovernmentLike all distributions maintained by Phase2, OpenPublic is built with open technology, with good reason. Government agencies strive to reduce unnecessary costs for their taxpayers, and avoid the recurring licensing fees of proprietary software is a major benefit to open source solutions. Bypassing proprietary vendor lock-ins allows government to leverage the sustainable innovation of an open community working collaboratively to create, improve, and extend functionality, in addition to utilizing the community’s best practices for development. And because open technology is in the public domain, any agency can download, test drive, and learn about potential content management systems before choosing a provider.
San Mateo County, which worked with Phase2 to implement OpenPublic for the county’s CMS, recognized the value of openness in government technology and opened their code to the GitHub community. We were ecstatic that one of our clients embraced the open practices which are not only inherent in our work but laid the foundation for the development of OpenPublic. By making the innovative technology that went into building San Mateo County’s platform available for wider use, San Mateo County contributed to the government’s objective to foster openness, lower costs, and enhance service delivery. The “Open San Mateo” project demonstrates the power of open source to improve not just one government agency, but hundreds simultaneously by making the code available to other governments.
OpenPublic Moving ForwardWe are hopeful that OpenPublic 1.0 will continue to advance more open government initiatives. In the meantime, Phase2 has several exciting projects in which we’ll show off some of the product’s enhanced features. Keep an eye open for the launch of the Department of the Interior (among others)!
Learn more about OpenPublic 1.0 at openpublicapp.com. For more information about Phase2’s services and how we can help build your site, email us at openpublic@phase2technology.com or comment below!
Wizzlern: Drupal 8 Entity Cheat Sheet
Mike Stiv - Drupal developer and consultant: What is the features module?
Some time ago, a client asked me about the features module. He wanted to know what the features module is about and how it can help him with his project.
Their set up was a pretty complex e-commerce application involving multiple content types and integration with 3rd party services. Yet, they were not using features and would manually replicate any changes from the developer's machine to the server. He was concerned about maintaining the site and how he could add some new functionality without breaking the existing configuration.
My recommendation was that they start using features. He had not idea what it was so I wrote him an email explaining. Read on my full reply.
Tags: featuresDrupal PlanetYesCT: Prepping for DrupalCon Amsterdam Sprints and Mentoring
Netstudio.gr Blog: 13 + 1 Critical Technology Elements for a Successful Eshop
As more and more e-shops are created, e-commerce competition increases, and so does the demand for shops professionally created to work online. It is estimated that more than 7,000 e-commerce sites operate across the Greek internet market, 1,300 of which are currently competing across Skroutz, the most popular price comparison engine in the Greek online retail market.
If we add up the hundreds of thousands of international internet shops favored by 35-40% of Greek consumers, we easily realize one thing: it takes cutting-edge knowhow in setting up an online store for it to stand a chance.
A modern e-shop thrives on new features and tools – and there are tens or hundreds to choose from. Having created dozens of e-commerce sites – some with a multimillion euro turnover – and closely monitored dozens of others, we pinpoint some critical backbones:
In the following guide we will not refer to any means of promotion, such as Google AdWords, Facebook Ads, etc., although many of these tips can help towards the successful promotion of your web-shop.
These guidelines can be of help whether you’re making your commercial website from scratch or later, when you’re upgrading or remodeling it.
So, here goes!
Would you like to get this guide in PDF format for easier reading?Enter your email address and we'll send it to you instantly: 1. Easy Management
In today’s competitive environment, you need to be able to regularly update your commercial website. Administration ease is, therefore, critical, in terms of order handling and content management.
If you need special instructions, or worse, the developer's intervention to update your eshop, you either dig deeper into your company’s pockets, or forget about updating altogether – both obviously undesirable.
What you actually need to target for is being able to perform the daily operations of your website after a few minutes’ management environment training.
Tip 1: Check the platform you are planning to use for your web-store. Check its usability and flexibility before you invest in it. Is this platform already used by successful e-shops? Tip 2: Ask us to present you the management environment we have developed on Drupal, a powerful open source content management platform. You will be impressed! 2. Fast loadingNowadays, fast loading is a must-have for any wannabe e-shop success. Not only does it help your online store’s Google ranking and reduce its Google AdWords costs, it is also now considered as a basic requirement by online shoppers. If your e-shop takes more than four seconds to load, you lose 25% of your visitors. An experiment conducted by Amazon has shown that for every extra one-tenth of a second a page took to load, there was a 0.7% decrease in Amazon’s sales! That’s a 7% drop in turnover for each second of loading delay!
Like on any website, the time required for an e-shop to load depends on the time the server takes to generate the page and start sending its data to the user, as well as on the amount of data that has to be sent to the user's browser for the page to run.
Thus, the final time is affected by how efficiently the eshop is programmed and what caching techniques are being used, by the power and the burden of the server, the server's physical distance from the user, the optimization of the graphics that are sent to the user and the compression of the text files (html, css, js) sent from the server.
Tools Measuring Page Load SpeedYou can measure how fast any website loads using the tools built in most browsers.
Additional tools you can use to track your website's speed problems are Google Page Speed and Yahoo YSlow, both available as addons for Firefox and Chrome.
For example, on Google Chrome either through the menu or pressing the Ctrl + Shift + I (for Windows) or Command + Alt + I (Mac), you can open the developer tools, and select the Network tab. There, on each page loading, you can check the exact load time.
If load time exceeds 2 seconds on a second visit (with the data having been cached in the browser) or is more than 7 seconds on a first visit (with the browser's cache empty), focusing on your website's acceleration, you are on the right path towards an increase in sales.
Tip 1: Before you choose a platform or a website developer for your e-shop, check out other e-shops based on the same platform or made by the same developer for loading speed. Tip 2: You can ask us to make your online store load faster. Go ahead and take advantage of our team’s website rally speed expertise. 3. Search Engine FriendlyYour e-shop should be easily read and indexed by the main search engines (call me Google). If that isn’t the case, you will be missing an important sales channel that would work for you for free.
Search-engine friendly involves a number of things you need to pin down, the most critical of which being:
- The URL structure, i.e. the structure of the web addresses for your product and product category pages. The URL form should look like this: myeshop.com/product-category/brand/product-name and myeshop.com/ product-category /product-subcategory rather myeshop.com/index.php?id=XXX.
- The URLs should be generated from the titles of products and categories. In case of non-Latin characters, they first need to be replaced by the corresponding Latin ones). However, both of these functions should be done automatically.
- Similarly, you should make sure that for every e-shop page, and especially for the home page, the correct title tag and meta description is automatically or manually provided. That will determine what will be shown both in the user’s browser tab, and on Google results. As regards the meta keywords, you do not need to bother, as these have been completely ignored by Google for years.
- In HTML language used to build your website’s product and other pages, the appropriate heading tags (h1, h2, h3, etc.) should be used based on the new HTML5 standards for titles and subtitles.
- Mechanisms should be laid down in order to prevent the creation of duplicate content, mainly by setting up automated redirects to the correct pages. For example, the e-shop will open with or without the "www" in the web address, but it should always redirect to one of the two versions.
- An automated mechanism monitoring your online store on a regular basis for any incorrect links will immediately let you know whenever a problem arises so you can fix it.
- Finally, an updated XML sitemap should be automatically generated on a daily basis which will be read by Google. This helps Google to read and index your website, as well as display diagnostic messages that will help you to improve your website and its Google visibility.
Nowadays, searching in e-shops, especially those with many products, should be both fast and smart. Actually, it should work:
- On misspellings, too.
- Both in singular and plural. For example, if the user types the word "knife", the searching results should also contain the word "knives".
- Faaaast!
- In short, as expected by the guys and girls next door/screen.
At Netstudio, for about 4 years, we have been developing the search and filtering system FindasticTM, which essentially is faceted search based on Solr Server. It features superfast and smart search filters, as well as a free search engine that fetches correct results impressively fast. For example, try searching at http://bemine.de for "red adidas watches up to 55 euro". Note how quickly the results show narrowing the results down to what you are looking for as you go on typing your search.
Similarly, use the search filters in any product category. Notice that filters not fetching any results are automatically disabled, so that you will never end up on a blank page without products, and while at it, take a look at the Google friendly urls.
FindasticTM is designed to work at an equally high speed, even with many thousands of products. For example, at http://bemine.de, it searches through 18,000 products.
A faceted search engine like FindasticΤΜ can add a major competitive advantage to your e-shop, considering that a lot of large-scale online shops lack some important search functions.
5. Thorough Analytics and ReportingAt your brick-and-mortar store, you watch how many customers come every day, how many of them are buying, what sales you make, and then you try to improve the results. Likewise in the online world it is important that you have a full and clear picture of the users’ behavior at your e-shop and above all, to know which marketing moves pay, which do not and to what extent, in order to maintain the most efficient ones and be able to improve them. There are many tools that help in this direction, yet Google Analytics is considered the website statistics service par excellence, a safe stepping stone for monitoring your eshop’s progress.
Google Analytics is freely offered by Google and its installation is very simple, although a mere installation is not enough for you to get the full picture.
Make sure that your website is properly set up and configured, so that, besides the default basic information, it also reports:
Sales and Ecommerce DataSo that you can see the number of orders, revenue, the average order value and sold products on each Google Analytics report. For instance, you’ll be able to see what turnover and number of orders you have per traffic source.
Search TrackingKeeping track of your users’ searches you can get valuable information on how they perceive your ebusiness, as well as on their needs and wants.
Event TrackingIn its simple installation form, Google Analytics tracks the pages visited by your website’s users. Tracking events, you can also monitor actions that you would miss, like downloading of important files, clicks on links that drive users out of your website, error pages, video views etc.
GoalsMake sure you have configured the desired goals (orders, contact form submissions, signins) in Google Analytics, in order to track the conversion rate for each of them. You can read more about conversion rates and conversion rate optimization here.
Conversion FunnelBy setting up the Conversion Funnel, you can track the progress of users and see at which stage of the buying process most visitors will leak away. There you can step in for potential improvements.
6. Easy CheckoutOne of the most critical parts of every e-shop is the checkout, namely the order completion process. This is where the primary goal of every e-shop, i.e. sales, is completed. Therefore, it is very important that this process be easy, clear and simple for the user.
Anything that will distract or confuse the potential buyer may prevent the sale.
It is not rare for an eshop to have a large abandonment rate at the checkout process (this can be as high as 90%!).
The main points you should consider at this point are the following:
- During checkout do not ask for information that is not really needed. The more information you request, the more you actually discourage users from filling them in. Ask for only what is absolutely necessary. For example, in BeMine.gr you will see that if the user chooses to receive the order from their nearest courier service, we do not even ask for their home address, but only for their zip code so we can present the nearest reception points.
- Provide as many payment methods as possible. Cash on delivery, PayPal, Credit Card, Bank Transfer are the most important.
- Remove anything unnecessary and distracting from checkout. Experiment with hiding the menu bar during checkout.
- Offer the option of guest checkout, i.e. the option of purchase completion without the user being required to sign in.
- During checkout display information that will increase the user's trust, such as the SSL seal, any certifications, the organizations you belong to etc.
The more your e-shop succeeds and the daily orders increase, the greater role procedure automation will play. The two most important points are linking to your ERP or invoicing program, and linking to the courier company you work with.
Linking to ERPLinking to ERP is feasible on many levels, the most important being:
- Linking orders. So that the orders coming in your e-shop will automatically be registered in the ERP, regarding both customer and order data details. That way, you avoid mistakes and, with the click of a button, you can issue the relative receipt or invoice.
- Linking products. With this interface, you register your products only once in ERP and your e-shop is automatically updated. New products, updates and deletions already registered are automatically entered into the e-shop, either at regular intervals or whenever you choose to do so.
- Syncing inventory and stock count. This interface is required if the e-shop's inventory is common with that of your brickandmortar store. Whenever a product is sold at the physical shop, it is automatically removed from the eshop's available products page. In this way, you can avoid the embarassment of being unable to satisfy an order that came for a product out of stock.
This interface saves you time and errors, as the order details entering your web-shop are converted into Voucher, which is affixed to the parcel, without you ever having to type the shipping details.
Implementing this interface, we have saved more than 75% of the e-shop owners’ time required for preparation of deliveries.
Furthermore, the customer is informed by SMS of the progress of their order online. That builds on your online store’s reliability big time.
You can watch a Video explaining the Courier service interface on this blog post.
8. Mobile Friendly (tablets and mobile phones)Over 25% of site users surf the net from tablets and mobile phones. For many sites tablet usage exceeds 40% with a strong upward trend.
You can see the percentage of visitors that have visited your website through mobile devices in the relative Google Analytics report (Audience > Mobile > Devices).
The technique that has prevailed over the last three years in response to these developments is that of responsive design. Responsive design is what Google recommends for websites nowadays. Through responsive design the website or eshop automatically adapts to the dimensions of the user’s screen. Either we deal with a big or a small screen, or with a mobile device in horizontal or vertical orientation, the website adjusts the presentation of its data, moving or eliminating some of them to fit to the user’s screen.
For instance, visit www.pharmaplus.gr from your computer and use your mouse to alter the width of your browser window. You will see how all the elements of the website are automatically adjusted.
9. Easy creation of deals & discount coupons“Deal” is a very catchy word. So, depending on the object of your e-shop, you may need to use it quite often.
Ask for your e-shop to provide an easy way to create discounts, offers, gift vouchers, discount coupons or whatever is used to bring results within your industry.
At Netstudio we help run a great deal of online stores which need to put up dozens of deals of all types on a daily basis. E.g., "With each product of X Category, you get a product of Y Category for free. Or "Only for the next 3 days you get two products at the price of one". Or "Buying two products, you get one more for free."
Ask us to study your product line and develop together an offer strategy and the mechanisms that will allow you to have full control over the offers and discounts you will be presenting on your e-store.
10. Blog (Content Marketing)By keeping an updated blog, you get to:
- Create targeted content search engines read thus leading visitors to your site.
- Develop an "expert" profile on your subject, making visitors to trust you more.
- Create a community of targeted audience that creates additional content on your website (enabling visitors’ comments).
- Reveal your personality so that guests will have one more reason to buy from you, as many of them will identify with you. That way you avoid the mere comparison of prices, especially if you sell standardized products or services.
- Get feedback from the market, and you can stay targeted on the needs of your audience.
We would advise you to have the blog be embedded on your website. Don’t have it in another domain or subdomain. It could be in a subfolder such as example.com/blog.
At Netstudio we chose to base the online stores we make on the Drupal platform. That way we can always enrich the blog with the necessary functions in the same skin and administration environment as the eshop’s:
- Article posting as easy as writing in a simple text editor.
- Easy integration of images, videos, PDF files.
- Sortable articles (tagging).
- Programmable publishing and unpublishing articles.
- Access to a number of authors with different rights, such as writing, approval, publishing, unpublishing etc.
- Display all or part of blog content to specific user groups.
- Visitors’ comments published automatically or after screening (moderation).
- Connection with Social Media for many and easy likes, shares, tweets, etc.
In most successful e-shops, email marketing is a basic channel of sales creation.
The cost/benefit ratio from sending informative emails (newsletters) is too important to ignore.
A complete email marketing service should comprise the following:
- The correct strategy respecting the moral code of newsletter dispatches. Whatever you do, do not engage in practices that could characterize you as a spammer.
- A collection mechanism that lists the subscribers according to their interests.
- A mechanism that will allow you to easily write and send emails.
- Automated removal from email lists of people who wish to unsubscribe.
- SPF Record and DKIM signing of sent emails, so that they will not end up in the recipients’ spam folders.
- A mechanism that will provide you with detailed statistics on how many people received your email, how many of them read it, how many clicked a link and which link(s) they clicked on.
- A mechanism that will allow you to experiment with different subject lines (A/B Testing).
- Linking to Google Analytics, to track resulting sales performance and number of transactions.
- Automated creation of user's lists with specific behavior in your e-shop for targeted email marketing. E.g. customers who bought only once, or customers who put items in the basket but did not complete the checkout, or customers who bought from a particular product category or a specific product.
Depending on your eshop’s product line, social media (Facebook, Twitter, LinkedIn, Google+, Pinterest, Instagram, YouTube, etc.) can be another important source of sales, but also a tool to enhance your brand.
Using social media may be the subject of another book by itself. However, setting up your eshop, make sure the backbones are in place:
- Make it easy for the users to like, share, tweet, pin, etc.
- Show the right image and title fit for each of the social media.
- Provide the followers with continuous updates for major events, e.g. new offers or new arrivals.
The e-shop’s results can be optimized and your business can become much more profitable, if you embed a culture of measurement, testing and continuous improvement.
The two main tools you can use are Usability Testing and Experiments (A/B Testing & Multivariate Testing).
Usability TestingBoth you and your website developer are so involved in what you do so that you cannot see what may possibly confuse the user. Just sit next to a friend and ask him to enter your e-shop and in a few minutes you will be able to see it through his or her eyes.
The standard usability testing process is very expensive and not every eshop can afford it. At Netstudio we have developed http://www.userfeel.com, a remote usability testing tool that allows you to see a video with users performing the desired actions on your website, at a cost of $39. Usually, 5 usability tests are enough to reveal quite a lot and may lead to significant improvements for your website.
A/B Testing & Multivariate TestingNo matter how sure you are about the changes and improvements that you want to make on your page, it is advisable to measure their actual impact. Quite often, changes we believe they will bring an increase in sales end up causing a decrease.
Actually, you can play it safe. With A/B Testing and Multivariate Testing, you can test different variations in different groups of visitors simultaneously, and see which variation works best.
Watch the video on page http://www.netstudio.gr/en/conversion-rate-optimization-case-studies where we describe how we increased the conversion rate of our customers’ websites and e-shops carrying out experiments on their websites.
Tip: You can use tools such as Optimizely, Convert or VWO to setup and perform your experiments. 13 + 1. Professional Design & PhotographyAll the above will yield more in the context of a professional design.
No matter how good products you have, or how well you describe them, either on site, on blog, on Facebook, or in a Newsletter, a smart skin will increase your prestige and rates. In other words, your website needs to look neat, and be easy to grasp and use.
Invest in:
- A professional design of your corporate identity (logo, letterhead, business cards, folders, etc.).
- Professional shooting of your merchandise, premises and team.
- Professional design of your website, Facebook page and Newsletter.
You can ask for our consultation on how best you can implement all the above, or make them work for your online business.
You can appreciate the quality of our services with a look at some case studies.
Bottom LineTo some, e-commerce seems like an easy solution that will bring customers from all over the world. To the down-to-earth, it’s more like a mountain of new skills and knowledge they need to conquer.
This guide aims to provide the basic guidelines for setting up a promising e-shop. It is not all there is to it, just the fundamentals.
Our advice is that, if you never had relative experience, you’d be better off hiring a consultant or an experienced e-shop development company. Their fees will be written off before you know it.
You can contact Netstudio and Yannis Karampelas via our contact form. We will be glad to hear your comments on this guide and give you everything you need as you are setting out for your online journey.
We wish you success!
TweetPixelite: Environment aware Drupal sites
As a course of developing for larger Drupal sites, you typically find yourself having multiple environments, one for development, one or more for staging or user acceptance testing, and another for production (and perhaps disaster recovery).
One thing that always comes up is making Drupal "environment" aware, so it knows how it should behave, what modules should be turned on (or off) and what servers it should be talking to for instance.
Environment moduleThe environment module allows you to define arbitrary environments (it also comes with some out of the box) in code. Example hook
/** * Implements hook_environment(). */ function HOOK_config_environment() { return array( 'prod' => array( 'label' => t('Production'), 'description' => t('Live sites are in full production and browsable on the web.'), 'allowed' => array( 'default' => TRUE, ), ), 'dev' => array( 'label' => t('Development'), 'description' => t('Developer machines.'), 'allowed' => array( 'default' => FALSE, ), ), 'staging' => array( 'label' => t('Staging'), 'description' => t('Bug fixes and testing are done here.'), 'allowed' => array( 'default' => FALSE, ), ), ); }You also may want to remove the default environments that come with the environment module
/** * Implements hook_environment_alter(). */ function HOOK_config_environment_alter(&$environments) { // Remove default environments. unset($environments['production']); unset($environments['development']); }Using this code, and some magic in settings.php, you can effectively tell Drupal which environment it is by switching on the HTTP_HOST. A stripped back example is:
// Include environment-specific config by parsing the URL. // To override this, set $environment in settings.php // BEFORE including this file. if (!isset($environment)) { if (strpos($_SERVER['SERVER_NAME'], '.demo.net.nz') !== FALSE) { $environment = 'staging'; } elseif (strpos($_SERVER['SERVER_NAME'], 'local') !== FALSE) { $environment = 'dev'; } else { // Default to production. $environment = 'prod'; } } // The environment module uses a lowercase variable. $conf['environment']['default'] = $environment; define('ENVIRONMENT', $environment); // Load the environment config file, followed by host-specific // over-rides (if any) in non-production environments. $conf_path = DRUPAL_ROOT . "/sites/default/"; require $conf_path . "settings.$environment.php";Note this also lets you include a separate PHP file called "settings.dev.php" for development, where variable overrides (using global $conf) can be done on a per-environment basis.
Environment switchingA natural extension of the environment module is to allow pulling a production database back to development, and then "switching" it into a development state. This switching is already a hook you can implement, allowing you to react on both the current and target environments.
An example of this is from the module's homepage:
/** * Implementation of hook_environment_switch(). */ function HOOK_environment_switch($target_env, $current_env) { // Declare each optional development-related module $devel_modules = array( 'context_ui', 'devel', 'devel_generate', 'devel_node_access', 'update', 'views_ui', ); switch ($target_env) { case 'production': module_disable($devel_modules); drupal_set_message('Disabled development modules'); return; case 'development': module_enable($devel_modules); drupal_set_message('Enabled development modules'); return; } }Other common things we do in our environment switch to development include:
Removing JS and CSS aggregation
variable_set('preprocess_css', 0); variable_set('preprocess_js', 0); drupal_set_message(t('Removed aggregation from CSS and JS.'));Changing the Apache Solr environment to point at localhost
if (module_exists('apachesolr')) { $solr_env = array( 'url' => 'http://127.0.0.1:8983/solr/dev', 'make_default' => TRUE, 'name' => 'DEV', 'env_id' => 'solr', 'service_class' => '', 'conf' => array( 'apachesolr_read_only' => '0', ), ); apachesolr_environment_save($solr_env); drupal_set_message(t('Set solr environment to @name at @url', array( '@name' => $solr_env['name'], '@url' => $solr_env['url'], ))); }Preventing API writes to production systems
variable_set('brightcove_api_write_enabled', 0); drupal_set_message(t('Stopped the Brightcove write API sync.'));Granting helpful debugging permissions to certain roles
if (module_exists('devel')) { $dev_perms = array( 'access devel information', 'switch users', ); user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, $dev_perms); user_role_grant_permissions(DRUPAL_AUTHENTICATED_RID, $dev_perms); }The list goes on here.
Environment indicator moduleNow that Drupal is environment aware, it is really helpful if Drupal can inform the user what environment they are currently looking at. Out of the box the environment module has no UI, so enter the module environment indicator to come save the day.
The new 7.x-2.x branch of environment indicator contains a lot of improvements over the 7.x-1.x branch, one of which is the integration with the core toolbar and shortcut modules.
To illustrate this, here is a screenshot of our toolbar in development (some links were stripped)
The module also alters the favicon to include a tiny letter and coloured background to match the colour you chose
This way you will never again forget which environment you are using, as the colours will be right there at the top of every page.
CommentsI am keen to hear how other people solve the issue of environment aware Drupal applications, and how this is communicated to the end users of the application. What other modules are out there? What experiences have you had?
Tags drupal drupalplanet environment hosting Source Environment Indicator Category TutorialDon't Panic: A blog about Drupal: First day of DrupalCon Amsterdam
My first day of DrupalCon Amsterdam comes to an end, and behind me are a visit to the wonderful sprint venue Berlage, which is located near the train station in the center of Amsterdam, and a loooong walk to Vondelpark (no, not Wunderkraut-sponsored Wunderpark, which many suggested). My global aim for this DrupalCon is to dive into the code of Drupal, becoming more custom to the code behind Drupal. Normally I classify me as a Drupal user, I use modules and tune them to make Drupal do the stuff I want Drupal to do. But I want to evolve, to learn something more than just using Drupal. So when my co-workers are going home on Thursday, I will stay for the sprints on Friday and Saturday to hopefully learn something about coding for Drupal.
My visit to Berlage was a small step in that direction, to see if I can help out and learn something. It turns out I came just when people were leaving to welcome the people coming to DrupalCamp Amsterdam by bike (!). I knew some of these people, so naturally I came along to Vondelpark to welcome the cyclists. A barbecue was firing up, beers were cooling and people were nice to talk to. I met a whole bunch of new people, and some old acquaintances as well (which was surprising since I don't consider myself a Drupal-globetrotter).
The local Drupal Community really showed off a good time, arranging this barbecue, and they also talked about what will happen during the following couple of days, which really looks promising. There are around 15 persons in the local community, and it seems they have done a good job! It's going to be nice seeing what will become of this.
Drupal Association News: Drupal.org User Research Results: User Personas
Back in May the Drupal Assocation with the help of the Drupal.org Content Working Group kicked off user research project for Drupal.org. Our goal was to understand who are our users, how do they use the website, what is their ideal user experience. We wanted to understand what are the main segments of our audience and define their priority so we could focus our development efforts. This user research is a first step on the path to a complete Drupal.org redesign. For the redesign to be successful, we wanted to have a complete picture of everyone who uses Drupal.org.
This user research was conducted with the help of Whitney Hess, user experience coach. We are thankful to Whitney for her time and experience she shared with us. It was a great pleasure working with her.
Now to the results we want to share.
The ProcessWe kicked of the project with a workshop during DrupalCon Amsterdam. Participants included members of the Drupal.org Working Groups (Content, Software and Infrastructure), members of the DSWG Leadership teams (Developer and Community Tools), and the Drupal Association staff members.
Findings from this first workshop you can find in the blog post.
Our next step was user interviews. During DrupalCon Austin and in the weeks following the event we’ve conducted 30 user interviews with various people: new to Drupal, long-term community members, ex-Drupalistas; developers, site builders, designers, content strategists, PMs, etc.; located in North and South America and Europe. Interviews were conducted by Whitney Hess, Joshua Mitchell, Roy Scholten and Tatiana Ugriumova (myself).
Once we had completed several interviews, Whitney and I started synthesizing them and developing personas.
In the middle of July, during our annual all-staff onsite week at the Drupal Association, we had the second workshop of this project. Drupal Association staff and Whitney Hess took a look at the work-in-progress personas and our original objectives, to make sure they still made sense and to prepare them for review by the working groups and board.
The ResultsObjectives for a new Drupal.org:
- Be the home of the Drupal community. Central source of relevant info/answers, collaboration, education and talent.
- Provide learnable, efficient tools to help coordinate the advancement of Drupal ecosystem.
- Encourage people to develop themselves, their Drupal proficiency, their careers & build human connections over time.
Based on the insights we learned in our research we decided to center our personas around competency in Drupal and the Drupal ecosystem.
We modified Dreyfus's model of skill acquisition as a basis for our persona structure. This model suggests 5 levels of competency, which for our purposes we call:
- Newcomer
- Learner
- Skilled
- Expert
- Master
For further clarity and focus, we determined primary and secondary personas. Primary personas are who we design for first. Each primary persona requires their own set of features and content, and the needs of a primary persona will not be met if we do not design for them explicitly. The needs of secondary personas can mostly be met by focusing on the primary personas. However, there are a few needs specific to them that we will need to accommodate for.
Based on the goal of growing the community and the usage of Drupal, we determined the primary personas to be: Learner and Skilled. Our secondary persona is Expert. Newcomer and Master are our tertiary personas.
This is a very short summary of the research results. More information and an actual personas can be found in the full report below.
Get the full Drupal.org User Personas report: Google Doc | Pdf
We'd like again to say thanks to Whitney for helping us during this process.
As I mentioned above, user research is the first step of a greater project. Our next step is content strategy work for Drupal.org. We'll be posting RFP for it shortly, watch this blog.
Netstudio.gr Blog: You own an e-shop? Automate your shipments
If you own an e-shop, you know the process:: Orders come, you write the shipping vouchers by hand or through the software that your courier service has given to you, you print them, and you stick them on the packages. This has to be done quickly and with no mistakes.
The solutionRecently, we developed for a client the automation of this process. When an order is received, it automatically gets assigned a voucher ID. The client receives an email, SMS or both with a link to the tracking page. This page resides inside the e-shop, so the prestige of the site is increased. Alternatively, before the voucher creation, the shop owner checks the address for possible extra charges and informs the client. This automation reduces the time it needs to prepare the shipments to one third and keeps the client happy as he may check his shipment progress through the tracking page without having to call the e-shop. Finally, mistakes are gone, as the voucher gets printed with the data that the client has entered himself. For more info call us at +30 2108004447 or fill in the contact form.
TweetVerbosity: Migrating Drupal 8 in Europe
This week we're in Europe for DrupalCon Amsterdam! This is starting to feel suspiciously close to a beta so it is time to dive into Migrate again so you can start working on your new sites with real-world data. Let's begin!
What's up with migrate?Migrate in the Drupal context means running a migration from the new Drupal 8 site and pulling data from an existing site. It replaces the old upgrade-in-place system that was used in prior versoins of Drupal. So do a fresh install of Drupal 8 and have an old Drupal 6 site on the same host. After you've logged into Drupal 8 you can connect to your Drupal 6 site.
How is Drupal 8 migrate different from Drupal 7 migrate (and migrate_d2d)?In the older versions of Migrate the process invovled defining your field mappings and manually creating the new content types in the D7 system. This is no longer necessary.
Drupal 8 migrations will automatically create the needed content types and establish the mappings between the old and new fields by default. Therefore much less configuration is needed.
For times when it is necessary to customizae your migration you can use the included hooks or you can use the configuration schema to use the included plugins with your custom data set. The hooks go further than in D7, allowing you to alter data in the prepareRow stage without having to create a custom migration to deal with the data.
Migrate from Drupal 6? What about from Drupal 7?Migrate frees us from the need to update each sequential version. You can leafrog versions! With Drupal 6 being close to end-of-life it is important to have a pathway for these users. For this reason, the D6 to D8 path was built first.
For Drupal 7: soon. This is now in-progress now that we are finalizing the Drupal 6 code.
Requirements- Drush! The UI is still in a contrib sandbox, so for now you must use Drush. The latest version - from Github.
- Composer. It is needed to install Drush. Go into the drush folder and run "composer install". Already installed? "composer update"
- D6 Database. Have it on the same host as the new Drupal 8 install.
- D6 Files. Probably a good idea to be on the same host. Can be file path or http(s) address.
- D8 Database. A new, empty database. Use the old Creating the database howto if new to this.
- D8 Files. Check out the git repo... unless of course a beta becomes available. Then use that.
If you do not currently have a Drupal 8 install one route to get there is to use the Drupal Tools for your platform. It includes all the software you need and the correct versions. It is available for Linux, Mac, and Windows.
If you install the Drupal Tools package it is not necessary to install Git, Drush, or Composer.
The installation should be current as it includes a version of Drush which must be up-to-date. So if you had installed Tools before, double check the version if you have any trouble.
Install Drupal8Using the database credentials you created, install your new Drupal 8 site.
If you need to rebuild your site remember to delete your ENTIRE files folder and old settings.php. Reinstalling without doing this step will cause problems.
Install Composer / DrushMake sure you have run the Composer installer. You should be able to type which composer and get a result in your terminal.
Check out the latest Drush. Go into the Drush folder and run composer install.
Next time you git pull (or git fetch) in the Drush folder, make sure to run composer update.
Find an isuse to test- Go to the Drupal project issue queue and filter down by Component: migration system, Version: 8.x.
- Pick an issue that is not already fixed.
- If you are sprinting with lots of people, pick something further down the list so you are not working on the same thing as someone else.
- Read the posts. If it is easy enough you think you can handle it, post a comment to say you are doing some work on it.
- Post the results of your tests.
Put the manifest.yml file with the migrations you wish to run in your D8 site root. Then go there on the command line and run the following command, using your D6 database credentials.
You can install Drupal 8 at this stage. If you do, be sure to enable all of the necessary modules. For example, if you use the Book module, it is not enabled by default, so you should enable it now or your book nodes will simply become a regular content type.
When Drupal 8 is no longer in beta the manifest.yml file will not be necessary unless you are doing some custom work. In most cases all that will be necessary is to put in the database credentials and the system will run all the migrations that the system knows about by default.
You will find a manifest.yml file attached to many Migrate issues that will enable you to begin the migration. Here is a sample of what I am using... I have added together many different issues and I run them all at the same time:
# user- d6_user
- d6_user_profile_field
- d6_user_profile_field_instance
- d6_user_profile_entity_display
- d6_user_profile_entity_form_display
- d6_profile_values:user
- d6_filter_format
- d6_user_role
- d6_user_picture_entity_display
- d6_user_picture_entity_form_display
- d6_user_picture_file
- d6_user_picture_field
- d6_user_picture_field_instance
# taxonomy
- d6_taxonomy_vocabulary
- d6_taxonomy_settings
- d6_taxonomy_term
# nodes
- d6_node
- d6_node_revision
- d6_node_type
- d6_view_modes
- d6_filter_format
- d6_field_instance_per_form_display
- d6_field_instance_widget_settings
- d6_field_formatter_settings
- d6_field_instance
- d6_field
- d6_field_settings
- d6_node_settings
- d6_cck_field_values:*
- d6_cck_field_revision:*
# taxonomy fields
- d6_term_node_revision
- d6_term_node
- d6_vocabulary_entity_display
- d6_vocabulary_entity_form_display
- d6_vocabulary_field_instance
- d6_vocabulary_field
# blocks
- d6_block
- d6_menu
# custom blocks
- d6_custom_block
- d6_filter_format
# book
- d6_book
- d6_book_settings
Now that you have created a manifest.yml file in the Drupal 8 root directory you can run the migration.
drush migrate-manifest --legacy-db-url=mysql://d6user:d6pass@localhost/d6 manifest.yml
If you are using Drupal Tools (Acquia Dev Desktop), and if you have also put your D6 site into Dev Desktop, you will need to specify the port number. You can find your database settings by creating an AcquiaDevDesktop terminal and typing drush status to get the exact settings for your D6 site. The result should look something like this:
drush migrate-manifest --legacy-db-url=mysql://drupaluser:@127.0.0.1:33067/drupal_6 manifest.yml
Note that the database user for D6 is called "drupaluser" and it uses the local IP address and port number rather than the host name. Again, run drush status if you are having trouble connecting to verify these values.
ResultsAfter you have run the migration check your work. Did things do what you expected? Post the results of your findings to the issue queue you of the item you were working on.
Was the result successful? If so, post the result.
Did something fail? Post the result.
Post your results! Don't be afraid to comment on Drupal.org. If you provide examples of your tests you will help the migration path improve.
Rolling back (starting over)- It is possible to re-run the migration. This can be helpful if you forgot to run a component, or if you have new items in the source site that you would like to add to the Drpual8 site.
- To completely "roll-back" you really need to reinstall Drupal 8. To do this you must do three things: (1) empty your database, (2) delete settings.php, (3) remove the files folder completely.
- Join us at IMP meetups. Find out more at groups.drupal.org/imp.
- Read the Drupal 8 Migrate API documentation.
- Sprint with us if you are in Amsterdam this week!
- Participate in IRC at #drupal-migrate.
Deeson: Data visualisation of who's making Drupal 8
I've been having fun for the last few weeks building an interactive data visualisation tool, The Drupal8r, to show how the Drupal community is coming together to develop the next release, Drupal 8.
What is Drupal?Drupal is a free open-source web development platform which is designed to support online content, community and commerce. We've been using it since 2007.
Because it is open-source and built, developed and maintained by a huge global community who constantly update it as technology evolves.
Drupal 8, the latest release, is coming soon.
There are more than half a million people in the Drupal community, all working to make it the best platform around and usually in their spare time.
We wanted to celebrate the community's collaboration and show who is making some of the biggest contributions and commitments in getting Drupal 8 ready for launch. And so the idea for The Drupal8r was born.
The Drupal communityThere are hundreds of people in the Drupal community who write the platform's core code as their community contribution (called the contributors). This code is tested and reviewed by a handful of people who then commit it to the core (known as the committers).
D3 data visualisationI used the d3.js JavaScript library for manipulating documents based on data and Drupal git-log data to build a chart which displays the names of code contributors and committers with their corresponding Drupal 8 modules. At the moment you can view data from the latest 5000 commits to Drupal 8.
Have a go!Have a play with The Drupal8r, our fun and interactive data visualisation tool to see who has committed and contributed to modules for the next release of Drupal 8.
Come and play with The Drupal8r now.
For mobile usersThe text is small for mobile users and our human eyes haven't quite caught up with technology yet. So, have a look at this short video to see how it works instead.
The Drupal8r data visualisation tool Keep in mindWhen using it for just committers or contributors, the width of the connection represents the number of commits. When you are viewing both, the width of the connection has no meaning.
The Drupal8r can only show a certain amount of items on the page, by default The Drupal8r shows 100 items. It shows all the modules and committers, but the number of contributors are capped and grouped together under 'other'.
Four things The Drupal8r shows- A lot of people contribute - getting Drupal 8 ready is a massive team effort. It isn't just one person contributing to each module, but many people. Thanks everyone!
- In terms of pure numbers, Alex Pott, Webchick, and Nathaniel Catchpole have been the most prolific contributors to the Drupal 8 project. Impressive stuff.
- But the number of commits isn't necessarily a reasonable measure of an individual's contribution. Dries Buytaert and Jennifer Hodgdon may have been focusing on the bigger issues. The core team have reviewed and tested more than 5000 bug patches and bring us close to Drupal 8's launch - what a feat.
- For those in the Drupal community, see if you can spot the person who is in there twice under different names...
Next month I'm going to write another blog post over here on Labs about how I made The Drupal8r and the technologies used.
I'll be enhancing The Drupal8r over the next few months. I'm going to add an option to download more data to include in the chart and a contributor filter, so you'll be able to link to a particular contributor's commits.
Don't miss out on our development of the chart, so sign up to our newsletter below to keep in the loop.
Unimity Solutions Drupal Blog: DrupalCon Amsterdam - Diary - Saturday 27th Sep
I am proud to receive a Grant from the Drupal Association to attend DrupalCon Amsterdam. As a note of thanking the community, I started Day 1 here, Saturday, 27th September Volunteering to help Tote Bag and Badge Stuffing activity at Onyx Lounge at Amsterdam Rai.
The Cherry Hill Company: Why Drupal, and some digression.
Recently, there was a thread stated by a frustrated Drupal user on the Code4Lib (Code for Libraries) mailing list. It drew many thoughtful and occasionally passionate responses. This was mine:
I think that it is widely conceded that it is a good idea to use the most suitable tool for a given task. But what does that mean? There is a long list of conditions and factors that go into selecting tools, some reflecting immediate needs, some reflecting long term needs and strategy, and others reflecting the availability of resources, and these interact in many ways, many of them problematic.
I have given the genesis of Cherry Hill’s tech evolution at the end of this missive. The short version is that we started focused on minimizing size and complexity while maximizing performance, and over time have moved to an approach that balances those agains building and maintenance cost along with human and infrastructure resource usage.
Among the lessons we have learned in the...
Read more »Appnovation Technologies: DrupalCamp Montreal 2014
The seventh annual DrupalCamp Montreal took place at McGill University on September 12nd and 13th.
var switchTo5x = false;stLight.options({"publisher":"dr-75626d0b-d9b4-2fdb-6d29-1a20f61d683"});Deeson: Take a look at our swag for DrupalCon Amsterdam
Following the success of our DrupalCon t-shirt last year, Team Deeson is back and ready for the 'Dam armed with stickers, posters and a new tee to give away (because we're nice like that).
Deft with the DelftThis year we've taken The Netherlands' traditional and iconic Delftware as our inspiration for our DrupalCon Amsterdam tee - well, when in Amsterdam....
Drupal blossomsOur swag has been produced by our insanely talented designer, Rachael Case.
Rachael reversed the colour scheme, and added elements of other ‘classic’ Dutch imagery, including a windmill (of course), tulips and a bike. But if you look closer, the tulips ‘blossoms’ out of the Drupal drop. We also have the Drupal logo perched jauntily on the bike.
To finish it all off, we also added a rather tongue in cheek strapline, celebrating the ‘social’ side of Amsterdam...
Roll up, roll up! Tweet to get a teeSo if you want to grab your swag - tweet us @DeesonAgency and we’ll sort you out at DrupalCon Amsterdam. Zie je daar!
For posters and stickers, come and see us at stand 203 at DrupalCon for a chat. Don't leave it too late though, they have a habit of going fast!
See you thereSo if you want swag, come and find us in Amsterdam between 29th September and 3rd October. John, Tim and I will be around to chat about all things Drupal, open-source and open data.
Code Karate: Drupal 7 jReject Module
In this DDoD we look at the jReject module. This module allows you to display a modal popup notifying the user / visitor that their browser is outdated and wont work well with the site. In the video, you will see that jReject comes with a wide variety of customizations to fit your brand and preferences.
Tags: DrupalDrupal 7Drupal PlanetTips and TricksJavascriptModal FormsKristian Polso: My road to DrupalCon Amsterdam
KYbest: Using PHP_CodeSniffer in PhpStorm
PHP_CodeSniffer is a PHP5 script, which can validate PHP, JavaScript and CSS type source codes according to the different coding standards. In other words, you can easily check your source code’s standardization with a script, instead of knowing every detail about the coding standards by heart. You can use PHP_CodeSniffer in different ways, for example you can run it simply from terminal but thanks for the PhpStorm’s built-in support it becomes a much more effective tool.
DrupalCon Amsterdam: DrupalCon Amsterdam is almost here
It’s the Friday before DrupalCon Amsterdam, and we couldn’t be more excited for what’s in store. As we prepare to dive headlong into a week filled with fun, friends, and Drupal, there are a few things that all DrupalCon attendees (and would-be attendees) need to be aware of.
Late pricing ends todayAt 23:59 tonight, ticket pricing will move to onsite prices. You’ll still be able to register for tickets online, but in order to get the late pricing you must register to attend DrupalCon Amsterdam before midnight tonight Amsterdam time.
DrupalCon Amsterdam is our biggest European DrupalCon yetWe’re thrilled to announce that over 2,000 people have registered to attend DrupalCon Amsterdam, which makes it our biggest European DrupalCon to date. With so many people signed up to attend, there will be tons of opportunities to network, learn, and make new friends.
The fun starts before TuesdayExcited to get the DrupalCon party started? Many of our amazing community members are starting the celebration early: the Tour de Drupal is cruising across Europe, and a student training with over 200 attendees is happening right now, thanks to the local Dutch community.
We wish you safe travels on your way to Amsterdam. Whether you’re taking a plane, a train, a bike, a boat, or some other method of transportation, we hope that you have a fun and safe trip, and we can’t wait to celebrate the best community in Open Sourced with you.
See you in Amsterdam!