------ v2.2.3 ------ [mms] Fix parse error in Horde_Cipher_BlockMode_ofb64::. ------ v2.2.2 ------ [mms] Optimization of Secret:: and Horde_Cipher:: drivers. [jan] Add Catalan translation (Angels Guimerà ). [mms] Added a RADIUS Auth:: driver. [mir] Added a Samba Auth:: driver. [cjh] Added the Horde_Image:: class. ------ v2.2.1 ------ [jan] Fix incompatibility with PHP < 4.2.0 in the SQL VFS driver. [jan] Fix undefined variable in Cipher.php (cjh). [mms] Complete merging of SQL session handler. ---- v2.2 ---- [mms] Merge the SessionHandler:: API. [jan] Change Secret:: from using PEAR Crypt_HCEMD5 to the Horde_Cipher class (mac). [jan] Add Horde_Cipher:: class to provide a common abstracted interface to various Ciphers for encryption of arbitrary length pieces of data (mac). [mms] Correctly get charset information for MIME_Parts in MIME_Structure. [jan] Add Latvian translation (Kaspars Kapenieks ). [jan] Add Romanian translation (Corneliu MUSAT ). [jon] Added support for an entity to the help system. This allows an external link to be embedded in a help entry. () [cjh] Merge the VFS:: API into Horde 2.2. [cjh] Add a preference to allow maintenance ops with no confirmation screen [jan] Replace 'show' attribute in the registry with a more flexible 'state' attribute (cjh). [jan] Allow setting the number of columns in the summary screen as a user preference (Brian Keifer ). [jan] Add Horde::getGet() and Horde::getPost() (cjh). [cjh] Backport the initial_application preference (Peter Arien ). [jan] Make text, icon, or both menus a user preference (KaalH! ). [jan] Add a parameter for setting the session timeout (cjh). [jan] Add a parameter for setting the session delimiter (cjh). [jan] Add MIME_Magic::filenameToMIME() (mms). [jan] Use arg_separator.output instead of hardcoding '&' (David Ulevitch ). [jan] Add Notification::count() (David Ulevitch ). [jan] Add Auth::isAdmin() (cjh). [jan] Allow loading of sub-classes from several additional sources (cjh). [jan] Remove references to not yet released applications (Gollem, Troll). [jan] Rewrite Category_sql implementation to be much more efficient (cjh). [jan] Add Lithuanian translation (Darius Matuliauskas ). [jan] Add Horde::compressOutput() (mms). [jan] Add a kerberos Auth:: driver (mms). [jan] Add Bulgarian translation (Miroslav Pendev ). [jan] Remove deprecated DB::isWarning() calls. [jan] Add Horde::createTempDir() (mms). [jan] Add Horde::usingSSLConnection() (cjh). [jan] Replace ). ---- v2.1 ---- [jan] Add Hungarian translation (Laszlo L. Tornoci ). [jan] Add Norwegian Nynorsk translation (Per-Stian Vatne ). [jon] Major overhaul to the LDAP preferences driver. Note the changes to config/horde.php and scripts/ldap/horde.schema when upgrading. [jan] Add Slovenian translation (Jure Krasovic ). [jan] Add a Horde preferences screen, and a preference to refresh the summary screen. [jan] Add text/enriched MIME_Viewer (Eric Rostetter ). [jan] Improve language selection. [jan] Add Japanese translation (B.J. Black ). [cjh] Close a potential problem with register_globals On and $js_onLoad. [jon] Add Prefs::isDefault(). [jon] Overhauled LDAP preferences driver. [cjh] Make Horde::dispelMagicQuotes() recursive, so that it handles arrays. [cjh] Have Secret::setKey() check for the session cookie explicitly, to avoid problems with old cookies being sent to a site when they are really disabled. [cjh] Add a PrefsUI class for handling the form processing and UI generation for user preferences; this code was duplicated all through Horde. [cjh] Add a mapping function to the enscript driver which maps file extensions to enscript language codes, and pass the language directly to enscript, to avoid having to use a file extension. [cjh] Fix MIME_Magic::MIMEToExt() to work with x-extension/ext types. [cjh] Add MIME_Magic::MIMEToExt() to map MIME types to file extensions. [cjh] Rewrite Perms:: to use the Categories backend. [jan] Change the Norwegian Bokmal locale from no_BOK to nb_NO and make it the default language for Norwegian users. [cjh] Make Horde's login screen nicer; include reasons in it. [cjh] Use HORDE_TEMPLATES for all template paths. [cjh] Use $registry->getParam() for all Registry information. [cjh] Removed administration code which is incomplete and confusing to users. [jan] Add Estonian translation (Toomas Aas ). [jan] Add Slovak translation (Leo Mrafko ). [jon] Enable the "portability" option in the PEAR DB (sql) drivers. [cjh] Use Horde's 'initial_page' configuration value in the Horde frameset. [jan] Add Portugues translation (Nuno Loureiro ). [jan] Rebuild the language selection logic. The language selected on the login screen is now respected and the site's standard language is defined in lang.php instead of each application's preferences. [jan] Add javascript to set the frameset's page title (Michael Cochrane ). [jan] Add Ukrainian translation (Andriy Kopystyansky ). [jan] Update gettext documentation and Makefiles for Solaris and Debian. [jon] Maintenance fixes from Michael M Slusarz . [jan] Add Danish translation (Martin List-Petersen ). ---- v2.0 ---- [jan] Add Norwegian Bookmal translation (Oystein Steimler ). [avsm] Add .htaccess files to deny access to data directories. [jan] Add Finnish translation (Leena Heino ). [cjh] Fix one last problem with POP3 and multipart/alternative attachments. -------- v2.0-RC4 -------- [rich] Include rewritten and reorganized documentation. [jan] The language cookie was removed in favor of new methods in the Lang:: class that select the language and set the gettext domain. [avsm] Include Chora in this release cycle, but not showing in the toolbar. [cjh] Add MIME_Viewer_zip. [cjh] Trim registry.php.dist to only list apps in this release cycle. [jan] Add deleteObject() method to the SessionCache class. [bjn] Change 'en' and 'en_EN' locales to 'en_US' (default). -------- v2.0-RC3 -------- [cjh] Recognize a few Palm.net browsers and set quirks/features accordingly. [cjh] Support for adding and listing LDAP users given a set schema. [cjh] Set the session cookie parameters with our cookie_path/cookie_domain settings. This means that you can be logged into multiple Horde installations on the same server (different paths) and not have the sessions interfere. [cjh] Use 'hostspec' consistently in Auth drivers. -------- v2.0-RC1 -------- [jan] Add Brazilian Portuguese translation (Carlos Daniel Kibrit ). [jan] Add Greek translation (Stefanos I. Dimitriou ). [jan] Add vCard MIME driver. Changed config/mime_drivers.php.dist. [jan] Add Swedish translation (Andreas Dahlén ). [jan] Add Korean translation (J.I Kim ). ------ v1.3.5 ------ [jon] Added $file and $line parameters to Horde::fatal(). [jon] Removed the PREFS_* and AUTH_* constants in favor of PEAR_Error objects. [avsm] Don't depend on the registry being available when displaying the 'Horde is not configured' message. [cjh] Clean up the Identity class to be a generalized, clean piece of the framework that can be used in other apps and subclassed if necessary. [cjh] Make failure to connect to the preferences datasource a fatal error. [cjh] Added the Serialize:: class for various methods of encapsulating data (steph ). [cjh] Added the capability to get authentication credentials other than username back from the Auth framework, and completed the authentication realm functionality. [jon] Allow the table cell and link CSS classes to be specified when creating menu items. [jan] Add registry method for linking to a nag task. [jan] Add identity class. [max] Add Registry::getName() for querying application names. [cjh] Horde now provides the Horde::logMessage() method for logging of information according to configurable priorities, etc. [jan] Add functionality to map date and time fields to the Data class. [cjh] Add the beginnings of a user administration system. [cjh] Add Chinese (Traditional) translation (David Chang ). [jan] Add Italian translation (Giovanni Meneghetti ). [jan] Add Data class for importing and exporting data. [jon] Cleaned up the help system a bit. [cjh] Add Horde::fatal() for displaying PEAR_Error objects and aborting. [avsm] Extend Horde::getTempFile() to allow directory to be overridden. [avsm] Allow temporary files to be unregistered from deletion. [avsm] Add a Cache framework for persistently storing objects, along with a filesystem driver. [jan] Add Polish translation. [cjh] Fix a problem with $registry->call() and switching application contexts. [cjh] Get rid of the invoke() methods in the registry. [cjh] Don't re-include application config files; save configs in a cache so that we can just point $GLOBALS['conf'] at the old config on $registry->popApp(), etc. [jan] Add French translation (Frederic Trudeau ). [cjh] Add Czech translation (pchytil@asp.ogi.edu). [jan] Add new timezone handling with cleartext timezone names in lang.php. [cjh] Add Russian translation (Ignat Ikryanov ). [jon] New methods in Browser.php for retrieving versions. [jon] Browser.php now detects Opera. [cjh] Move the language and charset defaults into config/lang.php, and add a Registry method to get the current charset. [cjh] Map browser codes such as 'nl' to the full code ('nl_NL', etc.). [avsm] Replace $conf['paths'] with the $registry equivalents. [avsm] Add four registry functions to query webroots and paths. [avsm] Many MIME_Viewer changes: API tweaks, new drivers, works with IMP. [cjh] $conf['user']['online_help'] is now a Horde-level setting. [avsm] Enable applications to have local MIME_Viewer drivers in addition to the global Horde ones. [avsm] Shuffle around the MIME_Viewer API: getDriver() is now private [avsm] Add an 'initial_page' option to the registry, to let us link into any page inside an application. [cjh] Add a framework-level base.php file and make framework scripts use it. [cjh] Add re-organized but still mostly out of date HELP/LISTS/SOURCE files (Josh Miller ). [cjh] Add a parameter that determines whether or not apps are linked on the Horde menubar. [cjh] Clear the whole session when the user logs out of Horde. [jon] Added Prefs::isEmpty() for determining whether a preference is empty. [jon] Added an $onclick parameter to Horde::link() for specifying an anchor's 'onclick' JavaScript event. [cjh] Use the *url() functions more consistently to make sure that cookie-less sessions work. [cjh] Modify css.php to use the Registry to get application file paths. [cjh] Add cookie_path and cookie_domain settings for people who keep apps outside of the Horde webroot or on multiple servers. ------ v1.3.4 ------ [cjh] Add a Horde summary framework, which uses the Registry to get summaries of available data - tasks, events, etc. - for the Horde login screen. [cjh] The preferences settings should be Horde-wide, and so have been moved to horde/config/horde.php. [cjh] Move prefs.gif and generic prefs templates into Horde. [cjh] Move setting of the gettext domain into the Registry. [jon] Simplified the preference system's cleanup functions. [jon] Merge doctype.inc into common-header.inc. [jon] Added Text::htmlspaces() and Text::htmlallspaces(). [cjh] Add an option to Horde::getTempFile() to not delete the file at the end of the request. [cjh] Add a &singleton() method to the Registry class. [jon] Added Nag interface to the registry. [jon] Expanded the registry to handle importing application-specific configuration values. [max] Add auth/login and auth/logout options for Gollem in the registry. [max] Add Registry::getMethod function. [max] Add contacts/sources service to the registry. [cjh] Rename the Connection classes to Token. [cjh] Rename the ObjectStore class to SessionCache. [jon] Adding Dutch language. [avsm] Add icon support to the MIME_Viewer framework [avsm] Update the MIME_Viewer API to include getDriver() and getIcon() [jon] Overhauled the preferences caching system a bit. [cjh] Update Browser:: to recognize IE6. [jon] Added Horde-wide and driver-specific cleanup methods to the preferences system. [cjh] Remove the strtolower() from Lang::select() which was preventing proper locale names (like pt_BR) from working correctly. [max] Added authentication handler to the Registry. [jon] The 'session' preferences driver now honors preference scope. [max] Made sitename title configurable. [jon] Reworked the Menu::customItem() to accept PHP data structures instead of a string of encoded parameters. [avsm] Added MIME_Viewer framework to handle rendering files into HTML (and other) formats in a user-extensible fashion (experimental) [avsm] New MIME_Magic and mime_mapping.php config file (experimental) [avsm] Two new temporary file handling functions, Horde::getTempFile() and Horde::getTempDir() to take care of the housekeeping of temp files. [max] Added contacts/add service to registry. [cjh] Registry::call() is now Registry::link(). There is a new Registry::call() which actually returns the result of a function call made to another application. [cjh] Fix DB query result checking in sql drivers. [cjh] Fix help so that generic help links (on menu bars) show the topic list correctly. [cjh] Make the login form nicer, and add a logout link. [cjh] Make sure all of the sql drivers use DB::quoteString() on all strings. [cjh] Replace a @mysql_query() that was hiding in Connection/sql.php with $this->db->query(). [cjh] Return basename($language) from Lang::Select() to avoid possible exploits. [cjh] Add Registry::hasMethod() for checking if a piece of functionality has been registered with Horde. [jon] Another large overhaul to the preferences system. Note that the isChangeable() function has been renamed isLocked(). There is also support for preference scope (via isShared() and setShared()). [jon] Added capaiblity tests to those drivers that require non-standard PHP extensions (handled by Horde::functionCheck()). [jon] Added an Auth_LDAP Horde authentication driver. [cjh] Add little snippet-templates for dynamically building preference GUIs. [cjh] Rename the Auth interface's auth() method to authenticate() to avoid overlapping the name of the constructor for the Auth parent class. [cjh] The configuration array is now simply $conf. Any settings that must be accessible unchanged (not overridden) should be put into $conf['horde']. Everything else is fair game for applications to override. [cjh] Add a wml/wap login form. [max] Add an Auth_FTP Horde authentication driver. [cjh] Add an Auth_MCAL Horde authentication driver. [cjh] The Horde login form now actually does something. Logging in to it gets you a token in your session saying that you've authenticated and who you are. Apps can then use this information to allow or deny access, and to identify users. [cjh] The format of the config/registry.php file has changed drastically to be more readable and less indirect. There is also a new app parameter, 'allow_guests', which defines whether or not a user is allowed to access the application without logging in to Horde. [cjh] The Auth:: classes now expect to receive a userid and an array of credentials. Right now all backends assume that those credentials contain a password, but the way is clear to have other kinds of auth (IP, time-based, whatever). [jon] Added a new parameter to the LDAP preferences driver: 'always_bind'. [cjh] Added a Menu:: class that all modules can use to generate menu items. [jon] Cleaned up the LDAP preferences driver a bit. [jon] Added session-level preferences caching to the preferences system. [cjh] Have Horde::link() make sure that the status text is safe for javascript (htmlentities, addslashes). [cjh] Fix ObjectStore to work when register_globals = On. [jon] Added a Session-based preferences driver. ------ v1.3.3 ------ [cjh] Further revamp the MIME interface. Be consistent in capitalization (acronyms are capitalized), break out MIME_Structure and MIME_Message into seperate files, and put all methods into classes. [cjh] Add Horde::getFormData() to fetch a variable from either $HTTP_POST_VARS or $HTTP_GET_VARS (and to clean magic quotes, if necessary). [cjh] Remove the Log:: class. This is part of PEAR now. [cjh] Add a SessionCache:: class. This is intended for storing objects in the session intended for near-term use, and will currently start throwing out objects when more than 20 are put in. This will hopefully keep any one session from growing too large. [cjh] Use the new PEAR class Mail_rfc822:: to parse address lists, so that we get rfc 822 group support (my-buddies: jon@horde,org, max@horde.org;), which imap_rfc822_parse_adrlist() doesn't have. [max] Make Horde XHTML 1.0 compliant. [cjh] Add a few fields to the problem report and try to make it more friendly. [cjh] Flesh out the Mime:: class. [cjh] Move trimEmailAddress() into the new Mime:: class. [cjh] Move set_env_in_string() to Text::expandEnvironment(). [cjh] Rename horde_cleanup() to _fileCleanup(). [cjh] The zlib module now supplies a gzencode() function that obsoletes HTTP_Cache::gzEncode(). [cjh] Modify Horde::url() so that it defaults $conf['use_ssl'] to 2 (auto-detect current mode). [cjh] Modernize some of the Horde frontend (still lots to do here); get rid of package.HTMLDocument.php once and for all. [avsm] Breakdown all special characters in URLs to entities, to avoid ambiguity in how various browsers parse them. [cjh] Add Horde::raiseMessage() for creating Horde messages to be displayed to the user. [cjh] Some general UI tweaks - font size, etc. [cjh] Remove rfcdate() in favor of the new 'r' parameter to date. [cjh] Added application 'webroot' and 'fileroot' properties to the registry config file. These allow more flexibility in placing apps, and let the registry work from more places. [cjh] Moved package.Registry.php to Registry.php. [cjh] Commented config/horde.php.dist heavily. [cjh] Add a Secret:: class to Horde.php that provides a transparent interface to either the mcrypt extension (preferred) or the PEAR Crypt_HCEMD5:: class. [jon] Accept a user-defined function for performing username lookups in the preferences code. The preferences constructor looks for the function in $params['user_hook']. [cjh] Check HTTP_ENV_VARS for the user-agent as well as HTTP_SERVER_VARS. [cjh] Remove mailfrom() in favor of the PEAR Mail:: interface. Adjust the conf files and problem.php accordingly. [cjh] Add a set of invoke() methods to the Registry:: class for directly invoking services (ie, actually popping up a window) instead of printing links to invoke them. [cjh] Clean up package.Mime.php a bit; don't set a charset on MIME parts that aren't text. [cjh] Added a file driver for the Connection:: class. [cjh] Added a WAP index to provide quick links to all Horde wireless pages. [cjh] Add basic WAP browser detection to Browser::. Currently this is of the "it detects the phone I have and the simulator I use" variety; it is _very_ far from complete. [cjh] Added Max Kalika's Connection:: class for connection tracking. [cjh] HTTP_Cache:: now compresses content without the use of a temp file. [cjh] Fleshed out the Auth:: class with the ability to cache authorization in the session. [jon] Removed the scripted wordwrap in favor of the native function. Moved the wrap_message() function to Text::wrap(). [jon] Standardize on the rfcdate() function in lib/Horde.php. [cjh] The prefs drivers now expect $params['hostspec'], for consistency with PEAR. [cjh] The PEAR sql prefs driver now works. [cjh] Move horde configuration values that should not be overridded by modules into $horde['horde'][] to allow modules to do overriding/inheritance of other options. [cjh] Add the HTTP_Cache:: class to Horde.php for ETag generation, gzip compression of http content, etc. [cjh] Replace $horde['localhost'] with $HTTP_SERVER_VARS['SERVER_NAME']. [cjh] Reject outright envelope From addresses with spaces in them. [cjh] Quote the from address passed to sendmail to prevent shell exploits. [cjh] Update Browser.php to use HTTP_SERVER_VARS, consolidate the javascript version information, and add ssl_download_hack for browsers that need downloads to be cacheable. [jon] Add Text::filter to lib/Horde.php. [cjh] Check the return value of pclose() correctly in mailfrom(). [jon] Security fix for $from value in mailfrom(). [jon] Silence session_start warnings. [jon] Added new |extra| substitution to config/registry.php for extra, non-standard parameter passing. [jon] Remove buildURL(). It's been replaced by Horde::url(). [jon] Restructured the SQL preferences schema. [cjh] Added $horde['session_name'] to control the session name globally. [cjh] Session:: doesn't really buy us anything, so we've moved the utility methods that do into Horde::, and are just using php4 session calls elsewhere. [cjh] Added the beginnings of User and Auth interfaces, with a bare-bones working Auth_sql implementation. [jon] Rewrote the Session class for instantiation with hooks for user-defined session handlers. [cjh] The bare-bones implementation of the Perms scheme, with a sql driver, works. If you pass it a full path it will traverse up it, returning the first permission it finds. [jon] Moved the language handling functions in Horde.php into their own classed named Lang. [cjh] More consistent/css-based look for the help system. [cjh] Starting to remove all uses of call-time pass-by-reference. [cjh] Added css.php for automagical generation of stylesheets for apps. [jon] Promoted the WebClient class from lib/Horde.php to its own component named Browser.php. [cjh] Use wordwrap in a slightly different way, which seems to produce much prettier quoting of messages. [jon] Added Prefs/mysql.php driver from Max Kalika . [jon] New XML-based help subsystem. [cjh] Renamed package.horde.php to Horde.php. [cjh] Add img() and pimg() functions to the Horde:: class so that modules using only stylesheets don't need the HTMLDocument package. [cjh] Omit the session name/id from the URL if we can verify that cookies are being accepted. [jon] New wrap_message function that uses the native wordwrap function if it exists. [jon] Updating header comment copyright information. [jon] Report module versions in test.php output. [cjh] mime_encapsulate() now uses an array instead of an object. [jon] Removed the $_html['compose*'] sizing parameters from config/html.php. [cjh] Leave Bcc: out of the headers that are passed to sendmail. [jon] Rewrite a good portion of the scripts/set_perms.sh script so that it enforces an extremely high level of security. [cjh] The valid_lang() function now requires $nls['languages'][] to be set for a language to be considered valid (instead of just the locale directory existing). [cjh] Added a &singleton() method to make it easier to only create one log instance, no matter when you need it. [cjh] Now mailfrom() works for recipient addresses with single quotes or other characters that need to be escaped in them. [cjh] Log class now has an mcal instance, a composite (for grouping multiple log backends), and observers register the level of events they want to hear about, and only get notified of events as important or more important than that level. [cjh] Added a Log:: framework and syslog implementation, including a Log_observer class intended to sit on top of Lob objects and take action in exceptional circumstances. [cjh] Make sure to always send a charset with emails. [cjh] Improved the mime_decode() and mime_encode() functions. [cjh] Updated test.php to recognize php4 stable releases. [jon] Removed all of the locale/*.lang dependencies. [jon] Assume the browser is frames-capable by default. [cjh] Add horde_cleanup($filename), which takes care of deleting files that should be unlinked regardless of whether or not the request is canceled by the user before we finish executing. [cjh] Remove phplib dependancy in favor of php4 sessions/PEAR. [cjh] Replace use with require_once. [cjh] Fixed up select_lang() to work (identical to 1.2 now) [cjh] Horde is now under the LGPL. [cjh] Fix mailfrom() so it doesn't send extra headers when using mail() [cjh] Adding a 'margins' attribute to HTMLDocument to enable turning off document margins. ------ v1.3.2 ------ [cjh] Replaced module.XML_RDF.php with a working copy. ------ v1.3.1 ------ [cjh] Revamped the MimeMessage class to be much smaller and simpler. [cjh] Replaced the MimePartData class with a set of functions that more cleanly and correctly implement the MIME standard. [cjh] select_lang() now checks for en when the browser requests en_GB, etc. [cjh] Replaced all calls to ereg* functions with preg* functions, for speed. Because of this we now require php 3.0.12 or later. ------ v1.3.0 ------ [ ] German updated [ ] Fixed the broken 'back' link in setup.php3 for non-English users [ ] manager.php3, db.lib, and cohorts are now gone. They were all unmaintained, out of date, and not very useful. Various build scripts are updated to reflect this. [jon] Removed config/defaults.php3 in preference of horde.php3 [ ] Fixed a setup.php3 bug where " was used instead of ' for $default values (mike) [ ] New Finnish translations (Thanks to: leo.jaaskelainen@kolumbus.fi) [ ] Fixed lynx support issue with login.php3 [ ] Fixed signup.php3 problems [ ] Fixed problem.php3 problems (lynx support) [ ] Added database creation scripts for building phplib complian tables [ ] Moved all documentation (except README and COPYING) into docs/ subdir [ ] Added a caching class so that caching can be turned on per page if needed ------ v1.1.1 ------ [ ] Horde understands French (thanks to Mathieu Clabaut ) [ ] Major frameset redesign [ ] Auto registration/congiruation of modules ------ v1.0.3 ------ [ ] Horde is now web surfable. [ ] Horde handles lynx (pseudoly) [ ] Extendable menus. (menu.txt in horde/config) [ ] Signup, problem reporting, help functions are now part of horde