From: <jon...@us...> - 2011-03-14 05:00:34
|
Revision: 33369 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=33369&view=rev Author: jonnybradley Date: 2011-03-14 05:00:28 +0000 (Mon, 14 Mar 2011) Log Message: ----------- [MOD] trackers: Move item link to get_field_handler() Modified Paths: -------------- trunk/lib/trackers/trackerlib.php trunk/tiki-view_tracker.php Modified: trunk/lib/trackers/trackerlib.php =================================================================== --- trunk/lib/trackers/trackerlib.php 2011-03-14 02:55:34 UTC (rev 33368) +++ trunk/lib/trackers/trackerlib.php 2011-03-14 05:00:28 UTC (rev 33369) @@ -4893,6 +4893,8 @@ return new Tracker_Field_Checkbox($field_info); case 'f': return new Tracker_Field_DateTime($field_info); + case 'r': + return new Tracker_Field_ItemLink($field_info); case 't': return new Tracker_Field_Text($field_info); case 'y': @@ -4938,9 +4940,11 @@ /** * Returns an option from the options array based on the numeric position. */ - protected function getOption($number) + protected function getOption($number, $default = false) { - return isset($this->definition['options_array'][(int) $number]) ? $this->definition['options_array'][(int) $number] : false; + return isset($this->definition['options_array'][(int) $number]) ? + $this->definition['options_array'][(int) $number] : + $default; } } @@ -5080,6 +5084,54 @@ } +class Tracker_Field_ItemLink extends Tracker_Field_Abstract +{ + function getInsertValues(array $requestData) + { + $ins_id = $this->getInsertId(); + return array( + 'value' => isset($requestData[$ins_id]) ? $requestData[$ins_id] : '', + ); + } + + function getDisplayValues(array $requestData) + { + $filter_id = $this->getFilterId(); + + $data = array( + 'value' => isset($requestData[$filter_id]) ? $requestData[$filter_id] : '', + ); + + if (!$this->getOption(3)) { //no displayedFieldsList + $data['list'] = array_unique( + TikiLib::lib('trk')->get_all_items( + $this->getOption(0), + $this->getOption(1), + $this->getOption(4, 'poc'), + false + ) + ); + } else { + $data['list'] = TikiLib::lib('trk')->get_all_items( + $this->getOption(0), + $this->getOption(1), + $this->getOption(4, 'poc'), + false + ); + $data['listdisplay'] = array_unique( + TikiLib::lib('trk')->concat_all_items_from_fieldslist( + $this->getOption(0), + $this->getOption(3), + $this->getOption(4, 'poc') + ) + ); + } + + return $data; + } +} + + global $trklib; $trklib = new TrackerLib; Modified: trunk/tiki-view_tracker.php =================================================================== --- trunk/tiki-view_tracker.php 2011-03-14 02:55:34 UTC (rev 33368) +++ trunk/tiki-view_tracker.php 2011-03-14 05:00:28 UTC (rev 33369) @@ -360,17 +360,7 @@ } else { $current_field_fields["value"] = ''; } - if ($current_field_fields["type"] == 'r') { // item link - if (empty($current_field_fields["options_array"][3])) { - $current_field_fields["list"] = array_unique($trklib->get_all_items($current_field_fields["options_array"][0], $current_field_fields["options_array"][1], !empty($current_field_fields['options_array'][4])?$current_field_fields['options_array'][4]:'poc', false)); - } - else { - $current_field_fields["list"] = $trklib->get_all_items($current_field_fields["options_array"][0], $current_field_fields["options_array"][1], !empty($current_field_fields['options_array'][4])?$current_field_fields['options_array'][4]:'poc', false); - } - if (!empty($current_field_fields["options_array"][3])) { - $current_field_fields["listdisplay"] = array_unique($trklib->concat_all_items_from_fieldslist($current_field_fields["options_array"][0], $current_field_fields["options_array"][3], !empty($current_field_fields['options_array'][4])?$current_field_fields['options_array'][4]:'poc')); - } - } elseif (($current_field_fields["type"] == 'M') && ($current_field_fields["options_array"][0] >= '3')) { + if (($current_field_fields["type"] == 'M') && ($current_field_fields["options_array"][0] >= '3')) { if (isset($_FILES[$ins_id]) && is_uploaded_file($_FILES[$ins_id]['tmp_name'])) { $data = file_get_contents($_FILES[$ins_id]['tmp_name']); $current_field_ins["value"] = $data; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |