DGS Search v0.9.7 (07/20/01) - http://www.digitalgenesis.com

Change Log:

  v0.9.7 (07/20/01) - Major enhancements and minor bug fixes.
    - Fixed Info Bar replacements for variables with digits. (Jim)
    - Fixed a bug that caused the description to not be displayed when the
      search string was not in the content. This mostly affected db searches.
      (Reported by William Sella) (Jim)
    - Debug now reports the number of results per database. (Jim)
    - Fixed remote debug no sites that do not track variables. (Jim)
    - Fixed 'all' option for remote debug. (Jim)
    - Fixed <DIV> placement in stats.php & results.php (reported by Alex
      Nolan). (Bill)
    - Changed get_html_translation_table call to htmlentities call in
      search.php to fix compatablility issues between PHP versions. (Bill)
    - Added language pack for Italian (Submitted by Paolo) (Jim)
    - Added language pack for Russian (Submitted by Irina Ozernoy) (Jim)
    - Added language pack for Swedish (Submitted by David Östberg) (Jim)
    - Added language pack for Slovenian (Submitted by Roman <naslov@email.si>) (Jim)
    - Added language pack for French (Submitted by Jean-Guillaume Vieux
      <jvieux@yahoo.com>) (Jim)
    - Added language pack for French (alt) (Submitted by Claude Super) (Jim)
    - Added language pack for Polish (Submitted by Raven and Gutaker Patryk) (Jim)
    - Added language pack for Dutch (Submitted by Paul Verhoeff
      <http://www.ibuildings.nl>) (Jim)
    - Added language pack for Dutch (alt) (Submitted by Arjen Halma
      <http://www.halma.nl>) (Jim)
    - Added new language pack for Spanish (Submitted by Cesar Aguilar) (Jim)
    - Added language pack for Portuguese (Submitted by Celso Alexandre
      Rodrigues <celso.rodri@uol.com.br>) (Jim)
    - Added language pack for Portuguese (alt) (Submitted by Luķs Gustavo
      Magalhćes) (Jim)
    - Added language pack for Korean. (Submitted by HUH Sun)
    - Added language pack for Bulgarian. (Submitted by Tihomir Sokolov)
    - Added support for character sets with $lang['charset'], as seen in the
      Russian language pack (libs/language/russian.php). (Jim)
    - Seperated utils.php into libs/dgsutil/*.php. Makes it easier to manage. (Jim)
    - Added a placeholder for a Cricket and an LDAP module. (Jim)
    - Added set_magic_quotes_runtime(0) to search.php. (Jim)
    - Disabled LIMIT/TOP support until a real fix is finished. (Jim)
    - Added support for .htdgs access files. It allows filtering of files and
      directories external from the config. (Jim)
    - Added an error message that suggests a $config['installBase'] if it looks
      incorrect. (Jim)
    - Added additional information in INSTALL about using fully qualified field
      names to avoid SQL collisions, when doing joins (searching more than one
      table at a time). (Jim)
    - Result page now doesn't present the translate option if the file is a
      docExt replacement (ie: pdf, doc, ps, etc) (Jim)
    - Fixed a buglet in the docExt replacement code. (Jim)
    - Now escapes query before searching database. (Jim)
    - Filesystem module now warns if it doesn't find any files to search. (Jim)
    - Navigation now windows when there are more than 10 result pages. (Jim)
    - Strict filesystem search (non-indexed) can now be sorted by filesize
      or last modification time (forward or reverse). (Jim)
    - Fixed problem when no files were found in the search path. (Bill)
    - Fixed a bug that caused eregi_replace to become upset when you
      searched for any of the regular expression symbols. (Jim)
    - Translate utilizes urlencode() to swap out symbols in passed URL. (Jim)
    - Fixed Skip file due to filesize debug message. (Jim)
    - Required version number should have been 3.0.8 rather than 3.0.7 due to
      strip_tags() existing in 3.0.8+. (Reported by Daco de la Bretoničre) (Jim)
    - Text content between <SCRIPT> tags is no longer used when stripTags is
      enabled. (Reported by Uria Ashkenazy) (Jim)
    - Font sizes can be altered using the options $config['fontLargeSize'],
      $config['fontNormSize'], and $config['fontSmallSize']. (Jim)
    - Added a $config['resultTarget'] which allows you to set a different
      target only for the results. (Suggested by Alberto Savani) (Jim)
    - Code to display a header and footer was removed and replaced with modules
      head and foot. This makes it easier to merge DGS Search into an existing
      web site. (Jim)
    - Added support for Config Sets. This allows for one install of DGS Search
      to service different users, or do different searches based on how it is
      called. See INSTALL for detailed information. (Jim)
    - Added Virtual Host support. This allows for different Config Sets to be
      used based on the server name the remote browser requested. This feature
      is mostly used by ISPs. See INSTALL for detailed information. (Jim)

    Output from diffstat:

      CHANGELOG                 |  113 +++++++
      INSTALL                   |  257 +++++++++++++++--
      MODULES                   |   46 +--
      README                    |   12 
      TODO                      |   15 -
      UPGRADE                   |   16 +
      search.php                |  149 +++++-----
      libs/display/results.php  |   80 +++--
      libs/search/db.php        |  652 ++++++++++++++++++++++++++++++--------------
      libs/search/fs.php        |  200 +++++++------
      libs/utils.php            |  673 ++++++++++++++++++++++++++++++++++------------
     
      23 files changed, 1860 insertions, 754 deletions

  v0.9.6 (02/07/01) - Cleanup, bug fixes and many enhancements.
    - Removed a extra declaration of extSeparator from findext().
    - Removed displayResults() and displayResultsNavigation() from utils.php.
      They were moved to modules in v0.9.5.
    - Fixed an incorrect error message in search.php.
    - Added support for encoded foreign characters. (Suggested by Carlos Viana)
    - Fixed a bug in the db search module that greatly increases the speed of
      searches that join tables using $database[x]["tableAssoc"]. (Submitted by
      Tony Wilson and hatsebutz)
    - Fixed incorrect usage of function_exists() that caused some version of PHP
      to throw warnings or fail. (Submitted by Cyrille Artho)
    - Changed the 'html?' entry in $config["exts"] to 's?html?' to include
      '.shtml' files by default.
    - Added $config["docExts"] which allows searching of a text or html file,
      while the results page provides a URL for a PDF, Word doc or Postscript file.
      The idea is to create a plain text version of PDF documents for searching, so
      the user can locate the original PDF document. (Submitted by Cyrille Artho)
    - Added $config["frameSet"], which adds support to provide a link to the frame
      set, rather than the automatically generated documents that are embedded in
      the frame sets. (Submitted by Cyrille Artho)
    - Merged verifyPHPVersion() from DGS Form.
    - Fixed a bug with $config["forceLower"]. The query itself needed to be
      lowercased, rather than just the contents of the fields.
    - Added support for full path to $config["header"] and $config["footer"]. If no
      path is given, it is assumed that the file is within the "config" directory.
    - Added $config["maxSearchTime"] which allows you to limit the amount of time
      spent searching. The "db" module can only be interrupted between searches.
      This value should be set 3-5 seconds less than PHP's max_execution_time which
      is 30 seconds by default.
    - Cache file will now expire itself if the config.php has been modified. This
      allows fs related configuration changes to take affect immediately.
    - Added $config["siteBase"] to give more flexability to where DGS Search can
      be installed on a site. $config["siteBase"] corresponds to where the URL base
      is specified.
    - Error messages returned from MySQL, MSSQL and IBase databases are now
      displayed on failures. Should make it easier to see what went wrong.
    - Moved module checks into verifyConfig(). Should speed up execution a slightly.
    - Converged many redundant ereg_replace() calls into one function.
    - Added support for language packs with $config["language"].
    - Added English, German and Spanish language packs. The majority of the German
      content was taken from Sebastian Barbe's site at http://www.leibnetz.de and
      Spanish content was taken from Joćo Luis Correia's site at
      http://www.netspring.pt. The missing parts were translated with Bablefish,
      so if parts are incorrect, please let us know.
    - Improved verifyConfig() by adding path verification and type checking for
      several entries within config.php. More work still needs to be done.
    - Added $database[x]["descWidth"] to allow limiting the width of descriptions
      from a database. (Suggested by Russ McClay)
    - Added simple support for displaying the META 'description' rather than content
      from page as the description on results page. (Suggested by Joe Hill)
    - Cleaned up output and added more useful information when debug is enabled.
    - Fixed a bug that caused a blank entry as item 1 on the results page. The fix
      as converting settype($var, "array") instances into $var = array(). The
      settype() call causes an empty array to report a size of 1 rather than 0 on
      some versions of PHP. (Reported by Joćo Luis Correia)
    - Added LIMIT/TOP support to db module for MySQL and MSSQL database types. This
      should speed up database queries on large databases.
    - Added $config["target"] which sets the frame TARGET for links. (ie: _self)
    - Added $database[x]['port'] to allow non-standard database ports for MySQL,
      PgSQL, and MSSQL. ODBC igores this setting and IBase was left unimplemented.
    - Added basic PostgreSQL support to the "db" module. I don't have PostgreSQL
      setup, so please report success/failure. (Submitted by Oleg V. Kalashnikov
      and James Greenhalgh)
    - Swapped out my insane boldQuery() function with a much simpler call to
      eregi_replace(). (Submitted by Woody Lee)
    - All strings that don't need expansion now use single quotes rather than double
      quotes. Should give a very minor speed improvement.
    - The "db" module now supports the bold query option.
    - A source field has been added to the array of matches. This allows for special
      handling in display modules depending on the source of the result.
    - Added $config['remoteDebug'] which allows debug information to be enabled via
      parameters passed to DGS Search. This should aid in debugging on a live site.
    - Converted all <? ?> pairs into <?php ?> pairs, to be more compatible.
    - Added $config['infoBar'] and $config['infoBarFormat'] which allows the
      Information Bar to be fully configured.
    - Added $config['navColor'] which allows setting of the Navigation color seperate
      from the Information Bar.
    - Fixed an early exit condition in the 'fs' and 'db' modules that caused DGS
      Search to do a little extra work in a few places.
    - The .zip archive now has Win9x/NT/2000 specific example paths in config.php.

    Output from diffstat:

      CHANGELOG                 |  113 +++++++
      INSTALL                   |  257 +++++++++++++++--
      MODULES                   |   46 +--
      README                    |   12 
      TODO                      |   15 -
      UPGRADE                   |   16 +
      index.php                 |   36 +-
      search.php                |  149 +++++-----
      config/config.php         |  158 +++++-----
      config/header.php         |    8 
      libs/display/hr.php       |    4 
      libs/display/nav.php      |   32 +-
      libs/display/query.php    |   27 +
      libs/display/results.php  |   80 +++--
      libs/display/stats.php    |   39 +-
      libs/display/title.php    |   10 
      libs/language/.htaccess   |    6 
      libs/language/english.php |   27 +
      libs/language/german.php  |   27 +
      libs/language/spanish.php |   27 +
      libs/search/db.php        |  652 ++++++++++++++++++++++++++++++--------------
      libs/search/fs.php        |  200 +++++++------
      libs/utils.php            |  673 ++++++++++++++++++++++++++++++++++------------
     
      23 files changed, 1860 insertions, 754 deletions

  v0.9.5 (09/10/00) - Bug fixes and minor enhancements.
    - Fixed a bug that caused the navigation and query URLs to not work when
      <BASE HREF=""> was specified in header.php. (Reported by Dan Pasch)
    - Fixed misc typos in config.php and INSTALL.
    - Fixed a bug that may have caused modules to fail on some platforms.
    - Fixed a bug that caused blank descriptions to appear on larger files.
    - Fixed a bug that caused $config["results"] to be ignored when 'r' was not
    - Fixed a bug in that caused files to be skipped after a symlink was followed.
    - Fixed a bug introduced in v0.9.3 that caused the "fs" module to fail if the
      "db" module was called first and returned more than a page of results.
    - Fixed a bug in display module "nav" that caused the URL to be built
      incorrectly for multiword searches. (Reported by Dan Pasch)
    - Optimized findExt() which searches the filesystem looking for files to
      search. Function is about 40% faster now.
      specified in the URL. (Reported by Dan Pasch)
    - Forced search times to be positive values. Very quick searches were sometimes
      returning negative times, probably due to a bug in PHP3.
    - Added a function to verify the configuration and suggest fixes. This
      function still needs to be fleshed out a bit.
    - Expanded module support to include search and display modules. This allows
      for much greater flexibility in displaying results. See MODULES.
    - Reorganized the libs directory to accommodate new module support.
    - Added support for filenames and directories with spaces in them. Spaces are
      now replaced with '%20'. (Suggested by Thomas Langridge)
    - Descriptions on the results pages now attempt to not cut words.
    - Added experimental InterBase support to the "db" module. I don't have an
      InterBase database setup to test this, but it looks correct. :) So please
      report success/failures. (Submitted by Gregor Ibic)
    - Updated header.php with some meta tags.
    - Added a 'Translate' option to the results page. It can be configured using
      $config["translate"] and $config["translateFrom"]. See INSTALL for details.
    - Added a new feature to force case-insensitive searches. This features can
      be enabled on a per database level with $database[x]["forceLower"].
    - Added regular expression support to $config["fsExclude"] and $config["exts"].
      This allows much greater flexibility on inclusion and exclusion of files.
    - Improved database error and debug messages.
    - Searching for no keywords now gives a nice looking error message.
    - Register_globals in php.ini no longer needs to be enabled. We should now be
      able to deal with any method of passing variables in PHP3 and PHP4.

    Output from diffstat:

      CHANGELOG                |   74 +++++
      INSTALL                  |  171 ++++++++++--
      MODULES                  |   92 +++---
      README                   |    9
      TODO                     |   10
      UPGRADE                  |   16 +
      search.php               |   83 ++++--
      config/config.php        |   29 +-
      config/header.php        |    5
      libs/display/.htaccess   |    6
      libs/display/hr.php      |   16 +
      libs/display/nav.php     |   43 +++
      libs/display/query.php   |   27 ++
      libs/display/results.php |   64 ++++
      libs/display/stats.php   |   37 ++
      libs/display/title.php   |   21 +
      libs/search/.htaccess    |    6
      libs/search/db.php       |  623 +++++++++++++++++++++++++++++++++++++++++++++++
      libs/search/fs.php       |  161 ++++++++++++
      libs/searchdb.php        |  426 --------------------------------
      libs/searchfs.php        |  140 ----------
      libs/utils.php           |  192 +++++++-------
 
      22 files changed, 1482 insertions, 769 deletions

  v0.9.4 (08/29/00) - Bug fixes and minor enhancements.
    - Fixed a bug causing extra slashes in URLs.
    - Fixed a bug causing filesystem searches to fail completely on some systems.
    - Fixed a bug that caused only the base URL to be displayed for all results, when
      a bad cache file was used. (Reported by Jon Petrovski)
    - Search time is now reported to the 10th of a second on supported systems.
    - Minor documentation improvements.

    Output from diffstat:

      CHANGELOG         |   59 +++++++++++++++------
      INSTALL           |  123 ++++++++++++++++++++++++++++++++-------------
      MODULES           |    2 
      README            |    4 -
      TODO              |    3 -
      UPGRADE           |   15 +++++
      index.php         |    6 +-
      search.php        |    4 -
      config/config.php |   16 +++--
      libs/searchdb.php |   10 +++
      libs/searchfs.php |   13 ++--
      libs/utils.php    |  145 ++++++++++++++++++++++++++++++++++++------------------
     
      12 files changed, 277 insertions, 123 deletions

  v0.9.3 (08/27/00) - Bug fixes and enhancements.
    - Greatly enhanced the flexibility of the database searches. You are now
      able to build dynamic URLs, link names and descriptions using data from
      the database. See the INSTALL file for more details.
    - Added a query field on the results page. It can be toggled in config.php
      with $config["query"].
    - Search now pulls the title of HTML documents for filesystem searches and
      uses it as the link.
    - Fix some possible bugs associated with not resetting arrays before use.
    - The query is now always in the description on the results page. The code
      to build the description is now more intelligent.
    - Added ability to search all files, not just specific file extensions.
    - Added instructions for creating a unified diff to the README.
    - Fixed example and comments in README and config.php on file separator
      on Windows platforms. (Reported by Mark MacRae)
    - Database results are now ordered by the order they are specified in
      $config["returnFields"] for MySQL and MSSQL databases.
    - Added ability to have multiple tables, and associate the tables for more
      complex searches. (ie: SQL Join)
    - Now able to exclude specific files as well as directories.
    - Now able to exclude files by their filesize.
    - Added ability to exclude symlinks from searches with $config["followLinks"].
      Some sites may want to disable this for security reasons or for sites on which
      PHP may have issues following links.
    - Now able to disable tag stripping with $config["stripTags"].
    - Fixed bug where some PHP or HTML content would not be ignored during searches
      and/or not excluded from search results.
    - Added Navigation, which allows you to limit the number of results per page
      and jump to any point within the result set.
    - Added URL to each result for viewing. Similar to Google.
    - Added filesize and last modified timestamp to results where we are able to
      obtain that information.
    - Fixed minor bug that caused extra HTML tags to be added to result descriptions.
    - New filesystem search code that increased search speed around 50%.
    - Bug that caused wide documents to be missed in searches was fixed by
      the new filesystem search code.
    - Added ability to set font(s) on the Display Results page with $config["fonts"].
    - No longer prints a warning when no results were found.
    - Introduced simple module support, and migrated the filesystem and database
      search into modules.
    - Added a filesystem cache for the searchfs module. Option $config["cacheFile"]
      allows you to choose the file location and $config["cacheTTL"] lets you set the
      cache time to live. Use of the fs cache can increases search speed up to 50%.
    - Fixed various typos.
    - Added a much nicer looking index.php page.
    - Added the images dgssearch_button.jpg, dgssearch.gif, and dgssearch_black.gif
      for those of you that wanted a "Powered by DGS Search". (Created by Dan Pasch)

    Output from diffstat:

      CHANGELOG                   |   68 ++++++++-
      INSTALL                     |  310 +++++++++++++++++++++++++++++++++---------
      MODULES                     |only
      README                      |   52 +++++--
      TODO                        |   13 -
      UPGRADE                     |   17 ++
      index.php                   |   29 ++-
      search.php                  |   73 +++------
      config/config.php           |  132 ++++++++++-------
      images/dgssearch.gif        |only
      images/dgssearch_black.gif  |only
      images/dgssearch_button.jpg |only
      libs/searchdb.php           |  320 ++++++++++++++++++++++++++++++++-----------
      libs/searchfs.php           |  138 ++++++++++++++----
      libs/utils.php              |  324 ++++++++++++++++++++++++++++++++++++++------

      15 files changed, 1127 insertions, 349 deletions

  v0.9.2 (06/14/00) - Bug fixes and enhancements.
    - Increased search speed by 40% to 60% by lowering the buffer size
      from 8192 to 192. Values between 128 and 1024 seem to be optimal.
    - The desc now shows the portion of the file containing the search
      word(s).
    - Fixed an indexing problem which caused the first result to be
      blank on PHP3 systems. (Reported by Bas Wagter)
    - Search word(s) are bolded in description.
    - Fixed/Updated some error messages.
    - Fixed the database 'returnfield' example and comments.
    - Fixed various typos.

  v0.9.1 (06/01/00) - Minor bug fixes.
    - In findext(), the current dir is now correctly appended to files
      after returning to a parent directory.
    - displayResults() now indexes the results correctly.
    - Closed out an open comment in config.php.
    - Fixed invalid link id warning in searchMySQL() and searchMSSQL().
    - Added warnings if search is configured to use SQL/ODBC when it's
      not compiled into PHP.

  v0.9.0 (05/30/00) - Initial release of DGS Search.
