Class ilDclFieldFactory This Class handles the creation of all field-classes.
More...
Class ilDclFieldFactory This Class handles the creation of all field-classes.
- Author
- Michael Herren mh@st.nosp@m.uder.nosp@m.-raim.nosp@m.ann..nosp@m.ch
- Version
- 1.0.0
Definition at line 10 of file class.ilDclFieldFactory.php.
◆ getClassByInstance()
- Parameters
-
- Returns
- string
Definition at line 332 of file class.ilDclFieldFactory.php.
334 $fieldtype = self::getFieldTypeByInstance($field);
336 return self::getFieldClass($fieldtype, $class_pattern);
◆ getClassPathByInstance()
static ilDclFieldFactory::getClassPathByInstance |
( |
ilDclBaseFieldModel |
$field, |
|
|
|
$class_pattern |
|
) |
| |
|
static |
- Parameters
-
- Returns
- string
- Exceptions
-
Definition at line 353 of file class.ilDclFieldFactory.php.
References ilDclFieldTypePlugin\COMPONENT_NAME, ilDclBaseFieldModel\getDatatype(), ilDclBaseFieldModel\getId(), ilPlugin\getPluginObject(), ilDclBaseFieldModel\getProperty(), ilDclBaseFieldModel\getTitle(), ilDclBaseFieldModel\hasProperty(), IL_COMP_MODULE, ilDclDatatype\INPUTFORMAT_PLUGIN, ilDclBaseFieldModel\PROP_PLUGIN_HOOK_NAME, and ilDclFieldTypePlugin\SLOT_ID.
357 if ($field->
getId() != null && !empty(self::$class_path_cache[$field->
getId()][$class_pattern])) {
358 return self::$class_path_cache[$field->
getId()][$class_pattern];
365 if ($plugin_data == null) {
367 "Something went wrong by initializing the FieldHook-Plugin '" 374 $class_path = $plugin_data->getDirectory() .
"/classes/";
376 $class_path = sprintf(self::$field_base_path_patter, ucfirst(self::parseDatatypeTitle($datatype->getTitle())));
379 $class_path = sprintf(self::$field_base_path_patter, ucfirst(self::parseDatatypeTitle($datatype->getTitle())));
382 $return = $class_path . self::getFieldClassFile(self::getFieldTypeByInstance($field), $class_pattern);
384 if ($field->
getId() != null) {
385 self::$class_path_cache[$field->
getId()][$class_pattern] = $return;
static getPluginObject(string $a_ctype, string $a_cname, string $a_slot_id, string $a_pname)
const PROP_PLUGIN_HOOK_NAME
hasProperty($key)
Checks if a certain property for a field is set.
getProperty($key)
Returns a certain property of a field.
◆ getFieldClass()
static ilDclFieldFactory::getFieldClass |
( |
|
$datatype, |
|
|
|
$class_pattern |
|
) |
| |
|
static |
Concatenates Classname from datatype and pattern.
- Parameters
-
- Returns
- string
Definition at line 96 of file class.ilDclFieldFactory.php.
98 if (!empty(self::$field_class_cache[$datatype . $class_pattern])) {
99 return self::$field_class_cache[$datatype . $class_pattern];
102 $fieldtype = $datatype;
104 $class = sprintf($class_pattern, $fieldtype);
105 self::$field_class_cache[$datatype . $class_pattern] = $class;
◆ getFieldClassFile()
static ilDclFieldFactory::getFieldClassFile |
( |
|
$datatype, |
|
|
|
$class_pattern |
|
) |
| |
|
static |
Get Filename from datatype and pattern.
- Parameters
-
- Returns
- string
Definition at line 119 of file class.ilDclFieldFactory.php.
121 return "class." . self::getFieldClass($datatype, $class_pattern) .
".php";
◆ getFieldModelInstance()
static ilDclFieldFactory::getFieldModelInstance |
( |
|
$field_id, |
|
|
|
$datatype = null |
|
) |
| |
|
static |
◆ getFieldModelInstanceByClass()
static ilDclFieldFactory::getFieldModelInstanceByClass |
( |
ilDclBaseFieldModel |
$field, |
|
|
|
$field_id = null |
|
) |
| |
|
static |
Gets the correct instance of a fieldModel class Checks if a field is a plugin a replaces the fieldModel with the necessary class.
- Parameters
-
- Returns
- ilDclBaseFieldModel
- Exceptions
-
Definition at line 250 of file class.ilDclFieldFactory.php.
References ilDclBaseFieldModel\getId().
Referenced by ilDclCache\buildFieldFromRecord(), and ilDclFieldEditGUI\checkInput().
252 if ($field->
getId() != null && !empty(self::$field_model_cache[$field->
getId()])) {
253 return self::$field_model_cache[$field->
getId()];
256 $path_type = self::getClassPathByInstance($field, self::$field_class_patter);
258 if (file_exists($path_type)) {
259 $class = self::getClassByInstance($field, self::$field_class_patter);
261 $class = self::getFieldClass(self::$default_prefix .
"Base", self::$field_class_patter);
265 $instance =
new $class($field_id);
267 $instance =
new $class();
270 if ($instance == null) {
271 throw new ilDclException(
"Could not create FieldModel of " . $class);
274 if ($field->
getId() != null) {
275 self::$field_model_cache[$field->
getId()] = $instance;
◆ getFieldRepresentationInstance()
◆ getFieldTypeByInstance()
- Parameters
-
- Returns
- string
Definition at line 294 of file class.ilDclFieldFactory.php.
References ilDclFieldTypePlugin\COMPONENT_NAME, ilDclBaseFieldModel\getDatatype(), ilDclBaseFieldModel\getId(), ilPlugin\getPluginObject(), ilDclBaseFieldModel\getProperty(), ilDclBaseFieldModel\hasProperty(), IL_COMP_MODULE, ilDclDatatype\INPUTFORMAT_PLUGIN, ilDclBaseFieldModel\PROP_PLUGIN_HOOK_NAME, and ilDclFieldTypePlugin\SLOT_ID.
298 if (!empty(self::$field_type_cache[$datatype->getId()])) {
300 if (!empty(self::$field_type_cache[$datatype->getId()][$field->
getId()])) {
301 return self::$field_type_cache[$datatype->getId()][$field->
getId()];
304 return self::$field_type_cache[$datatype->getId()];
312 $fieldtype = $plugin_data->getPluginClassPrefix() . ucfirst($plugin_data->getPluginName());
314 $fieldtype = self::$default_prefix . ucfirst(self::parseDatatypeTitle($datatype->getTitle()));
316 self::$field_type_cache[$datatype->getId()][$field->
getId()] = $fieldtype;
318 $fieldtype = self::$default_prefix . ucfirst(self::parseDatatypeTitle($datatype->getTitle()));
319 self::$field_type_cache[$datatype->getId()] = $fieldtype;
static getPluginObject(string $a_ctype, string $a_cname, string $a_slot_id, string $a_pname)
const PROP_PLUGIN_HOOK_NAME
hasProperty($key)
Checks if a certain property for a field is set.
getProperty($key)
Returns a certain property of a field.
◆ getPluginNameFromFieldModel()
◆ getRecordFieldInstance()
Creates a RecordField instance and loads the field and record representation.
- Parameters
-
- Returns
- mixed
- Exceptions
-
Definition at line 56 of file class.ilDclFieldFactory.php.
References ilDclBaseFieldModel\getId(), and ilDclBaseRecordModel\getId().
Referenced by ilDclCache\getRecordFieldCache().
58 if (!empty(self::$record_field_cache[$field->
getId()][$record->
getId()])) {
59 return self::$record_field_cache[$field->
getId()][$record->
getId()];
62 $path = self::getClassPathByInstance($field, self::$record_field_class_patter);
63 if (file_exists($path)) {
64 $class = self::getClassByInstance($field, self::$record_field_class_patter);
65 $instance =
new $class($record, $field);
67 if (!$instance->getFieldRepresentation()) {
68 $instance->setFieldRepresentation(self::getFieldRepresentationInstance($field));
71 if (!$instance->getRecordRepresentation()) {
72 $instance->setRecordRepresentation(self::getRecordRepresentationInstance($instance));
74 self::$record_field_cache[$field->
getId()][$record->
getId()] = $instance;
Class ilDclBaseFieldModel.
◆ getRecordModelInstance()
static ilDclFieldFactory::getRecordModelInstance |
( |
|
$record_id | ) |
|
|
static |
◆ getRecordRepresentationInstance()
◆ parseDatatypeTitle()
static ilDclFieldFactory::parseDatatypeTitle |
( |
|
$title | ) |
|
|
static |
Parse string to FieldClass format Replaces _ with camelcase-notation.
- Parameters
-
- Returns
- string
Definition at line 400 of file class.ilDclFieldFactory.php.
402 $parts = explode(
"_", $title);
403 $func =
function ($value) {
404 return ucfirst($value);
407 $parts = array_map($func, $parts);
408 $title = implode(
"", $parts);
◆ $class_path_cache
ilDclFieldFactory::$class_path_cache = array() |
|
staticprotected |
◆ $default_prefix
ilDclFieldFactory::$default_prefix = "ilDcl" |
|
static |
◆ $field_base_path_patter
ilDclFieldFactory::$field_base_path_patter = "./Modules/DataCollection/classes/Fields/%s/" |
|
static |
◆ $field_class_cache
ilDclFieldFactory::$field_class_cache = array() |
|
staticprotected |
◆ $field_class_patter
ilDclFieldFactory::$field_class_patter = "%sFieldModel" |
|
static |
◆ $field_model_cache
ilDclFieldFactory::$field_model_cache = array() |
|
staticprotected |
◆ $field_representation_cache
ilDclFieldFactory::$field_representation_cache = array() |
|
staticprotected |
◆ $field_representation_class_pattern
ilDclFieldFactory::$field_representation_class_pattern = "%sFieldRepresentation" |
|
static |
◆ $field_type_cache
ilDclFieldFactory::$field_type_cache = array() |
|
staticprotected |
◆ $record_class_patter
ilDclFieldFactory::$record_class_patter = "%sRecordModel" |
|
static |
◆ $record_field_cache
ilDclFieldFactory::$record_field_cache = array() |
|
staticprotected |
◆ $record_field_class_patter
ilDclFieldFactory::$record_field_class_patter = "%sRecordFieldModel" |
|
static |
◆ $record_representation_cache
ilDclFieldFactory::$record_representation_cache = array() |
|
staticprotected |
◆ $record_representation_class_pattern
ilDclFieldFactory::$record_representation_class_pattern = "%sRecordRepresentation" |
|
static |
The documentation for this class was generated from the following file: