Building a my groups block

How does one build a 'my groups' block? I thought it would be an out of the box thingy. But it is not. On the channel the answer was DIY. So this is what I build. The code patterns below are the same. The use cases differently.
  1. Show my groups
  2. Add special node type immediately to a group. This is for speed
  3. Generate a node and redirect elsewhere. This is for speed and timeing usage.

My Groups

This is just looping through the group ids of the current user.

Entity Relation Diagrams

What is the best way to translate a relational database into a drupal based site.

In looking for modules i ran into the next modules.

nodefamily looks promissing to navigate through nodes. It promisses to be a directed graph so it MUST BE cool ;-)

views_fusion makes it possible to create joined views "fuse multiple views into one" It looks unmaintained since may 2007.

nodehierarchy looks like nodefamily.

ip lookup

Have setup the statictics modules I note ip adres 66.249.73.205.

Using http://ip-lookup.net/index.php reveils it's a google bot. Thanks!

But how do I know the other ip's. It would be nice to have this lookup build into the statistics.

Just browsing the drupal 6 module list.

It's amazing to see so many modules being converted.

I definitely needs to start converting my modules too!

It take quite some time to upgrade my modules. I guess coder.module will help a lot with all hints.

Some references

Writing an article without pointer is pointless. So here is a start.

Version dependencies are described here http://www.debian.org/doc/debian-policy/ch-relationships.html

For a functional dependency specification (Nix and NixOS) see

direct debit payment method for ubercart

Call me stupid but I thought it was easy. Building a new payment method. I know drupal development a little. I read the core_systems and ubercart_hooks. No sweat developing this new payment method.

mysql cycle

I still forget how to do the database and user creation and drop goes. So why not make a note.

Creating

create database test;
create user 'test' identified by 'pwtest';
grant all on test.* to 'test'@'localhost' identified by 'pwtest';

Cleaning up

drop user test;
drop database;

Yeah ... call me stupid ;-)

ubercart documentation

In building my clieop3 module together with uc_payment_direct_debit I ran into the missing of documentation about the callback parameter $op of hook_payment.

That was a bummer. Because the drupal development process is still a lot of reverse engineering. Having read Pro Drupal Develpment eases the pain a little. Finding ones way studying other modules is ok if it's not on a daily basis. I must be doing something wrong.

The good side is that this $op gets documented now.

Conclusion

My conclusion would be to make module.inc the key module for module and project dependency management.

Changes to install.php, system.module, update.php are relative easy to do afaik.

What i haven't covered is schema update dependencies.

Steps to take:

  1. make drush_mm more robust as a showcase
  2. patch module.inc with lessons learned from drush_mm
  3. provide the project provides files same like status_update
  4. with this into place drush (D7) could have lean and mean drush_pm and drush_mm modules

project dependency management

This is a tricky part of package management. I have no ready solution apart from 'have a look at debian packagemanagement'.

For installation the dependencies attribute of a module should contain a version expression. In example

dependencies: token (<= 1.4)