1: <?php
2: /**
3: * Login system task for automated upgrade tasks.
4: *
5: * Copyright 2010-2012 Horde LLC (http://www.horde.org/)
6: *
7: * See the enclosed file COPYING for license information (GPL). If you
8: * did not receive this file, see http://www.horde.org/licenses/gpl.
9: *
10: * @author Michael Slusarz <slusarz@horde.org>
11: * @category Horde
12: * @license http://www.horde.org/licenses/gpl GPL
13: * @package Kronolith
14: */
15: class Kronolith_LoginTasks_SystemTask_Upgrade extends Horde_Core_LoginTasks_SystemTask_Upgrade
16: {
17: /**
18: */
19: protected $_app = 'kronolith';
20:
21: /**
22: */
23: protected $_versions = array(
24: '3.0'
25: );
26:
27: /**
28: */
29: protected function _upgrade($version)
30: {
31: switch ($version) {
32: case '3.0':
33: $this->_upgradeAbookPrefs();
34: break;
35: }
36: }
37:
38: /**
39: * Upgrade to the new addressbook preferences.
40: */
41: protected function _upgradeAbookPrefs()
42: {
43: global $prefs;
44:
45: if (!$prefs->isDefault('search_sources')) {
46: $src = $prefs->getValue('search_sources');
47: if (!is_array(json_decode($src))) {
48: $prefs->setValue('search_sources', json_encode(explode("\t", $src)));
49: }
50: }
51:
52: if (!$prefs->isDefault('search_fields')) {
53: $val = $prefs->getValue('search_fields');
54: if (!is_array(json_decode($val, true))) {
55: $fields = array();
56: foreach (explode("\n", $val) as $field) {
57: $field = trim($field);
58: if (!empty($field)) {
59: $tmp = explode("\t", $field);
60: if (count($tmp) > 1) {
61: $source = array_splice($tmp, 0, 1);
62: $fields[$source[0]] = $tmp;
63: }
64: }
65: }
66: $prefs->setValue('search_fields', $fields);
67: }
68: }
69: }
70:
71: }
72: