Planet Drupal

LandingPage FrameWork: Introduction

Now I'm working on a new Drupal 8 module "LandingPage Framework". By the fact it's a package of several modules and themes.

Project page: https://www.drupal.org/project/landingpage

I still don't have a stable release but there is a version that you can start to play with and let me know if it worth to continue the development. The module use the power and the magic of Drupal Paragraphs. Paragraphs approach provides beautiful flexibility in content management because you can get any Drupal functionality in paragraph entity and you can set paragraphs on each page in individual order. 

The main goal of that package is simplification of Drupal based LandingPage development. I want to provide several out of box solutions that can cover the main cases of LandingPages such as Event page, Product page, Promotional page, CV/Portfolio page etc. But I want to provide extremely unlimited options to customize the page.

Please visit this page to take a look on very simple example of Landing page build with that module:

http://landingpage.abzats.com/landingpage/examples/promo

Also you can get more specific technical information in README.txt

I'm not going to write a long post, because one image better than 1000 words.

Please see a quick screencast in that post, it's only an introduction that allow you to catch an idea. I hope I'll do the serious of screencasts to explain how you can use LandingPage Framework, how you can customize LandingPages and how you can do your best in Responsive Design.

 

DrupalCamp Kyiv 2016 Retrospective

I took part in DrupalCamp Kyiv 2016. Let me share my impression.

I took part in Kiev Drupal Camps in 2010 and 2011, but after that, due to some personal reasons and job activity such as working as the Project Manager at the company, I wasn’t able to participate at the camps from 2012 to 2015.

To compare with my previous Drupal Camp experience this Camp looks like International not local Ukrainian event. There were several presentations in English. I think as soon as English presentation will be more than 50% the Camp became really international.

The most important conclusion that I have after this event: It does not make sense to start new project on Drupal 7. There were several excellent presentations that show a long set of Drupal 8 strong points. On my own view the best presentation did Olexiy Gorobets from FFW. His report significantly change my understanding of Drupal Cache Workflow. I hope that his report will be available online soon.

Also there is a trend towards consolidation Drupal IT business in several companies. They are FFW and Adyax.
More than 50% of the camp presentations were prepared by the people from that companies. Also as I can see more than 50% of the famous Ukrainian Drupal developers joined to that 2 companies.

I can saw only one weak point of Kiev Drupal Camp 2016. There were 4 streams of presentations, thus participants can have very limited access to that lectures, so one can see only 25% of presentations.

I hope that we will have access to all presentations soon, but now I can share my final slide set of my presentation The First Step to a Drupal 8 Landing Page Builder.

Anchors Panels Navigation Module as an Excellent Alternative to Single Page Website Module

Background

Several years ago I was working on my personal Web site. Even in that time One Page solutions were very popular for some presentation, personal or CV pages.

The main idea of such approach to put all information on one long page with several link anchors corresponding some separate sub-sections of this page.

In 2011 Single Page Website module was created. Initially my home page was done on the base of this module.

Single Page Website module is good out of box solution for Drupal beginners but it has a lot of weak points connected with it's architectural solution. Some more information about this module you can see in my report on Kiev Drupal Camp 2011.

Frustration due to Single Page Website module

It was my fault to build single page on the base of my custom solution without some prepared and ready to use approaches (Views or Panels for example) that can put several nodes or other content entities together on one page. And according incorrect architecture Single Page Website module has a lot of restrictions. The most significant one is theme restriction. Module works with limited number of themes. Also on the module there is out of box ability to have only one page with anchor navigation from menu.

So we should have only one language One Page Website. And the last frustrated feature of the module we should have anchors links in menu only without links to some internal or external pages.

New Approach based on Panels

I'm start working on the other solution about one year ago, see my post Anchors Panels Navigation Module. And now I have some stable version of Anchors Panels Navigation Module with no theme restriction and with manual anchor name management.

Of course, new approach is Panel based and it require several modules to be installed. Also to set One page website driven on Anchors Panels Navigation module takes more time than on the base Of Single Page Website one. But this solution more flexible. You can use several menus, and links in blocks and content for one page navigation. Also you can use this module to set on your site several Landing Pages and the number of such pages is not limited!

If you would like to set Landing Page solution on the base of Anchors Panels Navigation module you should do a lot of manual work in Drupal admin area.

  1. In addition to setup this module you should create node with type Panel and put several pieces of content in the panes.
  2. Set CSS IDs to each pane that should have #anchors. The name of #anchors will be equal to the names of CSS IDs.
  3. To set links in menu with #hashes. You can use absolute links to your site (like I use on my personal site) or use Void Menu Module (I think it is overkill approach).
  4. To make this menu fixed in the browser window. You can use Code per Node module or Floating Block module or, of course, put required CSS code directly in your theme.

After this steps Anchors Panels Navigation module module will take care about scroll to you anchors when visitors will click to the links and about #hash changing in browser address string. By the fact this new approach less complex than Single Page Website module. It has less PHP and JS code and cause less problems to the site developers I hope :-)

What will be the next step?

After one year of developing and using this module I find out that "Anchors Panels Navigation" is not good name for this module according marketing view. It reflects some architectural semantic core of the module but there is no any ideas about module applying in the name of the module. So I would like to ask Drupal community about better name for this module.

Other solutions

It is fair to mention some other solutions belong to the other developers.

There is Drupal Distribution One Page CV created by Ukrainian Drupal Developer Artem Shymko.

There is Single Page Site module developed by Belgium Drupal Developer Robin Ingelbrecht. This module has no theme restriction such as Single Page Website module but there is no ability do more than one Landing Page into one Drupal site also there is no anchors in address line that does not allow to send link on separate block in the One Page site. But in this module there is beautiful Next Page submodule, and it works perfect, see http://www.starfisk.com.

Please let me know is there are some other Drupal based solutions that I should mention here.

7 Helpful Drupal Modules for Webmasters and Site Admins

In this post I'm not going to describe extremely great modules that you must use on each your Drupal site such as Backup&Migrate module or Views module etc. This modules you can use in some separate cases but they can improve support of your Drupal sites!

Profile Switcher

https://www.drupal.org/project/profile_switcher

If you have old site that was done many years ago and maybe upgraded for example from previous Drupal branch, say from D6 to D7. Than you can face with Distribution name Notice.

Notice: Undefined index: distribution_name in drupal_install_profile_distribution_name()...

You can google this issue and find solution, for example

UPDATE `my_database_name`.`system` SET `status` = '1',
`info` = '' WHERE `system`.`filename` = 'profiles/demo_profile/demo_profile.profile';

or
UPDATE `system`
SET `status` = '1'
WHERE `filename` = 'profiles/standard/standard.profile';

But it can not help in my case, when I use my own custom profile. But it does have sense to switch to Standard one to have easy Drupal core updates etc.

And I was happy when I found Profile Switcher.

I think when project start to save some time in development we start with some Drupal distribution to have already prepared set of modules. But during project life some modules are turned off and some new modules are installed. Thus we go far from initial Drupal distribution. And some times we find a decision to switch Profile name to Standard...

User One

https://www.drupal.org/project/userone

I have my common practice to create for the client some separate admin user with abilities that they need only without any complex and extra admin items. Not qualified user can brake Drupal site if we provide him or her Drupal Superuser account. But sometimes we need to delegate to the client admin ability to manage users. And OMG, they can delete First Drupal user, for example. In this case User One module must be installed! After that your First Drupal user will be protected.

Bootstrap optimizer

https://www.drupal.org/project/bootstrap_optimizer

I think each Drupal developer noticed that after some long development activity when you install and uninstall a lot of modules and themes trying to find optimal solution for your project than Drupal become crazy slow. It is due to some out of date data in "system" table. Bootstrap optimizer fix this issue.

Floating block

https://www.drupal.org/project/floating_block

This module helps you to create menu that will be already on the screen or some permanently visible informational block, for example contact form. I have found it useful together with my new Anchors Panels Navigation module.

Node Convert

https://www.drupal.org/project/node_convert

During production life time of each Drupal sites some new features appear and they require new type of content. Also some old nodes should be converted in new content types with new fields. For example several years ago I'm working on Music School site where we have Teacher profile content type. Client would like to add gallery ability for some separate VIP teachers. New Profile content type was created and some separate profiles was converted to new content type. By the way module Node Convert allow to set some mapping rules during conversion process.

Code per Node

https://www.drupal.org/project/cpn

I tried this module at first when I did video background in the header on one of page of the project of my client. It was separate page with video background and we no need to use this feature on any other pages. So I put VideoBG Jquery script, settings and paths to my HTML5 video files in the JS field in node edit form. This module provide an ability to customise pages directly from admin area without theme edit. I think it is reasonable to do when this custom JS or CSS behaviour strongly connected with current node content and thus we do not loose this behaviour when we will switch from one theme to another one.

Void Menu

https://www.drupal.org/project/void_menu

I think every Drupal Developer use placeholder in menu that make Drupal point to the front page of the site. Void Menu module allow Drupal admins to set their own tags with some replacement rules. The most easy example, we can set in menu hashes pointed to anchors on the current page. I have found this module extremely perfect together with me new module Anchors Panels Navigation.

Anchors Panels Navigation Module

Several years ago I have a dream to put my own personal site into One Page solution. Due to I'm Drupal developer Drupal was selected as platform for my site. Thus Single Page Website Module was done.

This module is some kind of out of box solution. One can turned it on, do several settings on the module settings page and have One Page website on Drupal CMS engine.

But due to architecture of the module it has a lot of significant restrictions that will be difficult to resolve. The main problem is the limited number of themes that people can use with that module. By the fact Bartik theme and it's subthemes only works correct with the module. This issue connected with some automatic actions that module should perform with page template to make it One Page site.

There are a lot of other issues and limitations that restrict significantly abilities of Single Page Website module. There is no any multilingual support and there is no ability to set two One Page Landings, there is no ability to have link in menu that go to the separate Drupal or external page and so on, and so on...

The talk about weak and strong points of Single Page Website module is out of scope of this post, I'm ready to provide my thoughts but in the other post that will be created soon I hope :-)

The topic of this post is Anchors Panels Navigation Module. What made me make a second approach to the One Page site on Drupal? I think that if we can use higher layer of abstraction in the architecture we can avoid any theme dependence. But we should find some kind of wrapper to combine our One page site from different content parts.

I have used Panels module. If you would like to create some Landing Page with anchor navigation inside it, please use Anchors Panels Navigation module. Please use development version it should works, but some decoration moments I should finished before an official release.

There are several simple steps that you should do to obtain One Page site on the base of Panels with anchor navigation:

  1. Turn on Anchors Panels Navigation module. Panels, Panel nodes and Ctools are required also.
  2. Create several pages with content that you would like to have on One page Panel
  3. Create Panel an put nodes that you did on previous step into the Panel areas.
  4. For each region that you would like to have anchor set CSS id in Panels settings.
  5. Put several links to created Panels node with anchors equal the IDs into any Drupal menu. You can have some other links in that menu too.
  6. Now you have Landing Page with anchors. The module does not provide any CSS altering of the page so to set your menu in fixed position you should do some CSS changes manually. I found CSS Injector module is helpful to set some specific CSS rules on the separate Palels page.

Feel free to ask any questions and send any ideas about that approach. Thanks!

Don't forget to check Backup&Migrate settings after D6 to D7 upgrade!

Several days ago we upgraded simple Drupal 6 site to Drupal 7. After core upgrade process was finished we turned on all necessary modules such as Admin menu and Backup & Migrate.

Some features required custom update by scripts and some manual work, we made backup before this activity.
... something went wrong and we go back by restoring DB via Backup&Migrate module and site wend down :-(

When we took a look on DB backup script we found that there was empty dump with the structure of some tables.
So as a result the data in several tables was killed.

When we repeated upgrade process again and took a look on Backup&Migrate advanced settings we were shocked

incorrect table exclude settings

By some reason all tables was excluded from backup.

After we align B&M settings backup became works correctly :-)

The main idea of this post due to automatic upgrade process you should double check settings of contributed modules, upgrade can make them different according initial state.

And, of course, backups is necessary part of site development activity but you should be sure that your backups correct.