RedHen
RedHen is a lightweight, Drupal-native CRM framework. CRM stands for Customer Relationship Management*, and the initials "CRM" are often used to refer to a software tool designed to assist with Customer Relationship Management (so "CRM" really means, "Customer Relationship Management Tool" as we use it).
Read moreCreating Your Own Matching Engine
CRM Core was designed to be very flexible when it comes to identifying duplicate contacts. In terms of how a duplicate is defined, the designers of CRM Core concerned themselves with use cases having duplicates living in the following spaces:
- In CRM Core, as a contact
- In CRM Core, as a contact of a different type
- In Drupal, as defined in some other module
- In some other database, accessible via a direct database connection
- In some other system, accessible via web services
CRM Core Match was built to provide support for each of these, not directly, but through the use of matching engines. A matching engine is a tool used to identify duplicate contacts, wherever they may live, and according to whatever rules are important in your situation. It also allows developers to directly modify a contact record as part of the matching process. This can be very useful in situations where, for instance, CRM Core Match is being asked to identify duplicates in an external system and you need to keep a record of the external identifier for use in other situations.
Read moreConfiguring Primary Contact Fields in CRM Core
Module developers working with CRM Core often need to know what fields are being used to store the primary phone numbers and addresses for a specific contact. At the same time, it's impossible to predict the specific fields someone would configure for CRM Core beforehand.
In order to overcome this problem, CRM Core provides the ability to select primary fields for each contact type. Primary fields are really just flags, telling other modules that primary email addresses, postal addresses and telephone numbers live in specific fields in your contact records. There are some modules and features that will not work unless the primary fields are properly configured.
You can set the primary fields for any contact type by going to main page for editing the contact type. This can always be found in the administration section of your Drupal website by going to Admin > Structure > CRM Core > CRM Contact Types, or by going directly to admin/structure/crm-core/contact-types. Simply click on the edit link for any contact type, and you will be taken to a screen where you can choose the primary fields for storing contact information.
Configuring CRM Core Match and Matching Engines
CRM Core provides support for identifying duplicate contacts through CRM Core Match. It is designed to allow administrators to control the logical rules through which the system decides whether or not a contact already exists, and pass back consistent information other modules can use to control how records are handled.
Matching Engines and CRM Core Match
CRM Core Match is designed to allow administrators to configure logical matching rules for each contact type in the system. CRM Core Match does not actually do the matching itself; what it does do is process contact information in an orderly way through one or more matching engines.
Matching engines are what actually identify the contacts. CRM Core ships with a module called CRM Core Default Matching Engine, which provides a basic matching engine that is appropriate for most Drupal installations. With it, you can identify duplicate contacts based on the contents of fields in the contact record, by assigning weights to each field and comparing them to a threshold score that indicates when a contact is a match.
Read moreMass Taxonomy Merge
This module is still a Work In Progress! The functionality is rather limited at the moment. I strongly suggest looking at: Taxonomy Manager or Term Merge modules in the mean time.
Overview
Mass Taxonomy Merge is made to be a tool for doing a one-time mass update of taxonomy in a system with large amounts of content. Other modules that exist, while very effective, take considerable amounts of time to run in systems with large amounts of content. Mass Taxonomy Merge allows the user to upload a simple CSV file with a list of terms to merge from and merge in to. Mass Taxonomy Merge module operates on the database itself instead of loading all entities - meaning it is more likely to mess up custom code. Feel free to file feature requests to make it work with other modules.
What it does do
- Create terms
- Merge existing terms
- Delete terms
- Handles child terms (either merging them into the new terms, or deleting if term was deleted)
What it does not (yet) do
- Does not call any hooks, so you can't hook in to it.
- Cannot control the url alias changes if you choose to use it.
Empty Field API 2.x
For specific use-cases, you can define a custom callback to generate dynamic content.
Example One: Hello World
Firstly, implement hook_empty_fields(). This returns an array indexed by the class name that implements the handler.
Note: This differs from version 1.x that used hook_empty_field_callbacks().
<?php
/**
* Implements hook_empty_fields().
*/
function HOOK_empty_fields() {
$items = array(
'HelloWorldEmptyFieldHandler' => array(
'title' => t('Display "Hello World" if empty'),
),
);
return $items;
}
?>Create a new concrete class that extends the abstract class EmptyFieldHandler.
<?php
/**
* @file
* Contains the HelloWorldEmptyFieldHandler plugin for EmptyFieldHandler.
*/
/**
* Defines HelloWorldEmptyFieldHandler class.
*/
class HelloWorldEmptyFieldHandler extends EmptyFieldHandler {
/**
* Implementation of EmptyFieldText::react().
*/
public function react($context) {
return t('Hello World!');
}
/**
* Implementation of EmptyFieldText:summaryText().
*/
public function summaryText() {
return t('Empty Text: "Hello World!"');
}
}
?>Register this class in your modules info file
files[] = plugins/hello_world_empty_field_handler.inc