1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
<?php
/**
* Turba directory driver implementation for Horde Preferences - very
* simple, lightweight container.
*
* $Horde: turba/lib/Driver/prefs.php,v 1.10.10.1 2005/01/15 20:27:02 chuck Exp $
*
* @author Chuck Hagenbuch <chuck@horde.org>
* @since Turba 1.2
* @package Turba
*/
class Turba_Driver_prefs extends Turba_Driver {
/**
*
*/
function _init()
{
return true;
}
/**
* Return all entries - searching isn't implemented here for
* now. The parameters are simply ignored.
*
* @param $criteria Array containing the search criteria.
* @param $fields List of fields to return.
*
* @return Hash containing the search results.
*/
function _search($criteria, $fields)
{
return array_values($this->_getAddressBook());
}
/**
* Read the given data from the SQL database and returns
* the result's fields.
*
* @param $criteria Search criteria.
* @param $ids Data identifiers.
* @param $fields List of fields to return.
*
* @return Hash containing the search results.
*/
function _read($criteria, $ids, $fields)
{
$book = $this->_getAddressBook();
$results = array();
if (!is_array($ids)) {
$ids = array($ids);
}
foreach ($ids as $id) {
if (isset($book[$id])) {
$results[] = $book[$id];
}
}
return $results;
}
/**
* Adds the specified object to the SQL database.
*/
function _add($attributes)
{
$book = $this->_getAddressBook();
$book[$attributes['id']] = $attributes;
$this->_setAddressbook($book);
return true;
}
/**
* Deletes the specified object from the SQL database.
*/
function _delete($object_key, $object_id)
{
$book = $this->_getAddressBook();
unset($book[$object_id]);
$this->_setAddressbook($book);
return true;
}
/**
* Saves the specified object in the SQL database.
*/
function _save($object_key, $object_id, $attributes)
{
$book = $this->_getAddressBook();
$book[$object_id] = $attributes;
$this->_setAddressBook($book);
}
/**
* Create an object key for a new object.
*
* @param array $attributes The attributes (in driver keys) of the
* object being added.
*
* @return string A unique ID for the new object.
*/
function _makeKey($attributes)
{
return md5(mt_rand());
}
function _getAddressBook()
{
global $prefs;
$val = $prefs->getValue('prefbooks');
if (!empty($val)) {
$prefbooks = unserialize($val);
return $prefbooks[$this->_params['name']];
} else {
return array();
}
}
function _setAddressBook($addressbook)
{
global $prefs;
$val = $prefs->getValue('prefbooks');
if (!empty($val)) {
$prefbooks = unserialize($val);
} else {
$prefbooks = array();
}
$prefbooks[$this->_params['name']] = $addressbook;
$prefs->setValue('prefbooks', serialize($prefbooks));
$prefs->store();
}
}
|