function eck_get_property_type_class in Entity Construction Kit (ECK) 7.3
Get the class for a specific property type.
Parameters
string $property_type_name: The property type to retreive the class for.
Return value
object An instance of the property type class or FALSE if the class could not be loaded.
See also
3 calls to eck_get_property_type_class()
- ECKEntity::__set in ./
eck.classes.inc - Magic set.
- eck_get_property_type_schema in ./
eck.property_type.inc - Get property type schema.
- eck__entity_type__properties_schema in ./
eck.entity_type.inc - Property schema.
File
- ./
eck.property_type.inc, line 76 - Property types.
Code
function eck_get_property_type_class($property_type_name = '') {
$property_classes =& drupal_static(__FUNCTION__, array());
$load_types = NULL;
if ($property_type_name && empty($property_classes[$property_type_name])) {
// Just load the class of the property type we're looking for.
if ($property_type = eck_get_property_types($property_type_name)) {
$load_types = array(
$property_type_name => $property_type,
);
}
}
elseif (!$property_type_name) {
// Load all the classes we haven't yet loaded.
$load_types = array_diff_key(eck_get_property_types(), $property_classes);
}
if ($load_types) {
// Loop through all the property type classes to load and load them.
// if they exist.
foreach ($load_types as $property_type => $property_type_info) {
if ($class = $property_type_info['class']) {
$class_loaded = class_exists($class);
if (!$class_loaded) {
if (function_exists('drupal_get_path') && $property_type_info['file']) {
$file = DRUPAL_ROOT . '/' . drupal_get_path('module', $property_type_info['module']) . '/' . $property_type_info['file'];
if (is_file($file)) {
require_once $file;
$class_loaded = class_exists($class);
}
}
}
$property_classes[$property_type] = $class_loaded ? $class : FALSE;
}
}
}
// Return an array of all the property type classes.
if (!$property_type_name) {
return $property_classes;
}
// Only return the class for a specific property type.
if (isset($property_classes[$property_type_name])) {
return $property_classes[$property_type_name];
}
}