The Long and Clicky Road

So far this week I have done 5 hours of clicking little check-boxes on CiviCRM. I don’t mind that, but this is something that I should have caught on the development cycle and hopefully have found a way around it with the developer.

So what happened? It took until our Drupal / CiviCRM website was launched for me to realise that our administrative users did not have enough administrative rights. So picture the scene:

  • An individual has their log-in
  • They are connected to an organisation by way of a relationship
  • The organisation is connected to an organisation where it provides a service, by way of a relationship
  • This all to be editable via a webform

You would hope that then user would be configurable as a group to be permitted to at least edit the details of their organisation, if not those of where it operates as well. It is technically possible. You can make an individuals account permissive to edit, but without installing an expansion that will only extend to the first organisation. You can also set this automatically, but this also requires an extension.

More importantly though; none of this can apparently be retrofitted. The 400 users, the 210 organisations and the 300 operating locations already there need to be configured by hand. I find myself doing lots of little clicks and waiting for it to load and what feels like an eternity later I am now in the clear.

What can I learn about CiviCRM from this?

Actually quite a lot. I am always wary of giving too many people too much of a chance to break things, I am quite capable of doing that myself. So when I am looking at an organisational structure and as an umbrella having to put users I have not even met in an administrative capacity; I need to cover every corner of the system.

What I could have done was found Eileen McNaughton’s Relationship Permissions as ACLs extension much sooner as I see Eileen’s 1.2 branch as the solution. The only downsides there are that it is not directly installed from CiviCRM’s extension installation page and I have to learn enough PHP to set up some of it’s dependencies…. I think….

People forget, I am not actually an expert, I know HTML and CSS and that is about it. I am just a lay project lead!

Relationship Permissions as ACLs can apparently do two things that we need. The first is transitive permissions, where an organisation can carry its permissions and a user (in my example) can edit the details of where it provides a service. The second is that we can set those relationships to automatically enable the permissions when we set them.

It is a shame that as still a relatively green CiviCRM user (or administrator-without-technical-skills?) I did not fully appreciate the power of extensions.

What can happen now though is that 210 organisations can now safely pay their membership fees online if they choose to – and if I have set up the Drupal webform correctly.

Don’t Play with Pictures

For those that do not know (that means almost no-one) I am currently working with a new website using the non-profit focused CiviCRM and open-source CMS Drupal. I am new to Civi and so I am still learning and it has been a steep learning curve; for those who are experienced already, sorry this is a 101 type post.

As part of re-developing the website we have transferred over 200 hospital radio stations who each have their own logo. When the information was transferred across it was build into one of a few custom field sets on the database, including the logos.

The problem is that occasionally, radio stations will re-brand or re-launch with a new logo. This means that we like the management within the stations to have the autonomy to change this themselves and to make things easier, we have created a Drupal web-form for them to do it.

Drupal Webforms

Drupal Webforms are great at being a versatile data collection system. Whether you want to use it as a mailing list sign-up form or indeed as we do for members to update their organisations details. If you are already thinking about using CiviCRM for your organisation then you can include your Civi database information in your forms.

CiviCRM Data Processing

One of the big integrations between the CMS and the CRM, is that you can incorporate almost any part of your Civi database into a Drupal webform. If you are not familiar with the idea and you are already using this combination then the chances are that it is so seamless you don’t even notice the seams. There is just one small problem though; you do appear to be able to update a custom file upload such as a logo.

It is not as though it should be impossible, you can update the picture for a contact and you can even display an image using Drupal’s Views module. Maybe the only reason for a picture could conceivably be that which we find as the contact records picture, be it a mugshot or a logo.

Where We Went Wrong

This one critical issue is where we went wrong. Back when the original member station records were created the logo became part of a custom field set, which I then found I could not update using a batch profile, so I blindly went to all 210 records and uploaded a logo to the custom field.

When it came to setting up my webform I simply used the option that was provided (there was only one) and assumed it was the right one. Well… that is what I think happened as I have been working, asleep and drinking beer since then.

When we launched the website and the userbase wanted to update their logo’s they found that all of a sudden it was not saving and their old contact picture was being displayed. It took us a while to realise that they were editing the wrong image!

The Solution is a Long (and Winding Road)

So what am I doing right now, well I am now re-uploading all the image files to the contact cards image spot on the HBA Website and then I will be changing the variable on views so we are all on the same page… well image. I said this before and I will say it again, CiviCRM is a steep learning curve, I will never quite make the summit.




A New Website is Not New Unless It Has Problems

Finally I can say that my latest website development project is now live. Well I say it is my development but the truth is of course that when someone said “a Drupal and CiviCRM based website sounds grand Darren” I might have have had a minor heart murmur.

Actually it has not only been a steep learning curve that says I was really glad to have not tried to do it myself, but in a sadistic kind of way I have enjoyed the steep learning curve and it has made me think on my feet…. well it didn’t… I was actually usually sat down at the time… but you get the idea.

So let’s start off. The website I was working on was for the Hospital Broadcasting Association where I currently have a number of roles ranging from managing the content and the website, and writing the monthly Members’ Electronic Newsletter focusing on the stories and information for the management and trustees of hospital radio stations around the UK.

The HBA itself is a support organisation for over 200 hospital radio and hospital television services providing training and guidance in subjects as wide ranging as charity management, to presentation skills, to how to manage output during a major incident. Many of the volunteer led and staffed organisation have day jobs as far apart as communications and the railway (okay – well I do) and they all do a sterling job.

The Website

You don’t want to hear about them though, you want to hear about the website.

Well actually there is not too much funk and customisation involved, the Drupal CMS is what you could consider as mostly vanilla with the exception of elements of our membership management system. The CiviCRM backend is likewise not overly customised. This was essential to us because as much as I like long term B2B relationships, there will be that day when you need to go elsewhere and it is so much easier with an off-the-shelf solution.

The good thing with such an arrangement is that we can already customise the customisation. When we first set out 18 months ago we made the mistake of apparently not knowing completely what we want, or we did not communicate it well, or something went awry as over the last few days I have had to deal with my first large “investigation into a workaround.”

I will probably talk about these problems more as I try to work around them otherwise I am going to type more and more until you are reading a novel. At the moment though I am dealing with Contact Card pictures, mailing lists and e-mailing certificates.

No Technical This Time

I will leave it there though and so what can I recommend? Well take a look at what some of our members do on the website.

The Hospital Broadcasting Association recently held its National Hospital Radio Awards where we celebrated the best in hospital radio. Despite dancing the night away until 4am after a glittering ball most of us remember it well and can’t wait to get together again next year.

Until then you can take a look at the HBA Awards winners and listen to their entries to the annual event. You never know, it might tempt you to volunteer some at your own hospital radio station.


Fiddling with a XAMPP Local Server

You know when you have an idea that is so good that it will never work. That is how I feel at the moment, now on my nth attempt at setting up a local server for a Drupal installation.

The first dozen attempts are actually not entirely my fault. For those of you who have followed my rants on either Twitter or Facebook, you will already know that I have mused (or amused) over installing XAMPP on a USB drive so that I can take my development work and do it offline. A lot of my travel is on trains where this is not always either a decent 4G mobile phone signal or on-board Wi-Fi I can set up VPN’s on.

Before anyone mentions it, yes I know that it would be deathly slow on only 4GB RAM and a fairly ancient Core2Duo mobile CPU. It was the fact I could use every free moment of time to work on things that counts.

So I thought that I had everything covered. I installed XAMPP Portable to a 16GB Memory Stick and fired up the Apache and MySQL modules only for the Drupal installation to fail a few times, even after completely wiping down and starting again!

I realised that there were two things I was doing wrong:

  • I was forgetting to copy and paste default.settings.php and renaming one to remove the default
  • I was forgetting that I was trying to force too much work to something not really designed for it – with the standard installation options.

So finally… after a while… I had something going by creating a minimal installation.

Then I came to the realisation that I would need to update PHP as I was using an older build… and XAMPP Portable did not allow you to do that on the fly and I would have to re-install XAMPP again…

The cause was simple; I tried to install CiviCRM.

So To The Desktop

I finally succumbed and installed XAMPP onto my desktop computer. I partitioned off 100GB of space so I had more than enough to play with and then I went on to install.

Now I have it installed and I am on about attempt 7 or 8. My own fault really as I am always making silly little mistakes.

Then I got the dreaded point where I was installed and looking at the default log-in screen and it would pre-populate the log-in details as a username and password I was using on an earlier install. I had to rack my brains trying to work out what I was doing wrong… ahh yes, I am using Chrome and it does not like me doing something silly like that!

and now….

I still can not get it to install CiviCRM – I think I will head back to my Drupal for Dummies.

If & Then – #CiviWorldProblems

The last few days have been a brain freeze for me and has been split between two different thoughts; the security and future of my job, and the difficulty of incorporating I ‘if’ and ‘then’ statements into my CiviCRM based project.

Now I suspect that someone will pipe up and say that this is something that is in development and to be honest I have not had the chance to review the likes of the CiviRules modules which I think are knocking about. In my mind thought I want things to be really simple.

So what have I been trying to achieve?

User Management

If someone gets promoted (and I use the term very loosely) to a more senior position then you would expect them to have more permissions on a website. The problem I am working with does that okay, but when it comes to demote them they seem to keep their privileges on the user permissions.

The first bit seems to be quite simple.

For those that are starting to use CiviCRM you can create a Smart Group with access control; based on an Advanced Search of those who have a particular relationship. I then give them a Drupal user role to the Smart Group.
What I seem to need to do though is back track to see why the user is not removed from the user role when they are removed from the smart group…

I think that I should adopt an idea from Twitter and start calling them:


Anyone would think that building a system using CiviCRM would be hard…. oh right, we paid someone to do it for us (so, it must be)

My Introduction to CiviCRM

One project I have worked on for most of 2014 is a new CiviCRM and Drupal website re-design and launch for a national charity. Now that we are getting so close to launch it gives me the opportunity to talk a little more about it; there was so much commercial sensitivity about it as you always get with contracts, but things have been rapidly evolving in some areas and slow devolving in others.

If you are working in a charity or non-profit and you want to take a lot of your back-office work onto the back of your website then I really do recommend looking at CiviCRM. Most of the features that I have been introduced to are great albeit there are some steep learning curves and when your developer starts customising things you could end up going off the beaten track.

My introduction to CiviCRM has been somewhat of a learning curve!

What is CRM?

I knew you were going to ask what I am blithering on about.

CiviCRM at it’s most basic description is Customer Relationship Management software. When you actually think about it, everyone is actually a customer of everyone else; but this will allow us to manage much more online and get rid of those god awful filing cabinets full of paper.

Imagine this; your company has 500 customers and you have all their details on a spreadsheet in your office. You have changed a few addresses, made new contacts and generally kept your spreadsheet up to date. You haven’t kept the copy of the spreadsheet up to date that you gave your customer service girl though and when she gets a phone call she can not do anything when all the information comes up out of date.

So installing a CRM as part of your website will allow you to manage all this on the luxury of your web server and hopefully one that is backed up regularly by your web host. Now add into that the chances of adding to your customer base by letting people sign up for a mailing list… or setting up an event for people to sign-up to and attend. Many small companies and charities still do not even manage that!

You don’t actually have to set it up as a part of a website. You can install it completely separately in the same way as you would create a Microsoft Access database, just on a web-based or local server.

Now To Me

We all know I like talking about me too much, so let’s get on with it. It has been 12 months of one of the steepest learning curves that you can get. As I have gone through the process of learning about the database and how the back-end of CiviCRM interacts with the front end of Drupal (have I lost you yet)….

… I resorted to having to learn more coding.

I tried really hard not to have to learn much but I have refreshed my knowledge of HTML and CSS and now I am plugging my way through:

  • JavaScript
  • jQuery
  • PHP

There are so many things I want to try but I can not have a really good play until after we launch; otherwise I will make a copy of the website and database and then have one that is out of date….

Many Things are Way Over My Head

Even though I have been largely working on this for 12 months I am still not entirely sure I am up-to-speed with most of it. Let’s look at an example of what I am talking about.

Picture the scene:

  • A person,
  • who manages the relationship with an organisation with a business address;
  • which has a relationship with an establishment which it deals with.

To me that sounds really simple. CiviCRM allows you to build a form from the information that is in the database so logic would say that if the software can see that the person has the permission to change the information of the organisation and should be able to change the information linked to it.


Whichever way I try to manage the permissions, it allows everyone with access to the form to see every establishment… and some of them sound very similar!

I have tried every which way to look at this particular aspect in a number of different ways. I have even used the ability to masquerade as someone else so that I could see what they see and it still does not leave me any wiser!

I Will Blog About My Exploits

…usually. At the moment, most of the things that I am doing are in conjunction with the developers. I have not got a clue about what has been done within bespoke-coded modules that they have created – and we have paid for – so I can not learn from their experience until well after launch when I can take a copy across.

I still don’t actually when I will fully understand anything yet though…. which is damned scary when you are handling lots of data on a SSL secure server with CiviCRM on it!