function _webform_conditional_find_start in Webform 7.4
Helper. Find the matching start or end of a given subconditional.
See also
_webform_conditional_find_end()
1 call to _webform_conditional_find_start()
- webform_conditional_element_add in includes/
webform.conditionals.inc - Submit handler for webform_conditional elements to add a new rule or action.
File
- includes/
webform.conditionals.inc, line 707 - Form elements and menu callbacks to provide conditional handling in Webform.
Code
function _webform_conditional_find_start($rules, $origin_rid, $target_delta_level = 0) {
$rids = array_keys($rules);
$offset = array_search($origin_rid, $rids);
$delta_level = 0;
foreach (array_reverse(array_slice($rules, 0, $offset + 1, TRUE), TRUE) as $rid => $conditional) {
switch ($conditional['source_type']) {
case 'conditional_end':
$delta_level++;
break;
case 'conditional_start':
$delta_level--;
break;
}
if ($delta_level == $target_delta_level) {
return $rid;
}
}
// Mis-matched conditional_start / _end. Return -1.
return -1;
}