Sunday, October 21, 2012

OG D7 Part 01 : Intro - OG use cases, the very basics...

Hi All,

Welcome to another blog related to Drupal. Today we will see what ORGANIC GROUPS in drupal 7 is all about.

Basically in this part we will discuss what feature groups being to the website in general.

From the end users perspective :
  1. one should be able to create a new group or join and existing group.
  2. one should be able to leave the group as well - close one's own or leave any group.
  3. one should be able to see the list of all the members in the group one has joined. Remember one can only see the members of the group only if you are the member/ subscriber of the group yourself.
  4. one should be able to see the list of all the groups he or she is a member of.
  5. one should be able to see the list of all the existing groups on website.
  6. one should be able to see what new messages or posts or comments that are added to the group and get email alerts for them.
  7. members of the group should be able to communicate with one another using various content types such as blogs, stories, pages, polls, file directories, picture galleries, links gallery and so on...
From the website owners or siteadmins perspective :
  1. one should be able to categorize groups in to different categories.
  2. one should be able to create the groups as either private or public. A public group is a group whose contents are viewable to non-members. A private group is a group whose contents are visible only to it's own members and NOT visible to non-members. 
  3. one should be able to post private or public content in private or public groups.
  4. I think it is important to know the following things about visibility of groups and their content:
    • By default groups are public with public content.
    • But if you make a private group, then it will not be visible on the website and be only visible to it's members.
    • if there is a private content in a private group, that content is also not visible to non-members.
    • if there is a public content in a private group, that content is visible to non-members of the group but the group itself is not visible to non-members.
    • Example 01:
      • a public-group-01 when created will be visible to all users of the website. Any content created on the group will also be visible to all users of the website.
      • a private content, say article-01 when created will only be visible to Joe who is a member of this group and not visible to Jane who is not a member of this group.
    • Example 02: 
      • a private-group-02 when created will not be visible to say Joe who is not a member of this group but will be visible to Jane is she is a member of this private group.
      • public content say article-02-public created in the private-group-02 will be visible to Joe even if he is not a member of this private group, but he will still not be able to see the private group on the website.
      •  article-03-private created in the private-group-02 will only be visible to Jane who is a member of this private group.
  5. the group manager should be able to add a user, invite any user or block an existing user or deny the request of any user to join the group. That is to say that the group manager should be able to manage the membership and membership requests of the group.
  6. the group manager (or someone who created the group or is an owner of the group) should be able to specify if a user needs to request for a membership of the group or not. Also, if such request need to be approved by the group manager before making a user a member of the group.
  7. one should be able to create different roles within the group such as group admin, moderators, premium members and general members. And be able to add / remove users from these roles of the group.
  8. be able to maintain the home page of the group.
  9. one should be able to set up the group as either selective or not selective - selective groups require approval in order to become a member, or even "invitation-only" groups.
And with this we come to an end of part-01 that tells us what groups are and what one could do there... thanks for your time and bfn...

Sunday, April 1, 2012

D7 : Upgrading your Drupal Core...

Well this is a topic that is very scary... it took me a lot of guts to upgrade my core without loosing the so many articles, in my case Drupal learning notes, that I had written... being a newbie, they were even more precious...

Coming back to the issue, there are only three things we add to the Drupal installation and this is all we need to take care of when we upgrade the Core. And these three things are:
  1. The things that we add to the sites/all directory. 
    • These are things in it's sub-directories, such as /libraries, /modules, /themes and /files. 
    • Anything else you add also needs to be included. Other sites if you are doing a multisite Drupal deployment.
    • All of these things need to copied and backed up for the upgrade. 
    • After the upgrade, and we will see shortly how, we will paste all these files to the same folder again.
  2. All the content that we add and that is stored in the database. There are 2 ways of achieving this. One is using the PHPMYADMIN webapp for managing the MySQL DB. And the second method is using the BACKUP_MIGRATE module of Drupal. Either ways, we back up all the relevant tables in the Drupal installation and restore the database after the upgrade.
  3. The .HTACCESS file. There may be a two of them. One on the root folder of the Apache webserver and the second in the root folder of Drupal. Both of these need to be backed-up and restored in their original folders after the upgrade.
Now the pre-requisites to take care of before undertaking the above steps:
  1. Always put your website in the maintenance mode before any upgrade steps.
Restoration is simple... just reverse the process above... and add one step at the top...
  1. Download the new Drupal core from www.drupal.org and upzip the folder. In the new folder, delete the /Sites directory. And replace the new .htaccess file with the old .htaccess file at the correct places. One in the root folder of the webserver and the other in the root folder of the Drupal install.
  2. Now copy all the new Drupal files into the folder where the older Drupal files resided before.
  3. Go to the home page of your Drupal install and type update.php at the end of the URL.
  4. Run the update script. It will instruct us to all of the above steps that we have already done.
  5. Once done, let the script update the Database. If needed, use the backup_migrate module to restore the Database.
  6. Well this should have your site up and running on the new core. We can always go to the /reports/status.php and see the upgraded status.
Do let me know your feedback and if you liked this posting. Thanks for reading and your time.

Wednesday, March 14, 2012

Setting up a Apache multi-site SOLR on Tomcat & Windows (localhost)

In the Drupal world, it is very common to find SOLR deployments on Ubuntu or Debian. I have also seen comments that SOLR needs only one of the above Operating Systems for deployment.

Monday, March 5, 2012

D7 Modules - Login Modules & related use cases....

As a newbie, part of the challenge is to know the use cases and the modules that are provide them. Modules that are not buggy, are regularly maintained and have stable releases. 

Below are a bunch on User Login related modules and their use cases that may be applicable in many scenarios. Most of these appear to be stable. This blog only summarizes them at one place. The same info is also available on  the www.drupal.org/project/<module> pages.  You may also find additional screenshots for easier understanding or links to related screencasts if you are lucky.

Sunday, January 22, 2012

Best Sources of learning all about using DRUSH in Drupal

Slowly but surely I have come to a stage and after a lot of struggle where I think I am ready for DRUSH now... part of the challenge has been knowing that very good documentation exists everywhere on the internet that is yet unexplored... and then knowing where it is... and then to filter out the better sources of newbie learning from the could-be-better ones... So here is the list of my favourite sources of learning about DRUSH for a newbie...