You are here

CHANGELOG.txt in Advertisement 5.2

December 18th, 2008
 - ad.module
    o generate click history in a function
    o remove administrative statistics page (replaced by configurable reports)
 - ad_report.module
    o display click history along with other report data
    o provide administrative reports, with downloadable CSV's
    o put year first in path for reports, to avoid issue with # of digits
    o default all reports to current month
 - ad_report.install
    o flush cache_menu to register new administrative paths

December 17th, 2008
 - ad.install
    o introduce 'extra' field in 'ad_statistics' and 'ad_clicks' tables
 - ad.module
    o store 'extra' data when advertisements are clicked
 - adcache.inc
    o support 'hook_increment_extra' allowing add-ons to add granularity
    o modify click URL to include 'extra' field
    o store 'extra' field when incrementing counters
 - ad_cache_file.inc
    o store 'extra' field when incrementing counters
 - ad_cache_file.module
    o support 'hook_increment_extra' allowing add-ons to add granularity
    o store 'extra' field when incrementing counters
 - ad_channel.module
    o declare _increment_extra hook
 - ad_channel.inc
    o track which channels displayed advertisements were selected from
    o implement _increment_extra hook to track per-channel granularity

December 16th, 2008
 - ad_report.module
    o prevent division by zero when generating reports

December 12th, 2008
 - ad_report.module
    o feature #333040: make report range configurable (optionally enable the
      jstools jscalendar module for popup calendar selection)
    o feature #333040: provide per-group table breakdown of ad statistics

December 11th, 2008
 - ad.module
    o provide new granular status permissions with logical workflow:
        set status as pending, set status as denied,
        set status from pending to approved, set status from pending to denied,
        set status from approved to active, set status from approved to offline,
        set status from active to offline, set status from active to expired,
        set status from offline to active, set status from offline to expired
    o remove 'unpublished' adstatus, an uppublished node is now an 'expired' ad
    o flush the cache when admin modifies ad status in bulk operation
    o when editing ad, only display ad status options have perms to control
    o feature #167042: provide access to statistics and clicks by default if
      the ad_permission module is not enabled
 - ad_image.module
    o rename 'manage active ad' to 'manage active image'
    o grant permission to new ad owners by default
 - ad_text.module
    o grant 'manage ad text' permission to new ad owners by default
 - ad_html.module
    o grant 'manage ad html' permission to new ad owners by default
 - ad_notify.module
    o grant 'manage own notifications' permission to new ad owners by default
    o grant 'edit notification email' permission to new ad owners by default
 - ad_permission.module
    o allow control of per-ad type default permissions
 - ad_permission.install
    o use CREATE TABLE IF NOT EXISTS correctly (was resulting in an error)
    o update old permission names to new permission names ('manage status'
      gets changed to the default status permissions for that ad type.)

December 10th, 2008
 - ad_remote.module
    o add javascript for recording remote url on which remote ads are served
 - ad.module
    o use single quotes when displaying javascript, so we can display it within
      other javascript (for ad_remote)
    o provide option to display ad url without any <div> wrappers
    o provide mechanism for flushing cache
    o automatically flush cache when ads are updated
 - adserve.inc
    o make best effort attempt at setting a proper remote url when serving
      ads with the ad_remote module
 - ad_channel.module
    o provide configuration option for how to treat ads not in a channel
    o flush cache when channel information changes
 - ad_channel.inc
    o respect configuration option for ads not in a channel
 - ad_cache_file.module
    o ad module now auto-flushes cache when ad is updated
 - ad_weight_probability.module
    o flush cache when weight changes

December 9th, 2008
 - ad.module
    o replace call to old ad_owners_add() with new ad_permission_owners_add()
 - ad_permission.install
    o only create tables if not already existing (on upgrades, these tables
      were already created by the core ad module)
 - ad_remote.info
    o ad_remote now dependent on new ad_permission module
 - ad_remote.module
    o replace call to ad_host_id_create() with new ad_permission_create_hostid()

December 8th, 2008
 - ad_permission.install
    o fix namespace collision
 - ad_permission.module
    o for consistency, don't change title as updating permissisons
 - adserve.php
    o define debug error handler
    o when debugging display all warnings except for misleading header and
      session warnings caused by debugging
 - ad_cache_file.inc
    o fix strict PHP warnings
 - adcache.inc
    o fix strict PHP warnings
 - ad_channel.inc
    o fix strict PHP warnings

December 7th, 2008
 - ad.install
    o move permissions schema into ad_permission module
 - ad.module
    o move permissions logic into ad_permission module
 - ad_html.module
    o replace call to ad_adaccess() with call to ad_permission()
 - ad_image.module
    o replace call to ad_adaccess() with call to ad_permission()
 - ad_text.module
    o replace call to ad_adaccess() with call to ad_permission()
 - ad_permission.module
    o provide granular permissions for advertisements

December 6th, 2008
 - adcache.inc
    o introduce hook_weight
 - ad_cache_file.module
    o introduce hook_weight
 - ad_channel.inc
    o allow the display of more than one premiere advertisement
 - ad_channel.module
    o support 'configure ad premiere status' permission
 Feature #139928:
 - ad_weight_probability.module
    o support weighting the probability that a given ad will be displayed


December 5th, 2008
 - serve.php
    o include new adcache.inc file
 - adserve.inc
    o divide ad serving functions into hooks
    o move display functionality into adcache.inc to standardize caching
    o rework hook functionality
    o fix debug output to include adserve.inc and adcache.inc
 - adcache.inc
    o standardize caching and debugging code
 - ad_cache_file.inc
    o simplify by utilizing functions provided in adcache.inc
    o properly track views and clicks with group-level granularity
 - ad_cache_file.module
    o properly track views and clicks with group-level granularity
 - ad_channel.inc
    o utilize functions provided by adcache.inc
    o add support for premiere advertisements
 - ad_channel.module
    o cleanup wording and fieldsets
    o fix group validation when no groups are selected
    o add support for premiere advertisements
 - ad_channel.install
    o add support for premiere advertisements

November 28th, 2008
 Feature #337505:
 - ad.module
    o track URL where serving advertisements
 - adserve.inc
    o introduce adserve_filter hook
 - ad_cache_file.inc
    o introduce adserve_filter hook
    o convert include_hook_init, include_hook_select to hook_init, hook_select
 - ad_cache_file.module
    o support multiple hook_init, hook_filter, and hook_select hooks
 - ad_channel.module
    o add cache support
 - ad_channel.inc
    o implement cache support

November 27th, 2008
 Feature #337505:
 - ad_channel.module
    o implement ability to assign ads to channels

November 21st, 2008
 Feature #337505:
 - ad_channel.module
    o implement creation, editing and deletion of channels
    o implement creation, editing and deletion of containers
    o implement channel overview page

November 20th, 2008
 Feature #337505:
 - ad_channel.module
    o draft administrative pages for ad channels.
    o administrative interface for creating channels
    o administrative interface for creating channel containers
 - ad_channel.install
    o define ad_channel schema

November 19th, 2008
 - ad.module
    o bug #329475: remove translations on internal status names
 - ad_text.module
    o bug #335466: fix unclosed div
 - ad.install
    o bug #330173: fix infinite loop when uninstalling the ad module
 - ad_notify.module
    o bug #323529: internal function conflicts with notification module

October 9th 2008 (1.6)
 - ad_cache_file.inc
    o bug #319308: test that variable is set before trying to check value

October 1st 2008
 - ad.install
    o bug #316216: remove trailing comma, which was breaking PostgreSQL
      installation

September 30th 2008
 - o bug #315336: properly increment view when not using cache

August 11th 2008
 - adserve.inc
    o bug #220817: support installations using symbolic links
    o feature #177885: optionally apply filters when displaying ads
 - ad.module
    o feature #177885: allow configurable filtering of ads
 - ad_cache_file.module
    o feature #177885: optionally apply filters when displaying ads
 - ad_cache_memcache.module
    o feature #177885: optionally apply filters when displaying ads
 - ad_external.module
    o feature #177885: optionally apply filters when displaying ads
 - ad_html.module
    o feature #177885: optionally apply filters when displaying ads
    o remove unnecessary database query.
 - ad_image.module
    o feature #177885: optionally apply filters when displaying ads
    o remove unnecessary database query.
 - ad_text.module
    o feature #177885: optionally apply filters when displaying ads
    o remove unnecessary database query.

August 10th 2008
 - ad.module
    o feature #250289: add jQuery method for displaying advertisements
    o feature #233568: add support for per-ad-type default permissions
 - ad_cache_memcache.module
    o bug #271912: gracefully report when memcache is not installed
 - adserve.inc
    o bug #271477: id can't start with a number
    o feature #250289: support jQuery method to display advertisements
 - ad.install
    o feature #233568: flush menu cache to support per-ad-type default perms
 - ad_image.module
    o feature #233568: new settings page format for per-ad-type permissions
 - ad_text.module
    o feature #233568: new settings page format for per-ad-type permissions

August 9th 2008
 - adserve.inc
    o bug #288489: add missing argument 2 for variable_get()
    o feature #274297: allow modules to define their own ad display variables

July 24th 2008
 - ad_cache_memcache.inc
    o implement adserve_exit_text hook

July 11th 2008
 - adserve.inc
    o allow module using adserve_select to report when there are no more ads
 - ad_cache_memcache.module
    o asynchronously process changed nodes during cron runs
    o now support multiple hooks, so rename ad-cache-init to ad-cache-hook
 - ad_cache_memcache.inc
    o simplify code by using _debug_echo() when possible
    o preface debug calls with 'Memcache:' to make tracing more clear
    o replace ad_cache_memcache_init() with generic ad_cache_memcache_hook()
    o implement adserve_select hook

July 10th 2008
 - adserve.inc
    o support multiple arguments when invoking function in file
    o simplify code by using _debug_echo() when possible
    o support caches with adserve hooks
 - ad_cache_file.inc
    o simplify code by using _debug_echo() when possible
    o preface debug calls with 'File cache:' to make tracing more clear
    o make cache data re-usable without having to reload it
    o introduce adserve_select hook
    o set sane file cache defaults

July 9th 2008
 - adserve.inc
    o adserve hooks: if include file defined and necessary, include file
    o adserve hooks: if function defined and existing, call function

June 27th 2008
 - ad.module
    o support adserve actions, allowing external modules to execute functions
      from adserve.inc, without bootstrapping Drupal or connecting to the db.
 - adserve.inc
    o rename adserve_invoke() function to adserve_invoke_file()
    o introduce adserve_invoke_action() function
    o simplify ad selection when not using a cache, using the standard
      adserve_select_ad function that's used by caches
    o remove considerable amount of no longer needed code
    o replace clunky _exit hook with adserve action
    o remove clunky _invoke_weight hook, to be replaced as adserve action
    o new actions: 'adserve_init_text', 'adserve_exit_text', 'adserve_select'

June 20th 2008
 - ad.module
    o bug #270808: set default value when calling variable_get()
    o bug #242738: XHTML-Strict compliance, use onclick handler instead of 
                   target (patch thanks to Daniel Kudwien, aka 'sun')

June 12th 2008
 - ad.module
    o bug #269808: be sure variable is an array before walking with foreach

May 31st 2008 (1.5)
 - ad_cache_memcache.info
    o plugin doesn't actually depend on Drupal memcache module
 - ad.module
    o remove ad_init, no longer include ad_views.inc (it has been moved to 
      an external project where it will hopefully receive more attention by
      those that depend on it)
 - documentation
    o minor edits keeping things in sync with latest codebase
 - ad_views.inc
    o deleted, moving views support into external project where it will
      hopefully find a new, ambitious maintainer.

May 11th 2008
 - ad.module
    o bug #255997: update online documention to reflect that ad views are
                   properly tracked regardless of the display method.

May 10th 2008
 - ad_cache_file.inc
    o bug #246257: avoid error if no ads are selected

April 21st 2008 (1.5-rc2)
 - ad_views.inc
    o bug #141539: fix current user filter

April 19th 2008
 - ad.install
    o bug #248670: add missing commas
 - ad_weight_percent.install
    o bug #248663: remove trailing ?>
 - ad_weight.info
    o bug #248663: add missing Id tag
 - ad_image.module
    o bug #248663: remove packaging info accidently included in info file
   
April 17th 2008
 - ad.module
    o  bug #248423: auto-fix when ad vocabulary information gets corrupted
                    (unfortunately we haven't tracked down how this happens)

April 17th 2008 (1.5-rc1)
 - ad.module
    o feature #221648: provide filtering on administrative ad overview page
 - ad_image.module
    o bug #242738: add missing alt tags
    o feature #142864: make destination URL optional
    o validate that an image is attached before inserting/updating image ad
 - ad_views.inc
    o bug #172807: fix default group views (patch by malaussene)
    o bug #141539: only display "my ads" link when appropriate
 - ad.install
    o bug #248016: add missing breaks that resulted in both mysql and 
      postgresql updates being run

April 15th 2008
 - ad.module
    o merge ad_clicks code that somehow didn't make it in the last merge
    o bug #246458: load cached versions of the node
    o bug #233073: allow other modules and themese to over ride page title
    o bug #183085: remove closing ?>
 - ad.install
    o bug #227967: fix install updates to work with PostgreSQL
 - ad_image.module
    o bug #183085: remove closing ?>
    o bug #237833: proprely record fid when first uploading image ad
 - ad_cache_file.module
 - ad_cache_memcache.module
 - ad_external.module
 - ad_notify.module
 - ad_report.module
 - ad_text.module
 - ad_weight_percent.module
    o bug #183085: remove closing ?>

April 3rd 2008
 - ad.install
    o introduce adgroup into ad_statistics and ad_clicks
 - ad.module
    o track ad group on redirect
    o track ad group in statistics, when applicable
    o validate aid, group and hostid on redirect
 - serve.php
    o track ad group
    o support passing in url where ads are displayed
 - ad_cache_memcache.module
    o sync ads not in any group along with ads in groups
    o track ad group in statistics
 - ad_cache_memcache.inc
    o track ad group in statistics
    o add additional debug

March 27th 2008
 - ad.module
    o Bug #239260, #222518 Remove query on nonexistent field that made it 
      impossible to publish an unpublished ad.
    o Bug #233538, revert 'manage advertisements' back to 'edit own 
      advertisements'

March 23rd 2008
 - ad.module
    o Introduce click [details] page
    o Allow url to be passed in on redirect

March 14th 2008
 - ad_weight_percent.module
    o remove various infinite loops

March 13th 2008
 - adserve.inc
    o no need to pass an adserve variable to exit (as exit as access to all
      adserve variables)

March 12th 2008
 - ad_cache_memcache.module
    o invoke ad_build_cache hook
 - ad_cache_memcache.inc
    o allow override from ad_build_cache hook
 - click_filter.module
 - click_filter.install
    o filter out clicks from search engine bots

March 11th 2008
 - ad_cache_memcache.module
    o wrap ad syncronization in a lock
 - ad_cache_memcache.inc
    o remove unecessary duplicate get from memcache for ad structure
    o repopulate ad information in memcache on error (throttled)

March 10th 2008
 - ad_cache_file.module
    o properly return ad configuration to not conflict with other cache types
 - ad_cache_file.inc
    o add additional debug output
 - adserve.inc
    o rename remaining instances of 'cache' to 'adcache' to avoid conflicts
 - ad_cache_memcache.module
 - ad_cache_memcache.inc
    o introduce new high-performance ad caching mechanism utilizing memcached

March 6th 2008
 - adserve.inc
    o rename adserve variable 'cache' to 'adcache' to not conflict with Drupal's
      core page cache functionality if hard coding values in settings.php
    o bug #228650: properly check if DRUPAL_ROOT is defined

February 5th 2008
 - ad_views.inc
    o bug #141539: fix Views "my ads" link (fix thanks to Wade Fitzpatrick)

January 30th 2008
  - ad_report.module
     o make statistics functions a little more generic, making it possible to
       display per-user reports in addition to per-ad reports.  Also provide
       hook allowing externally defined reports.

January 24th 2008
  - ad_cache_file.inc
     o introduce 'include_file_init' and 'include_func_init' for over-riding
       initilization for serving ads from the file cache
  - adserve.inc
     o when calling ad_exit hook, indicate whether or not there were errors

January 23rd 2008
 - ad.install
    o bug #213163, add missing comma during ad_clicks table creation
 - ad_image.module
    o bug #190938, use proper encoding to display special characters properly

January 17th 2008
 - click_filter.info
    o new module for filtering clicks
 - click_filter.install
    o parse existing clicks, updating status
 - click_filter.module
    o new module for filtering clicks, currently filters clicks by ad owners
      and duplicate clicks by same IP or UID
 - ad.module
    o support new click_filter module
 - ad.install
    o add new status column for ad clicks
 - ad_cache_file.inc
    o sync (make counting of actions generic, dropped from earlier merge)

January 16th 2008
 - ad.module
    o internally switch adserve variable name 'method' to 'ad_display' to match
      the variable name used in ad.module.
 - adserve.inc
    o perform partial drupal bootstrap to allow variable overloading
    o rename 'method' to 'ad_display' to ease overloading of variable
    o new logic for allowing adserve variable overrides from settings.php
    o allow adserve_bootstrap to be called multiple times at different levels
    o introduce 'ad_exit' hook
    o add cache support to adserve_increment
    o make counting of actions generic, not limited to 'view' and 'count'
 - imageserve.inc
    o perform partial drupal bootstrap to allow variable overloading
    o remove adserve_increment special logic
 - ad_cache_file.module
    o make counting of actions generic, not limited to 'view' and 'count'

January 14th 2008
 - ad.module
    o bug #209751: alt missing when displaying counter image (thanks to attiks)

January 13th 2008
 - ad_cache_file.module
    o cache and enable all hostids, not just those associated with active ads

January 11th 2008 (1.4.1)
 - ad.module
    o fix URL to properly count views when displaying ads with raw mode
 - imageserve.inc
    o replace adserve_increment_view() with adserve_increment()
 - ad_image.info
    o refer to module as "Image Ad"

January 11th 2008 (1.4)
 - ad.module
    o bug #165355, allow editing of ads with CCK
    o bug #208421, naming convention for id attribute doesn't allow commas
    o bug #162197, verify that cached advertisement vid is valid
    o bug #207677, be sure "show advertisements" permission is assigned to at 
      least one role
    o don't display ad status in ad overview
 - ad_text.module
    o bug #197357, allow full 255 characters for url field defined in schema
    o bug #202934, wrap "Links to" text in div for themability
 - ad.install
    o bug #193094, no need to specify UNIQUE for PRIMARY KEY
 - ad_text.install
    o bug #193094, no need to specify UNIQUE for PRIMARY KEY
 - ad_image.module
    o bug #202934, wrap "Links to" text in div for themability
    o bug #208180, verify that attachements are enabled for ad content type
    o bug #193934, don't lose image ad data if image isn't validated
    o bug #207677, if using private download method, be sure "view uploaded 
      files" permission is assigned to roles that should see ads
 - ad_html.module
    o don't display "Links to:", as html ads don't have internal links

January 9th 2008
 - ad.install
    o introduce "status" column into ad_host table

January 8th 2008
 - ad.module
    o add imageserve support for tracking traffic without ads
 - ad_cache_file.module
    o add support for tracking traffic without ads
 - ad_cache_file.inc
    o add support for tracking traffic without ads
 - imageserve.inc
    o add support for tracking traffic without ads
 - adserve.inc
    o add support for tracking traffic without ads
    o don't choke if DRUPAL_ROOT global isn't set

January 6th 2008
 - ad_remote.module
    o general cleanup

January 5th 2008
 - adserve.inc
    o remove superfluous quotes accidentally added in bugfix #206177
 - ad.module
    o bug #196431: wrap ad status in "access statistics" permission, and in
      "adstatus" div class

January 4th 2008
 - adserve.inc
    o bug #206177: properly escape text before displaying with JavaScript

December 4th 2007
 - adserve.inc
    o add optional DRUPAL_ROOT configuration option to support installations
      utilizing a symbolic link

October 22nd 2007
 - adserve.inc
    o uncomment out debug dump of advertisement
 - ad.module
    o introduce global variable 'ad_link_nofollow'
    o new helper functin 'ad_link_nofollow' for adding link when global enabled
      (Sponsored by Connie at WebsitesForTheArts.com)
 - ad_image.module
    o add ad_link_nofollow support
      (Sponsored by Connie at WebsitesForTheArts.com)
 - ad_text.module
    o add ad_link_nofollow support
      (Sponsored by Connie at WebsitesForTheArts.com)
 - ad_html.module
    o new simple html ad type with no click-through tracking
      (Sponsored by Connie at WebsitesForTheArts.com)

October 18th 2007
 - ad_external.module
    o new ad type for serving remotely hosted ads via an iframe
    o if ad_cache_file is enabled, cache remote page in file cache
 - adserve.php
    o renamed to serve.php
 - serve.php
    o add hooks so external modules can utilize serve.php for serving data
      without bootstrapping Drupal
 - adserve.inc
    o add new 'iframe' method, along with 'raw' and 'javascript'
    o add initial support for external weighting modules
    o make adserve_invoke_cache() generic, adserve_invoke()
 - ad.module
    o look for 'serve.php', not 'adserve.php'
    o add new IFrame display method
 - ad_cache_file.module
    o add new "ad_build_cache" hook, to be used by external ad modules
 - ad_cache_file.inc
    o build full path to cache files to allow calling from any path
 - ad_weight_percent.inc
    o initial implementation of percentage based weighting module
 - imageserve.inc
    o change call from adserve_invoke_cache() to adserve_invoke()

September 26th 2007
 - ad_install.module
    o bug #175687: set db prefix for Postgres installations
    o bug #175683: Postgres doesn't support 'AFTER' when altering table

September 7th 2007
 - ad_image.module
    o put more information about the image ad into the $node array
    o feature #170667: only perform url validation if enabled
 - ad_text.module
    o put more information about the text ad into the $node array
    o feature #170667: only perform url validation if enabled
 - ad.module
    o track the HTTP_USER_AGENT on ad clicks (to allow filtering clicks 
      generated by bots that report themselves as bots)
    o bug #166097: fix "only variables can be passed by reference" error
    o feature #170667: provide option to disable url validation
 - ad.install
    o add user_agent column to ad_clicks table for tracking user agents
    o bug #173850: call variable_del(), not variable_delete()
    o update uninstall to delete new 'ad_validate_url' variable

September 6th 2007
 - ad_weight_percent.inc
 - ad_weight_percent.info
 - ad_weight_percent.install
 - ad_weight_percent.module
    o implemented GUI and schema for weighting how often ads within each ad 
      group are displayed as a percentage of 100%.  actual logic to display
      ads per these settings is not yet implemented.

August 31st 2007
 - adserve.inc
    o add simple default logic for randomly selecting ads.
 - ad_cache_file.inc
    o remove random ad selection logic, now done in adserve.inc.

August 7th 2007
 - ad.module
    o improve usability of ad overview page (order by status, link to ad node)

August 3rd 2007 (1.3.2 Release)
 - ad.module
    o bug #164217: restore ability to set global click-through target
 - imageserve.inc
    o tell web browsers not to cache images used for counting ad views

July 30th 2007
 - adserve.inc
    o bug #163058: simplify query filter, join not necessary
 - ad_report.module
    o add views for hourly, weekly and monthly, in addition to daily

July 29th 2007 (1.3.1 Release)
 - ad_cache_file.inc
    o fixed a typo that prevented ads from being displayed with the file cache

July 29th 2007 (1.3 Release)
 - ad_module
    o Allow displaying of image counters without CSS (useful if displaying on
      RSS pages)

July 25th 2007
 - ad_cache_file.inc
    o move logic for obtaining a lock on a cache file into a function for reuse
    o track file descriptor as static in function for easily passing around
 - adserve.inc
    o move cache invocation into function for reuse
    o make it possible to unset an adserve_variable()
 - imageserve.inc
    o functions to display blank images for counting ad views

July 24th 2007
 - adserve.php
    o remove all logic, only used to display ads
    o add path for displaying counter images
 - adserve.inc
    o initial support for calling adserve() multiple times
    o initial support for displaying ads without using javascript
    o move code into functions to share with imageserve()
    o use images to count views if displaying raw ads
 - ad_cache_file.inc
    o initial support for calling adserve() multiple times
 - ad.module
    o initial support for displaying ads without using javascript
    o make ad display method configurable
    o new function to display an image for counting ad views
 - ad.install
    o remove ad_display variable on uninstall

July 18th 2007 (1.2 Release)
 - adserve.php
    o bug #152610: call addslashes() to escape quotes
    o simplify javascript output path
 - ad_cache_file.inc
    o bug #152610: escape ' in JavaScript
 - ad.module
    o bug #153901: fix translation of ad permissions
 - ad_text.module
    o bug #153901: fix translation of ad permissions
 - ad_image.module
    o bug #153901: fix translation of ad permissions

July 16th 2007
 - ad.info
    o bug #148533: ad module depends on taxonomy module
 - ad_cache_file.inc
    o bug #159239: be sure variables exist before we test their contents
    o bug #159237: be sure variables exist before we test their contents
 - ad.module
    o don't display error unnecessarily first time ad() is called
    o cleanup adserve.php-doesn't-exist-error to properly display link
 - ad_image.module
    o bug #153319: fix issues with enabling Image ads when no ad groups have 
      been created - patch thanks to Grugnog2, problem isolated by yodersj

June 8th 2007
 - ad.module
    o bug #150069: set unique id when displaying ads
 - ad_image.module
    o bug #150141: properly update ad_image_format table
 - ad_embed.module
    o bug #150142: don't display auto-embedded ads in teasers
 - ad.install
    o feature #150236: add _uninstall hook
 - ad_image.install
    o feature #150236: add _uninstall hook
 - ad_notify.install
    o feature #150236: add _uninstall hook
 - ad_text.install
    o feature #150236: add _uninstall hook

-------------
June 7th 2007
 1.1 Release
-------------

June 6th 2007 (-RC3)
 - ad_cache_file.module
    o bug #147575: load user before calling user_access().
 - ad.install
    o bug #148623: update block deltas during upgrade from 1.0 -> 1.1.
    o bug #149770: don't display ads twice when 'always display ads' is checked
 - ad_embed.module
    o bug #149770: don't display ads twice when 'always display ads' is checked
 - ad_image.module
    o bug #146147: don't allow image ads to be enabled if they have a 0 size.

June 5th 2007
 - ad.module
    o bug #148756: the ad group description is no longer optional.

June 1st 2007
 - ad.module
    o bug #148160: properly set tid so groups can be updated

May 31st 2007
 - ad.install
    o bug #147733: properly convert ads to new groups during upgrade

May 28th 2007
 - ad.module
    o hard code tid 0 (ie, ad is assigned to no groups) as "default" group.
    o restore global administrative statistics
    o clean up per-ad statistics.
 - adserve.php
    o fix query to properly display ads without any taxonomy term.

May 27th 2007 (1.1-rc1)
 - adserve.php
    o bug: add missing space to debug text.

May 25th 2007
 - ad_notify.module
    o bug #142648: remove unused settings page
    o use AD_NOTIFY_DISABLED and AD_NOTIFY_ENABLED instead of 1 and 0
 - adserve.php
    o bug #146361: set headers to prevent javascript from being cached by
      browser.  Thanks to Joep Hendrix.
 - ad.module
    o bug #146785: be sure $groups is an array() to prevent errors when no
      groups are defined.
    o bug #136004: add support for PostgreSQL
 - ad.install
    o bug #136004: add support for PostgreSQL
 - ad_image.install
    o bug #136004: add support for PostgreSQL
 - ad_text.install
    o bug #136004: add support for PostgreSQL
 - ad_notify.install
    o bug #136004: add support for PostgreSQL

May 24th 2007
 - ad.module
    o enhance ad_groups_list() to return either a specified group or all groups,
      also enhanced to return just the group name or the full group object
 - ad_image.module
    o bug #143251: do not query nonexistent ad_groups table
    o fix logic to use taxonomy terms tid instead of nonexistent group gid

May 23rd 2007
 - adserve.php
    o bug #144436: replace hard coded <br /> between ads with <div>
    o add support for displaying ads without any taxonomy term
 - adserve.php
    o bug #144436: replace hard coded <br /> between ads with <div>

May 11th 2007
 - ad.install
    o bug #143207: separate {} and $variable
 - ad_image.install
    o bug #143207: separate {} and $variable
 - ad.module
    o bug #142874: fix typos

May 9th 2007
 - ad.modlue
   o bug #142562: add missing calls to t()
   o bug #142583: in adserve url convert "&" to "&amp;" so it validates
 - ad_cache_file.module
   o bug #142583: in adserve url convert "&" to "&amp;" so it validates

May 8th 2007
 - adserve.php
    o removed groups (replaced by taxonomy tids)
 - ad_cache_file.module
    o remove groups cache
    o include in cache ads that aren't assigned to a taxonomy
 - ad_cache_file.inc
    o remove references to group cache
    o check for ads that are not assigned to a taxonomy
 - ad.module
    o replace custom groups code with taxonomy functions
 - ad_embed.module
    o use tids instead of group name
 - ad_notify.module
    o remove references to group
 - ad_remote.module
    o use taxonomy tids rather than group name when building remote snippet
 - ad.install
    o convert ad_group table entries to taxonomy
    o remove ad_group table
    o remove gid calumn from ads table
    o bug #129749: default to utf8 character set for all table types
    o bug #142183: TEXT columns can't set DEFAULT
 - ad_views.inc
    o remove most groups logic
    o update group blocks to use taxonomy
 - ad_text.install
    o bug #129749: default to utf8 character set for all table types
    o bug #142183: TEXT columns can't set DEFAULT
 - ad_image.install
    o bug #129749: default to utf8 character set for all table types
 - ad_notify.install
    o bug #129749: default to utf8 character set for all table types
    o bug #142183: TEXT columns can't set DEFAULT

May 7th 2007
 - adserve.php
    o support displaying ads based on taxonomy tids
 - ad_cache_file.module
    o build cache for taxonomy tids
 - ad_cache_file.inc
    o support displaying ads based on taxonomy tids
 - ad.module
    o support setting term list from ad() function

May 6th 2007
 - adserve.php
    o make 'error' variable accessible to cache plugins
 - ad_cache_file.module
    o added support for hostid
    o redesigned cache struct to support additional lookups
    o make cache lifetime configurable
 - ad_cache_file.inc
    o added support for hostid
    o utilize new cache struct
    o improved debug output
    o make cache lifetime configurable

May 5th 2007
 - ad.module
    o make hostid accessible
    o set absolute path in the redirect url
 - ad.install
    o convert redirect urls to absolute paths
 - ad_remote.module
    o simple proof-of-concept for hosting ads on remote websites
 - adserve.php
    o add hostid to redirect URL
    o bug #141630: don't print visible message when no ads exist
 - ad_image.module
    o use @HOSTID___ token so hostid can be set in cached content
 - ad_text.module
    o use @HOSTID___ token so hostid can be set in cached content

May 4th 2007
 - ad_text.module
    o stop stripping the letter 'v' from all text ads

------------
May 4th 2007
1.0 Release
------------

May 3rd 2007 (beta9)
 - ad.module
    o remove all file cache logic
    o implement hooks for externally defining ad caches
    o cleanup ad() to only display url variables that are actually used
    o implement hook for upcoming event notifications (activate and expire)
 - adserve.php
    o remove all file cache logic
    o implement hooks for externally defining ad caches
 - ad_cache_file.module
    o implement file cache as plug-in module
 - ad_cache_file.inc
    o implement file cache as plug-in module
 - ad_cache_file.info
    o implement file cache as plug-in module
 - ad_notify.module
    o implement hook to support upcoming event notifications
 - ad_image.module
    o bug #140804: support private download method

May 2nd 2007
 - ad.module
    o bug #134889: don't display statistics and click history in teaser
    o when no ads are displayed due to permissions display a helpful html 
      comment noting the need to grant 'show advertisements' permissions.
 - ad_text.module
    o bug #132525: validate destination URL
 - ad_image.module
    o bug #132525: validate destination URL

May 1st 2007
 - ad.module
    o translate adtype on display
 - ad_image.module
    o bug #139068: do not translate $adtype
    o encode with UTF-8 charset
 - ad_text.module
    o bug #139068: do not translate $adtype
    o bug #129749: encode with UTF-8 charset
 - ad_embed.module
    o bug #139167: don't try to replace tags with ads if there's no text
 - adserve.php
    o don't test $nids if isn't set (for E_ALL compat)

May 1st 2007 (beta8)
 - ad.module
    o convert '%' to '@' to prevent <em> from showing up in emails
    o add default text for notification emails
    o remove duplicate code
 - ad_notify.install
    o add aid column to ad_notify table
 - ad_notify.module
    o add default text for notification emails
    o display help text for notification email variables
    o perform proper substitions on variables in notification mails
    o prevent editing and deletion of locked notifications by non-privileged 
      users
    o support notification deletion
    o support editing of notification email text
    o use drupal_mail function instead of nonexistant drupal_mail function
    o convert '%' to '@' to prevent <em> from showing up in emails

April 30th 2007
 - adserve.php
    o bug #140173: add missing ";" at end of javascript.

April 29th 2007
 - ad_image.module
    o bug #131028: reference $file structure as an object

April 28th 2007
 - ad_image.module
    o add ability to set mouseover (tooltip) text when hovering a mouse over
      the ad image.
 - ad_image.install
    o schema change to add field for mousever text.

April 27th 2007
 - ad_notify.module
    o allow editing of notifications and the message text
    o preliminary support for deleting notifications

April 26th 2007
 - adserve.php
    o remove debug output preventing ads from displaying

April 24th 2007
 - adserve.php
    o bug #131035: move path variables from global to local statics, move
      adserve logic into function out of global space.
    o include extra debug information showing version of all ad files

April 21st 2007
 - ad_image.info
    o add dependency on upload module
 - ad_notify.module
    o don't show 'my notifications' tab unless viewing an ad you own

April 17th 2007
 - adserve.php
     o bug #131035: move adserve variables from global into local statics
       (the Drupal bootstrap was wiping the globals depending on the PHP
        configuration.)

April 13th 2007
 - ad.module
    o bug #135144: don't translate ad status when storing in database, only
      when displaying to screen
 - adserve.php
    o be sure variables are set before accessing them to allow running PHP in
      E_ALL mode

April 4th 2007
 - ad_image.module
    o bug #127944: build path to image file using file_create_url()
    o bug #131022: put all settings under settings tab
 - ad.module
    o bug #131023: don't wrap block title in <em>
 - ad.install
    o bug #130968: add missing prefix
 - ad_text.install
    o bug #129469: add missing prefix

February 27th 2007
 - ad.module
    o reorder logic so we only return once
 - ad_notify.install
    o rename table from ad_notifications to ad_notify
    o rename "time" to "delay" to make clode more clear
    o introduce "queued" row for tracking notification delays
    o add additional indexes for better performance
 - ad_notify.module
    o introduce _cron hook for sending and tracking scheduled notifications
    o introduce send_mail function for sending email notifications
    o introduce "mail_text" hook for setting email text
    o validate notifications before saving them
    o rename references to old ad_notifications table to new ad_notify table

February 25th 2007
 - ad.install
    o fix bug #122289: restore missing parenthesis.

February 22nd 2007
 - ad.module
    o re-arrange ad notifications, add additional notification events
 - ad_notify.install
    o add field for one time use notifications (auto-expiring)
    o add field for counting
    o add field for disabling notifications
 - ad_notify.module
    o replace 'manage all notifications' with already existing permission 
      'manage owners'
    o add 'my notifications' tab for users to manage their own notifications
    o add GUI option for one-time notifications (auto-expiring)
    o add GUI option for locking notifications (ie, those created by admins that
      users can't disable).

February 21st 2007
 - ad.module
    o implement initial ad notification hooks
 - ad_notify.install
    o implement database schema for managing notifications
 - ad_notify.module
    o implement GUI for creating ad email notifications
    o implement api for registering notification events
      (NOTE:  notifications themselves are not yet implemented, I'm just
       checking in a work-in-progress.  If you choose to test this now, you'll
       likely need to manually dump your ad_notifications table later and 
       re-create it once the ad_notify module is actually released.)

February 19th 2007 (beta7)
 - ad_image.module
    o make it possible for someone with 'create advertisement' permission to
      be able to upload an image for their advertisement.
 - ad_text.module
    o make it possible for someone with 'create advertisement' permission to
      be able to enter text for their advertisement.

February 17th 2007 (beta6)
 - ad.module
    o display 'edit' tab for all ad owners, not just node owner
    o automatically give user with UID of 1 all ad permissions
    o log in watchdog if ad redirect fails
    o be sure all fieldsets and contents are collapsible on the edit form
    o don't require ad description as it's not used anywhere important
    o call theme functions properly
    o remove ad notifications logic, add hooks to allow notifications and other
      per-ad/per-owner functionality to be implemented in plug-in modules
 - ad.install
    o remove ad_notifications table and ad table notifcation columns
 - ad_image.module
    o new 'manage active ad' permission, don't allow ad owner to change the 
      active ad unless they have been granted this permission
    o fix image fieldset contents to properly collapse
 - ad_text.module
    o new 'manage ad text' permission, don't allow ad owner to change the
      ad text unless they have been granted this permission
 - ad_report.module
    o make it possible for users other than that with a UID of 1 to see the
      report images

February 5th 2007 (beta5)
 - ad_view.inc
    o add filter for owned ads so "my ads" default view can use ad_owners table
    o order pages by last updated timestamp
 - ad.module
    o feature #114638: configuration option for specifying the link target,
      i.e. open in same window when clicking ad, open in new window, etc.
 - ad_image.module
    o feature #114638: open link in configured link target
 - ad_text.module
    o feature #114638: open link in configured link target
 - ad_embed.module
    o pass proper user array to user_access()

February 4th 2007
 - ad.module
    o be sure <div> wrapping ads has proper group, specifying nids if not using
      a group.
    o modify ad_groups_list to support listing just group names.
 - ad_embed.module
    o implement automatically embedded ads, allowing per-content-type 
      configuration.  Specify after which paragraph to insert one or more 
      randomly selected ads from the chosen ad group.
    o introduce configuration options to disable scanning for manual tags (to  
      reduce overhead if this functionality is not being used).

February 3rd 2007
 - ad_embed.module
    o introduce 'embed ads in content' permission - only filter nodes owned by
      users with this permission. (which could have funky implications that
      we'll ignore for now).
    o add help text to module.
    o cleanup to make it simple to add additional tag styles if desired.
    o when replacing tags with ads in content adjust scan position for 
      differences of length between what is being replaced and what is 
      replacing.

February 2nd 2007
 - ad_embed.module
    o initial support for embedding ads within content. (ie, replaces [[ad]] or
      <!--ad--> with javascript for ad, supports parameters.)

January 31st 2007
 - ad.module
    o issue #114535: call _ad_check_install() if failing to display ads, 
      properly set "adserve" variable.
    o issue #114651: be sure cache file has contents before trying to loop
      through it.

January 29th 2007
 - ad_image.module
    o detect clean urls and display ad images appropriately
 - adserve.php
    o add additional debug to filecache when displaying ads from a list of nids
    o use default ad quantity of 1 if no quantity is specified

January 28th 2007 (beta4)
 - ad.module
    o support for displaying ads based on taxonomy and role with views (and
      much more)
    o if views module enabled, offer pages to ad owners listing all their ads,
      optionally filtered by adstatus.
 - ad_views.inc
    o add quantity field for specifying how many ads to display in view
    o add filter for ad type
    o improve filters to allow selection of multiple types, status or groups
    o default block views: all active ads, all active ads of each type, and all
      active ads of each group.
    o default page views: all active ads, all owner's ads, and views for each 
      all owner's ads of a given adstatus.
 - adserve.php
    o fix to support multiple ads when displaying by nid

January 27th 2007
 - ad_views.inc
    o initial field definitions for base ad module.
    o filter by: group, adstatus
    o add advertisement view type.
 - ad_image_views.inc
    o display image ad, incrementing view counter
 - ad_text_views.inc
    o display text ad, incrementing view counter
 - ad.module
    o include ad_views.inc if the view.module is enabled.
    o don't search for adserve.php, require it to be in ad folder with ad module
    o update ad() to allow specifying list of nids to display ads from
 - ad_image.module
    o include ad_views.inc if the view.module is enabled.
 - ad_text.module
    o include ad_views.inc if the view.module is enabled.
 - adserve.php
    o support displaying ads from list of nids instead of from group.

January 26th 2007
 - ad_image.module
    o use file_create_path() to generate proper path to image.
 - ad.module
    o be smarter when looking for adserve.php, derive path from ad.module path
      in system table.
    o if enabled, update file cache when ads are updated.
    o cleanup when changing number of ad files, or disabling file cache.
 - adserve.php
    o noncached display requires full bootstrap.

January 26th 2007 (beta3)
 - ad.install
    o updated_1: introduce new fields in {ads} table for tracking when ads were
      activated and expired, and for limiting the maximum number of views or
      clicks.
 - ad.module
    o feature #109688: support for scheduling based on views or clicks.
    o track when ad was last activated or expired.
    o improve status messages when viewing advertisement.
 - adserver.php
    o feature #109688: support for scheduling based on views or clicks

January 24th 2007
 - ad.module
    o add support for automatically enabling and disabling advertisements at
      specified times and dates.

January 23rd 2007
 - ad.module
    o add support for displaying multiple unqiue ads.  The automatically
      created ad blocks include a configuration option supporting this new 
      feature.
    o rename "database cache" to "none", as it's not a cache at all.  This
      paves the way for later adding support for an actual database level
      ad cache.
 - adserve.php
    o add support for displaying multiple unique ads.
 - ad_image.module
    o fix paths to work when hosting Drupal from a subdirectory.

January 20th 2007
 - ad_image.php
    o bugfix #111130: Must pass $node when calling adapi (for pre-PHP5 support)

January 15th 2007
 - ad.module 
    o add support for filter types with ads
    o manually invoke ad_ modules to support pre-PHP5 installations
    o move 'my ads' to main menu, not under user name
    o only display 'ad owners' tab for ad content
 - adserve.php
    o allow periods (.) in ad path
 - ad_image.php
    o update adapi to support pre-PHP5 installations
 - ad_text.php
    o update adapi to support pre-PHP5 installations

January 3rd 2007
 - adserve.php
    o strip all but allowed characters input from $_GET to prevent XSS attacks 

January 1st 2007 (beta2)
 - ad.module
    o add support for externally defined ad caching methods
    o provide new administrative screen with statistics overview
    o cleanup permissions:
       - if have 'administer advertisements' automatically have all ad perms
       - introduce new 'manage owners' permission
       - remove redundant permission tests
 - adserve.php
    o add support for externally defined ad caching methods

December 31'st 2006 (beta1)
 - ad.module
    o implement file cache
    o pass in path to files directory, abbreviate all url variables
    o properly display ad status even with limited permissions
    o give primary ad owner 'modify status' permission by default
 - adserve.php
    o implement file cache

December 30'th 2006
 - ad.module
    o fix logic that locates adserve.php, cleanup associated error messages
    o replace 'edit own advertisements' with 'manage advertisements'
    o add page for displaying all advertisements owned by specific user
    o add interface for removing ad owners from an ad
    o don't allow user to be added as ad owner unless is has 'manage
      advertisements' or 'administer advertisements' premissision
    o by default only add 'access statistics' and 'access click history' to new
      ad owners.
    o when using filecache, default to using 3 files for better performance
    o pass number of files to use for filecache to adserve.php
 - adserve.php
    o retrieve number of files to use for filecache from $_GET variable
 - ad_image.module
    o display actual ad in node teaser
 - ad_text.module
    o display actual ad in node teaser

December 30'th 2006 (0.6)
 - ad.module
    o implement granular advertisement permission system with the following
      default permissions:  access statistics, access click history, modify
                            group, modify status
    o add default ad owner and permissions when creating new ads

December 28'th 2006
 - ad.module
    o track hostid when clicking an ad
    o implement form for adding multiple owners to an ad
    o implement form for granting per-user permissions to each ad
 - ad_image.module
    o include hostid when displaying ad so clicks can be tracked to host
 - ad_text.module
    o include hostid when displaying ad so clicks can be tracked to host

December 27'th 2006 (0.5)
 - ad.module
    o search for adserve.php from top level directory to support multi-site
      installations (module may not live in /modules)
    o no longer try specifying how many dirs above adserve.php index.php is
 - adserve.php
    o improve debugging output
    o search for bootstrap.inc
 - ad_image.module
    o specify absolute path to ad image so can display from non-front pages
 - ad_text.module
    o define 'redirect' adapi hook so clicking text ads takes you to proper url

December 25'th 2006
 - ad.install
    o define ad_permissions table
    o define ad_owners table
    o define ad_notifications table
    o define ad_hosts table
 - ad.module
    o fix ad statistics to display even if none for current hour
    o implement statistics for current week
    o register unique hostid for each add owner for displaying ads remotely
    o enforce matching ad status and node status
    o only display clicks and statistics for ads, not all ad types
    o stub in support for ad owners, ad owner permissions and add owner 
      notifications
    o display group name instead of just group id when listing ads
    o add regex in search for adserve.php to not match ie .swp files
 - adserve.php
    o implement cache types in switch statement
    o track hostid when viewing ads for displaying on remote sites
 - ad_text.module
    o use htmlentities() to encode ad text

December 11'th 2006 (0.3.1)
 - ad.install
    o ad missing comma
    o remove isdefault column from ad_groups table
 - ad.module
    o always display all_time statistics for ads, even if 0
    o for simplicity, hard code 'default' group to be gid 1
    o do not allow editing or deleting of 'default' group
    o auto-select ad type if only one type available
 - ad_image.module
    o perform check_install when displaying node form

December 10'th 2006 (0.3.0)
 - ad.module
    o support submenu under module settings
    o require ad type be selected before show node form
    o only display image upload error after preview or submit
 - ad_image.module
    o when displaying ad, wrap in appropriate <div>'s.
 - ad_text.module
    o implement function to display text ads
    o simplify ads to be just header and body
    o single global settings for min and max header and body lengths
    o implement adapi for text ads
    o display form for creating and editing text ads
 - ad_text.install
    o new table for storing text ads.

December 9'th 2006 (0.2.4)
 - ad.module
    o fix ad creation to work when using multiple ad_type modules
    o only display click history when there is one
 - ad_image.module
    o display images during preview
    o set error if no image is uploaded
 - ad_text.module
    o save ad_text group settings
    o begin to stub in adapi
    o stub in node_form

November 30'th 2006 (0.2.3)
 - adserve.php
    o move redundant javascript logic from ad_type modules into adserve.php
 - ad_text.install
    o clean up ad_text schema
 - ad_text.module
    o initial support for ad group configuration
 - ad_image.install
    o remove extra id from ad_image_format table
 - ad_image.module
    o remove javascript logic

November 29'th 2006 (0.2.2)
 - ad.module
    o auto-generate advertisemnt blocks for each ad group
    o fix block management after menu restructuring
 - ad_image.module
    o merge in version 0.2.1 that was missed in previous tarball

November 29'th 2006 (0.2.1)
 - ad.module
 - ad_image.module
    o Implemented basic functionality

April 17, 2006
 - ad.module
    o Remove calls to tablesort_pager(), removed during Drupal 4.7 development

File

documentation/CHANGELOG.txt
View source
  1. December 18th, 2008
  2. - ad.module
  3. o generate click history in a function
  4. o remove administrative statistics page (replaced by configurable reports)
  5. - ad_report.module
  6. o display click history along with other report data
  7. o provide administrative reports, with downloadable CSV's
  8. o put year first in path for reports, to avoid issue with # of digits
  9. o default all reports to current month
  10. - ad_report.install
  11. o flush cache_menu to register new administrative paths
  12. December 17th, 2008
  13. - ad.install
  14. o introduce 'extra' field in 'ad_statistics' and 'ad_clicks' tables
  15. - ad.module
  16. o store 'extra' data when advertisements are clicked
  17. - adcache.inc
  18. o support 'hook_increment_extra' allowing add-ons to add granularity
  19. o modify click URL to include 'extra' field
  20. o store 'extra' field when incrementing counters
  21. - ad_cache_file.inc
  22. o store 'extra' field when incrementing counters
  23. - ad_cache_file.module
  24. o support 'hook_increment_extra' allowing add-ons to add granularity
  25. o store 'extra' field when incrementing counters
  26. - ad_channel.module
  27. o declare _increment_extra hook
  28. - ad_channel.inc
  29. o track which channels displayed advertisements were selected from
  30. o implement _increment_extra hook to track per-channel granularity
  31. December 16th, 2008
  32. - ad_report.module
  33. o prevent division by zero when generating reports
  34. December 12th, 2008
  35. - ad_report.module
  36. o feature #333040: make report range configurable (optionally enable the
  37. jstools jscalendar module for popup calendar selection)
  38. o feature #333040: provide per-group table breakdown of ad statistics
  39. December 11th, 2008
  40. - ad.module
  41. o provide new granular status permissions with logical workflow:
  42. set status as pending, set status as denied,
  43. set status from pending to approved, set status from pending to denied,
  44. set status from approved to active, set status from approved to offline,
  45. set status from active to offline, set status from active to expired,
  46. set status from offline to active, set status from offline to expired
  47. o remove 'unpublished' adstatus, an uppublished node is now an 'expired' ad
  48. o flush the cache when admin modifies ad status in bulk operation
  49. o when editing ad, only display ad status options have perms to control
  50. o feature #167042: provide access to statistics and clicks by default if
  51. the ad_permission module is not enabled
  52. - ad_image.module
  53. o rename 'manage active ad' to 'manage active image'
  54. o grant permission to new ad owners by default
  55. - ad_text.module
  56. o grant 'manage ad text' permission to new ad owners by default
  57. - ad_html.module
  58. o grant 'manage ad html' permission to new ad owners by default
  59. - ad_notify.module
  60. o grant 'manage own notifications' permission to new ad owners by default
  61. o grant 'edit notification email' permission to new ad owners by default
  62. - ad_permission.module
  63. o allow control of per-ad type default permissions
  64. - ad_permission.install
  65. o use CREATE TABLE IF NOT EXISTS correctly (was resulting in an error)
  66. o update old permission names to new permission names ('manage status'
  67. gets changed to the default status permissions for that ad type.)
  68. December 10th, 2008
  69. - ad_remote.module
  70. o add javascript for recording remote url on which remote ads are served
  71. - ad.module
  72. o use single quotes when displaying javascript, so we can display it within
  73. other javascript (for ad_remote)
  74. o provide option to display ad url without any
    wrappers
  75. o provide mechanism for flushing cache
  76. o automatically flush cache when ads are updated
  77. - adserve.inc
  78. o make best effort attempt at setting a proper remote url when serving
  79. ads with the ad_remote module
  80. - ad_channel.module
  81. o provide configuration option for how to treat ads not in a channel
  82. o flush cache when channel information changes
  83. - ad_channel.inc
  84. o respect configuration option for ads not in a channel
  85. - ad_cache_file.module
  86. o ad module now auto-flushes cache when ad is updated
  87. - ad_weight_probability.module
  88. o flush cache when weight changes
  89. December 9th, 2008
  90. - ad.module
  91. o replace call to old ad_owners_add() with new ad_permission_owners_add()
  92. - ad_permission.install
  93. o only create tables if not already existing (on upgrades, these tables
  94. were already created by the core ad module)
  95. - ad_remote.info
  96. o ad_remote now dependent on new ad_permission module
  97. - ad_remote.module
  98. o replace call to ad_host_id_create() with new ad_permission_create_hostid()
  99. December 8th, 2008
  100. - ad_permission.install
  101. o fix namespace collision
  102. - ad_permission.module
  103. o for consistency, don't change title as updating permissisons
  104. - adserve.php
  105. o define debug error handler
  106. o when debugging display all warnings except for misleading header and
  107. session warnings caused by debugging
  108. - ad_cache_file.inc
  109. o fix strict PHP warnings
  110. - adcache.inc
  111. o fix strict PHP warnings
  112. - ad_channel.inc
  113. o fix strict PHP warnings
  114. December 7th, 2008
  115. - ad.install
  116. o move permissions schema into ad_permission module
  117. - ad.module
  118. o move permissions logic into ad_permission module
  119. - ad_html.module
  120. o replace call to ad_adaccess() with call to ad_permission()
  121. - ad_image.module
  122. o replace call to ad_adaccess() with call to ad_permission()
  123. - ad_text.module
  124. o replace call to ad_adaccess() with call to ad_permission()
  125. - ad_permission.module
  126. o provide granular permissions for advertisements
  127. December 6th, 2008
  128. - adcache.inc
  129. o introduce hook_weight
  130. - ad_cache_file.module
  131. o introduce hook_weight
  132. - ad_channel.inc
  133. o allow the display of more than one premiere advertisement
  134. - ad_channel.module
  135. o support 'configure ad premiere status' permission
  136. Feature #139928:
  137. - ad_weight_probability.module
  138. o support weighting the probability that a given ad will be displayed
  139. December 5th, 2008
  140. - serve.php
  141. o include new adcache.inc file
  142. - adserve.inc
  143. o divide ad serving functions into hooks
  144. o move display functionality into adcache.inc to standardize caching
  145. o rework hook functionality
  146. o fix debug output to include adserve.inc and adcache.inc
  147. - adcache.inc
  148. o standardize caching and debugging code
  149. - ad_cache_file.inc
  150. o simplify by utilizing functions provided in adcache.inc
  151. o properly track views and clicks with group-level granularity
  152. - ad_cache_file.module
  153. o properly track views and clicks with group-level granularity
  154. - ad_channel.inc
  155. o utilize functions provided by adcache.inc
  156. o add support for premiere advertisements
  157. - ad_channel.module
  158. o cleanup wording and fieldsets
  159. o fix group validation when no groups are selected
  160. o add support for premiere advertisements
  161. - ad_channel.install
  162. o add support for premiere advertisements
  163. November 28th, 2008
  164. Feature #337505:
  165. - ad.module
  166. o track URL where serving advertisements
  167. - adserve.inc
  168. o introduce adserve_filter hook
  169. - ad_cache_file.inc
  170. o introduce adserve_filter hook
  171. o convert include_hook_init, include_hook_select to hook_init, hook_select
  172. - ad_cache_file.module
  173. o support multiple hook_init, hook_filter, and hook_select hooks
  174. - ad_channel.module
  175. o add cache support
  176. - ad_channel.inc
  177. o implement cache support
  178. November 27th, 2008
  179. Feature #337505:
  180. - ad_channel.module
  181. o implement ability to assign ads to channels
  182. November 21st, 2008
  183. Feature #337505:
  184. - ad_channel.module
  185. o implement creation, editing and deletion of channels
  186. o implement creation, editing and deletion of containers
  187. o implement channel overview page
  188. November 20th, 2008
  189. Feature #337505:
  190. - ad_channel.module
  191. o draft administrative pages for ad channels.
  192. o administrative interface for creating channels
  193. o administrative interface for creating channel containers
  194. - ad_channel.install
  195. o define ad_channel schema
  196. November 19th, 2008
  197. - ad.module
  198. o bug #329475: remove translations on internal status names
  199. - ad_text.module
  200. o bug #335466: fix unclosed div
  201. - ad.install
  202. o bug #330173: fix infinite loop when uninstalling the ad module
  203. - ad_notify.module
  204. o bug #323529: internal function conflicts with notification module
  205. October 9th 2008 (1.6)
  206. - ad_cache_file.inc
  207. o bug #319308: test that variable is set before trying to check value
  208. October 1st 2008
  209. - ad.install
  210. o bug #316216: remove trailing comma, which was breaking PostgreSQL
  211. installation
  212. September 30th 2008
  213. - o bug #315336: properly increment view when not using cache
  214. August 11th 2008
  215. - adserve.inc
  216. o bug #220817: support installations using symbolic links
  217. o feature #177885: optionally apply filters when displaying ads
  218. - ad.module
  219. o feature #177885: allow configurable filtering of ads
  220. - ad_cache_file.module
  221. o feature #177885: optionally apply filters when displaying ads
  222. - ad_cache_memcache.module
  223. o feature #177885: optionally apply filters when displaying ads
  224. - ad_external.module
  225. o feature #177885: optionally apply filters when displaying ads
  226. - ad_html.module
  227. o feature #177885: optionally apply filters when displaying ads
  228. o remove unnecessary database query.
  229. - ad_image.module
  230. o feature #177885: optionally apply filters when displaying ads
  231. o remove unnecessary database query.
  232. - ad_text.module
  233. o feature #177885: optionally apply filters when displaying ads
  234. o remove unnecessary database query.
  235. August 10th 2008
  236. - ad.module
  237. o feature #250289: add jQuery method for displaying advertisements
  238. o feature #233568: add support for per-ad-type default permissions
  239. - ad_cache_memcache.module
  240. o bug #271912: gracefully report when memcache is not installed
  241. - adserve.inc
  242. o bug #271477: id can't start with a number
  243. o feature #250289: support jQuery method to display advertisements
  244. - ad.install
  245. o feature #233568: flush menu cache to support per-ad-type default perms
  246. - ad_image.module
  247. o feature #233568: new settings page format for per-ad-type permissions
  248. - ad_text.module
  249. o feature #233568: new settings page format for per-ad-type permissions
  250. August 9th 2008
  251. - adserve.inc
  252. o bug #288489: add missing argument 2 for variable_get()
  253. o feature #274297: allow modules to define their own ad display variables
  254. July 24th 2008
  255. - ad_cache_memcache.inc
  256. o implement adserve_exit_text hook
  257. July 11th 2008
  258. - adserve.inc
  259. o allow module using adserve_select to report when there are no more ads
  260. - ad_cache_memcache.module
  261. o asynchronously process changed nodes during cron runs
  262. o now support multiple hooks, so rename ad-cache-init to ad-cache-hook
  263. - ad_cache_memcache.inc
  264. o simplify code by using _debug_echo() when possible
  265. o preface debug calls with 'Memcache:' to make tracing more clear
  266. o replace ad_cache_memcache_init() with generic ad_cache_memcache_hook()
  267. o implement adserve_select hook
  268. July 10th 2008
  269. - adserve.inc
  270. o support multiple arguments when invoking function in file
  271. o simplify code by using _debug_echo() when possible
  272. o support caches with adserve hooks
  273. - ad_cache_file.inc
  274. o simplify code by using _debug_echo() when possible
  275. o preface debug calls with 'File cache:' to make tracing more clear
  276. o make cache data re-usable without having to reload it
  277. o introduce adserve_select hook
  278. o set sane file cache defaults
  279. July 9th 2008
  280. - adserve.inc
  281. o adserve hooks: if include file defined and necessary, include file
  282. o adserve hooks: if function defined and existing, call function
  283. June 27th 2008
  284. - ad.module
  285. o support adserve actions, allowing external modules to execute functions
  286. from adserve.inc, without bootstrapping Drupal or connecting to the db.
  287. - adserve.inc
  288. o rename adserve_invoke() function to adserve_invoke_file()
  289. o introduce adserve_invoke_action() function
  290. o simplify ad selection when not using a cache, using the standard
  291. adserve_select_ad function that's used by caches
  292. o remove considerable amount of no longer needed code
  293. o replace clunky _exit hook with adserve action
  294. o remove clunky _invoke_weight hook, to be replaced as adserve action
  295. o new actions: 'adserve_init_text', 'adserve_exit_text', 'adserve_select'
  296. June 20th 2008
  297. - ad.module
  298. o bug #270808: set default value when calling variable_get()
  299. o bug #242738: XHTML-Strict compliance, use onclick handler instead of
  300. target (patch thanks to Daniel Kudwien, aka 'sun')
  301. June 12th 2008
  302. - ad.module
  303. o bug #269808: be sure variable is an array before walking with foreach
  304. May 31st 2008 (1.5)
  305. - ad_cache_memcache.info
  306. o plugin doesn't actually depend on Drupal memcache module
  307. - ad.module
  308. o remove ad_init, no longer include ad_views.inc (it has been moved to
  309. an external project where it will hopefully receive more attention by
  310. those that depend on it)
  311. - documentation
  312. o minor edits keeping things in sync with latest codebase
  313. - ad_views.inc
  314. o deleted, moving views support into external project where it will
  315. hopefully find a new, ambitious maintainer.
  316. May 11th 2008
  317. - ad.module
  318. o bug #255997: update online documention to reflect that ad views are
  319. properly tracked regardless of the display method.
  320. May 10th 2008
  321. - ad_cache_file.inc
  322. o bug #246257: avoid error if no ads are selected
  323. April 21st 2008 (1.5-rc2)
  324. - ad_views.inc
  325. o bug #141539: fix current user filter
  326. April 19th 2008
  327. - ad.install
  328. o bug #248670: add missing commas
  329. - ad_weight_percent.install
  330. o bug #248663: remove trailing ?>
  331. - ad_weight.info
  332. o bug #248663: add missing Id tag
  333. - ad_image.module
  334. o bug #248663: remove packaging info accidently included in info file
  335. April 17th 2008
  336. - ad.module
  337. o bug #248423: auto-fix when ad vocabulary information gets corrupted
  338. (unfortunately we haven't tracked down how this happens)
  339. April 17th 2008 (1.5-rc1)
  340. - ad.module
  341. o feature #221648: provide filtering on administrative ad overview page
  342. - ad_image.module
  343. o bug #242738: add missing alt tags
  344. o feature #142864: make destination URL optional
  345. o validate that an image is attached before inserting/updating image ad
  346. - ad_views.inc
  347. o bug #172807: fix default group views (patch by malaussene)
  348. o bug #141539: only display "my ads" link when appropriate
  349. - ad.install
  350. o bug #248016: add missing breaks that resulted in both mysql and
  351. postgresql updates being run
  352. April 15th 2008
  353. - ad.module
  354. o merge ad_clicks code that somehow didn't make it in the last merge
  355. o bug #246458: load cached versions of the node
  356. o bug #233073: allow other modules and themese to over ride page title
  357. o bug #183085: remove closing ?>
  358. - ad.install
  359. o bug #227967: fix install updates to work with PostgreSQL
  360. - ad_image.module
  361. o bug #183085: remove closing ?>
  362. o bug #237833: proprely record fid when first uploading image ad
  363. - ad_cache_file.module
  364. - ad_cache_memcache.module
  365. - ad_external.module
  366. - ad_notify.module
  367. - ad_report.module
  368. - ad_text.module
  369. - ad_weight_percent.module
  370. o bug #183085: remove closing ?>
  371. April 3rd 2008
  372. - ad.install
  373. o introduce adgroup into ad_statistics and ad_clicks
  374. - ad.module
  375. o track ad group on redirect
  376. o track ad group in statistics, when applicable
  377. o validate aid, group and hostid on redirect
  378. - serve.php
  379. o track ad group
  380. o support passing in url where ads are displayed
  381. - ad_cache_memcache.module
  382. o sync ads not in any group along with ads in groups
  383. o track ad group in statistics
  384. - ad_cache_memcache.inc
  385. o track ad group in statistics
  386. o add additional debug
  387. March 27th 2008
  388. - ad.module
  389. o Bug #239260, #222518 Remove query on nonexistent field that made it
  390. impossible to publish an unpublished ad.
  391. o Bug #233538, revert 'manage advertisements' back to 'edit own
  392. advertisements'
  393. March 23rd 2008
  394. - ad.module
  395. o Introduce click [details] page
  396. o Allow url to be passed in on redirect
  397. March 14th 2008
  398. - ad_weight_percent.module
  399. o remove various infinite loops
  400. March 13th 2008
  401. - adserve.inc
  402. o no need to pass an adserve variable to exit (as exit as access to all
  403. adserve variables)
  404. March 12th 2008
  405. - ad_cache_memcache.module
  406. o invoke ad_build_cache hook
  407. - ad_cache_memcache.inc
  408. o allow override from ad_build_cache hook
  409. - click_filter.module
  410. - click_filter.install
  411. o filter out clicks from search engine bots
  412. March 11th 2008
  413. - ad_cache_memcache.module
  414. o wrap ad syncronization in a lock
  415. - ad_cache_memcache.inc
  416. o remove unecessary duplicate get from memcache for ad structure
  417. o repopulate ad information in memcache on error (throttled)
  418. March 10th 2008
  419. - ad_cache_file.module
  420. o properly return ad configuration to not conflict with other cache types
  421. - ad_cache_file.inc
  422. o add additional debug output
  423. - adserve.inc
  424. o rename remaining instances of 'cache' to 'adcache' to avoid conflicts
  425. - ad_cache_memcache.module
  426. - ad_cache_memcache.inc
  427. o introduce new high-performance ad caching mechanism utilizing memcached
  428. March 6th 2008
  429. - adserve.inc
  430. o rename adserve variable 'cache' to 'adcache' to not conflict with Drupal's
  431. core page cache functionality if hard coding values in settings.php
  432. o bug #228650: properly check if DRUPAL_ROOT is defined
  433. February 5th 2008
  434. - ad_views.inc
  435. o bug #141539: fix Views "my ads" link (fix thanks to Wade Fitzpatrick)
  436. January 30th 2008
  437. - ad_report.module
  438. o make statistics functions a little more generic, making it possible to
  439. display per-user reports in addition to per-ad reports. Also provide
  440. hook allowing externally defined reports.
  441. January 24th 2008
  442. - ad_cache_file.inc
  443. o introduce 'include_file_init' and 'include_func_init' for over-riding
  444. initilization for serving ads from the file cache
  445. - adserve.inc
  446. o when calling ad_exit hook, indicate whether or not there were errors
  447. January 23rd 2008
  448. - ad.install
  449. o bug #213163, add missing comma during ad_clicks table creation
  450. - ad_image.module
  451. o bug #190938, use proper encoding to display special characters properly
  452. January 17th 2008
  453. - click_filter.info
  454. o new module for filtering clicks
  455. - click_filter.install
  456. o parse existing clicks, updating status
  457. - click_filter.module
  458. o new module for filtering clicks, currently filters clicks by ad owners
  459. and duplicate clicks by same IP or UID
  460. - ad.module
  461. o support new click_filter module
  462. - ad.install
  463. o add new status column for ad clicks
  464. - ad_cache_file.inc
  465. o sync (make counting of actions generic, dropped from earlier merge)
  466. January 16th 2008
  467. - ad.module
  468. o internally switch adserve variable name 'method' to 'ad_display' to match
  469. the variable name used in ad.module.
  470. - adserve.inc
  471. o perform partial drupal bootstrap to allow variable overloading
  472. o rename 'method' to 'ad_display' to ease overloading of variable
  473. o new logic for allowing adserve variable overrides from settings.php
  474. o allow adserve_bootstrap to be called multiple times at different levels
  475. o introduce 'ad_exit' hook
  476. o add cache support to adserve_increment
  477. o make counting of actions generic, not limited to 'view' and 'count'
  478. - imageserve.inc
  479. o perform partial drupal bootstrap to allow variable overloading
  480. o remove adserve_increment special logic
  481. - ad_cache_file.module
  482. o make counting of actions generic, not limited to 'view' and 'count'
  483. January 14th 2008
  484. - ad.module
  485. o bug #209751: alt missing when displaying counter image (thanks to attiks)
  486. January 13th 2008
  487. - ad_cache_file.module
  488. o cache and enable all hostids, not just those associated with active ads
  489. January 11th 2008 (1.4.1)
  490. - ad.module
  491. o fix URL to properly count views when displaying ads with raw mode
  492. - imageserve.inc
  493. o replace adserve_increment_view() with adserve_increment()
  494. - ad_image.info
  495. o refer to module as "Image Ad"
  496. January 11th 2008 (1.4)
  497. - ad.module
  498. o bug #165355, allow editing of ads with CCK
  499. o bug #208421, naming convention for id attribute doesn't allow commas
  500. o bug #162197, verify that cached advertisement vid is valid
  501. o bug #207677, be sure "show advertisements" permission is assigned to at
  502. least one role
  503. o don't display ad status in ad overview
  504. - ad_text.module
  505. o bug #197357, allow full 255 characters for url field defined in schema
  506. o bug #202934, wrap "Links to" text in div for themability
  507. - ad.install
  508. o bug #193094, no need to specify UNIQUE for PRIMARY KEY
  509. - ad_text.install
  510. o bug #193094, no need to specify UNIQUE for PRIMARY KEY
  511. - ad_image.module
  512. o bug #202934, wrap "Links to" text in div for themability
  513. o bug #208180, verify that attachements are enabled for ad content type
  514. o bug #193934, don't lose image ad data if image isn't validated
  515. o bug #207677, if using private download method, be sure "view uploaded
  516. files" permission is assigned to roles that should see ads
  517. - ad_html.module
  518. o don't display "Links to:", as html ads don't have internal links
  519. January 9th 2008
  520. - ad.install
  521. o introduce "status" column into ad_host table
  522. January 8th 2008
  523. - ad.module
  524. o add imageserve support for tracking traffic without ads
  525. - ad_cache_file.module
  526. o add support for tracking traffic without ads
  527. - ad_cache_file.inc
  528. o add support for tracking traffic without ads
  529. - imageserve.inc
  530. o add support for tracking traffic without ads
  531. - adserve.inc
  532. o add support for tracking traffic without ads
  533. o don't choke if DRUPAL_ROOT global isn't set
  534. January 6th 2008
  535. - ad_remote.module
  536. o general cleanup
  537. January 5th 2008
  538. - adserve.inc
  539. o remove superfluous quotes accidentally added in bugfix #206177
  540. - ad.module
  541. o bug #196431: wrap ad status in "access statistics" permission, and in
  542. "adstatus" div class
  543. January 4th 2008
  544. - adserve.inc
  545. o bug #206177: properly escape text before displaying with JavaScript
  546. December 4th 2007
  547. - adserve.inc
  548. o add optional DRUPAL_ROOT configuration option to support installations
  549. utilizing a symbolic link
  550. October 22nd 2007
  551. - adserve.inc
  552. o uncomment out debug dump of advertisement
  553. - ad.module
  554. o introduce global variable 'ad_link_nofollow'
  555. o new helper functin 'ad_link_nofollow' for adding link when global enabled
  556. (Sponsored by Connie at WebsitesForTheArts.com)
  557. - ad_image.module
  558. o add ad_link_nofollow support
  559. (Sponsored by Connie at WebsitesForTheArts.com)
  560. - ad_text.module
  561. o add ad_link_nofollow support
  562. (Sponsored by Connie at WebsitesForTheArts.com)
  563. - ad_html.module
  564. o new simple html ad type with no click-through tracking
  565. (Sponsored by Connie at WebsitesForTheArts.com)
  566. October 18th 2007
  567. - ad_external.module
  568. o new ad type for serving remotely hosted ads via an iframe
  569. o if ad_cache_file is enabled, cache remote page in file cache
  570. - adserve.php
  571. o renamed to serve.php
  572. - serve.php
  573. o add hooks so external modules can utilize serve.php for serving data
  574. without bootstrapping Drupal
  575. - adserve.inc
  576. o add new 'iframe' method, along with 'raw' and 'javascript'
  577. o add initial support for external weighting modules
  578. o make adserve_invoke_cache() generic, adserve_invoke()
  579. - ad.module
  580. o look for 'serve.php', not 'adserve.php'
  581. o add new IFrame display method
  582. - ad_cache_file.module
  583. o add new "ad_build_cache" hook, to be used by external ad modules
  584. - ad_cache_file.inc
  585. o build full path to cache files to allow calling from any path
  586. - ad_weight_percent.inc
  587. o initial implementation of percentage based weighting module
  588. - imageserve.inc
  589. o change call from adserve_invoke_cache() to adserve_invoke()
  590. September 26th 2007
  591. - ad_install.module
  592. o bug #175687: set db prefix for Postgres installations
  593. o bug #175683: Postgres doesn't support 'AFTER' when altering table
  594. September 7th 2007
  595. - ad_image.module
  596. o put more information about the image ad into the $node array
  597. o feature #170667: only perform url validation if enabled
  598. - ad_text.module
  599. o put more information about the text ad into the $node array
  600. o feature #170667: only perform url validation if enabled
  601. - ad.module
  602. o track the HTTP_USER_AGENT on ad clicks (to allow filtering clicks
  603. generated by bots that report themselves as bots)
  604. o bug #166097: fix "only variables can be passed by reference" error
  605. o feature #170667: provide option to disable url validation
  606. - ad.install
  607. o add user_agent column to ad_clicks table for tracking user agents
  608. o bug #173850: call variable_del(), not variable_delete()
  609. o update uninstall to delete new 'ad_validate_url' variable
  610. September 6th 2007
  611. - ad_weight_percent.inc
  612. - ad_weight_percent.info
  613. - ad_weight_percent.install
  614. - ad_weight_percent.module
  615. o implemented GUI and schema for weighting how often ads within each ad
  616. group are displayed as a percentage of 100%. actual logic to display
  617. ads per these settings is not yet implemented.
  618. August 31st 2007
  619. - adserve.inc
  620. o add simple default logic for randomly selecting ads.
  621. - ad_cache_file.inc
  622. o remove random ad selection logic, now done in adserve.inc.
  623. August 7th 2007
  624. - ad.module
  625. o improve usability of ad overview page (order by status, link to ad node)
  626. August 3rd 2007 (1.3.2 Release)
  627. - ad.module
  628. o bug #164217: restore ability to set global click-through target
  629. - imageserve.inc
  630. o tell web browsers not to cache images used for counting ad views
  631. July 30th 2007
  632. - adserve.inc
  633. o bug #163058: simplify query filter, join not necessary
  634. - ad_report.module
  635. o add views for hourly, weekly and monthly, in addition to daily
  636. July 29th 2007 (1.3.1 Release)
  637. - ad_cache_file.inc
  638. o fixed a typo that prevented ads from being displayed with the file cache
  639. July 29th 2007 (1.3 Release)
  640. - ad_module
  641. o Allow displaying of image counters without CSS (useful if displaying on
  642. RSS pages)
  643. July 25th 2007
  644. - ad_cache_file.inc
  645. o move logic for obtaining a lock on a cache file into a function for reuse
  646. o track file descriptor as static in function for easily passing around
  647. - adserve.inc
  648. o move cache invocation into function for reuse
  649. o make it possible to unset an adserve_variable()
  650. - imageserve.inc
  651. o functions to display blank images for counting ad views
  652. July 24th 2007
  653. - adserve.php
  654. o remove all logic, only used to display ads
  655. o add path for displaying counter images
  656. - adserve.inc
  657. o initial support for calling adserve() multiple times
  658. o initial support for displaying ads without using javascript
  659. o move code into functions to share with imageserve()
  660. o use images to count views if displaying raw ads
  661. - ad_cache_file.inc
  662. o initial support for calling adserve() multiple times
  663. - ad.module
  664. o initial support for displaying ads without using javascript
  665. o make ad display method configurable
  666. o new function to display an image for counting ad views
  667. - ad.install
  668. o remove ad_display variable on uninstall
  669. July 18th 2007 (1.2 Release)
  670. - adserve.php
  671. o bug #152610: call addslashes() to escape quotes
  672. o simplify javascript output path
  673. - ad_cache_file.inc
  674. o bug #152610: escape ' in JavaScript
  675. - ad.module
  676. o bug #153901: fix translation of ad permissions
  677. - ad_text.module
  678. o bug #153901: fix translation of ad permissions
  679. - ad_image.module
  680. o bug #153901: fix translation of ad permissions
  681. July 16th 2007
  682. - ad.info
  683. o bug #148533: ad module depends on taxonomy module
  684. - ad_cache_file.inc
  685. o bug #159239: be sure variables exist before we test their contents
  686. o bug #159237: be sure variables exist before we test their contents
  687. - ad.module
  688. o don't display error unnecessarily first time ad() is called
  689. o cleanup adserve.php-doesn't-exist-error to properly display link
  690. - ad_image.module
  691. o bug #153319: fix issues with enabling Image ads when no ad groups have
  692. been created - patch thanks to Grugnog2, problem isolated by yodersj
  693. June 8th 2007
  694. - ad.module
  695. o bug #150069: set unique id when displaying ads
  696. - ad_image.module
  697. o bug #150141: properly update ad_image_format table
  698. - ad_embed.module
  699. o bug #150142: don't display auto-embedded ads in teasers
  700. - ad.install
  701. o feature #150236: add _uninstall hook
  702. - ad_image.install
  703. o feature #150236: add _uninstall hook
  704. - ad_notify.install
  705. o feature #150236: add _uninstall hook
  706. - ad_text.install
  707. o feature #150236: add _uninstall hook
  708. -------------
  709. June 7th 2007
  710. 1.1 Release
  711. -------------
  712. June 6th 2007 (-RC3)
  713. - ad_cache_file.module
  714. o bug #147575: load user before calling user_access().
  715. - ad.install
  716. o bug #148623: update block deltas during upgrade from 1.0 -> 1.1.
  717. o bug #149770: don't display ads twice when 'always display ads' is checked
  718. - ad_embed.module
  719. o bug #149770: don't display ads twice when 'always display ads' is checked
  720. - ad_image.module
  721. o bug #146147: don't allow image ads to be enabled if they have a 0 size.
  722. June 5th 2007
  723. - ad.module
  724. o bug #148756: the ad group description is no longer optional.
  725. June 1st 2007
  726. - ad.module
  727. o bug #148160: properly set tid so groups can be updated
  728. May 31st 2007
  729. - ad.install
  730. o bug #147733: properly convert ads to new groups during upgrade
  731. May 28th 2007
  732. - ad.module
  733. o hard code tid 0 (ie, ad is assigned to no groups) as "default" group.
  734. o restore global administrative statistics
  735. o clean up per-ad statistics.
  736. - adserve.php
  737. o fix query to properly display ads without any taxonomy term.
  738. May 27th 2007 (1.1-rc1)
  739. - adserve.php
  740. o bug: add missing space to debug text.
  741. May 25th 2007
  742. - ad_notify.module
  743. o bug #142648: remove unused settings page
  744. o use AD_NOTIFY_DISABLED and AD_NOTIFY_ENABLED instead of 1 and 0
  745. - adserve.php
  746. o bug #146361: set headers to prevent javascript from being cached by
  747. browser. Thanks to Joep Hendrix.
  748. - ad.module
  749. o bug #146785: be sure $groups is an array() to prevent errors when no
  750. groups are defined.
  751. o bug #136004: add support for PostgreSQL
  752. - ad.install
  753. o bug #136004: add support for PostgreSQL
  754. - ad_image.install
  755. o bug #136004: add support for PostgreSQL
  756. - ad_text.install
  757. o bug #136004: add support for PostgreSQL
  758. - ad_notify.install
  759. o bug #136004: add support for PostgreSQL
  760. May 24th 2007
  761. - ad.module
  762. o enhance ad_groups_list() to return either a specified group or all groups,
  763. also enhanced to return just the group name or the full group object
  764. - ad_image.module
  765. o bug #143251: do not query nonexistent ad_groups table
  766. o fix logic to use taxonomy terms tid instead of nonexistent group gid
  767. May 23rd 2007
  768. - adserve.php
  769. o bug #144436: replace hard coded
    between ads with
  770. o add support for displaying ads without any taxonomy term
  771. - adserve.php
  772. o bug #144436: replace hard coded
    between ads with
  773. May 11th 2007
  774. - ad.install
  775. o bug #143207: separate {} and $variable
  776. - ad_image.install
  777. o bug #143207: separate {} and $variable
  778. - ad.module
  779. o bug #142874: fix typos
  780. May 9th 2007
  781. - ad.modlue
  782. o bug #142562: add missing calls to t()
  783. o bug #142583: in adserve url convert "&" to "&" so it validates
  784. - ad_cache_file.module
  785. o bug #142583: in adserve url convert "&" to "&" so it validates
  786. May 8th 2007
  787. - adserve.php
  788. o removed groups (replaced by taxonomy tids)
  789. - ad_cache_file.module
  790. o remove groups cache
  791. o include in cache ads that aren't assigned to a taxonomy
  792. - ad_cache_file.inc
  793. o remove references to group cache
  794. o check for ads that are not assigned to a taxonomy
  795. - ad.module
  796. o replace custom groups code with taxonomy functions
  797. - ad_embed.module
  798. o use tids instead of group name
  799. - ad_notify.module
  800. o remove references to group
  801. - ad_remote.module
  802. o use taxonomy tids rather than group name when building remote snippet
  803. - ad.install
  804. o convert ad_group table entries to taxonomy
  805. o remove ad_group table
  806. o remove gid calumn from ads table
  807. o bug #129749: default to utf8 character set for all table types
  808. o bug #142183: TEXT columns can't set DEFAULT
  809. - ad_views.inc
  810. o remove most groups logic
  811. o update group blocks to use taxonomy
  812. - ad_text.install
  813. o bug #129749: default to utf8 character set for all table types
  814. o bug #142183: TEXT columns can't set DEFAULT
  815. - ad_image.install
  816. o bug #129749: default to utf8 character set for all table types
  817. - ad_notify.install
  818. o bug #129749: default to utf8 character set for all table types
  819. o bug #142183: TEXT columns can't set DEFAULT
  820. May 7th 2007
  821. - adserve.php
  822. o support displaying ads based on taxonomy tids
  823. - ad_cache_file.module
  824. o build cache for taxonomy tids
  825. - ad_cache_file.inc
  826. o support displaying ads based on taxonomy tids
  827. - ad.module
  828. o support setting term list from ad() function
  829. May 6th 2007
  830. - adserve.php
  831. o make 'error' variable accessible to cache plugins
  832. - ad_cache_file.module
  833. o added support for hostid
  834. o redesigned cache struct to support additional lookups
  835. o make cache lifetime configurable
  836. - ad_cache_file.inc
  837. o added support for hostid
  838. o utilize new cache struct
  839. o improved debug output
  840. o make cache lifetime configurable
  841. May 5th 2007
  842. - ad.module
  843. o make hostid accessible
  844. o set absolute path in the redirect url
  845. - ad.install
  846. o convert redirect urls to absolute paths
  847. - ad_remote.module
  848. o simple proof-of-concept for hosting ads on remote websites
  849. - adserve.php
  850. o add hostid to redirect URL
  851. o bug #141630: don't print visible message when no ads exist
  852. - ad_image.module
  853. o use @HOSTID___ token so hostid can be set in cached content
  854. - ad_text.module
  855. o use @HOSTID___ token so hostid can be set in cached content
  856. May 4th 2007
  857. - ad_text.module
  858. o stop stripping the letter 'v' from all text ads
  859. ------------
  860. May 4th 2007
  861. 1.0 Release
  862. ------------
  863. May 3rd 2007 (beta9)
  864. - ad.module
  865. o remove all file cache logic
  866. o implement hooks for externally defining ad caches
  867. o cleanup ad() to only display url variables that are actually used
  868. o implement hook for upcoming event notifications (activate and expire)
  869. - adserve.php
  870. o remove all file cache logic
  871. o implement hooks for externally defining ad caches
  872. - ad_cache_file.module
  873. o implement file cache as plug-in module
  874. - ad_cache_file.inc
  875. o implement file cache as plug-in module
  876. - ad_cache_file.info
  877. o implement file cache as plug-in module
  878. - ad_notify.module
  879. o implement hook to support upcoming event notifications
  880. - ad_image.module
  881. o bug #140804: support private download method
  882. May 2nd 2007
  883. - ad.module
  884. o bug #134889: don't display statistics and click history in teaser
  885. o when no ads are displayed due to permissions display a helpful html
  886. comment noting the need to grant 'show advertisements' permissions.
  887. - ad_text.module
  888. o bug #132525: validate destination URL
  889. - ad_image.module
  890. o bug #132525: validate destination URL
  891. May 1st 2007
  892. - ad.module
  893. o translate adtype on display
  894. - ad_image.module
  895. o bug #139068: do not translate $adtype
  896. o encode with UTF-8 charset
  897. - ad_text.module
  898. o bug #139068: do not translate $adtype
  899. o bug #129749: encode with UTF-8 charset
  900. - ad_embed.module
  901. o bug #139167: don't try to replace tags with ads if there's no text
  902. - adserve.php
  903. o don't test $nids if isn't set (for E_ALL compat)
  904. May 1st 2007 (beta8)
  905. - ad.module
  906. o convert '%' to '@' to prevent from showing up in emails
  907. o add default text for notification emails
  908. o remove duplicate code
  909. - ad_notify.install
  910. o add aid column to ad_notify table
  911. - ad_notify.module
  912. o add default text for notification emails
  913. o display help text for notification email variables
  914. o perform proper substitions on variables in notification mails
  915. o prevent editing and deletion of locked notifications by non-privileged
  916. users
  917. o support notification deletion
  918. o support editing of notification email text
  919. o use drupal_mail function instead of nonexistant drupal_mail function
  920. o convert '%' to '@' to prevent from showing up in emails
  921. April 30th 2007
  922. - adserve.php
  923. o bug #140173: add missing ";" at end of javascript.
  924. April 29th 2007
  925. - ad_image.module
  926. o bug #131028: reference $file structure as an object
  927. April 28th 2007
  928. - ad_image.module
  929. o add ability to set mouseover (tooltip) text when hovering a mouse over
  930. the ad image.
  931. - ad_image.install
  932. o schema change to add field for mousever text.
  933. April 27th 2007
  934. - ad_notify.module
  935. o allow editing of notifications and the message text
  936. o preliminary support for deleting notifications
  937. April 26th 2007
  938. - adserve.php
  939. o remove debug output preventing ads from displaying
  940. April 24th 2007
  941. - adserve.php
  942. o bug #131035: move path variables from global to local statics, move
  943. adserve logic into function out of global space.
  944. o include extra debug information showing version of all ad files
  945. April 21st 2007
  946. - ad_image.info
  947. o add dependency on upload module
  948. - ad_notify.module
  949. o don't show 'my notifications' tab unless viewing an ad you own
  950. April 17th 2007
  951. - adserve.php
  952. o bug #131035: move adserve variables from global into local statics
  953. (the Drupal bootstrap was wiping the globals depending on the PHP
  954. configuration.)
  955. April 13th 2007
  956. - ad.module
  957. o bug #135144: don't translate ad status when storing in database, only
  958. when displaying to screen
  959. - adserve.php
  960. o be sure variables are set before accessing them to allow running PHP in
  961. E_ALL mode
  962. April 4th 2007
  963. - ad_image.module
  964. o bug #127944: build path to image file using file_create_url()
  965. o bug #131022: put all settings under settings tab
  966. - ad.module
  967. o bug #131023: don't wrap block title in
  968. - ad.install
  969. o bug #130968: add missing prefix
  970. - ad_text.install
  971. o bug #129469: add missing prefix
  972. February 27th 2007
  973. - ad.module
  974. o reorder logic so we only return once
  975. - ad_notify.install
  976. o rename table from ad_notifications to ad_notify
  977. o rename "time" to "delay" to make clode more clear
  978. o introduce "queued" row for tracking notification delays
  979. o add additional indexes for better performance
  980. - ad_notify.module
  981. o introduce _cron hook for sending and tracking scheduled notifications
  982. o introduce send_mail function for sending email notifications
  983. o introduce "mail_text" hook for setting email text
  984. o validate notifications before saving them
  985. o rename references to old ad_notifications table to new ad_notify table
  986. February 25th 2007
  987. - ad.install
  988. o fix bug #122289: restore missing parenthesis.
  989. February 22nd 2007
  990. - ad.module
  991. o re-arrange ad notifications, add additional notification events
  992. - ad_notify.install
  993. o add field for one time use notifications (auto-expiring)
  994. o add field for counting
  995. o add field for disabling notifications
  996. - ad_notify.module
  997. o replace 'manage all notifications' with already existing permission
  998. 'manage owners'
  999. o add 'my notifications' tab for users to manage their own notifications
  1000. o add GUI option for one-time notifications (auto-expiring)
  1001. o add GUI option for locking notifications (ie, those created by admins that
  1002. users can't disable).
  1003. February 21st 2007
  1004. - ad.module
  1005. o implement initial ad notification hooks
  1006. - ad_notify.install
  1007. o implement database schema for managing notifications
  1008. - ad_notify.module
  1009. o implement GUI for creating ad email notifications
  1010. o implement api for registering notification events
  1011. (NOTE: notifications themselves are not yet implemented, I'm just
  1012. checking in a work-in-progress. If you choose to test this now, you'll
  1013. likely need to manually dump your ad_notifications table later and
  1014. re-create it once the ad_notify module is actually released.)
  1015. February 19th 2007 (beta7)
  1016. - ad_image.module
  1017. o make it possible for someone with 'create advertisement' permission to
  1018. be able to upload an image for their advertisement.
  1019. - ad_text.module
  1020. o make it possible for someone with 'create advertisement' permission to
  1021. be able to enter text for their advertisement.
  1022. February 17th 2007 (beta6)
  1023. - ad.module
  1024. o display 'edit' tab for all ad owners, not just node owner
  1025. o automatically give user with UID of 1 all ad permissions
  1026. o log in watchdog if ad redirect fails
  1027. o be sure all fieldsets and contents are collapsible on the edit form
  1028. o don't require ad description as it's not used anywhere important
  1029. o call theme functions properly
  1030. o remove ad notifications logic, add hooks to allow notifications and other
  1031. per-ad/per-owner functionality to be implemented in plug-in modules
  1032. - ad.install
  1033. o remove ad_notifications table and ad table notifcation columns
  1034. - ad_image.module
  1035. o new 'manage active ad' permission, don't allow ad owner to change the
  1036. active ad unless they have been granted this permission
  1037. o fix image fieldset contents to properly collapse
  1038. - ad_text.module
  1039. o new 'manage ad text' permission, don't allow ad owner to change the
  1040. ad text unless they have been granted this permission
  1041. - ad_report.module
  1042. o make it possible for users other than that with a UID of 1 to see the
  1043. report images
  1044. February 5th 2007 (beta5)
  1045. - ad_view.inc
  1046. o add filter for owned ads so "my ads" default view can use ad_owners table
  1047. o order pages by last updated timestamp
  1048. - ad.module
  1049. o feature #114638: configuration option for specifying the link target,
  1050. i.e. open in same window when clicking ad, open in new window, etc.
  1051. - ad_image.module
  1052. o feature #114638: open link in configured link target
  1053. - ad_text.module
  1054. o feature #114638: open link in configured link target
  1055. - ad_embed.module
  1056. o pass proper user array to user_access()
  1057. February 4th 2007
  1058. - ad.module
  1059. o be sure
    wrapping ads has proper group, specifying nids if not using
  1060. a group.
  1061. o modify ad_groups_list to support listing just group names.
  1062. - ad_embed.module
  1063. o implement automatically embedded ads, allowing per-content-type
  1064. configuration. Specify after which paragraph to insert one or more
  1065. randomly selected ads from the chosen ad group.
  1066. o introduce configuration options to disable scanning for manual tags (to
  1067. reduce overhead if this functionality is not being used).
  1068. February 3rd 2007
  1069. - ad_embed.module
  1070. o introduce 'embed ads in content' permission - only filter nodes owned by
  1071. users with this permission. (which could have funky implications that
  1072. we'll ignore for now).
  1073. o add help text to module.
  1074. o cleanup to make it simple to add additional tag styles if desired.
  1075. o when replacing tags with ads in content adjust scan position for
  1076. differences of length between what is being replaced and what is
  1077. replacing.
  1078. February 2nd 2007
  1079. - ad_embed.module
  1080. o initial support for embedding ads within content. (ie, replaces [[ad]] or
  1081. with javascript for ad, supports parameters.)
  1082. January 31st 2007
  1083. - ad.module
  1084. o issue #114535: call _ad_check_install() if failing to display ads,
  1085. properly set "adserve" variable.
  1086. o issue #114651: be sure cache file has contents before trying to loop
  1087. through it.
  1088. January 29th 2007
  1089. - ad_image.module
  1090. o detect clean urls and display ad images appropriately
  1091. - adserve.php
  1092. o add additional debug to filecache when displaying ads from a list of nids
  1093. o use default ad quantity of 1 if no quantity is specified
  1094. January 28th 2007 (beta4)
  1095. - ad.module
  1096. o support for displaying ads based on taxonomy and role with views (and
  1097. much more)
  1098. o if views module enabled, offer pages to ad owners listing all their ads,
  1099. optionally filtered by adstatus.
  1100. - ad_views.inc
  1101. o add quantity field for specifying how many ads to display in view
  1102. o add filter for ad type
  1103. o improve filters to allow selection of multiple types, status or groups
  1104. o default block views: all active ads, all active ads of each type, and all
  1105. active ads of each group.
  1106. o default page views: all active ads, all owner's ads, and views for each
  1107. all owner's ads of a given adstatus.
  1108. - adserve.php
  1109. o fix to support multiple ads when displaying by nid
  1110. January 27th 2007
  1111. - ad_views.inc
  1112. o initial field definitions for base ad module.
  1113. o filter by: group, adstatus
  1114. o add advertisement view type.
  1115. - ad_image_views.inc
  1116. o display image ad, incrementing view counter
  1117. - ad_text_views.inc
  1118. o display text ad, incrementing view counter
  1119. - ad.module
  1120. o include ad_views.inc if the view.module is enabled.
  1121. o don't search for adserve.php, require it to be in ad folder with ad module
  1122. o update ad() to allow specifying list of nids to display ads from
  1123. - ad_image.module
  1124. o include ad_views.inc if the view.module is enabled.
  1125. - ad_text.module
  1126. o include ad_views.inc if the view.module is enabled.
  1127. - adserve.php
  1128. o support displaying ads from list of nids instead of from group.
  1129. January 26th 2007
  1130. - ad_image.module
  1131. o use file_create_path() to generate proper path to image.
  1132. - ad.module
  1133. o be smarter when looking for adserve.php, derive path from ad.module path
  1134. in system table.
  1135. o if enabled, update file cache when ads are updated.
  1136. o cleanup when changing number of ad files, or disabling file cache.
  1137. - adserve.php
  1138. o noncached display requires full bootstrap.
  1139. January 26th 2007 (beta3)
  1140. - ad.install
  1141. o updated_1: introduce new fields in {ads} table for tracking when ads were
  1142. activated and expired, and for limiting the maximum number of views or
  1143. clicks.
  1144. - ad.module
  1145. o feature #109688: support for scheduling based on views or clicks.
  1146. o track when ad was last activated or expired.
  1147. o improve status messages when viewing advertisement.
  1148. - adserver.php
  1149. o feature #109688: support for scheduling based on views or clicks
  1150. January 24th 2007
  1151. - ad.module
  1152. o add support for automatically enabling and disabling advertisements at
  1153. specified times and dates.
  1154. January 23rd 2007
  1155. - ad.module
  1156. o add support for displaying multiple unqiue ads. The automatically
  1157. created ad blocks include a configuration option supporting this new
  1158. feature.
  1159. o rename "database cache" to "none", as it's not a cache at all. This
  1160. paves the way for later adding support for an actual database level
  1161. ad cache.
  1162. - adserve.php
  1163. o add support for displaying multiple unique ads.
  1164. - ad_image.module
  1165. o fix paths to work when hosting Drupal from a subdirectory.
  1166. January 20th 2007
  1167. - ad_image.php
  1168. o bugfix #111130: Must pass $node when calling adapi (for pre-PHP5 support)
  1169. January 15th 2007
  1170. - ad.module
  1171. o add support for filter types with ads
  1172. o manually invoke ad_ modules to support pre-PHP5 installations
  1173. o move 'my ads' to main menu, not under user name
  1174. o only display 'ad owners' tab for ad content
  1175. - adserve.php
  1176. o allow periods (.) in ad path
  1177. - ad_image.php
  1178. o update adapi to support pre-PHP5 installations
  1179. - ad_text.php
  1180. o update adapi to support pre-PHP5 installations
  1181. January 3rd 2007
  1182. - adserve.php
  1183. o strip all but allowed characters input from $_GET to prevent XSS attacks
  1184. January 1st 2007 (beta2)
  1185. - ad.module
  1186. o add support for externally defined ad caching methods
  1187. o provide new administrative screen with statistics overview
  1188. o cleanup permissions:
  1189. - if have 'administer advertisements' automatically have all ad perms
  1190. - introduce new 'manage owners' permission
  1191. - remove redundant permission tests
  1192. - adserve.php
  1193. o add support for externally defined ad caching methods
  1194. December 31'st 2006 (beta1)
  1195. - ad.module
  1196. o implement file cache
  1197. o pass in path to files directory, abbreviate all url variables
  1198. o properly display ad status even with limited permissions
  1199. o give primary ad owner 'modify status' permission by default
  1200. - adserve.php
  1201. o implement file cache
  1202. December 30'th 2006
  1203. - ad.module
  1204. o fix logic that locates adserve.php, cleanup associated error messages
  1205. o replace 'edit own advertisements' with 'manage advertisements'
  1206. o add page for displaying all advertisements owned by specific user
  1207. o add interface for removing ad owners from an ad
  1208. o don't allow user to be added as ad owner unless is has 'manage
  1209. advertisements' or 'administer advertisements' premissision
  1210. o by default only add 'access statistics' and 'access click history' to new
  1211. ad owners.
  1212. o when using filecache, default to using 3 files for better performance
  1213. o pass number of files to use for filecache to adserve.php
  1214. - adserve.php
  1215. o retrieve number of files to use for filecache from $_GET variable
  1216. - ad_image.module
  1217. o display actual ad in node teaser
  1218. - ad_text.module
  1219. o display actual ad in node teaser
  1220. December 30'th 2006 (0.6)
  1221. - ad.module
  1222. o implement granular advertisement permission system with the following
  1223. default permissions: access statistics, access click history, modify
  1224. group, modify status
  1225. o add default ad owner and permissions when creating new ads
  1226. December 28'th 2006
  1227. - ad.module
  1228. o track hostid when clicking an ad
  1229. o implement form for adding multiple owners to an ad
  1230. o implement form for granting per-user permissions to each ad
  1231. - ad_image.module
  1232. o include hostid when displaying ad so clicks can be tracked to host
  1233. - ad_text.module
  1234. o include hostid when displaying ad so clicks can be tracked to host
  1235. December 27'th 2006 (0.5)
  1236. - ad.module
  1237. o search for adserve.php from top level directory to support multi-site
  1238. installations (module may not live in /modules)
  1239. o no longer try specifying how many dirs above adserve.php index.php is
  1240. - adserve.php
  1241. o improve debugging output
  1242. o search for bootstrap.inc
  1243. - ad_image.module
  1244. o specify absolute path to ad image so can display from non-front pages
  1245. - ad_text.module
  1246. o define 'redirect' adapi hook so clicking text ads takes you to proper url
  1247. December 25'th 2006
  1248. - ad.install
  1249. o define ad_permissions table
  1250. o define ad_owners table
  1251. o define ad_notifications table
  1252. o define ad_hosts table
  1253. - ad.module
  1254. o fix ad statistics to display even if none for current hour
  1255. o implement statistics for current week
  1256. o register unique hostid for each add owner for displaying ads remotely
  1257. o enforce matching ad status and node status
  1258. o only display clicks and statistics for ads, not all ad types
  1259. o stub in support for ad owners, ad owner permissions and add owner
  1260. notifications
  1261. o display group name instead of just group id when listing ads
  1262. o add regex in search for adserve.php to not match ie .swp files
  1263. - adserve.php
  1264. o implement cache types in switch statement
  1265. o track hostid when viewing ads for displaying on remote sites
  1266. - ad_text.module
  1267. o use htmlentities() to encode ad text
  1268. December 11'th 2006 (0.3.1)
  1269. - ad.install
  1270. o ad missing comma
  1271. o remove isdefault column from ad_groups table
  1272. - ad.module
  1273. o always display all_time statistics for ads, even if 0
  1274. o for simplicity, hard code 'default' group to be gid 1
  1275. o do not allow editing or deleting of 'default' group
  1276. o auto-select ad type if only one type available
  1277. - ad_image.module
  1278. o perform check_install when displaying node form
  1279. December 10'th 2006 (0.3.0)
  1280. - ad.module
  1281. o support submenu under module settings
  1282. o require ad type be selected before show node form
  1283. o only display image upload error after preview or submit
  1284. - ad_image.module
  1285. o when displaying ad, wrap in appropriate
    's.
  1286. - ad_text.module
  1287. o implement function to display text ads
  1288. o simplify ads to be just header and body
  1289. o single global settings for min and max header and body lengths
  1290. o implement adapi for text ads
  1291. o display form for creating and editing text ads
  1292. - ad_text.install
  1293. o new table for storing text ads.
  1294. December 9'th 2006 (0.2.4)
  1295. - ad.module
  1296. o fix ad creation to work when using multiple ad_type modules
  1297. o only display click history when there is one
  1298. - ad_image.module
  1299. o display images during preview
  1300. o set error if no image is uploaded
  1301. - ad_text.module
  1302. o save ad_text group settings
  1303. o begin to stub in adapi
  1304. o stub in node_form
  1305. November 30'th 2006 (0.2.3)
  1306. - adserve.php
  1307. o move redundant javascript logic from ad_type modules into adserve.php
  1308. - ad_text.install
  1309. o clean up ad_text schema
  1310. - ad_text.module
  1311. o initial support for ad group configuration
  1312. - ad_image.install
  1313. o remove extra id from ad_image_format table
  1314. - ad_image.module
  1315. o remove javascript logic
  1316. November 29'th 2006 (0.2.2)
  1317. - ad.module
  1318. o auto-generate advertisemnt blocks for each ad group
  1319. o fix block management after menu restructuring
  1320. - ad_image.module
  1321. o merge in version 0.2.1 that was missed in previous tarball
  1322. November 29'th 2006 (0.2.1)
  1323. - ad.module
  1324. - ad_image.module
  1325. o Implemented basic functionality
  1326. April 17, 2006
  1327. - ad.module
  1328. o Remove calls to tablesort_pager(), removed during Drupal 4.7 development