public function FlexiformFCHandler::elementIgnored in Flexiform 7
Calculate whether an element has been ignored.
Return value
TRUE|FALSE True if the element is ignored.
2 calls to FlexiformFCHandler::elementIgnored()
- FlexiformFCHandler::calculateElementCompleteness in flexiform_webform/
flexiform_webform.fc.inc - Calculate if a given element is complete.
- FlexiformFCHandler::getElementCompleteness in flexiform_webform/
flexiform_webform.fc.inc - Get Element completeness.
File
- flexiform_webform/
flexiform_webform.fc.inc, line 30 - Contains the Field Comlete handler for the FlexiformWebform Module.
Class
- FlexiformFCHandler
- @file Contains the Field Comlete handler for the FlexiformWebform Module.
Code
public function elementIgnored($flexiform, $element_namespace) {
if (isset($this->ignored[$element_namespace])) {
return $this->ignored[$element_namespace];
}
$element = FlexiformElement::getElement($flexiform, $element_namespace);
// Currently only support field api elements.
if (!$element instanceof FlexiformElementField) {
$this->ignored[$element_namespace] = TRUE;
return TRUE;
}
$field = $element
->getField();
$instance = $element
->getInstance();
$settings = !empty($instance['settings']['fc']) ? $instance['settings']['fc'] : array();
// Work out if this field needs to be included.
$this->ignored[$element_namespace] = TRUE;
if (!empty($settings['fc_include']) && $settings['fc_include'] == 'always') {
$this->ignored[$element_namespace] = FALSE;
}
else {
if (!empty($settings['fc_include']) && $settings['fc_include'] == 'entity_exists' && !empty($this->entities[$settings['fc_include__entity_exists']])) {
$this->ignored[$element_namespace] = FALSE;
}
else {
if (!empty($settings['fc_include']) && $settings['fc_include'] == 'element_complete') {
$other_element = $settings['fc_include__element_complete'];
$complete = $this
->getElementCompleteness($flexiform, $other_element);
if ($complete === NULL) {
$option = $settings['fc_include__element_complete_if_ignored'];
if ($option == 'include') {
$this->ignored[$element_namespace] = FALSE;
}
else {
$this->ignored[$element_namespace] = TRUE;
}
}
else {
$this->ignored[$element_namespace] = !$complete;
}
}
}
}
return $this->ignored[$element_namespace];
}