From: <jon...@us...> - 2017-08-23 16:33:55
|
Revision: 63631 http://sourceforge.net/p/tikiwiki/code/63631 Author: jonnybradley Date: 2017-08-23 16:33:53 +0000 (Wed, 23 Aug 2017) Log Message: ----------- [FIX] trackers: Handle missing tracker in ItemLink field output and display an error message Modified Paths: -------------- branches/17.x/lib/core/Tracker/Field/ItemLink.php Modified: branches/17.x/lib/core/Tracker/Field/ItemLink.php =================================================================== --- branches/17.x/lib/core/Tracker/Field/ItemLink.php 2017-08-23 08:40:01 UTC (rev 63630) +++ branches/17.x/lib/core/Tracker/Field/ItemLink.php 2017-08-23 16:33:53 UTC (rev 63631) @@ -937,13 +937,17 @@ // filter by user-visible fields $trackerId = (int) $this->getOption('trackerId'); $definition = Tracker_Definition::get($trackerId); - foreach ($option as $fieldId) { - $field = $definition->getField($fieldId); - if( $field['isPublic'] == 'y' && ($field['isHidden'] == 'n' || $field['isHidden'] == 'c' || $field['isHidden'] == 'p' || $field['isHidden'] == 'a' || $tiki_p_admin_trackers == 'y') - && $field['type'] != 'x' && $field['type'] != 'h' && ($field['type'] != 'p' || $field['options_array'][0] != 'password') - && (empty($field['visibleBy']) or array_intersect(TikiLib::lib('tiki')->get_user_groups($user), $field['visibleBy']) || $tiki_p_admin_trackers == 'y') ) { - $fields[] = $fieldId; + if ($definition) { + foreach ($option as $fieldId) { + $field = $definition->getField($fieldId); + if ($field['isPublic'] == 'y' && ($field['isHidden'] == 'n' || $field['isHidden'] == 'c' || $field['isHidden'] == 'p' || $field['isHidden'] == 'a' || $tiki_p_admin_trackers == 'y') + && $field['type'] != 'x' && $field['type'] != 'h' && ($field['type'] != 'p' || $field['options_array'][0] != 'password') + && (empty($field['visibleBy']) or array_intersect(TikiLib::lib('tiki')->get_user_groups($user), $field['visibleBy']) || $tiki_p_admin_trackers == 'y')) { + $fields[] = $fieldId; + } } + } else { + Feedback::error(tr('ItemLink field "%0": Tracker ID #%1 not found',$this->getConfiguration('permName') , $trackerId)); } return $fields; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |