From: <sy...@us...> - 2009-12-07 16:44:03
|
Revision: 23720 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=23720&view=rev Author: sylvieg Date: 2009-12-07 16:43:53 +0000 (Mon, 07 Dec 2009) Log Message: ----------- [FIX]tracker: possibility to filter also on a pref value Modified Paths: -------------- trunk/lib/trackers/trackerlib.php trunk/lib/wiki-plugins/wikiplugin_tracker.php trunk/lib/wiki-plugins/wikiplugin_trackerlist.php Modified: trunk/lib/trackers/trackerlib.php =================================================================== --- trunk/lib/trackers/trackerlib.php 2009-12-07 16:32:20 UTC (rev 23719) +++ trunk/lib/trackers/trackerlib.php 2009-12-07 16:43:53 UTC (rev 23720) @@ -781,7 +781,7 @@ $value = array($value); $not = ''; } elseif (is_array($value) && array_key_exists('not', $value)) { - $value = $value['not']; + $value = array($value['not']); $not = 'not'; } if (empty($not)) { Modified: trunk/lib/wiki-plugins/wikiplugin_tracker.php =================================================================== --- trunk/lib/wiki-plugins/wikiplugin_tracker.php 2009-12-07 16:32:20 UTC (rev 23719) +++ trunk/lib/wiki-plugins/wikiplugin_tracker.php 2009-12-07 16:43:53 UTC (rev 23720) @@ -301,8 +301,11 @@ $outf = $trklib->get_pretty_fieldIds($tpl, 'tpl'); } $ret = array(); + if (!empty($autosavefields)) { + $autosavefieldsarray = explode(':', $autosavefields); + } foreach($flds['data'] as $field) { - if ($field['type'] == 'q' || $field['type'] == 'k' || $field['type'] == 'u' || $field['type'] == 'g' || in_array($field['fieldId'], $outf)) { + if ($field['type'] == 'q' || $field['type'] == 'k' || $field['type'] == 'u' || $field['type'] == 'g' || in_array($field['fieldId'], $outf) || (!empty($autosavefields) && in_array($field['fieldId'], $autosavefieldsarray))) { $ret[] = $field; } } @@ -325,6 +328,8 @@ global $categlib; include_once('lib/categories/categlib.php'); $categs = $categlib->list_categs($matches[1]); $_REQUEST["ins_cat_$f"][0] = $categs[0]['categId']; + } elseif (preg_match('/preference\((.*)\)/', $autosavevaluesarray[$i], $matches)) { + $_REQUEST["ins_cat_$f"][0] = $_REQUEST["$ins_id_$f"] = $prefs[$matches[1]]; } else { $_REQUEST["ins_cat_$f"][0] = $_REQUEST["$ins_id_$f"] = $autosavevaluesarray[$i]; } @@ -489,7 +494,6 @@ } else { $status = ''; } - $rid = $trklib->replace_item($trackerId, $itemId, $ins_fields, $status, $ins_categs); $trklib->categorized_item($trackerId, $rid, $mainfield, $ins_categs); if (isset($newItemRate)) { Modified: trunk/lib/wiki-plugins/wikiplugin_trackerlist.php =================================================================== --- trunk/lib/wiki-plugins/wikiplugin_trackerlist.php 2009-12-07 16:32:20 UTC (rev 23719) +++ trunk/lib/wiki-plugins/wikiplugin_trackerlist.php 2009-12-07 16:43:53 UTC (rev 23720) @@ -572,6 +572,12 @@ } else { $exactvalue[] = array('not'=>$l); } + } elseif (preg_match('/(not)?preference\((.*)\)/', $evs[$i], $matches)) { + if (empty($matches[1])) { + $exactvalue[] = $prefs[$matches[2]]; + } else { + $exactvalue[] = array('not'=>$prefs[$matches[2]]); + } } else { $exactvalue[] = $evs[$i]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |