Nathan Gray
cc0f8f3c28
An attempt to add more functionality to searching
...
- All words are trimmed
- Double quotes require the exact phrase ("Nathan Gray" will not match Nathan Brown or Gray Power)
- Modifiers + and - before a word will require or exclude the word (+test -fail), otherwise word is ORed
- User language modifiers AND, OR and NOT (uppercase) will be parsed.
- Combinations: tracker entry -testing -"fatal error"
Note that "entry" will not match "entries", and the results are not sorted by match strength.
All applications that use so_sql for searching should gain these benefits.
2010-03-31 21:29:11 +00:00
Ralf Becker
ab598b8fcb
fix for user changing the timezone while having an edit popup open (unfixed the timestamps would change by the differenz of the two timezones). This fix does eg. NOT fix history logging (depending on the entry read before saving it), so it is better to handle the situation in the UI code, thought this is better then not handling it at all
2010-02-17 00:55:43 +00:00
Ralf Becker
0e646e28c8
optinally return an iterator for a search
2009-11-24 10:59:19 +00:00
Ralf Becker
200a6d61d5
Reworked so_sql class to:
...
- use new egw_time::server2user() and egw_time::user2server() to do
timezone conversation of registered timestamps
- added $timestamp_type parameter to constructor, to automatic convert
all timestamps on read (or search) to given type, default NULL leaves
them unchanged --> will allow in future to work completly with
egw_time objects
2009-10-08 16:18:28 +00:00
Ralf Becker
ad5d2c3941
docu update and fixed so_sql_cf::delete($keys,true) to always return array
2009-09-16 10:20:34 +00:00
Ralf Becker
19086bb7b0
Some fixes and enhancments to simplify search with so_sql
...
- search($criteria,...) if $criteria is a string, search in all data
columns or - if set - $this->columns_to_search
--> that's NOT backward compatible - though a quick scan through the
EGroupware code showed no use of $criteria as string!
- this automatic search, appends and prepends '%' only, if search
pattern does NOT already contain wildcards (* or ?)
--> allows to search "test*" for values starting with test
- improved handling of db timestamps (Y-m-d H:i:s), to allow to search
for them too (eg. "2009-08-*")
- so_sql_cf::get_rows() now calls parent
- so_sql_cf::search() adds DISTINCT if query contains a join
--> ToDo: remove custom search code from apps, to give consitent search
behavior in all apps and simplify the code there
2009-08-19 12:08:52 +00:00
Ralf Becker
35626a6593
"docu update to avoid a common pitfall"
2009-08-17 12:28:30 +00:00
Ralf Becker
2a4e1a95cb
"- method to automatic convert all timestamp fileds to and from usertime
...
- enable this->timestamps to deal with timestamp type columns (as well as integers as before)"
2009-08-10 13:48:11 +00:00
Ralf Becker
232252475f
patch fixing many depricated functions (eg. posix regular expressions) and features, which fill up the error_log under php5.3 (and will no longer be available under php6).
...
Patch is mostly created by script in egroupware/doc/fix_depricated.php in separate commit.
I do NOT advice to apply this patch to a production system (it's commited to trunk!), as the automatic modified regular expressions have a good change to break something ...
2009-06-08 16:21:14 +00:00
Ralf Becker
95168d28bb
"method to access comments in schema definition"
2009-05-13 09:58:21 +00:00
Ralf Becker
5a22640c82
- changed return value of search() to NULL instead false, if nothing
...
found, as this can be simply casted with (array) to work in foreach
- documentation update
2009-05-03 18:36:38 +00:00
Ralf Becker
f61ffc2e5e
allow to pass $extra_cols parameter from get_rows to search
2009-03-11 12:14:15 +00:00
Ralf Becker
1b4d236d4a
New class extending so_sql handing all custom fields needs: reading,
...
saving, searching, ordering and filtering
Makeing a full custom field implementation like in addressbook very easy
and quick
2009-01-17 03:36:58 +00:00
Stefan Becker
858485ad30
"fixed Bug #1663 'More News' not visible in sitemgr when limit is 1, -> so_sql, is now giving back the numbers of total"
2008-10-07 08:17:09 +00:00
Ralf Becker
a1a3ed0d35
"use egw_db::select instead of self::search in so_sql::not_unique() as it does NOT set this->data"
2008-09-22 16:00:45 +00:00
Ralf Becker
70052c8355
fixed SyncML and accounts problem reported by Phillip Herbert <pherbert-at-knauber.de>: update set all but the updated fields to NULL, instead of just updating the given fields
2008-07-02 15:25:54 +00:00
Ralf Becker
b3b53c2f87
"treat (space separated) words in search as or'ed search for them individually"
2008-06-26 16:08:47 +00:00
Ralf Becker
23c473690e
"removed accidently commited 2. patch"
2008-06-19 16:07:57 +00:00
Ralf Becker
b89e7b46a1
"fixed not working install (segfault) caused by account creation in sitemgr's default_records and the new uid code in addressbook_sql::save() going into an invinit recureing, because so_sql::update calls $this->save() instead of self::save()"
2008-06-18 19:56:26 +00:00
Klaus Leithoff
09abb185f9
# improving of the negated search criteria behavior
2008-06-17 07:28:35 +00:00
Ralf Becker
6b74d6ad88
"switched permanent debug message off again"
2008-06-04 05:26:52 +00:00
Ralf Becker
c34dc55633
"fixing the fix: only add primary key, if it's NOT an auto id"
2008-05-30 08:20:06 +00:00
Ralf Becker
b6be2fb249
"bugfix: not_unique() method was not working with unique indexes over multiple columns and was not testing the primary keys, with is also unique"
2008-05-28 12:17:06 +00:00
Ralf Becker
78dd1cdf03
missed new $no_clone parameter
2008-05-26 08:32:27 +00:00
Ralf Becker
83a250e085
php5 __construct plus old old class-name method calling the new constructor, added non_db_cols to __get() and __set()
2008-05-26 08:27:24 +00:00
Ralf Becker
b69b8085e6
Fixed some problems with the etag handling, causing an SQL error on
...
merging contacts, as reported by Johannes Gorschlüter from Stylite
2008-05-17 06:44:17 +00:00
Ralf Becker
d58ddd9999
"allow to insert rows with the auto-id specified"
2008-04-27 20:05:04 +00:00
Ralf Becker
163b795d45
"extra where condition, eg. to check etag on writing"
2008-04-26 07:49:01 +00:00
Ralf Becker
5fd2d8def8
removed unnecessary instancations and using static methods of html and egw_link class
2008-03-25 16:42:23 +00:00
Ralf Becker
ef43425f7f
allow to use global db-object (and no clone&set_app), if told so via a separate parameter to the constructor (not by default as the app using so_sql might not be ready for it)
2008-03-13 11:08:54 +00:00
Ralf Becker
33b2504316
"Added code to convert timestamps to so_sql.
...
If you want to use it, you only need to set the timestamps to be converted from user to servertime in so_sql::timestamps AND dont reimplemnt db2data/data2db (or call the default implementation)"
2007-12-04 01:13:53 +00:00
Ralf Becker
fb9d6db5be
"fixed so_sql::get_rows to return an empty array() instead of array(false) if nothing found"
2007-11-27 21:24:50 +00:00
Ralf Becker
336784d74e
fixed only partcial csv export in timesheet, get_rows was not using the num_rows parameter
2007-10-07 13:29:24 +00:00
Ralf Becker
f21e357253
fixed not working direct sql-updates (eg. 'etag=etag+1') via so_sql::save's parameter
2007-09-06 11:56:37 +00:00
Ralf Becker
c5ac764580
"- bugfix: data_merge was not merging null values (isset instead of array_key_exists)
...
- new update function, which write just the given cols and not the whole row"
2007-07-05 04:46:49 +00:00
Ralf Becker
94dced8024
"fix for bug #747 : Postgres SQL error searching tracker items"
2007-05-21 04:49:57 +00:00
Ralf Becker
e11b8e5e32
worked around stupid php5.2 empty haystack warnings
2007-04-29 14:25:19 +00:00
Ralf Becker
4e49113cc1
"removed debug-message"
2007-02-14 07:22:15 +00:00
Ralf Becker
6ffdbb01a1
"read: prefix column with table-name, if used in join, to prevent ambigous col-name"
2007-02-14 07:07:58 +00:00
Ralf Becker
e64e3e06b1
so_sql::init() returns now $this->data as eg. so_sql::read()
2007-01-08 15:57:58 +00:00
Ralf Becker
f4238614f3
new egw_db::capabilities['case_insensitive_like']=='LIKE' ('ILIKE' for Postgres) used for all so_sql search and the lettersearch in addressbook
2006-12-17 08:44:05 +00:00
Ralf Becker
297690b22c
added php4.3 compatibility function stripos, to get back php4.3 compatibility after the recent replacement of stristr with stripos
2006-12-09 14:20:10 +00:00
Ralf Becker
9e5ba08ecb
fixed warning introduced by strstr --> strpos conversation
2006-12-07 19:05:40 +00:00
Cornelius Weiß
4338f6726b
strstr -> strpos fix by thomas koch
2006-12-07 12:46:46 +00:00
Ralf Becker
998d51bef4
- fixed bug reported by Deti Fliegl: [ 1548175 ] Pictures in Addressbook cannot be deleted
...
- docu update
2006-08-29 04:19:38 +00:00
Ralf Becker
325d849332
allow to use columns, which are not unique, for read
2006-07-08 00:38:06 +00:00
Ralf Becker
07df005b44
so_sql::search() was loosing filters, sql-strings (int keys) where writen with that key, instead with []
2006-06-17 18:30:38 +00:00
Ralf Becker
abf67e8471
fix for no colums given via $only_keys=''
2006-05-17 03:02:47 +00:00
Ralf Becker
c019eda361
fix for integer values
2006-04-30 16:42:33 +00:00
Ralf Becker
c170b9a047
so_sql::search:
...
- you can use now "!''" (exclemation mark plus 2 single quotes) as value in $filter and $criteria to search for not empty columns
- only_keys (columns to retrieve) can additionally be an array of column-names
2006-04-24 20:48:18 +00:00
Ralf Becker
6a089fb606
some fixes
2006-04-23 14:42:41 +00:00
Cornelius Weiß
69aa6abdec
update docu to better run trough phpdocumentor
2006-04-20 17:12:30 +00:00
Ralf Becker
2261ca5419
- dont write columns not set in $this->data
...
- read used internal name of primary key, instead of db name (only matters if they differ)
- param column_prefix of constructor and setup_table, to automatic setup a conversation from internal name (without prefix) to the db-name with the prefix
--> I will commit this bugfixes after a short testing period to 1.2 too
2006-04-19 08:03:28 +00:00
Ralf Becker
85a9bfb5d3
For a union-query call search for each query with $start=='UNION' and one more with only $order_by and $start set to run the union-query
2006-04-05 15:22:50 +00:00
Ralf Becker
23f5d80380
enabled so_sql::search to use UNION
2006-03-26 22:09:02 +00:00
Ralf Becker
f21f778800
small phpDoc updates
2005-11-10 05:15:06 +00:00
Ralf Becker
b254fdaeaf
allow to use !patter as value in the criteria array to invert the query (NOT LIKE instead of LIKE)
2005-11-01 10:13:28 +00:00
Ralf Becker
8bfbbd96ae
allow extending classes to use numerical and string debug-levels, so_sql only reacts on debug=4
2005-10-16 11:45:59 +00:00
Cornelius Weiß
7679d73df0
update documentation
2005-06-11 10:49:50 +00:00
Cornelius Weiß
ea424535df
update documentation
2005-06-11 10:09:34 +00:00
Ralf Becker
fc5d6daee4
- query_list can now return arrays with customizable keys, eg. for option-lists incl. title
...
- save works now for tables which have no columns beside the primary key
2005-05-21 18:17:21 +00:00
Ralf Becker
3c8f31fcf7
some bug-fixes plus using the new mysql >= 4.0 feature to count the total number of rows in a limited query
2005-05-19 13:15:19 +00:00
Ralf Becker
ba85974cef
new method query_list to return an array with one column as key and an other one as value, eg. for option-lists
2005-05-10 14:44:34 +00:00
Ralf Becker
72aa737bc4
search: allow aliases in the retrived columns
2005-05-01 11:38:59 +00:00
Ralf Becker
fa95917fba
- get_rows functions now allows to pass a join to the select-function
...
- fixed the counting of not-left joins (we cant ignore them, nor can we use count(*), we make an unlimited query now and retrive the number of rows with num_rows())
2005-04-27 20:47:34 +00:00
Ralf Becker
40526f9b2b
- read use now only the unique keys, if no primary key specified
...
- search: allow to specify the number of rows to return (only the offset was possible before)
- improved hadling of table.*
2005-04-24 17:11:34 +00:00
Ralf Becker
9d43446af2
fixed 2 join-related bugs
2005-04-22 13:49:36 +00:00
Ralf Becker
5f05d9cae9
search:
...
- returns reference now
- $order_by param can contain a GROUP BY clause too
- $extra_cols param can contain comma-sep. string now
- fixed reg-expr. to detect column-aliases (was not requiring a space after AS before)
2005-04-20 17:27:48 +00:00
Ralf Becker
658fe2f4c9
allow to pass (already quoted) query-parts as filter
2005-04-19 13:54:55 +00:00
Ralf Becker
7f74e935bb
small fix count(*) in get_rows uses no LIMIT
2005-04-14 22:09:40 +00:00
Ralf Becker
f2be05f26f
added join parameter to the read too
2005-04-10 21:15:33 +00:00
Ralf Becker
20cacc2f1d
1) fixed not working inserts, if primary key (not auto-increment) where given
...
2) allow 0 to be written and not treated as null
3) added join feature for search
2005-04-08 18:30:32 +00:00
Ralf Becker
cb820c8ccf
only omit filter-column in search, if it's realy set to a value
2005-03-29 17:06:50 +00:00
Ralf Becker
4eb9a76c0b
search accepts now a string with column-names for the only_keys parameter, you can use eg. 'DISTINCT mycol'
2005-03-13 23:35:51 +00:00
Ralf Becker
d238e9d9cd
added optional parameter to the constructor to pass a db-object, eg. for a connection to a different database/host
2005-03-06 21:39:46 +00:00
Ralf Becker
df847f6d8f
returning extra_cols in search
2005-03-05 14:54:14 +00:00
Ralf Becker
450de4d93f
reworked so_sql class with new db-methods db::select, db::insert, db::update, db::delete and added get_rows method for the nextmatch widget
2005-02-27 21:31:10 +00:00
Ralf Becker
ac060de053
docu update
2005-02-22 22:11:00 +00:00
Ralf Becker
bc13c208fe
fixed inline documentation, works very nice now
2005-02-13 13:03:36 +00:00
reinerj
b01bf986dc
change files from phpgw to egw
2004-01-27 16:58:19 +00:00
Ralf Becker
e5f6a0ae08
applied tbsky's so_sql patch:
...
1. remove a redundant line (var $non_db_cols = array();)
2. make read function process scalar value, as ur comment say.
3. make search function work on "NULL" values
2003-11-03 16:19:48 +00:00
Ralf Becker
28362cbdaa
added possibility to use a sql query-string to so_sql::search
2003-04-16 14:32:15 +00:00
Ralf Becker
4bbae0e6f7
change behavior on auto-increment columns, they are not written for new entries
...
some formatting and droped the aliases
2003-03-27 17:21:58 +00:00
Ralf Becker
569a3672b0
some corrections for the inline-doc-parser
2002-09-02 11:14:30 +00:00
Ralf Becker
b7418f98ba
changed last_insert_id() to get_last_insert_id($table,$field)
2002-02-18 13:51:04 +00:00
Ralf Becker
fec8b59825
inital import: generalised so-layer working on the tables_current file
2002-02-18 06:52:33 +00:00